ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LLMs之Agent:《Trae Agent: An LLM-based Agent for Software Engineering with Test-time Scaling》翻译与解读——从论

LLMs之Agent:《Trae Agent: An LLM-based Agent for Software Engineering with Test-time Scaling》翻译与解读——从论 1. 从论文到本地Trae Agent 的 Test-time Scaling 到底解决了什么如果你最近在关注 LLM 做软件工程大概率刷到过 Trae Agent 这篇论文。它讲的事情其实很朴素让大模型修仓库级别的 bug单跑一次经常“这次对了下次错”同一个模型、同一个 issue跑十次可能成功六次失败的路径各不相同。论文把这个问题归结为两个瓶颈——集成空间太大、模型缺乏仓库级理解。于是它提出用 Agent 化的方式做 Test-time Scaling并行生成多个候选补丁剪枝去重再用选择器 Agent 做静态审查加动态验证最后多数投票。我读这篇论文时最直接的感受是它的工程价值不在“又一个 Agent 框架”而在于把推理阶段的算力换成了稳定性。函数级任务上 GPT-4o 能到 92.70%到了仓库级 SWE-bench 只剩 11.99%这个落差说明单次推理根本不够用。Trae Agent 在 SWE-bench Verified 上把 Pass1 拉到 75.20%比基线平均高 10.22%靠的就是“多生成、狠剪枝、稳选择”这套组合拳。但论文归论文真正落地时你会遇到一个很现实的问题这些 Agent 要反复调用 LLM生成阶段高温采样、选择阶段多次投票token 消耗是单次调用的好几倍。如果每个环节都去配不同的 Key、不同的 endpoint光是环境变量就能把人绕晕。所以这篇我会先讲清楚论文的机制再给出一套可复制的统一 Key/API 通道配置骨架让你在 Cline 或 CC Switch 里把 Trae Agent 的思路跑通。适合谁看正在做仓库级代码修复、想理解 Test-time Scaling 工程实现、或者单纯想把论文思路落到本地配置的开发者。你不需要先读完论文跟着配置走一遍再回头看论文会顺很多。2. 前置准备用 TaoToken 统一 Key 打通多模型调用Trae Agent 的生成、剪枝、选择三个阶段论文里用了 Gemini 2.5 Pro、Claude 3.7 Sonnet、GPT-4.1 三个模型做实验。实际工程中你未必三个都用但至少会涉及“生成用一个模型、选择用另一个模型”的分工。如果每个模型单独申请 Key、单独配 base_url配置文件会变得很难维护。我的做法是走一个统一的 API 通道把模型调用收敛到一处。TaoToken 提供的就是这种统一入口一个 Key 可以访问多个模型base_url 固定切换模型只改 model 字段。官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置时别把查询串带进去。你需要先拿到 Key。登录后进控制台在 API Keys 页面创建一个复制出来。这个 Key 后面会同时用在 Cline 和 CC Switch 里。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite API Keys 页面是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。注意Key 只显示一次创建后立刻保存到本地环境变量或密码管理器。不要写进会提交到 git 的配置文件里。模型选择上生成阶段建议用温度高一点的模型选择阶段用推理稳的模型。论文里生成用高温采样提高多样性选择用多数投票提高一致性这个分工在配置里体现为两个不同的 model 值。你可以在模型对话页面先试一下各模型的响应风格地址是 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。3. 可复制配置settings.json 与 config.toml 骨架这一节给两套配置。Cline 用 JSONCC Switch 用 TOML。两套都指向同一个 base_urlKey 从环境变量读避免硬编码。3.1 Cline 的 settings.jsonCline 是 VS Code 里的 Agent 插件配置放在用户目录下的 settings.json。核心是 apiProvider 选 openai-compatible然后填 base_url 和 model。下面是我实测能跑通的骨架{ cline.apiProvider: openai, cline.openAiBaseUrl: https://taotoken.net/api, cline.openAiApiKey: ${env:TAOTOKEN_API_KEY}, cline.openAiModelId: claude-3-7-sonnet, cline.temperature: 0.8, cline.maxTokens: 8192, cline.agentMode: act, cline.autoApproval: { readFiles: true, writeFiles: false, executeCommands: false } }几个关键点。base_url 结尾不要带斜杠带斜杠有些客户端会拼出双斜杠导致 404。apiKey 用${env:TAOTOKEN_API_KEY}引用环境变量这样配置文件可以安全地放进 dotfiles 仓库。temperature 设 0.8 是为了贴近论文里生成阶段的高温采样如果你只做单次修复可以降到 0.2。环境变量在 shell 里这样设export TAOTOKEN_API_KEYsk-你的keyWindows PowerShell 用$env:TAOTOKEN_API_KEYsk-你的key3.2 CC Switch 的 config.tomlCC Switch 是管理多个 Claude Code 配置的工具用 TOML。它的好处是可以在多个 profile 之间切换比如“生成 profile”和“选择 profile”用不同模型。配置骨架default_profile trae-generate [profiles.trae-generate] base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY model claude-3-7-sonnet temperature 0.8 max_tokens 8192 [profiles.trae-select] base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY model gpt-4.1 temperature 0.2 max_tokens 4096 [profiles.trae-select.voting] rounds 3 strategy majority这里我特意把生成和选择拆成两个 profile。生成 profile 温度 0.8选择 profile 温度 0.2对应论文里“生成要多样性、选择要一致性”的思路。voting 段是给选择阶段做多数投票用的rounds3 表示跑三次选择器取多数你可以按预算调整。提示CC Switch 的 api_key_env 字段读的是环境变量名不是 Key 本身。这样切换 profile 时不用改 Key。3.3 参数对照参数生成阶段建议选择阶段建议说明temperature0.7–1.00.1–0.3高温提多样性低温提一致性max_tokens81924096生成补丁需要更长输出rounds13–5选择阶段投票轮数model推理快的推理稳的按预算和任务难度选4. 验证请求确认通道打通再跑 Agent配置写完别急着跑完整 Agent先用最小请求验证通道。这一步能帮你把 90% 的配置错误挡在前面。4.1 curl 验证最直接的方式是用 curl 打一次 chat completionscurl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: claude-3-7-sonnet, messages: [{role: user, content: 回复 OK 两个字母}], max_tokens: 16 }成功的话你会看到类似这样的返回{ id: chatcmpl-xxx, object: chat.completion, choices: [ { index: 0, message: {role: assistant, content: OK}, finish_reason: stop } ], usage: {prompt_tokens: 12, completion_tokens: 2, total_tokens: 14} }看到 choices 里有内容、usage 有 token 计数说明 Key、base_url、model 三者都对上了。如果返回 401是 Key 问题返回 404是 base_url 拼错返回 model not found是 model 名写错。4.2 在 Cline 里验证打开 VS Code调出 Cline 面板输入一句“列出当前目录的文件”看它是否能正常调用工具。如果 Cline 报“API key not set”检查环境变量是否在当前 VS Code 进程里生效——VS Code 从 GUI 启动时可能读不到 shell 的 export需要重启 VS Code 或改用 settings.json 里的明文不推荐。4.3 在 CC Switch 里验证cc-switch use trae-generate cc-switch testtest 子命令会发一个探测请求返回 profile 名和模型响应时间。如果超时先确认网络能访问 base_url再确认 Key 没过期。5. 本篇常见错排查清单这一节是我踩过的坑和社区里高频出现的问题按报错现象归类。401 UnauthorizedKey 错了或没传。检查Authorization: Bearer后面有没有多余空格检查环境变量是否为空。在 shell 里echo $TAOTOKEN_API_KEY确认有值。404 Not Foundbase_url 拼错。正确是https://taotoken.net/api不要写成https://taotoken.net/api/或https://taotoken.net/v1。有些客户端会自动补/v1/chat/completions所以 base_url 到/api为止。model not found模型名不在可用列表里。不同通道支持的模型名可能不同去模型对话页面确认当前可用的模型标识别直接抄论文里的gemini-2.5-pro这种写法。429 Too Many Requests并发太高。Trae Agent 的生成阶段是并行发请求的如果你把并发开到 10 以上容易触发限流。把并发降到 3–5或者在生成 profile 里加退避重试。响应截断max_tokens 太小。生成补丁动辄几千 token8192 是底线。如果补丁被截断Agent 会拿到不完整的 diff后续剪枝和选择都会出错。Cline 读不到环境变量VS Code 从桌面图标启动时继承的是登录环境不是 shell 环境。解决办法是在 settings.json 里用${env:TAOTOKEN_API_KEY}的同时确保 VS Code 是从终端code .启动的或者重启系统让环境变量进入登录会话。CC Switch profile 不生效检查default_profile是否指向存在的 profileTOML 的段名拼写是否一致。cc-switch list可以列出所有 profile。注意如果报错信息里出现 SSL 相关字样先确认系统时间准确证书校验失败很多时候是时间偏差导致的。6. 把论文思路跑起来下一步怎么走配置通了之后你可以按论文的三阶段搭一个最小流水线。生成阶段用 trae-generate profile 并行跑 3–5 次把候选补丁存到临时目录剪枝阶段先做文本去重再跑一遍仓库原有测试筛掉破坏功能的补丁选择阶段用 trae-select profile 跑 3 轮投票取票数最高的补丁。这套流程不需要你完整复现 Trae Agent 的代码用脚本串起来就行。关键是理解每个阶段对模型参数的要求不同生成要高温、选择要低温、投票要多轮。统一 Key 通道的价值在这里体现得最明显——你只需要维护一个 Key切换模型和参数都在配置层完成。如果你要长期跑这类 Agent 任务建议看一下 Coding Plan它更适合高频、长周期的编码场景地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各客户端的详细配置说明。Claude Code 相关的接入参考 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-codeutm_campaignrewrite 。最后说一个我自己的习惯每次改完配置先跑 curl 验证再跑客户端验证最后才跑 Agent 任务。这三步顺序别省能帮你把问题定位在配置层而不是 Agent 逻辑层。论文里的 Test-time Scaling 是拿算力换稳定性工程上的稳定性则是拿验证步骤换调试时间道理是一样的。
返回列表