Agent后训练5步:SFT最稳,但也最容易让你误判
Hugging Face把Agent后训练拆成SFT、蒸馏、RL、RL环境、真实harness五步,每步配直播、代码和文档。回复里有个实验细节值得注意:多harness SFT在Mini-SWE-Agent上反而掉分更多。
Hugging Face 的 Sergio Paniego 把 Agent 后训练拆成 5 步,从 SFT 到 RL,再到真实 harness 和规模。每一步都配了流程图、直播、代码和文档。原文在 这里,适合先收藏再慢慢看。
先说背景。Post-training 指预训练之后的训练阶段,包括监督微调、蒸馏、强化学习。它把预训练模型变成能听指令、会用工具、能解决具体任务的模型。Agent 的特殊之处在于多轮:模型要调用工具、读结果、决定下一步。Agentic post-training 要训练整段交互,不能只盯单条回答。
这套课程按 5 步展开,顺序来自 Hugging Face YouTube 的 Training Agents 直播系列,示例任务是训练一个 coding agent。术语表在 Harness, Scaffold, and the AI Agent Terms Worth Getting Right,20 页总览在 Train the agent, not just the model。
| 步骤 | 模型从哪学 | TRL trainer | 需要准备 |
|---|---|---|---|
| 1. SFT | 更强模型产生的 agent traces | SFTTrainer | agent traces 数据集 |
| 2. 蒸馏 | 教师的 token 或概率 | DistillationTrainer | prompts 和教师模型 |
| 3. RL | 每个答案的分数 | GRPOTrainer | prompts 和奖励函数 |
| 4. RL 环境 | 在环境中行动的结果 | GRPOTrainer | 任务和环境 OpenEnv |
| 5. Harness 与规模 | 真实 agent 的完整运行 | AsyncGRPOTrainer | 任务、环境和 agent harness |
1. SFT:先学会抄轨迹
SFT 让模型复制 agent traces。trace 是 agent 解决任务过程的记录,包含每次工具调用和结果,通常由更强模型生成。它便宜、稳定。问题是模型只看到正确轨迹,看不到自己的错误尝试。它在解题时犯了错,也没学过怎么恢复。on-policy 蒸馏和 RL 会拿模型自己的输出训练,补上这一块。

直播:Training Agents 1: fine-tune a coding agent,代码在 gemma4-pi-mono-youtube-livestream-1-scripts。文档:SFT Trainer。
2. 蒸馏:教师逐 token 给信号
蒸馏里,教师模型监督学生。教师可以通过写数据来教,也可以对学生自己生成的 token 给概率。教师通常是大模型,或者多个专家模型蒸馏进一个学生,也可能是同一个模型加额外上下文做自蒸馏。信号很密,一个 token 一个值,所以比 RL 需要更少样本。代价是学生受教师知识限制,on-policy 蒸馏每一步训练都要跑教师。RL 用奖励替代教师,只检查结果。

直播:Training Agents 2: distillation。延伸阅读:A brief history of distillation in AI 和 Distillation in 2026 (so far)。文档:Distillation Trainer。
3. RL:用分数逼模型多试
RL 让模型从自己输出的分数里学。模型写答案,奖励函数打分,训练让高分答案更容易出现。这样不需要教师,只要能检查答案。课程用 GRPO,也就是 Group Relative Policy Optimization。每个 prompt 采样多个答案,全部打分,提高高于组平均分的答案概率。组内比较告诉模型哪些尝试更好,不用单独训一个模型估计基线。
RL 信号比蒸馏弱,一个答案一个分数,不是每个 token 都有值。模型需要很多次尝试。普通奖励函数下,每个答案是一轮,只打一次分。环境让模型行动多次,并看到每次行动的结果。

直播:Training Agents 3: reinforcement learning。阅读:How frontier models train on outcomes in 2026。项目:Fine-tuning a 350M model for structured outputs in 100 GRPO steps。文档:GRPO Trainer。
4. RL 环境:奖励来自多轮行动
环境有状态、暴露工具、能多轮回复。环境运行工具,记录状态变化,检查最终结果,比如跑 coding 任务的测试。每个 episode 比单条回答长,生成 rollout 会成为训练里最慢的部分。

直播:Training Agents 4: from reward functions to environments 和 RL for Agents Workshop。阅读:Why RL environments work now (and could not in 2016)。项目:Paint watercolours with code 和 Autonomous driving with CARLA。文档:TRL + OpenEnv 和 OpenEnv docs。
5. Harness 与规模:在真实运行环境里练
每次 rollout 都是完整 agent 运行,通过已有 agent harness 在远程沙盒里跑。训练用 agent 实际使用的同一个 harness,模型就在它将来要运行的环境里学习。生成和训练放不同 GPU,长 episode 不会让 trainer 空等。trainer 再把更新后的权重发回 vLLM。

幻灯片:Training a coding agent through a harness you did not write。阅读:The ultimate guide to multi-harness RL、One sandbox per rollout、Keep the Tokens Flowing: lessons from 16 open-source RL libraries。文档:Async GRPO Trainer 和 OpenEnv harnesses。
一个值得盯住的回复
原推下面,有网友 unify 提到一个实验观察:只在 OpenCode 上做 SFT 的模型,在 Mini-SWE-Agent 下掉了约 3 分;用多 harness SFT,而且训练数据里也包含 Mini-SWE-Agent 自己的轨迹,结果在这个环境下掉了 17 分。这个方向和直觉相反,说明 harness 匹配、数据分布和泛化之间的关系没那么直给。它是回复里的经验观察,不是课程结论,但足够提醒人:别把 SFT 在单一环境里的分数当成通用能力。
课程入口在 A curriculum for post-training agents,直播合集在 Post-training Agents playlist。如果要从头跑一遍,先看术语表,再按 SFT、蒸馏、RL、环境、harness 的顺序走。RL 不是起点,真实 harness 才是最容易暴露问题的地方。
发布时间: 2026-10-29 02:44