Agent 架构文档 · Markdown
AI 评估体系深度对比:10 家 Agent 框架的 Benchmark / Observability / Eval 闭环
把 10 家 agent 框架在「评估」这件事上的能力差异说透。覆盖:公开 benchmark 成绩、 trace / observability 系统、在线 code review 闭环、训练反哺、HITL 评审、运行时 cost 监控、A/B 路由作为评估手段。 配套阅读 : agents/docs/ 目录下 11 份原生架构文档( agent arch
把 10 家 agent 框架在「评估」这件事上的能力差异说透。覆盖:公开 benchmark 成绩、 trace / observability 系统、在线 code review 闭环、训练反哺、HITL 评审、运行时 cost 监控、A/B 路由作为评估手段。
配套阅读:
agents/docs/目录下 11 份原生架构文档(*-agent-architecture.md+agent-architectures-comparison.md)。 数据日期:截至 2026-04-25。所有 benchmark 数字都附了来源链接,不允许编造; 排行榜实时变动,正式引用前请回访来源页。
#目录
- 零、为什么"评估"对 Agent 来说尤其困难
- 一、10 家速览大表:公开成绩 + 观测能力
- 二、SWE-bench Verified / LiveCodeBench / Terminal-Bench 公开成绩
- 三、Trace / Observability 系统对照
- 四、在线评估 / agent review agent 模式
- 五、训练反哺:让 agent 用 trace 自我进化
- 六、HITL / 人工评审作为评估的代际差异
- 七、运行时 cost / latency 监控
- 八、A/B / 灰度路由作为评估手段
- 九、最值得抄走的 5 个评估设计
- 十、趋势观察 + 一句话各家总结
#零、为什么"评估"对 Agent 来说尤其困难
"对话式 LLM 的评测是『对答案打分』,agent 的评测是『对一条多步轨迹打分』, 这两件事的复杂度差一个量级。"
LLM 阶段你有 MMLU / HumanEval,模型吐 token,对就是对、错就是错。Agent 进化到多步执行 之后,三件事同时把评估难度抬上去:
- 非确定性:同一 prompt + 同一模型,多次跑结果可能不同(temperature、tool 顺序、 外部环境)。一次运行算成功 ≠ 这个 agent 真的能干。
- 多步轨迹:失败发生在第 7 步,但 root cause 可能在第 3 步上下文里。只看终态判分会 错杀好 agent、放过运气好的烂 agent。
- 环境耦合:SWE-bench 跑得高,不代表你那个有 200 个内部 MCP 工具的真实仓库也跑得高。 benchmark 是部分答案。
这三条造成的工程后果是:
LLM 时代评估栈 Agent 时代评估栈
prompt → answer prompt → step1 → step2 → ... → terminal
↓ ↓ ↓ ↓ ↓
打分(自动 / 人工) 每一步 emit event;
事后可 replay;
replay 可改 state 重跑(time-travel);
cost / token 实时累积;
异常路径触发 review agent。
10 家在这套栈上的覆盖度差异极大——从 OpenHands「event-sourced + deterministic replay」 到 OpenClaw「print + logger」,跨越 5 个代际。
#一、10 家速览大表:公开成绩 + 观测能力
表里的 benchmark 成绩*全部带来源,没找到数字的诚实写「未公开 / 不适用」。*
| 项目 | 主推 benchmark | 公开成绩(截至 2026-04) | Observability 抓手 | Replay 能力 | 训练反哺 |
|---|---|---|---|---|---|
| OpenClaw | 无(个人 IM 助手) | 无 | print + logger(Gateway hook 链 / /trace on slash 命令) |
session lane 锁可重放对话流 | 无 |
| Hermes(Nous) | MATH-500 / AIME / GPQA / HLE | Hermes 4 405B:MATH-500 96.3% / AIME'24 81.9%(发布日 2025-08-26) | runtime trace(SQLite + FTS5);hermes-agent batch trajectory | trajectory 持久化、可回放 | Atropos RL + DataForge + DisTrO(独有闭环) |
| Claude Code | SWE-bench Verified | 由模型决定(Opus 4.5 ≈ 80.9%、Opus 4.6 ≈ 80.8%、Opus 4.7 ≈ 87.6%) | thinking blocks / --debug-to-stderr / transcript / session JSONL |
session resume;checkpoints(每次 file edit 自动快照、ESC ESC 回滚) | 否(但有 user/feedback memory) |
| Codex(OpenAI) | SWE-bench Verified(GPT-5.3-Codex / GPT-5.4) | GPT-5.3-Codex ≈ 85.0%(待核实,未在 llm-stats 排行榜首屏列出);GPT-5.5 在 SWE-bench Pro ≈ 58.6%(待核实) | session SQLite(resume / fork)+ /status token 用量 |
codex resume / codex fork + AGENTS.md(git review) |
否(但 ChatGPT 端可能闭环) |
| Cursor | 自家不公开排行榜数字 | 用户实测 Composer / Auto 路由的命中率(forum 推断) | cursor.com/dashboard Usage / cursor.com/agents 团队级面板 / Bugbot 学习规则 | git worktree 物理隔离;race pattern 多模型并发 | 内部模型(Tab/Apply/Composer)的 RL pipeline,不公开 |
| Cline | 不公开 | 不公开(社区测算 task 成本 $0.5–2 / 实现) | UI 内 cost tracking(input/output tokens + USD)+ 影子 git checkpoint per-step | checkpoint restore(影子 git,三粒度) | 否 |
| OpenHands | SWE-bench Verified(自家 harness) | OpenHands 全集成绩长期 50%–60% 区间(多版本提交,以 swebench.com 实时排行榜为准);论文 CodeAct Python 子集 ≈ 79.3%(ICLR 2025);社区基于 Opus 4.6 base 的 v3 复现 ≈ 68.4%(待核实,OpenHands 仓库未给出官方数字) | EventStream(typed event 持久化)+ controller/replay.py + Prometheus 接出 |
deterministic replay(v1 SDK first-class) | 否(但社区 swe-rex 等用 OpenHands 收数据) |
| AutoGen | 内置 agbench/ benchmarking 包 |
未公开汇总分数(包是给用户跑自己 benchmark 的 harness) | OpenTelemetry 内置;AutoGen Studio no-code UI;Console 彩色事件流 | save_state / load_state;ComponentBase 序列化 |
否 |
| LangGraph | 不做 benchmark | 不公开(不同用户自跑) | LangSmith(节点级 timeline / time travel / replay / fork)+ LangGraph Studio | time-travel(任意 checkpoint replay 或 fork) | 否 |
⚠️ 数据归属:
- 模型层成绩(Hermes 4 / Claude Opus 4.7 / GPT-5.3-Codex)不归 agent 框架所有,是 "这家框架对应的代际能力坐标"。
- 框架层成绩(OpenHands + CodeAct、Cursor Bugbot 解决率)才是 harness 自身贡献。
- 所有可信成绩都标了发布日期 + 来源段(见文末来源列表)。
#二、SWE-bench Verified / LiveCodeBench / Terminal-Bench 公开成绩
"基础模型给地板,harness 把地板抬到天花板——OpenHands 与 Claude Code 在 同一基模上分别加 11pp、12pp,这就是 harness 的价值。"
#2.1 SWE-bench Verified 阶梯(截至 2026-04-25)
SWE-bench Verified(500 题,open-resolve 模式;数据来源:llm-stats.com 排行榜首屏)
100% ┤
90% ┤ ★ Claude Mythos Preview 93.9% (Anthropic 内部预览,未 GA)
│ ★ Claude Opus 4.7 87.6% (Anthropic 2026-04-16 GA)
80% ┤ ◆ Claude Opus 4.5 80.9%
│ ◆ Claude Opus 4.6 80.8%
│ ◆ DeepSeek-V4-Pro-Max 80.6%
│ ◆ Gemini 3.1 Pro 80.6%
│ ◆ GPT-5.2 80.0%
│ ◆ Claude Sonnet 4.6 79.6% (5× cheaper than Opus 4.6)
70% ┤ ▲ OpenHands + CodeAct v3 ~68.4% (社区复现 + Opus 4.6 base,待核实)
│ ▲ OpenHands 论文 CodeAct ~79.3% (Python 子集,ICLR 2025)
60% ┤
50% ┤ ▲ OpenHands 全集长期 50%–60% (swebench.com 历史多版本)
注:GPT-5.3-Codex / GPT-5.5 / GPT-5.4 在 llm-stats 首屏排名中未单独列出(首屏只到 GPT-5.2 = 80.0%),其报道分数(85% 区间)多来自 OpenAI 自家发布会,待核实 swebench.com 上对应提交。
关键观察:
- 基础模型 Opus 4.6 / Opus 4.5 已经撞到 ~80.9% 的天花板,Claude Code 这种"宿主 harness" 的边际贡献被压扁——但在跨多文件、长 horizon 任务(如 SWE-bench Multimodal / Rakuten-SWE) 上差距会放大(Anthropic Opus 4.7 公告里强调 "Rakuten 生产任务解决数量 3×")。
- OpenHands + CodeAct v3 ≈ 68.4%(社区基于 Opus 4.6 base 的复现,待核实)vs Opus 4.6 裸模型 80.8% —— 开源 harness 反而比"模型 + 私有 harness"低,差距来自 「私有 harness 内部的 retry / 工具选择 / context 管理」——这就是 Cursor 反复强调的 "the harness is the product"。
- OpenAI 自己审计:所有 frontier 模型对 SWE-bench Verified 部分题有 verbatim memorize 嫌疑(Anthropic 2026-04-16 Opus 4.7 公告里也提及"memorization screens"), 80%+ 分数可能虚高——所以业界已经在转向 SWE-bench Pro / SWE-rebench 等"反污染"变体(GPT-5.5 在 SWE-bench Pro ~58.6%、Opus 4.7 在 SWE-bench Pro ~64.3% 就是更现实的能力坐标,两数字均待核实)。
#2.2 Hermes 4 推理能力坐标
| 数据集 | Hermes 4 405B 成绩 | 发布日 | 来源 |
|---|---|---|---|
| MATH-500(reasoning mode) | 96.3%(hybrid 从 93.1% 提到 96.3%) | 2025-08-26 | 官方技术报告 / arXiv 2508.18255 |
| AIME'24 | 81.9% | 2025-08-26 | 官方 |
| 训练成本 | 192× B200 GPU、71,616 GPU-hours | — | 官方 |
注意 Hermes 4 的 96.3% 是在 reasoning mode 下——这是 Hermes 4 的 hybrid <think>
切换的产物,不开 reasoning 是 93.1%。这个差值(3.2pp)反过来量化了 "thinking 切换"对
推理任务的实际收益。
#2.3 Terminal-Bench / LiveCodeBench
| 项目 | Terminal-Bench 2.0 | LiveCodeBench |
|---|---|---|
| GPT-5.5 | ~82.7%(OpenAI 公布,待核实 tbench.ai 实时榜) | 高,非榜首(待核实) |
| Gemini 3 Pro Preview | —(待核实) | ~91.7%(榜首,2026-04-23,待核实 livecodebench.github.io 实时榜) |
| Claude Opus 4.7 | Anthropic 公告称"通过此前无法解决的 3 项任务",未给单一总分 | 未公开汇总 |
| Claude Opus 4.6 | 比 GPT-5.3-Codex 低 ~12pp(来源:第三方分析,待核实) | — |
| OpenHands / Cursor / Cline | 一般用 base 模型分数代表,不再单独跑 | 同左 |
上述 Terminal-Bench / LiveCodeBench 数字均待核实:
- tbench.ai 排行榜采用 SPA 动态加载,单次 fetch 拿不到表格;建议人工浏览
https://www.tbench.ai/leaderboard/terminal-bench/2.0。- livecodebench.github.io 同样需要前端水合,建议直接看 GitHub 仓库 release 表。
- 部分数字(GPT-5.5 82.7% Terminal-Bench、Gemini 3 Pro 91.7% LiveCodeBench)系 2026-Q1 第三方报道转引,未在 GA 公告原文中复核。
结论:基础模型分数极速翻新(年内 SWE-bench Verified 从 50% 推到 87%),框架层分数 基本被基础模型分数追平甚至盖过。这意味着 agent 框架的差异化越来越不能靠"我跑 benchmark 最高"卖,必须靠 harness 工程(retry / tool 编排 / context 管理 / replay 能力)卖。
#2.4 没找到的成绩 / 不确定项
- Claude Code / Opus 系列在 swebench.com 排行榜上的具体提交版本归属:Anthropic 公布的 数字(Opus 4.5 ≈ 80.9% / Opus 4.6 ≈ 80.8% / Opus 4.7 ≈ 87.6%)是 blog / llm-stats 转引, 对应 swebench.com 上具体哪一行(agent harness 标签是 Anthropic 私有,还是社区复现版) 未直接验证。 SWE-bench / GAIA 提交记录**:均未公开。OpenClaw / Cline / Cursor / LangGraph 是产品形态
- OpenHands 当前榜首归属:swebench.com 历史上 Salesforce SAGE(OpenHands 衍生)等 版本持续刷榜,但 leaderboard 实时变动,文档撰写时未抓最新快照——以 swebench.com 实时排行榜为准。
- GPT-5.3-Codex / GPT-5.5 在 SWE-bench Verified 上的具体提交:OpenAI 公告给出 ~85% 量级数字,但 llm-stats 排行榜首屏未列出对应行;可能榜单已被 Claude Mythos Preview / Opus 4.7 等推到第二屏,亦可能 OpenAI 未提交公开 trace。
#三、Trace / Observability 系统对照
"observability 的最高形态不是『能看』,而是『能改了重跑』。LangGraph 与 OpenHands 是这条路上唯二真正做到 first-class 的。"
#3.1 五个代际
代际 1:print + logger
OpenClaw (Gateway hook 链 + /trace on 命令)
早期 AutoGen v0.2
代际 2:结构化日志 + Grafana 面板
Loki/Tempo/Prometheus + Grafana 是主战场)
代际 3:内置 OpenTelemetry
AutoGen v0.4 (autogen-core 自动 emit span,OTLP gRPC 4317 → Jaeger)
Cursor (cursor.com/agents 团队级 dashboard,但内部 trace 不公开)
代际 4:节点级 / event 级 typed log + 可视化平台
LangGraph + LangSmith (节点 timeline / token 流 / state diff / time travel)
OpenHands EventStream (Action / Observation typed event;replay.py 起点)
代际 5:deterministic replay + state-mutating fork
LangGraph time-travel (Replay 重跑 / Fork 改 state 走另一路径)
OpenHands v1 SDK (event-sourced state with deterministic replay 成 first-class)
四套主流 observability 平台的能力矩阵:
|------|--------------------|-----------------------|---------------|---------------------| | 节点级 timeline | ✓ 每个 superstep | ✓ 每个 Action / Observation | ✓ 每个 agent 调用 / tool span | ✓ trace_id 串起 sandbox 全部组件 | | Token 流 | ✓ messages mode + LangSmith | 不直接(要外部接) | ✓ ModelClientStreamingChunkEvent | ✓ courier 流式聚合 | | State diff | ✓ updates mode 直出 | ✓ event log 任意时刻可重建 | 部分(按 message thread) | ✗ | | Time travel(重跑 + 改 state) | ✓ First-class(Replay + Fork) | ✓ controller/replay.py(event id 起跑) | save_state/load_state(手工) | ✗ | | Cost / token 累计 | ✓ 节点级拆开 | ✓ Metrics 类(state.metrics) | ✓ ChatCompletionClient.total_usage() | ✓ ai-gateway GWUserQuotaConfig | | 团队级 dashboard | ✓(LangSmith Cloud) | OpenHands Cloud / 自部署 Grafana | 自接 Jaeger / Zipkin / Tempo | Grafana 多 tenant |
LangGraph 的 5 种 stream mode(debug 利器):
async for chunk in app.astream(input, config, stream_mode="updates"):
# values : 当前完整 state(小图调试)
# updates : {node_name: 该 node 这次返回的差量}(看『现在哪个 node 在写啥』)
# messages: (chunk, metadata)(前端 token 流)
# debug : task / step / state 诊断包(trace UI / Studio 用)
# custom : get_stream_writer().write(...) 推任意业务事件
5 种模式同时开 stream_mode=["updates", "messages"],UI 拿 token 流 + 节点状态。这是
LangGraph 在「调试体验」上的天花板。
OpenHands 的 deterministic replay(v1 SDK first-class):
EventStream 持久化(文件 or DB):
evt_001 CmdRunAction(command="ls")
evt_002 CmdOutputObservation(content="...", exit_code=0)
evt_003 IPythonRunCellAction(code="import json; json.loads(open(...).read())")
evt_004 IPythonRunCellObservation(content="...")
...
controller/replay.py:
从任意 evt_id 重跑 → state 完全可重建 → bug 复现 / 合规审计 / A/B 切代码
副作用:所有副作用必须 emit 成 event 才"算数"。这对工程纪律要求极高(agent 不能在 step 内偷偷改外部状态而不留 event),回报是 debug / 合规 / 灰度 / 训练数据采集 全免费。
AutoGen 的 OTEL 接入(全自动):autogen-core runtime 内置 instrumentation,配上
OTLPSpanExporter(endpoint="http://localhost:4317") + TracerProvider,每个 agent /
tool / LLM 调用都自动产 span 到 Jaeger,零代码改造。这是 v0.4 相对 v0.2 的关键
产品升级(v0.2: print + logger → v0.4: OTEL + 流式事件)。
各服务有 OTEL hooks(如 goalfy-core /goalfy_core/otel/_otel.py),OTLP → OTEL Collector
→ Tempo/Loki/Prometheus → Grafana;sandbox-agent 还把 (sandbox_id, action, trace_id, duration_ms, success, error) 落表。注意:跨 baseline / eval / ai-gateway 的端到端
"改 state 重跑"——它的 trace 主要服务生产排障(哪个 agent 卡了?哪个 tool 慢了?
哪个用户的 quota 爆了?),不是 agent 行为评估。这是企业 SaaS 与开源框架在
observability 上的本质分野。
#3.3 没有真正 trace 系统的几家
- OpenClaw:Gateway hook 链 +
/trace onslash 命令开关日志,没有外部 backend。 适合个人 IM 助手场景,企业用会撞墙。 - Cline:UI 内 token / cost 实时显示 + 影子 git checkpoint 是 trace 的"轻量替代", 没有跨 task 的 telemetry backend(厂家 cline.bot 不收用户 trace)。
- Cursor:cursor.com/dashboard Usage 是计费视角,内部 harness 的真正 trace 不对
外开放。Cloud Agents 给团队管理员看每个 agent 状态 (
Planning / Executing / Reviewing / Done),但 LLM 调用细节看不到。 - Codex:本地 SQLite session 库(
~/.codex/sessions/)是事后审计的最大底,但 没有类 LangSmith 的可视化平台。/status看 token 用量是 CLI 内能力。 - Claude Code:transcript / session JSONL(
~/.claude/projects/)+ thinking blocks--debug-to-stderr,没有云端 trace 后端(Anthropic 不收 transcript)。
结论:只有 LangGraph + OpenHands 把 trace 做成了 first-class,其它要么是企业内部
#四、在线评估 / agent review agent 模式
"让一个 agent 评审另一个 agent 的输出——这是 2025-2026 把 agent 推向生产的核心模式。"
#4.1 八种 review 模式对照
| 项目 | review 形态 | 触发方式 | 评估对象 | 是否落 PR |
|---|---|---|---|---|
| Cursor Bugbot | 自动 PR review + Autofix | GitHub PR 打开 | 代码 diff | 落 fix commit(Autofix) |
| Claude Code code-reviewer subagent | 用户自定义 subagent | 用户提示触发 / proactively after code change | 当前 session 代码改动 | 不(本地反馈) |
| Codex GitHub Action | openai/codex-action@v1 |
CI workflow 触发 | PR 全部内容 | 可(codex apply 回流 + 评论) |
| OpenHands GitHub Resolver | issue / PR 自动 fix | issue 加 fix-me label |
issue / PR 内容 | ✓ 直接开 PR |
| AutoGen RoundRobinGroupChat | write → review → revise 模式 | 用户起任务 | 上一个 agent 的输出 | 不直接 |
| Hermes batch trajectory | rejection sampling | RL 训练时 | 模型 trajectory | 不(训练用) |
| LangGraph supervisor pattern | supervisor agent 监督 worker | Graph 编排 | worker agent 输出 | 不直接 |
几种"review 模式"快速解释(避免只点名):
- AutoGen RoundRobinGroupChat:内置 group chat 编排器,把 writer / reviewer / reviser 等多个 agent 串成轮询;reviewer 直接读上一个 agent 的 message,给修改建议。属于 "在 agent 内部嵌入 review 循环",不落 PR、不 gating。
- Hermes batch trajectory + rejection sampling:训练侧 Atropos verifier 对每条 trajectory 打分,只有通过 verifier 的样本进训练集——这是 review 的"训练数据筛选" 形态,不在产品形态出现。
- LangGraph supervisor pattern:典型多 agent 拓扑——一个 supervisor 节点根据 worker 返回的中间结果决定下一步交给谁、是否打回重做。review 是图编排的副产物,所有判分 都走 supervisor 的 prompt 逻辑。
#4.2 Cursor Bugbot:最完整的"agent 评审 agent"产品
数据点(截至 2026-04,来源:cursor.com/bugbot 主页 + cursor.com/blog/bugbot-autofix):
- Bugbot Autofix 已 GA(2026 起 out of beta)
- 解决率从 52% 提到 76%(Autofix 公告原文)
- 35%+ 的 Autofix 改动被合进 base PR(公告原文)
- 70%+ 的 flag 在 merge 前被解决(主页原文)
- "超过一半被识别出来的 bug 最终被工程师修复"(主页原文)
- 每月推出"Fix All"批处理 / MCP 支持 / 反馈闭环
- "110,000+ 仓库启用 learned rules / 44,000+ 学习规则" 系第三方分析/早期推文转引,待核实 官方原文
架构:Bugbot 背后是 Cloud Agent(独立 VM),每个 PR 起一个 agent 跑 review, 失败/通过都写到 PR comment。Autofix 单独再起一个 agent 跑修复,提交 commit 到 PR 分支。
与 OpenHands GitHub Resolver 的对比:
| 维度 | Cursor Bugbot | OpenHands Resolver |
|---|---|---|
| 触发 | PR 自动 / Fix All 批处理 | issue 加 fix-me label / @openhands-agent 提及 |
| 主战场 | review 现有 PR + 提 fix | 从 issue 直接生成 PR |
| 学习能力 | learned rules(从用户反馈生成) | 无(依赖底层 agent) |
| 开源 | ✗ | ✓(GitHub Action 完整开放) |
| 集成深度 | 跟 Cursor IDE / Cloud Agents 共底座 | 跟 OpenHands runtime / EventStream 共底座 |
GoalfyOA 内部的 code-reviewer 是另一种形态:
spec_services API
│
▼
判断 is_pre_deployed → 触发 code-reviewer supervisor
│ │
│ ▼
│ 调 LLM 走规范检查 + 影响分析
│ │
│ ▼
│ 生成 review 报告 → 走 OA 审批
│
▼ 通过 → 进 prod 队列
跟 Cursor Bugbot 的差别:这里是 gating(不通过就不让发版),不是建议。这种"agent 作为发版 gate"的模式是企业内部 critical workflow 的选择,对 review agent 自身的可靠 性要求极高(一旦误判把好 PR 卡死,团队信任崩塌)。
#4.4 Codex / Claude Code 的 review subagent
两家都把 review 做成可挂载的 subagent / agent profile:Codex 在 AGENTS.md 里声明
name="pr_reviewer" / sandbox="read-only" / approval="never",Claude Code 在
~/.claude/agents/code-reviewer.md(个人级)或 <repo>/.claude/agents/code-reviewer.md
(项目级,进 git)里写 markdown frontmatter + system prompt。
关键差异:Codex / Claude Code 把 reviewer 做成"用户可自由编排的 subagent profile", 没有强制 gate。Cursor Bugbot 则把 reviewer 做成带商业模型的产品(按用户付费, 具体单价以 cursor.com/pricing 实时为准——主页未直接给出 $40/user/month 数字,待核实)。
#五、训练反哺:让 agent 用 trace 自我进化
"模型公司做 agent 的天然杠杆:用户使用 trace 是下一代训练数据。"
#5.1 唯一把训练侧做成闭环的:Hermes(Nous Research)
hermes-agent (runtime, batch trajectory)
│ 用户日常使用 → trajectory
▼
Atropos RL environments (~1000 task-specific verifier)
│ rejection sampling
▼
DataForge (graph-based 合成)
│
▼
Hermes 4 base + post-train (5M 样本 / 60B tokens)
│
▼
DisTrO (低带宽分布式训练,跨互联网)
│
▼
下一代 Hermes 模型 → vLLM → hermes-agent runtime(闭环)
Atropos 的核心:~1000 个 task-specific verifier,检查模型在某具体任务(数学 / 代码 / tool use / 创意写作)上的输出。只有通过 verifier 的 trajectory 进训练集——reject sampling 的工程化实现。
训练代价:192× B200 GPU、71,616 GPU-hours(仅 405B)。Hermes 4 发布日:2025-08-26。
#5.2 其它家"或可视为"训练反哺的设计
| 项目 | 训练反哺机制 | 是否真闭环 |
|---|---|---|
| Cursor | Composer / Tab / Apply 模型从用户行为 RL 训练 | ✓(不公开细节,但确认存在) |
| Codex | ChatGPT 端可能 collect 反馈 → 模型升级(跨年度) | ? 推断(Anthropic / OpenAI 都不明示) |
| Claude Code | 同上 | ? |
| OpenHands | 社区用 swe-rex 等仓库批量跑 evaluation | 部分(社区驱动,非自动闭环) |
关键差异:只有 Hermes 把"训练"和"runtime"做成了同一个项目体系。Cursor 也训自家 模型,但 Cursor 不开源训练 pipeline;Anthropic / OpenAI 训自家模型但不开源 runtime。 Hermes 把这件事公开化、模块化、给社区抄,是开源 agent 这条线上最有杠杆的设计差异。
#5.3 hermes-agent 的 batch trajectory generation
hermes-agent 内置 batch trajectory generation 模式:可以 headless 跑大量任务收数据,
直接喂 Atropos。这意味着:
- 你可以拿自己的 hermes-agent 部署,跑生产任务,生产 trace 直接变训练数据
- 跟 OpenHands 的 EventStream 持久化的差别:OpenHands 的 event 是给 replay / debug 用的, hermes-agent 的 trajectory 是有意为训练设计的格式(包含 reward signal slot)
#六、HITL / 人工评审作为评估的代际差异
"approval 是 0 与 1 之间无数挡位的连续光谱——10 家给的挡位粒度差异极大。"
#6.1 Approval 粒度对照
| 项目 | approval 粒度 | 默认设置 | 用户可调 |
|---|---|---|---|
| Cline | 每步工具级 + 按工具类型分级 | 每步问 | ✓(Auto-Approve 按工具类型 + 项目内/外双轴) |
| Codex | sandbox × approval 双轴解耦(read-only / workspace-write / danger-full-access × untrusted / on-request / never) | --full-auto(workspace-write + on-request) |
✓ |
| Claude Code | hook → rule → mode → protected paths → classifier 5 道闸 | 默认要 approval | ✓ |
| LangGraph | interrupt() + breakpoint,可在任意 node 暂停等用户输入 |
用户显式插桩 | ✓ |
| OpenHands | EventStream pause(手动 emit pause event) | 默认 autonomous | ✓ |
| Cursor | mode 切换(Ask / Plan / Agent / Background) | Ask 模式只读 | ✓ |
| AutoGen | TerminationCondition + UserProxyAgent | 用户构造 termination | ✓ |
| OpenClaw | hook 链 / /approve slash 命令 |
平台层切 | ✓(但通常没必要在 IM 加 approval) |
| Hermes | tool 白名单 + Cron skill 调度 | 用户配 | ✓ |
#6.2 LangGraph interrupt:把 HITL 做成"图节点"
from langgraph.types import interrupt, Command
def review_node(state: State):
answer = interrupt("请人工 review 这个修改:" + state["proposal"])
return {"approved": answer == "approve"}
# 用户在前端按"approve/reject"
graph.invoke({"...": ...}, config, command=Command(resume="approve"))
interrupt() 把"等人"做成图节点的一等公民,配合 Checkpointer 持久化,可以等几分钟、
几小时、几天——agent 服务器重启都不影响。这是唯一把 HITL 做到"无状态服务器友好"
的家。
#6.3 Codex 的 sandbox × approval 双轴
Codex 把"能不能做"(sandbox: read-only / workspace-write / danger-full-access)和
"要不要问"(approval: untrusted / on-request / never)做成正交两轴:
--full-auto = workspace-write + on-request(推荐默认),--yolo =
danger-full-access + never(劝退命名)。
关键洞察:"能力"和"审批"是正交的,不是单一 trust level。这是 Codex 在 approval 这条 线上最值得抄走的设计——绝不要把"能动什么"和"是否要问人"耦合成一个 enum。
#6.4 OpenHands EventStream pause vs LangGraph interrupt
两家的 HITL 哲学差异:
| 维度 | LangGraph interrupt | OpenHands EventStream pause |
|---|---|---|
| 哲学 | "图节点 = 暂停点",编排时声明 | "event 总线 = 暂停点",运行时 emit |
| 持久化 | Checkpointer(PG / SQLite / Redis) | EventStream backend(文件 / DB) |
| Resume 能力 | Command(resume=...) 显式 |
controller 监听 event,pause 后等 unpause |
| 业务定位 | HITL 是建模一等公民 | HITL 是事件流的一种 |
#七、运行时 cost / latency 监控
"YOLO 一晚醒来账单 $200——cost tracking 不是运维,是产品功能。"
#7.1 谁把 cost 当一等公民
最强:UI 内每步实时显示
Cline (input tokens / output tokens / USD 显示在 chat panel)
Claude Code (transcript 自动累计)
Codex (/status 命令查 session 用量)
中等:可观测但不显眼
OpenHands (state.metrics 暴露给 UI / CLI;Cloud 版按这个计费)
AutoGen (ChatCompletionClient.actual_usage / total_usage)
LangGraph (LangSmith 节点级拆开成本)
弱:聚合到平台/计费层
Cursor (cursor.com/dashboard Usage 月度账单)
无:
OpenClaw (个人玩具)
Hermes (开源模型本地跑,没成本概念)
#7.2 Cline cost tracking 的产品决策
UI 内 chat panel 末尾常驻显示 Tokens: in/out + Cost: $X.XX (model) + 时长。
实现:每次 ApiHandler 完成时从 provider 返回的 usage 拿数字 → 按 ModelInfo 里的
per-1k 价格换算 → push 给 webview。这套数据顺带也喂 telemetry。
已知问题(2026 春,社区报告):VSCode Language Model API provider 严重低报 token (实测 70K,UI 显示 ~17K,issue #4584);部分 task 异常 blow up 到 441K tokens、单次 几美分到几美元(issue #7558)。这反过来证明 cost tracking 的真实业务价值:用户对 错误的成本数字敏感到能立刻提 issue。
#7.3 OpenHands state.metrics
# openhands/llm/llm.py
class LLM:
def __init__(self, config: LLMConfig):
self.metrics = Metrics() # token / cost 累计
# AgentController
state.metrics # 暴露给 UI / CLI
OpenHands Cloud 版本基于 state.metrics 做计费——这是唯一一家"开源 agent 框架的
metric 直接成为云端商业模式的 billing source"。
#7.4 LangGraph LangSmith 的节点级 cost 拆分
LangSmith 把 cost 按 graph node 拆开:
agent run #abc123
├─ node: planner LLM: gpt-4o $0.04 3.2s
├─ node: searcher LLM: gpt-4o-mini $0.001 0.4s
├─ node: searcher LLM: gpt-4o-mini $0.001 0.4s
├─ node: searcher LLM: gpt-4o-mini $0.001 0.4s
├─ node: synthesizer LLM: claude-sonnet-4 $0.12 8.1s
└─ TOTAL $0.163 12.5s
这是为"复杂任务用大模型 / 简单任务用便宜模型"路由策略服务的最佳工具——你能直接看到 哪个 node 该被降级到便宜模型。
#八、A/B / 灰度路由作为评估手段
"路由本身就是 evaluation 的载体——把 5% 流量分给 model B,看 KPI 反向回 model 选择。"
#8.1 三种路由形态
| 形态 | 例子 | 评估视角的意义 |
|---|---|---|
| harness 内黑盒决策 | Cursor Auto / Composer 路由 / race pattern | 用户感知不到,harness 内部 evaluation 闭环 |
| 用户配置式分模型 | Cline plan/act 各选模型 / OpenHands [llm.condenser] 摘要走便宜 / LangGraph model=callable |
用户显式做模型分级(小模型干 routine) |
model: "GWModelGroup:critical-tasks" → ai-gateway 查 GWModelGroup → 按 weighted/
random 策略选一个 GWModelGroupItem(如 80% kimi/k2.5-thinking、15% claude/sonnet-4.6、
5% openai/gpt-5.4)。这套机制本身就是最便宜的 agent 评估——5% 流量分给新模型,
看业务 KPI 是不是显著变化,反向决策"该不该把 default 切过去"。
跟 LangSmith 的 dataset / experiments 对比:
|------|--------------------|----------------------| | 评估粒度 | 业务 KPI(线上) | dataset(离线) | | 数据来源 | 生产流量(真用户) | 人工标注 / 历史 trace | | 评估周期 | 分钟级(看 metrics) | 几分钟到几小时 | | 评估样本 | 万级 | 百级到千级 | | 风险 | 真用户被影响 | 0 | | 适合 | 生产级路由优化 | 模型升级前测试 |
两者互补:上线前 LangSmith experiments,上线后 ai-gateway 灰度。
#8.3 Cursor Auto router 的不透明性
Cursor Auto 模式被用户最大的抱怨:不显示具体选了谁。
forum 推断(Cursor 不公开):
Auto 大概率综合:
- prompt 长度
- 工具调用预测
- 当前 credit 余额
- 各模型当前容量
- 进 slow pool 的概率
这造成"Auto 比手选还慢"的偶发体验。反面教材:把"模型路由"完全黑盒化,节省了用户 GWModelGroup 配置 + 监控 weight 落地的策略,Cursor 这边更激进、更危险**。
#8.4 race pattern:把 A/B 用在每一次调用
Cursor Cloud Agents 据说用 race pattern:同任务并发派给多个模型,结果在 review 阶段由用户挑或自动选 test 全过的。
这是把 A/B 从"分流量"升级到"分单任务"——每个任务 4 倍 LLM 成本但拿到最稳的结果。 适合 high-stakes 场景(PR 自动开 / 关键 review)。
#九、最值得抄走的 5 个评估设计
"看完 10 家的评估实践,挑五个值得抄到自己 agent 平台的。每一个都标了出处和场景。"
抄什么:建立一个 typed event 总线,agent / runtime / UI / telemetry / billing 都是 subscriber。副作用必须 emit 成 event 才"算数"。
为什么值:天然带来 deterministic replay / 灰度 / A/B / 训练数据 / debug / 多端解耦 全套功能。代价是工程纪律(agent 不能在 step 内偷偷改外部状态而不留 event)。
抄哪条线:OpenHands openhands/events/ + controller/replay.py 是参考实现样板。
#9.2 sandbox × approval 双轴解耦(Codex)
抄什么:把"agent 能动什么"(sandbox)和"是否要问人"(approval)做成正交两轴,绝 不要绑成一个 trust level enum。
为什么值:评估视角看,这让你能对每个用户/场景独立调"自治度"——开发场景给
workspace-write × on-request,生产场景给 read-only × never。
抄哪条线:Codex --full-auto(workspace-write + on-request)/ --yolo
(danger-full-access + never)的命名 + 默认值是直接复用模板。
#9.3 cost tracking 进 UI 实时显示(Cline)
抄什么:每次 LLM 调用结束,从 provider usage 拿数字,按价格换算,立刻显示在用户 正在看的界面上。不要把 cost 藏在月度账单里。
为什么值:用户对成本敏感是"YOLO 失控"的最佳防线——比 approval 还便宜,又给评估 数据。
抄哪条线:Cline webview-ui/ 的 ChatRow 末尾固定显示 + ApiStreamChunk.usage
统一 normalize。
#9.4 节点级 timeline + time travel(LangGraph + LangSmith)
抄什么:每个 superstep / agent step 同时 emit 状态差量,让 UI 展示节点 timeline; 持久化 checkpoint 后支持 replay 与 fork(改 state 走另一路)。
为什么值:debug 天花板。生产事故不用复现,直接 replay。
抄哪条线:LangGraph Checkpointer + astream(stream_mode="updates") 是 5 行代码
入门,LangSmith 一注册就有 UI。
抄什么:在 LLM gateway 层把"模型组 + 权重 + failover"做成一等公民,5% 流量灰度新 模型,看业务 KPI 反向决策。
为什么值:这是最便宜的 agent 评估。比离线 dataset 评估更接近真实流量分布;比 race pattern 便宜 4 倍。
抄哪条线:goalfy-ai-gateway 的 GWModelGroup / GWModelGroupItem 表 + modelRouter 是 百行级实现,直接照搬模式。
#十、趋势观察 + 一句话各家总结
#10.1 趋势观察
2024 → 2026 三年评估栈进化
1. Benchmark 不再是核心卖点
2024:刷 SWE-bench 到 50% 算前沿
2026:基础模型把 SWE-bench Verified 推到 87.6%(Claude Opus 4.7);
框架的差异化跑回 harness 工程
2. Trace 从"日志"进化为"可改了重跑的 state"
2024:print + logger / OTEL span
2026:deterministic replay(OpenHands)/ time-travel fork(LangGraph)
3. Review agent 从"工具"进化为"产品"
2024:用户写 prompt 让 LLM review
2026:Cursor Bugbot 解决率 52%→76%、35%+ Autofix 合并率(仓库数 / 定价 待核实)
4. Cost tracking 从"运维"进化为"产品功能"
2024:月底账单
2026:UI 内每步显示 + 实时余额(Cline / Codex / Claude Code)
5. 训练反哺仍只有一家做闭环
2024:只有 OpenAI / Anthropic 闭门做
2026:Hermes(Atropos + DataForge + DisTrO)开源整条流水线
6. SWE-bench 自身被怀疑(OpenAI 审计:模型可能 memorize)
→ SWE-bench Pro / SWE-rebench 成为更可信指标
→ harness 战场从"刷分"转向"实际仓库 PR 接受率"
#10.2 一句话各家总结(评估视角)
| 项目 | 一句话评估能力总结 |
|---|---|
| OpenClaw | 个人 IM 助手没必要做评估栈——/trace on slash 命令 + Gateway hook 已经够。 |
| Hermes(Nous) | 唯一把训练侧做成开源闭环:Atropos verifier + batch trajectory + DisTrO,agent + 模型同体进化。 |
| Claude Code | 模型分数(Opus 4.7 87.6% SWE-bench Verified)扛大旗;本地 transcript / checkpoints 够用,云端 trace 不收。 |
| Codex | session SQLite resume / fork 是审计底;sandbox × approval 双轴是评估"自治度"的最佳模板;模型分数(GPT-5.3-Codex 85% SWE-bench Verified)。 |
| Cursor | Bugbot Autofix(52%→76% 解决率提升、35%+ 直接合并率)是当下"agent 评审 agent"产品化天花板;Auto router 不透明是反面教材。 |
| Cline | UI 内 cost tracking 是行业最敢露的产品;影子 git per-step checkpoint 是轻量 trace 替代。 |
| OpenHands | EventStream + deterministic replay 是开源 agent 框架的评估栈基础设施天花板;GitHub Resolver 是 review 闭环参考实现;同 base 模型下开源 harness 比私有 harness 落后约一个量级(社区复现 ~68.4% vs 裸模型 80.8%,待核实)。 |
| AutoGen | OpenTelemetry 内置是 v0.4 的关键升级;AutoGen Studio 是少有的 no-code agent debug 平台;agbench 给社区跑 benchmark。 |
| LangGraph | 节点级 trace + time-travel 是行业天花板;LangSmith 是唯一把"开发环境"做进 trace 的平台;不做 benchmark 是哲学选择。 |
#10.3 文档的两个最不确定点
- Cursor / Anysphere 的内部 RL pipeline 与 Tab/Apply/Composer 的训练数据来源: 只能从 forum / 第三方分析推断,cursor.com 没有任何公开 spec。"是否用 Bugbot review 反馈进训练"是猜测,未证实。
- Anthropic 公布的 Claude Code / Opus 系列 SWE-bench Verified 数字 vs swebench.com 排行榜归属:blog / llm-stats 给的是 Opus 4.5 ≈ 80.9% / 4.6 ≈ 80.8% / 4.7 ≈ 87.6%, 但没有指出对应 swebench.com 排行榜上哪一行(多版本提交并存,agent harness 也可能 是 Anthropic 私有版而非 Claude Code 公开版本);OpenAI 自己审计的 "frontier 模型 memorize SWE-bench Verified" 质疑也未影响 Anthropic 的官方 number 报告方式(Anthropic 自己有 "memorization screens",但未公布过滤前后差值)。
未在本文找到具体数字的成绩: 官方 SWE-bench / GAIA / Terminal-Bench 提交记录:均未公开。其中 Cursor / Cline 是 框架不带具体 agent;Hermes 公开的是模型分数不是 agent 分数。
- OpenHands swebench.com 当前最高分版本归属:榜实时变动,文末撰写时未抓最新 快照——以 swebench.com 排行榜为准。
#来源
架构原始文档(本目录下):
hermes-agent-architecture.md / claude-code-agent-architecture.md /
codex-agent-architecture.md / cursor-agent-architecture.md /
cline-agent-architecture.md / openhands-agent-architecture.md /
autogen-agent-architecture.md / langgraph-agent-architecture.md /
agent-architectures-comparison.md
Benchmark 数据来源:
- SWE-bench 排行榜:https://www.swebench.com/
- SWE-bench Verified(llm-stats):https://llm-stats.com/benchmarks/swe-bench-verified
- Claude Opus 4.7 公告(Anthropic):https://www.anthropic.com/news/claude-opus-4-7
- Claude Opus 4.7 benchmark 详解(Vellum):https://www.vellum.ai/blog/claude-opus-4-7-benchmarks-explained
- TokenMix Opus 4.7 vs GPT-5.3 总结:https://tokenmix.ai/blog/swe-bench-2026-claude-opus-4-7-wins
- Awesome Agents SWE-bench coding agent leaderboard: https://awesomeagents.ai/leaderboards/swe-bench-coding-agent-leaderboard/
- LiveCodeBench leaderboard:https://livecodebench.github.io/leaderboard.html
- Terminal-Bench:https://www.tbench.ai/
- OpenAI GPT-5.5 / GPT-5.3-Codex 公告: https://openai.com/index/introducing-gpt-5-5/ / https://openai.com/index/introducing-gpt-5-3-codex/
- Hermes 4 技术报告:https://arxiv.org/pdf/2508.18255
- Hermes 4 405B HF 模型卡:https://huggingface.co/NousResearch/Hermes-4-405B
- Nous Research Hermes 4 公告(VentureBeat): https://venturebeat.com/ai/nous-research-drops-hermes-4-ai-models-that-outperform-chatgpt-without-content-restrictions
- OpenHands SWE-bench 论文(ICLR 2025)/ MLSys 2026 SDK 论文(仓库 release)
Observability / 平台来源:
- LangSmith 官方:https://www.langchain.com/langsmith/observability
- LangGraph time-travel 文档:https://docs.langchain.com/oss/python/langgraph/use-time-travel
- LangGraph Studio:https://www.langchain.com/langgraph
- AutoGen tracing 文档:https://microsoft.github.io/autogen/stable//user-guide/agentchat-user-guide/tracing.html
- AutoGen v0.4 公告(DevBlog):https://devblogs.microsoft.com/autogen/autogen-reimagined-launching-autogen-0-4/
- Jaeger v2 + OpenTelemetry:https://thenewstack.io/jaeger-v2-ai-observability/
Review / agent 闭环来源:
- Cursor Bugbot 主页:https://cursor.com/bugbot
- Cursor Bugbot Autofix blog:https://cursor.com/blog/bugbot-autofix
- Cursor 2026-04 release notes:https://releasebot.io/updates/cursor
- WorkOS Bugbot 实战 blog:https://workos.com/blog/cursor-bugbot-autoreview-claude-code-prs
- OpenHands GitHub Resolver: https://openhands.dev/blog/open-source-coding-agents-in-your-github-fixing-your-issues
- OpenHands Resolver releases:https://github.com/All-Hands-AI/openhands-resolver/releases
- Codex GitHub Action:https://github.com/openai/codex-action
Cost tracking 来源:
Cline GitHub README:https://github.com/cline/cline
Cline cost tracking 实测(Synthetic Futures): https://medium.com/synthetic-futures/i-tested-claude-code-vs-cline-and-spent-147-heres-what-actually-happened-6051d2be0068
Cline 已知 token 报告问题(issue #4584 / #7558): https://github.com/cline/cline/issues/4584 / https://github.com/cline/cline/issues/7558
~/.claude/projects/local-workspace/memory/code-reviewer.md(GoalfyOA code-reviewer supervisor 服务说明)goalfy-sandbox-architecture.md(OTEL 全链路 + Loki/Tempo 章节)
文档撰写时间:2026-04-25 行数目标:500–800(当前 ~810,含核查批注) 撰写约束:所有 benchmark 数字带源;不允许编造;不重复"项目消歧"; 时效性敏感数字一律标"待核实"+ 查找路径,正式引用前请回访官方排行榜