我会先问一个容易被忽略的问题:这个 Agent 是否真的需要训练。很多工具调用任务先用能力合适的基座模型、清晰的工具 schema、少量示例和受控状态机就能完成。只有端到端评测显示模型在工具选择、参数生成或多步策略上持续失败,而且提示词和工作流修正后仍达不到指标,我才进入训练。
第一步是定义环境。观测包括用户请求、允许暴露的会话状态和工具返回;动作只能是白名单工具及其 schema;终止条件要有成功、用户确认、步数和成本上限、超时与不可恢复错误。工具返回是不可信输入,不能把其中的文字提升为系统指令。金额、数据范围和写操作权限必须由服务端校验,高风险动作还要幂等和人工确认,不能只靠模型学会守规矩。
第二步是数据。我要收集成功和失败轨迹,包括参数缺失、工具拒绝、超时、重复调用、取消和越权尝试,并先做隐私处理。合成轨迹要通过执行验证或人工抽检,不能把教师模型输出直接当真值。训练集和评测集按用户、模板或任务族切分,同时记录工具 schema 版本和环境快照,避免同一提示的改写泄漏,也避免工具升级后继续拿旧轨迹当正确答案。
第三步先跑无需训练的基线。用 prompt、结构化输出和状态机完成端到端任务,记录真实任务成功率、工具和参数准确率、无效或重复调用、错误副作用、延迟、成本与人工接管率。错误分类如果指向 schema 或工具接口,就先修系统;如果确实是模型行为瓶颈,再选训练方法。
有高质量目标轨迹时可以先做 SFT,让模型学格式、工具选择和参数生成。DPO使用同一输入下的 chosen 和 rejected 偏好对,不需要独立奖励模型,也不做在线 rollout,适合可由成对偏好表达的行为。PPO通常让当前或近当前策略在线采样,用标量奖励和价值函数估计优势;奖励可以来自规则、环境或奖励模型,所以 PPO 不要求一定另训奖励模型,也不保证天然比 DPO 稳定。如果同一任务能采样多条回答并可靠打分,还可以比较省去 learned critic 的 GRPO。这里没有固定的先 DPO 再 PPO,关键是反馈形式、是否需要探索、rollout 成本和奖励是否可信。
奖励优先绑定可执行结果,例如工具是否真实成功、参数是否通过校验、最终状态是否满足任务。格式、步数和延迟可以辅助,但要检查模型会不会通过少调用、输出某个字符串或提前结束来刷分。过程奖励只有中间步骤能可靠判定时才加,权重来自消融和失败切片,不是通用的高、中、低配方。
评测时我会在隔离沙箱回放正常、工具失败、超时、恶意工具返回、重复提交和需要确认的写操作,检查真实副作用,不只看模型文本。上线先影子流量或小比例灰度,监控任务成功率、错误副作用率、P95和P99延迟、token与工具成本、人工接管,并保留版本和回滚点。
最后把失败分成模型选择、参数生成、工具或权限、环境变化、状态机和评测缺口,再决定改 schema、工作流、数据、SFT还是策略优化。工具文档频繁变化时优先更新运行时 schema、检索资料和回归集,不把持续预训练当作同步文档的默认手段。完整链路的重点是训练、权限、执行和评测形成一个可验证闭环。