Agent 训练优化的是条件策略:模型根据任务、当前环境、历史动作、工具观察和预算决定下一步。它与普通问答训练的差别不只在输出里多了一段 JSON。一个动作会改变环境,新的环境又决定后续状态;错误可以累积,正确步骤也可能因提交、权限或验证语义不一致而失效。训练数据、优化目标和部署 Runtime 必须共享同一套动作边界。
监督微调与强化学习解决不同问题。监督轨迹提供稳定的格式、工具选择和恢复范式,强化学习让策略在自己诱导的状态分布中探索,以环境回报区分多种可行路径。两者都依赖可靠 verifier、可重置环境和完整轨迹元数据。缺少这些基础,算法会优化日志偏差或模拟器漏洞。
1. 训练对象
1.1. 从token到环境动作
语言模型输出 token,Runtime 解析出回复、工具调用、审批请求和停止决定。训练 loss 只覆盖模型生成的部分,用户输入、工具 observation、状态通知和 padding 需要 mask。若把环境文本也当成模型标签,策略会被要求预测不可控结果,并把奖励错误归因给 observation。
工具调用又是一个结构化动作。工具名、参数、资源版本和幂等键共同决定效果。只评估 JSON 语法会遗漏路径越界、日期反转和重复提交;只评估终局又会接受危险捷径。训练记录同时保存结构、执行结果和环境终局。
动作粒度影响信用分配。token 级目标能够更新具体参数,step 级奖励对应一次工具调用,轨迹级奖励对应任务完成。三种粒度可以共存,但必须保持因果顺序和边界一致。
1.2. Harness属于策略
模型不会脱离 Harness 独立行动。工具描述、chat template、观察截断、错误结构、重试、上下文压缩和最大步数都改变它看到的状态。训练与部署若采用不同工具 schema 或停止 token,离线学到的动作无法直接执行。
Harness 还决定可探索空间。权限拒绝、网络白名单和提交边界由环境强制,模型只在合法范围内优化。把安全全部写成负奖励,会允许训练早期用真实副作用试错,也无法保证部署时永不越权。
模型升级与 Harness 升级需要分别消融。固定环境比较模型,固定模型比较工具描述与 Runtime,才能判断成功率来自策略学习还是系统替它完成了更多工作。
2. 监督轨迹
2.1. 数据构造
工具监督微调把任务、动作、观察和终局组织成可执行轨迹。真实日志接近部署分布,却可能包含人工修正、历史接口和隐私;合成数据容易覆盖新工具与罕见故障,却会复制教师偏差。两类数据都要在隔离环境重放并验证终局。
成功轨迹未必是好示范。它可能重复搜索、依赖偶然缓存、绕过权限或由用户在轨迹外完成。筛选同时检查完成谓词、逐步合法性、成本、动作版本和不可逆效果。失败轨迹保留错误 observation 与正确恢复动作,用来训练权限拒绝、超时和未知提交等分支。
去重依据任务、动作图、参数结构和环境终局;纯文本相似度无法识别相同决策骨架。近似模板的大量样本会让模型记住工具 token,却没有学会契约。用于边界对照的样本即使文本相似也需保留,例如同一路径在不同工作区权限下应产生不同动作。
2.2. 离线分布偏移
行为克隆在示范者访问的状态上学习,部署策略却会进入自己早期动作创造的新状态。一次错误查询导致陌生 observation,后续误差继续累积。恢复示范、在线失败收集和数据聚合可以扩大支持,但每轮数据要标记生成策略与环境版本。
离线回放无法评估未执行动作会得到什么结果。重要性加权要求行为策略概率已知且与当前策略支持重叠,长轨迹的权重乘积还会高方差。新工具、新网站或新权限状态最终需要沙箱在线采样或可信模拟器。
评测集按任务来源、项目、模板族和时间隔离,避免相邻 Issue 或同一生成模板跨集。未见工具评测通过改名、字段重排和描述改写,判断模型理解契约还是背诵固定词形。
3. 环境强化学习
3.1. 策略梯度与基线
Agentic强化学习从策略梯度出发:提高高优势动作的概率,降低低优势动作的概率。优势是动作回报相对状态基线的差值。基线不改变期望梯度,却决定方差、信用粒度和额外计算。
PPO 用旧策略与当前策略的概率比率做更新,并裁剪过大的变化;critic 估计状态价值,GAE 用折扣 TD 残差在偏差和方差之间折中。GRPO 则对同一 prompt 采样一组响应,以组内相对奖励构造基线,省去独立 critic。
两者没有脱离场景的绝对胜负。规则同题多采样、奖励可比时,组相对基线简单有效;轨迹被 compaction 切成数量与长度不规则的子段时,状态价值能沿真实时序提供更细信用。训练选择取决于采样结构、奖励密度、环境成本与内存预算。
3.2. 长程与稀疏奖励
长程任务把最终结果推迟到许多工具步之后。把同一终局奖励复制给全部 token,能够强化成功轨迹,却很难指出哪次搜索、修改或验证决定了结果。step verifier、过程奖励和价值函数提供局部信号,也可能诱导模型刷取与终局无关的分数。
上下文压缩进一步改变状态。摘要必须保留未完成目标、已提交效果、资源版本和关键 observation。人为切段不等于环境终止,优势计算需要从后续状态 bootstrap。把每段独立评分会切断跨段信用。
稀疏奖励实验同时看任务成功、首错位置、优势随轨迹位置的分布和价值校准。只看平均 reward 会掩盖模型靠更长轨迹、更多调用或高风险动作换来的表面提升。
4. 系统与计算
4.1. rollout基础设施
训练环境要可重置、可并行、可版本化,并限制真实副作用。代码任务使用隔离仓库和测试,浏览器任务使用快照或模拟服务,数据库任务在独立实例执行。无法重置的外部 API 不适合作为大规模探索环境。
每条 rollout 保存策略 checkpoint、采样参数、工具版本、环境种子、旧 log probability、奖励分解和 loss mask。推理引擎权重同步滞后会使数据离策略,队列越长越严重。样本陈旧度、实际 KL 和训练—推理 logprob 差异属于基础监控。
失败也要形成确定终局。环境超时、验证器异常与策略任务失败分开记录;基础设施故障不能当成负奖励训练模型。只有可归因于策略的结果进入优势估计。
4.2. 成本与稳定性
GRPO 的主要额外成本来自同 prompt 多次 rollout,PPO 的额外成本来自 critic 参数、前向、优化器状态和通信。Agent 环境调用可能远贵于 token 生成,资源比较需同时报告 GPU、rollout token、工具调用与环境占用。
长短轨迹混合时,逐样本平均与逐 token 平均代表不同权重。前者让每条轨迹权重相同,后者让每个有效 token 权重相同。数据采样先平衡任务族,loss 再明确归一口径,能够避免切段数量偶然改变样本影响。
稳定性诊断包含 KL、熵、clip fraction、优势尺度、价值误差、梯度范数和分任务回报。训练 loss 正常不代表策略正常;环境成功率下降、动作数上升或安全拒绝增加都可能先于数值发散出现。
5. 联合闭环
5.1. 从SFT到RL
SFT 建立工具格式、常见策略和安全恢复的初始分布,使 RL 不必从随机调用开始探索。初始策略若几乎无法完成任务,稀疏奖励批次全为零,组相对方法与 critic 都缺少有效信号。课程从短任务、密集 verifier 和有限工具集开始,再增加长度与开放性。
RL 发现的成功轨迹可以回到监督池,但要重放、过滤和去重。直接把当前策略全部成功样本做 SFT 会收缩多样性、固化奖励漏洞。高质量轨迹、失败恢复和边界反例按数据版本进入下一轮。
模型训练也会暴露 Harness 缺陷:错误码含混、工具契约不完整、验证器可被修改或状态无法重置。这些问题应在环境层修复,不能用更多梯度让模型适应错误系统。
5.2. 验收与消融
最终评测覆盖单步动作、参数语义、多步完成、恢复、安全、成本和未见环境。结果按任务长度、工具族、错误类型和权限等级拆分。平均成功率相同的模型,可能在首错、重复调用和不可逆效果上差异很大。
消融分别移除恢复 SFT、过程奖励、critic、组标准化、compaction、token 级归一与安全硬约束。每次只改变一个关键变量,并固定有效训练 token 与环境预算。否则算法收益会与采样投入、上下文长度或工具并发混在一起。
上线采用影子运行、低风险能力和逐级扩大范围。部署分布与训练分布持续比较,发现新错误状态后进入验证过的数据闭环。某条 loss 曲线收敛只说明优化器完成了局部目标;真正的完成标准是模型与 Runtime 在真实约束下稳定提高完成率,同时守住权限、成本和副作用边界。