Agent 数据飞轮:任务、失败与经验复用
让下一批数据回答上一轮训练暴露的问题。
构建带证据边界的任务生成、难度估计、失败聚类、课程与回放闭环。
读完这一章,你应该能够
- 定义可审计的任务生成与筛选流水线
- 区分高价值失败和基础设施噪声
- 设计不污染评测的迭代闭环
本章目录 · 0 个小节
更多轨迹为什么可能更差
重复生成容易任务会使数据量迅速增长,但有效学习信号趋近零;集中挖难题又可能得到全失败组。模型会改变可解题集合,因此“高质量任务”不是永久标签,而是相对于当前策略、环境与验证器的关系。
课程分析:数据飞轮的可操作定义是:观察失败 → 形成可验证任务假设 → 生成或选择任务 → 获得新轨迹 → 更新策略 → 在独立分布上检验假设。若没有最后一步,闭环可能只是在强化同一套 grader 的偏差。
Kimi K2 技术报告公开了大规模 Agentic 数据合成及真实、合成环境参与后训练的路线,支持把任务、工具与轨迹生成视为后训练的重要组成部分。本站把它作为有公开报告的范式案例,不把报告中未公开的生产实现补写成事实,也不声称它是查阅日最新一代模型。报告证据
从代表性转折到当前数据工程重点
截至 2026-09-22 本站核验的 DeepSeek-V4.1-Flash 官方卡把 Agent 任务与环境的自动化合成、数据/任务/rollout 规模扩展列为后训练主要变化,同时说明使用 SFT → RL → OPD 的既有算法路线。最新案例证据
课程分析:这支持一个可迁移判断:看新模型时不能只搜索新 loss 名称,还要追问任务可执行性、环境覆盖、验证信号和学生实际访问的状态。模型卡没有给出完整任务生成器和生产调度代码,因此下面的 manifest 与失败聚类方案是本站设计,不应标成 DeepSeek 官方实现。
任务是可执行资产,不只是一段 prompt
一个任务 manifest 应包含目标、环境初始状态、允许工具、完成条件、grader、资源预算、来源、拆分标签与版本。为软件任务还应记录仓库 commit 和依赖镜像。只存自然语言描述无法区分“同题不同环境”与真正新任务。
任务提出:公开问题、失败变体、合成需求
可执行筛选:初始化、工具可达、目标可验证
难度探测:固定策略、固定预算、小规模 rollout
课程采样:难度、领域、回放与覆盖配额
执行与验证:保留成功、失败和基础设施状态
失败聚类:能力、协议、上下文、环境、grader
数据转换:SFT 示范、偏好对、RL 轨迹
策略更新与独立评测
将新失败转为下一轮可检验假设
任务生成器也会产出无解题、目标含糊、重复模板和环境不一致。先验过滤加少量求解探测有助于筛掉这些问题,但“某个教师没解出”不证明题目无解,“教师解出”也不证明 grader 没有漏洞。
难度估计需要分母和不确定性
对任务 做 次尝试、成功 次,朴素成功率是 。少量采样下,零成功可能只是运气;可以用 Beta–Binomial 模型表达不确定性:
课程分析:这是课程推荐的统计工具,不是断言某团队使用该配置。按后验区间而不是点估计分桶,能避免把采样不足的任务错误归类。难度还应按动作预算、模型版本和 Harness 固定条件报告。
课程目标不必是追求最高 reward variance。某些低方差任务用于保持格式或旧能力;某些高方差任务来自环境不稳定,没有训练价值。应将预期学习收益、执行成本、领域覆盖和遗忘风险共同纳入采样策略,并在固定集验证。
失败聚类:先分系统,再分能力
| 失败簇 | 可观察证据 | 下一轮可执行动作 |
|---|---|---|
| 工具协议错误 | schema/解析失败、无效参数 | 补协议示范,检查模板一致性 |
| 定位失败 | 未访问相关文件或资料 | 构造检索/导航子任务 |
| 推理或实现失败 | 找对位置但执行结果不满足目标 | 提升验证数据与推理探索 |
| 上下文丢失 | 摘要后遗忘关键观察 | 复核压缩器与长上下文能力 |
| 基础设施失败 | 镜像、网络、进程超时 | 修环境,单独统计,不混作能力 |
| grader 错误 | 人工复核或独立检查不同意 | 修评分器并重算历史轨迹 |
聚类可从结构化错误码开始,再用文本 embedding 或模型摘要辅助。自动标签本身需要抽样审计。一个“搜索失败”的轨迹可能实际上因为工具没联网;只根据最终自然语言总结聚类,会把系统故障误当作模型缺陷。
经验复用有三种不同语义
成功轨迹做 SFT,优化的是示范似然;将同任务好坏轨迹组成偏好对,优化的是相对排序;把旧轨迹直接用于 RL,则涉及行为策略和当前策略的分布差异。三者不能统称“把经验放进 replay buffer”。
课程分析:SFT 回放通常需要来源、可验证性和任务拆分;偏好回放需要可比条件;RL 回放还需要旧 log-prob、policy 版本、动作 mask 与终止语义,并说明重要性权重或偏差控制。没有这些元数据的历史聊天记录,不应自动成为可用的 on-policy 轨迹。
异步队列本身也会改变样本分布。verl V1 文档记录按组处理 stale/failed 轨迹的策略,说明一个候选异常可能影响整组数据能否被训练。课程采样因此要同时统计“派发了什么”和“最终接收了什么”。系统证据
源码导读:给飞轮补齐接口证据
没有单个开源函数等同于完整数据飞轮。本站将公开模块组合成课程架构分析,不把组合图说成某一家模型的真实生产拓扑。
从 verl 固定版本 8e03c039f9a70750490c93196b759b332fc029fd 的 verl/experimental/agent_loop/agent_loop.py::AgentLoopOutput 审计返回数据,再看 AgentLoopManager.generate_sequences 如何收集输出。轨迹接口 对照 SWE-bench 固定版本 02e7a74ffd0b707aab73d203fe87bdc7c76afc8e 的 swebench/harness/grading.py::get_eval_report,确定哪些评分证据必须保留。执行评分
将两者映射成数据契约时,需要自行增加任务来源、split、去重指纹、教师版本和筛选原因;这些是本站建议,不是声称两个上游项目原生拥有完全相同 schema。Agent Lightning 提供执行与训练解耦的另一种研究路线,可进一步比较如何记录 transition 与训练适配。论文接口方向
隔离评测反馈,避免飞轮自我欺骗
课程分析:训练集用于优化,开发集用于调参,最终 holdout 用于阶段验收。若每次查看 holdout 失败并生成同题变体再训练,holdout 就逐渐成为开发集。对外报告应保留未参与任务生成、提示修改和 grader 调参的评测分布。
污染不仅是文本复制,还包括同仓库近邻 issue、答案派生变体、同模板参数替换和教师背诵 benchmark。精确 hash、归一化匹配与近重复检测各覆盖一部分,不能以“精确重复为零”宣称无污染。工程上要追踪任务谱系并做时间、仓库或主题级拆分。
实验:从失败记录到一个新课程
python3 -m labs.run --experiment agent --seed 7
python3 -m labs.run --experiment evaluation --seed 7
第一个实验中训练操作数与保留评测操作数分开;它测试简化工具策略的泛化,不等于大模型跨领域泛化。第二个实验提供按任务评估与简单污染检查。预期可以看到策略改进及评测统计,但不要把单次随机种子当作稳定结论。
工程任务:将一轮失败分成三簇,为每簇提出一个可证伪解释与一个数据改动。保留一个固定预算、均匀任务采样的控制组。比较改动前后的任务成功率、每成功样本成本、旧能力回归和各簇占比。若任务变简单或 timeout 被删除,应在报告中单列,不能算成模型提升。
哪些已经证实,哪些仍是研究方向
公开报告支持 Agentic 合成数据与环境反馈的重要性;公开框架支持多轮轨迹接口与异步训练机制;本站的预算分配、失败簇课程与完整数据契约是综合工程设计。自动无限生成高质量环境、完全可靠的模型 grader、跨长期任务的通用经验复用,仍不能从这些资料推出已被普遍解决。把未知留下来,本身就是研究能力的一部分。
把这一章放进实验里
调整变量,观察机制,再运行本地 Python 实验验证。
本章证据与源码
引用代表相应来源支持的结论,不意味着公开了完整训练配方。
论文实验Kimi K2: Open Agentic IntelligenceMoonshot AI · arXiv:2507.2源码观察verl:多轮 Agent rollout 的标准化接口volcengine · 8e03c039f9a7源码观察verl V1 Async Trainerverl-project · 8e03c039f9a7源码观察SWE-bench:测试结果分组与修复判定SWE-bench · 02e7a74ffd0b官方事实Agent Lightning:训练和 Agent 执行解耦microsoft · ff9457587fb6官方事实DeepSeek-V4.1-Flash:官方模型卡deepseek-ai · dba1be0a40aa留下你的工程判断
记录一个还没有解释清楚的现象,或下一次实验要控制的变量。笔记仅保存在当前浏览器。
自动保存在本机 · 可在“我的学习笔记”导出