ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Trae Agent 参数调优指南:任务跑到一半就断,max_steps 和 temperature 该怎么设

Trae Agent 参数调优指南:任务跑到一半就断,max_steps 和 temperature 该怎么设

Trae Agent 参数调优指南:任务跑到一半就断,max_steps 和 temperature 该怎么设

【免费下载链接】trae-agentTrae Agent is an LLM-based agent for general purpose software engineering tasks.项目地址: https://gitcode.com/gh_mirrors/tr/trae-agent

任务跑到第 20 步突然报"超出最大步数"被掐掉,或者换个模型重写,改法却和上次一模一样——多数情况下不是模型不行,而是max_steps和temperature这两个参数没调对。本文只讲两件事:改成多少、在哪里改。

这两个参数到底在控制什么

先给结论:max_steps管"能走多远",temperature管"步子迈得多大胆"。

  • max_steps:Agent 在放弃任务前允许执行的最大步骤数,本质是一份执行预算。它是整数,默认值为 20,定义在 trae_agent/utils/legacy_config.py。预算用完且任务未成功时,执行循环直接标记失败(见 trae_agent/agent/base_agent.py):
if step_number > self._max_steps and not execution.success: execution.agent_state = AgentState.ERROR
  • temperature:控制模型输出的随机性,浮点数,取值范围通常是 0 到 2,默认 0.5(见 trae_agent/utils/config.py 中ModelConfig的temperature字段)。打个比方:它像调音台上的混音旋钮——拧得越低,模型越"照着标准答案念",稳定但保守;拧得越高,越愿意尝试非常规解法,灵活但容易跑偏。

两者的关系是:max_steps决定一次任务能探索多少轮,temperature决定每一轮探索的"新鲜度"。

先诊断,再动手

别凭感觉改数值,先看运行轨迹。Trae Agent 每次运行会生成轨迹文件(trajectories/trajectory_*.json),其中记录了max_steps和每一步的agent_steps(见 trae_agent/utils/trajectory_recorder.py)。对照下面的判读表:

  • 实际 5 步就完成了,却配了 20→ 预算富余,可把max_steps降到 10 左右,失败时更快止损。
  • 轨迹显示卡在第 19、20 步附近失败,结尾是"超出最大步数"→ 预算不够,按任务类型加大到 30–50,或先拆分任务。
  • 同一个任务连跑三次,改法几乎一样→temperature偏低,输出过于确定,可小幅上调试探。
  • 步骤没多、输出却反复跑偏或工具调用格式混乱→temperature偏高,先往回降到 0.3 左右再谈其他。
  • 拿不准当前生效值→ 跑一次trae-agent show-config,它会打印出实际加载的 Max Steps 与 Temperature,以它为准。

🔍 经验法则:先让任务用默认值跑一次并保留轨迹,再对着"实际用了多少步"调预算,比先拍脑袋改参数靠谱得多。

任务类型 → 参数组合速查

📋 一张表覆盖常见场景,区间可直接照抄:

任务类型max_stepstemperature注意事项
单点修改(改一处 bug、调一个文件)5–100.1–0.3预算给多了容易瞎逛,宁可小一点
批量处理(批量重构、写简单脚本)15–250.3–0.6默认值(20 / 0.5)本来就落在这个区间
多模块开发(跨模块改动、部署)30–500.6–0.9开轨迹文件盯着,发现绕圈及时中断
探索性任务(方案未定、架构设计)30–500.6–0.9同一提示词多跑几次,对比输出再定方案

为什么这么配:

  • 步数预算跟着"任务路径长度"走:路径越长的任务,中途需要纠错的轮次越多,预算不能省。
  • 温度跟着"答案唯一性"走:答案越唯一(修 bug、格式化),越要压低随机性;答案空间越大(选方案),越需要随机性来打开思路。
  • 两个参数有联动:预算拉大时如果温度也拉满,Agent 容易在新方向上反复试错、烧光步数。加预算的同时把温度控制在 0.6–0.9,而不是直接顶格。

改在哪里:三种配置方式与优先级

⚙️ 代码里实际生效的优先级是CLI > 环境变量 > 配置文件 > 默认值,由 trae_agent/utils/config.py 中的resolve_config_value统一解析。三种方式各有所长:

方式适用场景最小示例
CLI 参数临时测试、单次任务(目前仅暴露--max-steps)trae-agent run --max-steps 30 "为 utils 模块补单测"
环境变量服务器、容器部署,换整套配置export TRAE_CONFIG_FILE=prod_trae_config.yaml
配置文件团队共享、长期固定配置(temperature 在这里改)见下方 YAML

注意一个容易踩的点:CLI 目前没有--temperature开关,temperature 只能写在配置文件的models段里(参考仓库内的 trae_config.yaml.example):

agents: trae_agent: max_steps: 30 models: trae_agent_model: temperature: 0.3

改完配置用trae-agent show-config确认一次,能同时看到解析后的 Max Steps 和 Temperature。

常见坑与排障

  • 症状:任务总在"超出最大步数"处失败→ 原因:预算小于任务实际所需路径长度 → 处理:按速查表加到 30–50;若加了仍失败,优先拆任务而不是继续加步数。
  • 症状:加了--temperature 0.2报未知选项→ 原因:CLI 只接受--max-steps,没有温度开关 → 处理:在配置文件models段里改temperature。
  • 症状:改了配置文件,行为却像没变→ 原因:实际加载的是别的文件(默认读trae_config.yaml,可用--config-file或TRAE_CONFIG_FILE覆盖)→ 处理:trae-agent show-config核对生效值,再回查改的是不是同一份文件。
  • 症状:temperature 拉到 0 附近,输出千篇一律;拉高后胡话变多→ 原因:两端都离开了实用区间 → 处理:代码类任务回落到 0.1–0.3,探索类不超过 0.9,逐个 0.1–0.2 微调。
  • 症状:max_steps 拉大后,Agent 长时间打转不产出→ 原因:任务描述含糊或模型能力不足,多出的预算全花在原地打转 → 处理:把任务拆成可验收的小目标;必要时换更强的模型(-m指定)再试。
  • 症状:show-config 里 Temperature 是对的,输出风格却像变了→ 原因:换了模型或 provider,不同模型对同一温度的敏感度不同 → 处理:换模型后把温度当成新参数重新标定一次。

执行前自查清单

  • 用默认值(max_steps=20,temperature=0.5)跑过一次任务,并保留轨迹文件
  • 对照速查表,为当前任务类型选定了max_steps与temperature的落点
  • 用trae-agent show-config确认过两个参数的实际生效值
  • 本次只调整了一个参数(或明确知道两个参数在联动)
  • 给多步任务开启了--trajectory-file,方便下轮复盘

跑通之后,把你那类任务调出来的"最舒服数值"留言出来,方便后来人直接抄作业。

【免费下载链接】trae-agentTrae Agent is an LLM-based agent for general purpose software engineering tasks.项目地址: https://gitcode.com/gh_mirrors/tr/trae-agent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进