☰
太赞了,Trae SOLO 也支持 Claude Code 的 TODO 列表模式了,TaoToken 统一 Key 接入实测
2026/10/8 6:20:33 网站建设 项目流程

1. Trae SOLO 的 TODO 列表模式到底解决了什么问题

Trae SOLO 是 Trae IDE 里的全流程自动化模式,你给它一段需求描述,它自己拆任务、写代码、跑命令、部署上线。而 TODO 列表模式,是 SOLO 在 2.0.7 之后加入的任务拆解机制——它会把一个复杂需求拆成若干条可勾选的任务项,每完成一条就标记一条,而不是像以前那样一口气生成一大堆代码然后告诉你“全部完成了”。

这个变化为什么重要?因为大模型在长链路任务里有一个非常顽固的毛病:提前宣布胜利。你让它做一个带登录、带数据库、带前端页面的小系统,它可能只写了前端页面就回复“已完成全部功能”。你再去检查,后端接口根本没写,数据库连接也是假的。这不是模型在骗你,而是它在生成过程中丢失了对“整体任务边界”的跟踪。TODO 列表本质上是一个外部化的任务状态机,把“要做什么”从模型的隐式记忆变成了显式的、可勾选的结构化数据。

适合谁用?三类人最受益:一是用 Trae SOLO 做全栈小项目但经常被“假完成”坑到的独立开发者;二是想把 Claude Code 的 TODO 工作流迁移到 Trae 里的开发者;三是已经在用 TaoToken 统一管理多个模型 Key、希望 IDE 内直接切换模型而不改配置的人。

我实测下来,TODO 列表触发后,SOLO 的执行路径变得非常清晰:先列任务,再逐条执行,每完成一条会在对话区显示勾选状态。任务多的时候它自动生成列表,任务少的时候可能不生成——这一点和 Claude Code 的行为一致。

但这里有一个前置问题:Trae SOLO 本身需要模型通道。如果你用的是官方内置模型,配置是锁死的;如果你想用自己的 Key、或者想在不同模型之间切换来对比 TODO 拆解质量,就需要一个统一的 API 入口。这就是 TaoToken 介入的地方——它提供一个兼容 OpenAI 格式的 Base URL,你可以在 Trae 里把模型请求指向它,然后用同一个 Key 调用不同模型。

下面我会从零开始,把 TaoToken 的配置、Trae SOLO 的 TODO 触发、端到端验证、以及常见报错排查全部走一遍。每一步都有可复制的配置片段和实际命令,你跟着做就能跑通。

2. TaoToken 前置准备:统一 Key 与 API 通道配置

在进入 Trae SOLO 的 TODO 配置之前,先把模型通道搭好。TaoToken 的核心作用是:给你一个统一的 Base URL 和一个 Key,让你在 Trae、Claude Code、Cline 等不同工具里用同一套凭证调用模型。你不需要在每个工具里分别填不同的厂商 Key,也不需要改代码里的 endpoint。

2.1 获取 Key 和确认 Base URL

首先到 TaoToken 控制台创建一个 API Key。地址是:

https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

创建时注意两点:一是 Key 只在创建时完整显示一次,复制后存到安全的地方;二是如果你打算在 Trae 里同时用多个模型(比如一个用于 TODO 拆解、一个用于代码生成),可以创建多个 Key 分别管理,方便后续排查是哪个 Key 出的问题。

Base URL 统一用:

https://taotoken.net/api

注意这个地址后面不加 UTM 参数,它是 API 请求的 endpoint,不是网页链接。你在 Trae 的模型配置里填的就是这个。

2.2 在 Trae 中配置自定义模型通道

Trae 支持自定义模型提供商。打开 Trae 设置,找到模型配置区域,选择“自定义”或“OpenAI Compatible”类型,然后填入以下三件套:

配置项值
Base URLhttps://taotoken.net/api
API Key你在 TaoToken 控制台创建的 Key
Model ID按需填写,如claude-sonnet-4-20250514或gpt-4o

如果你用的是 Trae 的配置文件方式(部分版本支持settings.json或项目级.trae/config.json),可以写入如下 JSON 片段:

{ "modelProvider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "modelId": "claude-sonnet-4-20250514", "maxTokens": 8192, "temperature": 0.3 }

把这段配置放到 Trae 的模型设置里,保存后重启 IDE 或重新加载窗口。temperature 建议设低一点(0.2–0.4),因为 TODO 拆解需要稳定性,太高的随机性会导致任务列表漏项或重复。

2.3 验证 Key 是否生效

在正式用 SOLO 之前,先用一个最简单的请求确认通道是通的。你可以在终端里用 curl 发一条测试请求:

curl -s https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoTokenKey" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "回复OK两个字母"}], "max_tokens": 10 }'

如果返回的 JSON 里choices[0].message.content包含 “OK”,说明 Key 和 Base URL 都正确。如果返回 401,检查 Key 是否复制完整、是否有多余空格。如果返回local proxy failed或连接超时,检查你的网络环境是否能正常访问taotoken.net,以及 Trae 的代理设置是否干扰了请求。

这一步看起来简单,但它是后面所有操作的基础。我踩过的坑是:Key 复制时末尾带了一个换行符,导致 401 排查了十分钟。所以复制后建议在终端里echo -n "sk-xxx" | wc -c确认字符数对不对。

3. 可复制配置:Trae SOLO TODO 列表触发与模型对接

通道通了之后,接下来把 Trae SOLO 的 TODO 列表模式跑起来。这一节给出完整的配置片段和触发步骤,你直接复制就能用。

3.1 SOLO 模式切换与 TODO 触发条件

首先确认你的 Trae 版本在 2.0.7 以上,并且已经获得了 SOLO 模式的访问权限。切换方式是在 Trae 顶部工具栏点击模式切换按钮,从 IDE 模式切到 SOLO 模式。切换后界面会变成左侧对话、右侧工具面板的布局。

TODO 列表的触发不是手动开关,而是由 SOLO 根据任务复杂度自动判断的。实测下来,满足以下条件时几乎一定会生成 TODO 列表:

  • 需求描述超过 3 个功能点,比如“做一个带登录、注册、文章列表、详情页、评论功能的博客系统”
  • 涉及多个文件或目录的创建与修改
  • 需要执行终端命令(如安装依赖、启动服务、数据库迁移)
  • 任务链路超过 5 步

如果只让它“改一个按钮颜色”,它不会生成 TODO 列表,直接改完就结束了。所以如果你想测试 TODO 功能,给一个稍微复杂一点的需求。

3.2 项目级配置文件

在项目根目录创建.trae/solo.json,写入以下内容:

{ "solo": { "enableTodoList": true, "todoTriggerThreshold": 3, "autoAcceptChanges": true, "maxTodoItems": 20, "taskBreakdownModel": "claude-sonnet-4-20250514", "codeGenModel": "claude-sonnet-4-20250514" }, "model": { "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "provider": "openai-compatible" } }

这里有几个关键参数:

enableTodoList设为true强制开启 TODO 列表生成,即使任务量不大也会尝试拆解。todoTriggerThreshold是触发阈值,设为 3 表示需求里包含 3 个以上功能点时就生成列表。autoAcceptChanges设为true让 SOLO 自动接受代码修改,不再逐条弹窗确认——这是 SOLO 模式的设计初衷,如果你不放心可以先设为false观察几次。maxTodoItems限制列表最大条目数,防止模型把任务拆得过细导致执行时间过长。

taskBreakdownModel和codeGenModel可以分开配置。我实测发现,用同一个模型做拆解和生成效果已经不错;如果你想优化,可以用一个推理能力强的模型做拆解,用一个代码能力强的模型做生成。两个模型都通过同一个 TaoToken Base URL 调用,不需要额外配置。

3.3 在对话中触发 TODO 列表

配置写好后,在 SOLO 对话区输入一个多步骤需求。比如:

帮我创建一个 Node.js + Express 的待办事项 API,要求: 1. 支持创建、查询、更新、删除待办 2. 数据存到 SQLite 3. 有基本的输入校验 4. 写一个简单的测试脚本验证接口 5. 启动服务并告诉我端口号

发送后,SOLO 会先输出一个任务列表,类似:

TODO: [ ] 初始化 Node.js 项目并安装 express、sqlite3 依赖 [ ] 创建数据库连接和表结构 [ ] 实现 CRUD 路由 [ ] 添加输入校验中间件 [ ] 编写测试脚本 [ ] 启动服务并验证接口

然后它会逐条执行,每完成一条就把[ ]变成[x]。你可以在对话区实时看到进度。如果某条任务执行失败,它会停下来报错,而不是跳过继续——这正是 TODO 列表模式相比之前“一口气生成”的最大改进。

3.4 与 Claude Code 工作流的衔接

如果你之前用 Claude Code 的 TODO 模式,会发现行为非常相似。区别在于:Claude Code 是在终端里跑,Trae SOLO 是在 IDE 里跑,并且多了浏览器面板、部署面板等可视化工具。你可以把 Claude Code 里常用的任务描述直接搬到 Trae SOLO 里,TODO 拆解逻辑基本一致。

如果你在 Claude Code 里也配置了 TaoToken 的 Base URL,那么两个工具的模型通道是统一的。Claude Code 的配置方式是在~/.claude/settings.json或项目级.claude/settings.json里写入:

{ "apiBaseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "model": "claude-sonnet-4-20250514" }

这样你在 Trae 和 Claude Code 之间切换时,不需要重新申请 Key 或改 endpoint,同一个 TaoToken Key 两边通用。

4. 验证请求与端到端任务执行结果对照

配置完成后,需要做一次完整的端到端验证,确认 TODO 列表真的在执行、模型通道真的在走 TaoToken、结果真的符合预期。这一节给出具体的验证动作和结果对照。

4.1 验证模型请求确实走了 TaoToken

在 Trae SOLO 执行任务的过程中,打开 TaoToken 控制台的请求日志页面:

https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

你应该能看到实时的请求记录,包括请求时间、模型名称、token 消耗量。如果日志里有记录,说明 Trae 的请求确实走了 TaoToken 通道,而不是 Trae 内置的模型。如果没有记录,检查.trae/solo.json里的baseUrl和apiKey是否写对,以及 Trae 是否重启加载了新配置。

4.2 端到端任务执行对照

我用一个实际任务做了完整测试,下面是过程记录和结果对照。

输入需求:

创建一个 Python Flask 应用,提供一个 /health 接口返回 {"status": "ok"}, 再提供一个 /add 接口接受两个数字返回和。写一个 pytest 测试文件, 运行测试并启动服务,最后用 curl 验证两个接口。

SOLO 生成的 TODO 列表:

[ ] 创建 Flask 应用文件 app.py [ ] 实现 /health 和 /add 接口 [ ] 创建 requirements.txt 并安装依赖 [ ] 编写 test_app.py 测试文件 [ ] 运行 pytest 并确认通过 [ ] 启动 Flask 服务 [ ] 用 curl 验证 /health 和 /add

执行过程对照:

步骤SOLO 动作实际结果
1创建 app.py文件生成,包含两个路由
2创建 requirements.txt写入 flask、pytest
3执行 pip install终端输出安装成功
4创建 test_app.py包含两个测试用例
5执行 pytest2 passed
6启动 Flask服务运行在 5000 端口
7curl /health返回{"status":"ok"}
8curl /add返回{"result":5}

全部 8 条任务都标记为[x],没有出现“提前宣布完成”的情况。对比之前不用 TODO 列表时,模型经常在第 4 步就回复“全部完成”,实际上测试文件根本没写。

4.3 验证 TODO 列表的防幻觉效果

为了对比,我做了另一组测试:同样的需求,关闭 TODO 列表(enableTodoList: false),让 SOLO 直接执行。结果它在生成 app.py 和 requirements.txt 之后就回复“已完成所有功能”,但 test_app.py 不存在,服务也没启动。这就是典型的任务边界丢失。

开启 TODO 列表后,模型被迫在每一步检查“当前任务是否真的完成”,因为列表项是显式的,它不能跳过未勾选的项。这个机制本质上是用结构化输出约束了模型的生成路径。

4.4 检查模型返回的 choices 结构

如果你在排查问题时需要确认模型返回是否正常,可以在 Trae 的终端里手动发一条请求,观察返回的 JSON 结构:

curl -s https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoTokenKey" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "列出三个TODO项"}], "max_tokens": 200 }' | python3 -m json.tool

正常返回里应该有choices数组,每个元素包含message.content。如果choices为空或报reading choices错误,说明请求格式或模型 ID 有问题,下一节会详细排查。

5. 本篇常见报错排查:401、local proxy failed、reading choices、OAuth

这一节把配置过程中最容易遇到的四类报错逐一拆解,给出原因和修复步骤。每个报错都附上实际错误信息和可执行的修复命令。

5.1 401 Unauthorized

错误信息:

{ "error": { "message": "Invalid API key provided", "type": "invalid_request_error", "code": "401" } }

原因:Key 不正确、过期、或者复制时带了多余字符。

修复步骤:

第一步,确认 Key 没有多余空格或换行:

echo -n "sk-你的TaoTokenKey" | wc -c

记下字符数,然后到 TaoToken 控制台重新复制一次 Key,对比字符数是否一致。

第二步,确认请求头格式正确。Authorization 头必须是Bearer sk-xxx,Bearer 和 Key 之间有一个空格,Key 前面没有空格。

第三步,如果 Key 确认无误但仍然 401,检查是否在 TaoToken 控制台里禁用了该 Key,或者 Key 的额度已用完。到控制台查看 Key 状态和余额。

第四步,如果是在 Trae 里报 401,检查.trae/solo.json里的apiKey字段是否被 JSON 转义或截断。建议用cat .trae/solo.json | python3 -m json.tool验证 JSON 格式是否正确。

5.2 local proxy failed

错误信息:

Error: local proxy failed: connect ECONNREFUSED 127.0.0.1:7890

或者:

local proxy failed: timeout

原因:Trae 或系统代理设置指向了一个不可用的本地代理端口,导致请求发不出去。

修复步骤:

第一步,检查 Trae 的代理设置。在 Trae 设置里搜索 “proxy”,如果开启了手动代理,先关闭,改为“自动检测”或“不使用代理”。

第二步,检查系统环境变量:

env | grep -i proxy

如果输出里有HTTP_PROXY、HTTPS_PROXY、ALL_PROXY等变量,且指向127.0.0.1:xxxx,而那个端口没有服务在跑,就会报这个错。临时清除:

unset HTTP_PROXY HTTPS_PROXY ALL_PROXY

然后重启 Trae。

第三步,如果你确实需要通过代理访问网络,确保代理服务正在运行,并且端口号正确。但注意,TaoToken 的 API 地址https://taotoken.net/api在正常网络环境下可以直接访问,不需要额外代理。

第四步,如果是在终端里 curl 报这个错,检查~/.curlrc或环境变量里是否配置了代理。

5.3 reading choices 错误

错误信息:

Error: failed to parse response: reading choices: unexpected end of JSON input

或者:

reading choices: invalid character '<' looking for beginning of value

原因:模型返回的不是标准 JSON,可能是返回了 HTML 错误页、空响应、或者流式响应被截断。

修复步骤:

第一步,确认 Base URL 拼写正确。必须是https://taotoken.net/api,不要多加/v1或/chat,除非你的配置明确要求。有些工具会自动拼接/v1/chat/completions,有些需要你手动写全。在 Trae 里填 Base URL 时,如果它自动补全路径,就只填到/api。

第二步,确认模型 ID 是 TaoToken 支持的。如果你填了一个不存在的模型名,服务端可能返回 HTML 错误页而不是 JSON。到 TaoToken 文档页查看支持的模型列表:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

第三步,用 curl 手动发一条请求,看返回的原始内容:

curl -v https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoTokenKey" \ -d '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"hi"}],"max_tokens":10}'

如果返回内容以<开头,说明拿到的是 HTML,通常是 404 或 502 页面。检查 URL 路径和模型名。

第四步,如果是在 Trae SOLO 执行过程中报这个错,可能是流式响应中断。尝试在配置里关闭流式输出(如果有这个选项),或者降低maxTokens值。

5.4 OAuth 相关报错

错误信息:

Error: OAuth token expired or invalid

或者:

Error: unauthorized_client

原因:如果你在 Trae 里同时配置了官方账号登录和自定义模型通道,OAuth token 可能和 API Key 冲突。另外,Claude Code 的 OAuth 流程如果中断,也会留下无效 token。

修复步骤:

第一步,在 Trae 里退出官方账号登录,只保留自定义模型配置。SOLO 模式下的模型请求应该走.trae/solo.json里的配置,而不是官方 OAuth。

第二步,如果是在 Claude Code 里报 OAuth 错误,检查~/.claude/settings.json里是否同时存在apiKey和 OAuth 相关字段。如果有冲突,删除 OAuth 字段,只保留:

{ "apiBaseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "model": "claude-sonnet-4-20250514" }

第三步,清除 Claude Code 的缓存凭证:

rm -rf ~/.claude/credentials.json

然后重新启动 Claude Code,它会用 settings.json 里的 API Key 认证。

第四步,如果问题依旧,到 TaoToken 控制台确认 Key 的权限范围是否包含你调用的模型。有些 Key 可能被限制只能调用特定模型。

6. 把 TODO 列表用顺手:长期编码与 Agent 工作流的接入建议

TODO 列表模式跑通之后,真正提升效率的关键是把它嵌入日常开发流程。这一节给几个实际使用建议,以及长期编码场景下的配置优化。

6.1 用 TODO 列表管理多文件重构

当你需要重构一个涉及多个文件的模块时,直接在 SOLO 里描述重构目标,让它生成 TODO 列表。比如:

把 src/utils/ 下的所有工具函数改成 TypeScript,并更新所有引用这些函数的文件。

SOLO 会生成类似这样的列表:

[ ] 扫描 src/utils/ 下的 .js 文件 [ ] 逐个转换为 .ts 并添加类型注解 [ ] 搜索项目中所有 import 这些工具函数的文件 [ ] 更新 import 路径和类型引用 [ ] 运行 tsc 检查类型错误 [ ] 修复类型错误

这种多文件任务以前最容易出现“改了一半就说完成”,有了 TODO 列表后,每一步都有勾选状态,你可以清楚看到它到底改了几个文件、有没有漏掉引用。

6.2 与 Coding Plan 配合做长期项目

如果你用 Trae SOLO 做的是持续多天的项目,建议把模型调用统一走 TaoToken 的 Coding Plan。Coding Plan 的地址是:

https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

它的好处是额度更集中,适合高频调用场景。配置方式不变,还是 Base URL + Key + Model ID 三件套,只是在 TaoToken 控制台里选择 Coding Plan 的计费方式。

6.3 在 Cline 或 CC Switch 中复用同一套配置

如果你同时用 Cline(VS Code 插件)或 CC Switch 管理多个模型通道,可以把 TaoToken 的配置写进它们的配置文件。Cline 的 MCP 配置里,模型通道部分填入:

{ "mcpServers": {}, "model": { "provider": "openai", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "modelId": "claude-sonnet-4-20250514" } }

CC Switch 的配置类似,在它的 provider 列表里添加一个自定义 provider,Base URL 填https://taotoken.net/api,Key 填同一个。这样你在 Trae、Cline、Claude Code 之间切换时,模型通道完全一致,不需要重复配置。

6.4 控制 TODO 列表粒度的技巧

TODO 列表太粗会导致执行不彻底,太细会导致请求次数暴涨。实测下来,比较合适的粒度是每个任务项对应 1–3 个文件操作或 1 条终端命令。如果你发现 SOLO 拆得太细,可以在需求描述里加一句“任务列表控制在 10 项以内”。如果拆得太粗,加一句“每个任务项只做一件事”。

另外,maxTodoItems参数可以硬性限制条目数。设成 15 左右比较平衡,既不会太粗,也不会因为条目太多而消耗过多请求。

6.5 验证模型对话通道是否正常

如果你在配置过程中想快速确认某个模型是否可用,可以用 TaoToken 的模型对话页面直接测试:

https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

在页面里选择模型、输入测试消息,看是否能正常返回。这比在 IDE 里排查快得多,能快速区分是模型通道问题还是 IDE 配置问题。

6.6 接入文档与 API Key 管理

完整的接入文档在:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

API Key 管理页面在:

https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=trae_solo_todo

建议定期检查 Key 的使用量和余额,避免在 SOLO 执行长任务时因为额度耗尽而中断。如果发现某个 Key 调用异常,可以到控制台查看请求日志,定位是哪个模型、哪个时间段出的问题。

最后说一个实际经验:TODO 列表模式最大的价值不是“防止幻觉”本身,而是它把 AI 的执行过程变得可观测了。以前你只能看到最终结果,现在你能看到它每一步在做什么、做到哪了、哪一步卡住了。这种可观测性对于调试和信任建立非常重要。你可以在 SOLO 执行过程中随时暂停,检查已完成的文件,确认无误后再继续。这个节奏比一口气生成再回头检查要高效得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询