跨 harness 对比:轨迹利用(session/trajectory 是否反哺训练/评测)

这一维度问的是同一个问题:agent 跑完一轮留下的会话轨迹(消息 + 工具调用 + 结果 + reasoning + token/成本),除了让用户续聊,还被拿去干什么。61 个 harness 的答案摊开来,构成一条从”喂梯度”到”只留在本地磁盘”的深度阶梯。

设计谱系:五层复用深度

把轨迹的去向按”离模型权重的远近”排序,得到五档,越靠上闭环越深、越稀有:

  1. 轨迹 → 模型权重训练(最深、最稀有)。轨迹被转成 SFT/DPO/RL 训练样本真的去更新参数。又分两支:
  2. 轨迹 → 离线评测 / benchmark 打分(反哺 eval,不反哺权重):SWE-agentTraeDeepAgentsGoogle ADK 等一大批 SWE-bench/terminal-bench 系。
  3. 轨迹 → record/replay 契约回归测试DeerFlowUI-TARSbrowser-use
  4. 轨迹 → 记忆 / 自进化(in-context,改上下文不改权重):KiroOpen InterpreterCodex CLIAgent Zero 等。
  5. 仅持久化 / 续跑 / 分享(不反哺任何下游):AiderRoo CodeLangGraphSemantic Kernel 等大多数客户端工具。

一个关键区分贯穿全篇:“反哺权重” vs “反哺上下文/记忆”。绝大多数号称”从会话中学习”的 harness 其实停在第 4 层——把轨迹蒸成 MEMORY.md 或向量记忆供后续 in-context 召回,官方(如 AutoCLAW 博客”进化不是能力提升,是经验积累”)会主动划清界限。真正把 harness 接进 RL/SFT 训练环的只有极少数。

对比表

Harness反哺训练(权重)反哺评测/benchmark其他轨迹复用关键机制 / 证据
Hermes-Agent一等公民间接压缩后处理save_trajectory 成功/失败双写 ShareGPT JSONL;trajectory_compressor 训练数据压缩;README 指名 Atropos RL
CAMEL框架一等目标benchmarks/workflow memoryShareGPT/Alpaca collector 直产 SFT;RL 环境+verifier+reward model 构成”轨迹→reward→训练”闭环
Lettatoken-id 级 RLevals + step feedbacklogprobs/TurnTokenData/return_token_idsSGLangNativeAdapter 产 token 级轨迹供 loss masking(多轮 RL)
OpenHandscritic 模型SWE-bench/GAIA CIopenhands-critic-4b 用真实生产轨迹训练;segment 切分 + 24 维 Critic Rubric 标注;AUC 实证
Claude-Flowadapter/LoRA(非 base)frozen-eval/replay在线 Q-learningweight-eft.ts 把 transcript 转 SFT+DPO JSONL + GPU 训练 plan(默认 dry-run)
Replit Agent披露(Backer 管线)ViBench 生产轨迹播种Telescope 聚类timeline 数据训练 Code Repair 模型;仅公开 Repl + 匿名化;3 亿仓库/日 7000 万文件
Cursorembedding 模型(非主模型)reward-hacking auditor搜索轨迹→LLM 重排→拟合训练 semsearch embedding(+12.5%);用户会话→RLHF 未证实
Goosetoolshim 辅助模型harbor/terminal-bench-2跨 harness 导入历史会话工具调用轨迹→微调 toolshim 解释器(离线 R&D,非常驻循环)
browser-use推断(闭源云侧)judge + ground_truthrerun 回归CloudSync 上传每步 model output+截图,配自研 bu-2-0,强烈暗示服务端微调浏览器模型
Zed编辑预测 opt-in光标片段/编辑 diff→zed-industries/zeta HF 数据集微调 Zeta;chat 线程默认不收集
Devin政策层”may use”Security Swarm CVE 集Playbook/SKILL 派生默认可训练、付费可退、企业合同保证不训练;技术管线未披露
v0政策层(AutoFix RFT)用户反馈筛 eval 集用户反馈→eval→vercel-autofixer-01 RFT;企业可退出暗示非企业默认可训练;两份文档口径矛盾
Amazon Qopt-out 默认分享SWE-bench 5 版提交X-Amzn-CodeWhisperer-OptOutunwrap_or(true) 默认开);trajectory 托管私有 S3
SWE-agent仓库外(SWE-smith/-LM)swe_bench_evaluate hook轨迹→demonstrationrun_traj_to_demo 转 few-shot;SWE-agent-LM-32b 旁证上游训练
Trae否(有独立离线规划)SWE-bench/Multi-SWE-bench 打分调试/研究分析evaluation/ 收集 patch+trajectory 喂打分;Wandb/MLflow 集成标为 future
Google ADKTrajectoryEvaluator(tool-use accuracy)轨迹→GEPA 改 prompt对比实际 vs 期望工具调用序列;多种 evaluator;“轨迹→评测→自动改 prompt”闭环
DeepAgents完整 trajectory 打分→LangSmith会话内 read_file接 Harbor/Terminal-Bench 2.0 第三方 harness;每次 CI 发布
UI-TARS否(样本天然可导出,不在本仓)agent-snapshot 回归record/replay快照录制 LLM 请求/响应+event stream;ComputerUseUserData 含 screenshot+prediction 天然训练样本
Augment否(未披露)Prism(历史 PR→合成对话)会话可分享上传LLM-judge 打分 [-1,1] 决定上线;用历史 PR 而非用户轨迹
Anthropic 多 agent否(未确认)LLM-as-judge 方法论人读 transcript 迭代0.0-1.0 打分 + pass/fail;数百输出扩展;用于 prompt/工具迭代
Kiro供应商侧(前沿模型)CORAL 轨迹→产品改动每天抽样数千生产会话→LLM 分析→经验知识库→改工具描述/系统提示(“无需重训”)
Pydantic-AIpydantic_evals 离线回归durable 续跑类型化 message history + vcrpy 录制回放;评测→改 agent 仍人工
Agnoeval/ 离线跑历史 runlearning stores/memory全量持久化 + continue_run 断点续跑
GPT-Researcherevals/(SimpleQA/幻觉)回放/成本核算独立离线评测,不闭环回运行时
smolagentsexamples/ 纯评测(包外)memory 转储可外接get_full_steps() 交给外部 OTel/MLflow
AutoGen否(grep 零命中)agbench 离线 runnertask-centric memory全新 Docker “blank slate” 反复跑固定集
DeerFlowReplayChatModel golden 契约测试memory 蒸偏好/纠错录一次真实 run 回放断言 SSE 序列 == golden
OpenAI Agents SDK离线(外部建议性)learning-memory 蒸馏Rollout JSONL 是 memory 底料,非 RL/SFT;AdvancedSQLiteSession 用量分析
Codex CLI否(明确”never uploads”)trace-replay 调试Memories Phase 1 本地记忆rollout 本地 resume/fork;分析事件仅上报用量事实非原始轨迹
Open InterpreterPhase 1 rollout→MEMORY.md跨会话长期记忆;external-agent-sessions 导入他 agent
Agent Zeromonologue_end→FAISS分支/时间旅行/导出;轨迹→向量记忆是唯一”反哺”
MiMo Code否(未发现)人类双盲 A/B(576 开发者)dream/distill 消费 session DB同一 SQLite DB 供 checkpoint/记忆/技能自改进
CrewAIcrew.train() 读回 promptfew-shot 引导;Flow @persist 崩溃恢复;checkpoint 重放
MetaGPT否(ext/ 研究项目待跟进)经验池推理时回放Team.serialize() 可导出但无训练路径
Kilo Code否(grep 无闭环)kilo-memory digest云同步分享 + 跨设备续用 + PostHog 遥测
Gemini CLI否(FAQ 明确否认付费层)Google 内部 CI(非客户轨迹)Auto Memory 本地会话→记忆/技能候选,人工把关
Warpagent_mode_evals 群组(暗示)transcript 重放续跑ClaudeTranscriptEnvelope 上传恢复;Agent Memory 写入
Ampopt-in 且 Enterprise 阻断否(未披露)线程检索/协作基质read_thread/@提及//feed 查询;dogfooding 手动调 prompt
Factory否(真实会话从不作训练行)聚合类先验校准 eval 配比Analytics 回客户仪表盘Droid Shield:轨迹衍生统计量内容;Readiness Reports 纵向门控
Claude Code推测(ant-only 特权列)内部事件日志→安全分类器/share transcript 上报_PROTO_* 特权 BigQuery 列;auto-mode overeager n=52 标注集(博客)
Comate明确否认聚合非代码遥测(产品分析)多份官方文档重复”不用您的数据训练”;服务端只收混淆片段 embedding
Copilot Agent否(未披露)SWE-bench/SkillsBench/Win-HillCopilot Memory 28 天过期离线基准迭代 harness + 线上 A/B(产品实验非训练)
Junie否(未披露)SWE-Rebench(第三方)本地模型模式”prompts never shared”
CodeGeeX补全曾 opt-in(历史)RAG 索引”不用于训练”;agent 工具轨迹利用未确定
Qoder否(未披露)Dreams 读会话→用户记忆Session Event Stream 理论可用,无声明
AgentScope运行时恢复 + OTel 回放AgentState + redis 落盘(QwenPaw 底座,见下)
QwenPawMission verifier(运行内即弃)ReMe 记忆抽取(净化后)history.db recall 底基;audit.db 记决策元数据

(纯粹”只持久化/续跑、无任何下游”的 AiderRoo CodeopencodeLangGraphSemantic KernelGPT-PilotPlandexContinueClineAutoGPTKimi CodeQwen CodeAutoCLAW 未单列,见下文分组。)

分组讨论

第 1 档:harness 即训练数据工厂(源码可见的闭环)

这一小群是全场唯一把”轨迹→权重”写进开源代码、可逐行核对的。

  • Hermes-Agent 是最纯粹的样本——它几乎不像”coding agent”,更像 Nous Research 的合成数据生产线:save_trajectory() 把成功/失败两类结果都以 ShareGPT 格式落 trajectory_samples.jsonl/failed_trajectories.jsonlconvert_scratchpad_to_think() 主动把 <REASONING_SCRATCHPAD> 归一化成训练友好的 <think> 标签,trajectory_compressor.py(69KB)是专门为训练数据准备做的压缩管线(保首末轮、压中段)。官方文案直言”trajectory compression for training the next generation of tool-calling models”,RL 侧外包给独立的 Atropos 仓库。它是”轨迹反哺训练”这条谱系的定义样本。
  • CAMEL 走的是学术路线但同样彻底:data_collectors/ShareGPTDataCollector/AlpacaCollector 把 role-playing/workforce 多 agent 对话直接转 SFT 格式,datagen/ 有 STaR/Self-Instruct/Evol-Instruct,environments/+verifiers/+models/reward/ 补齐 RL 的 reward 侧。CAMEL 论文本身主张”role-playing 造大规模对话数据”——轨迹造数据是它的立项目的,不是副产品
  • Letta 是这批里唯一把 harness 直接接到 RL rollout 引擎的:状态里 logprobs/TurnTokenData/return_token_ids 明确注释”for RL training”,当 provider 是 sglang/(含训练用 slime-sglang)时切 SGLangNativeAdapter 产出 token-id 级、可 loss-masking 的多轮轨迹。这是本次调研中少见把 memory-agent harness 与 RL 训练闭环打通的实现,与它标志性的分层自编辑记忆(memory 维度)互为表里——轨迹既喂记忆也喂梯度。
  • OpenHands 的独特贡献是证明真实生产轨迹的价值openhands-critic-4b 用从 OpenHands Cloud 拉的真实用户-agent 轨迹训练,博客用 AUC 差距(纯 benchmark 0.45-0.48 vs 混入生产 0.58-0.69)做硬证据。它把每个会话切成 segment 并打 24 维 Critic Rubric,哪怕没有稀疏的 PR-合并标签也能密集标注——这套 segment+rubric 方法论比其他任何 harness 都更接近”生产轨迹工业化标注”。使这一切可能的底层是 harness 的 append-only 类型化 Event 流:轨迹格式不是事后拼的,就是对话本身的实时表示。
  • Claude-Flow 诚实地卡在边界上:weight-eft.ts 真的把 transcript 转成 SFT+DPO JSONL 还生成确切的 ruvllm microlora GPU 命令,但默认 dry-run、只训 MicroLoRA/router adapter、success 标签是自生成代理——base-LLM 权重在本仓不更新。它更像”把轨迹打包成别处可训练的燃料”,介于第 1 档和第 2 档之间。

第 2 档:厂商侧披露、源码不可见的训练管线

这些产品在博客或隐私政策里承认用了轨迹训练,但闭环在服务端,客户端仓库看不到。证据强度差异极大,务必分辨:

  • 有技术细节的Replit Agent 的 Backer 管线是这档披露最详的——timeline 数据(执行日志、LSP 诊断、OT 编辑动作)训练 Code Repair 模型,只用公开 Repl、匿名化、Progressive Classification 先算便宜特征只把约 1% 歧义案例送 LLM。Cursor 的 semsearch 是另一个有数字的:agent 搜索轨迹喂 LLM 做 retroactive ranking,训练语义 embedding 模型拟合该排序(+12.5%)——但注意它训的是 embedding 辅助模型,用户会话→主模型 RLHF 并未证实Goose 的 toolshim 微调同理,训的是辅助解释器模型。
  • 只有政策措辞的Devin(“may use your data for model training”,默认开、企业合同排除)、v0(企业可退出反推非企业默认可训练,且两份文档口径互相矛盾)、Amazon Qunwrap_or(true) 默认 opt-out 分享)。这类只能记”政策确认存在,技术管线未披露”。
  • 推断级browser-use——开源库不含训练代码,但 CloudSync 上传每步 model output+截图配自研 bu-2-0request_type='agent'+面向 fine-tuned 模型的 system prompt 强烈暗示服务端在训浏览器专用模型。
  • 反例值得记一笔Zed 把训练做成了分模态的显式 opt-in——编辑预测数据(光标片段/diff)opt-in 后汇入公开 HF 数据集 zed-industries/zeta 微调 Zeta,但 chat/agent 线程默认根本不收集,只在用户主动评分时才留。Comate 则是全场最强的”否认派”,多份官方文档近乎逐字重复”不用您的数据训练”,服务端只收 Tree-Sitter 混淆后的片段 embedding。Factory 走第三条路:真实会话”never training rows”,只用跨会话聚合的类先验统计量(而非内容)去校准 eval 配比。这三家是刻意把隐私立场当设计选择公开的对照组。

第 3 档:轨迹 → 离线评测 / benchmark(SWE-bench 生态最密集)

这是数量最多、最”工程化”的一档,也是国产/大厂 coding agent 的标配。核心机制惊人一致:把每个 instance 的 patch + trajectory 收进 results/.../{instance_id}.json 喂 SWE-bench 打分

  • SWE-agent 是这套范式的源头之一swe_bench_evaluate.py 作为 RunHook 每 30 次提交触发一次 SWE-bench 评测,merge_predictions.pypreds.json 直接接 sb-cli。它还多一手 run_traj_to_demo.py(轨迹→few-shot demonstration 反哺未来 run),并通过姊妹项目 SWE-smith/SWE-agent-LM-32b 把轨迹送去上游训练——SWE-agent 几乎定义了后来所有 “trajectory+patch→SWE-bench” 的模板
  • 明显承袭这一模板的Traerun_evaluation.py 喂 SWE-bench/Multi-SWE-bench,字节还发了配套 HF 数据集)、Cline(cline-bench 子模块)、Qwen Code(terminal-bench 集成)、AutoGen(agbench “blank slate” runner)、smolagents(examples/ 包外 benchmark)。它们的共性是:eval 是发布流程/工程门槛,不是产品实时功能,也不反哺权重。
  • 把 eval 做成一等能力、且往上多走一步的Google ADKTrajectoryEvaluator 按 tool-use accuracy 逐步对比实际 vs 期望工具调用序列,配一整套 evaluator(多轮/rubric/final-response/幻觉/LLM-judge),再用 local_eval_sampler 把轨迹喂给 GEPA/SimplePromptOptimizer 自动进化 prompt——形成”轨迹→评测→自动改 prompt”闭环,比纯打分更深一层。DeepAgents 把完整 trajectory 打分发到 LangSmith 并接第三方 Harbor/Terminal-Bench 2.0;Pydantic-AI 用类型化 message history + vcrpy 录制喂 pydantic_evals 做离线回归(但”评测→改 agent”仍人工)。
  • 用 LLM-judge 打分方法论的Anthropic 多 agent(0-1 分 + pass/fail,数百输出)、Augment 的 Prism(把历史 PR 转合成多轮对话,judge 打 [-1,1] 决定上线)。注意 Augment 用的是历史 PR 而非用户轨迹,是”轨迹形态的 eval 基础设施”。

第 3.5 档:record/replay 契约回归(一个独立小流派)

值得单独点出的是把轨迹当确定性回归 fixture 的做法,介于评测和调试之间:DeerFlowReplayChatModel 录一次真实 run、回放断言 SSE 事件序列 == golden(防前后端契约漂移);UI-TARSagent-snapshot 双模式(generate 录 LLM 请求/响应+event stream,replay 拦截 LLM 调用返回录制响应)+ snapshot-normalizer 抹平时间戳;browser-usererun_history/load_and_rerun 重放历史动作。这类”轨迹→回归测试”对 GUI/computer-use agent 尤其关键——因为 UI-TARSbrowser-use 的动作空间是截图+GUI 坐标点击(ComputerUseUserDatascreenshotBase64+predictionParsed),非确定性高、非回放不可测。这也让它们的轨迹天然是多模态训练样本格式(导出/训练动作不在开源仓,但结构已就绪)。

第 4 档:轨迹 → 记忆 / 自进化(改上下文不改权重)

这一档人数众多,是”从会话中学习”最常见的落地方式——但全部停在 in-context,无一动权重。它与 memory 维度深度重叠。

  • rollout → 结构化记忆这一子模式高度同构,且明显有互相借鉴痕迹:Codex CLI 的 Memories Phase 1(rollout 摘要成记忆,本地/opt-in/脱敏,且明确”never uploads”)、Open Interpreter 的 Phase 1 记忆管线(按 age/idle 选 rollout→抽记忆→Phase 2 consolidation 更新 MEMORY.md)、OpenAI Agents SDK 的 sandbox learning-memory(Rollout JSONL→未来 run 读的 MEMORY.md)——三者的 “rollout→MEMORY.md 两阶段蒸馏” 几乎是同一套设计,OpenAI 系(Codex/Agents SDK)内部一致性尤其高。
  • 向量/经验池召回Agent Zero(monologue_end 抽 fragments/solutions 存 FAISS)、MetaGPT(经验池推理时缓存回放)、CrewAIcrew.train() 输出读回 prompt 做 few-shot)、Kilo Code(kilo-memory digest)、Gemini CLI Auto Memory、DeerFlow memory 队列蒸偏好/纠错。
  • Kiro 的 CORAL 是这一档里最有产品野心的:每天抽样数千真实生产会话,对完整工具调用轨迹(不只 pass/fail)做 LLM 分析,提炼进带置信度的知识库,再把高置信经验转成已上线的产品改动(工具描述文案、系统提示、确定性自动纠正代码),明确”无需模型重训”。这是”轨迹驱动产品演进”而非”驱动模型”的最清晰样板——把第 4 档从”个人记忆”提升到了”厂商级 harness 自进化”。Devin 的 session→Playbook/SKILL.md/Insights 派生制品同属此类(需人工审批生效)。
  • MiMo Code 把这条线做得很紧凑:完整 trajectory 落本地 SQLite,dream(记忆巩固)/distill(工作流打包)/checkpoint 三条自改进路径查的是同一份 DB——轨迹反哺 harness 自身记忆/技能状态而非底层 LLM。

第 5 档:仅持久化 / 续跑 / 分享(不反哺任何下游)

最后是明确”轨迹只服务用户自己”的一档,特征是 grep 无遥测/训练管线:Aider(明确”never collects your code/chat”)、Plandex(grep=0 遥测,仅 plandex log/rewind)、Roo Codeopencode(SQLite 事件溯源 + 分享链接)、LangGraph(checkpoint time-travel 调试)、Semantic Kernel(只运行时 ChatHistory)、GPT-PilotContinue(本地+远程同步+git-ai 编辑审计)、AutoGPT(transcript.py 会话连续性/压缩)、Kimi Code(kimi export 仅 bug 报告)。

几个”底座/未披露”要点缀清楚AgentScope 只有 AgentState+redis 的运行时恢复+OTel 回放,无训练闭环——它是 QwenPaw 的底座,而 QwenPaw 自己的 history.db/ReMe(净化后抽取)也停在运行时记忆基底,两层都不导出训练数据。Warp 上传 ClaudeTranscriptEnvelope 做跨机重放续跑(连续性非训练),但 agent_mode_evals 群组暗示服务端有 eval 管线(打分逻辑不在客户端)。Amp 训练是 opt-in 且 Enterprise 下永久阻断,线程只作检索/协作基质。中国大厂里 Qoder/Junie/AutoCLAW/CodeGeeX 的 agent 轨迹训练用途多为”未披露/未找到”,CodeGeeX 甚至给出补全 opt-in(历史)vs RAG 索引”不用于训练”的分功能混合信号。Claude Code 则介于灰区:客户端只见 _PROTO_* 特权 BigQuery 列与 ant-only 更丰富打点,训练用途属合理推测但源码未证实,唯一有文档的是博客所述”内部事件日志→auto-mode 安全分类器”评测集。

最值得借鉴的设计

其一,OpenHands 的”生产轨迹 → segment 切分 + rubric 密集标注 → 训练 critic”方法论。 它解决了轨迹训练最难的问题:真实会话缺稀疏结果标签(PR 是否合并、代码是否存活),大多数 harness 因此止步于 pass/fail。OpenHands 用 24 维可从轨迹直接观测的行为特征做密集标注,让每个 segment 无论有无最终标签都可用,并用 AUC 差距实证了生产轨迹相对纯 benchmark 轨迹的增量价值。这套 append-only 类型化 Event 流 + segment + rubric 的组合,是把”agent 每天产生的海量轨迹”真正变成训练资产的可复制配方——对任何想自训 coding 模型的团队,这是比”把 transcript 存下来”高一个数量级的设计。

其二,Kiro 的 CORAL:把轨迹反哺”产品”而非”权重”作为一等闭环。 它承认一个多数团队回避的现实——重训模型慢、贵、风险高,而绝大多数 agent 失败其实源于工具描述含糊、系统提示不清、缺确定性护栏。CORAL 每天从生产轨迹里 LLM 分析出这些可修复模式,转成工具文案/系统提示/自动纠正代码的当天可上线改动,用置信度评分控制风险,全程”无需模型重训”。对于拿不到模型训练权限、或迭代周期受限的 harness 团队,这是投入产出比最高的”轨迹利用”路径——它把 Devin 的 Playbook 派生、mimo 的 dream/distill 提升成了系统化的厂商级自进化机制。这两个设计一个面向”有训练能力的模型团队”、一个面向”只能改 harness 的产品团队”,恰好覆盖了轨迹价值兑现的两端。