← 返回 2026-05-14

自动化智能体评估的实证研究 An Empirical Study of Automating Agent Evaluation

Kang Zhou, Sangmin Woo, Haibo Ding, Kiran Ramnath, Subramanian Chidambaram, Aosong Feng, Vinayak Arannil, Muhyun Kim, Ishan Singh, Darren Wang, Zhichao Xu, Megha Gandhi, Nirmal Prabhu, Soumya Smruti Mishra, Vivek Singh, Gouri Pandeshwar, Lin Lee Cheong 📅 2026-05-12 👍 3 2026-07-13 08:36
LLM 评估 代码生成 基准测试 工具使用 智能体评估

用评估技能+六阶段流水线让 Claude 自动为任意 agent 生成可执行的评估代码

前置知识

LLM-as-a-Judge(LLM 评判)

用一个大语言模型作为裁判,对另一个模型(或 agent)的输出打分或分类。常见做法是构造一个 prompt,把待评估的输入/输出塞进去,让 judge 模型返回一个分数或 A/B 选择,例如 G-Eval 用 chain-of-thought 提升与人类评分的相关性。优势是可扩展、便宜;缺点是容易受 prompt 措辞、长度偏好影响,且单点决策不可解释。

EvalAgent 生成的评估代码里大量使用 LLM-as-Judge(GEval)。理解其能力边界和常见陷阱(关键词启发式 vs 语义评估)才能看懂本文的定性分析。

OpenTelemetry / OTEL Trace(执行轨迹)

OpenTelemetry 是一个跨语言的可观测性标准,它把一次 agent 运行记录成一棵 span 树,每个 span 包含 operation 名、起止时间、属性(key-value)、嵌套事件等。本文的 agent 跑完后会被 Traceloop 这种库自动埋点,导出 JSON 格式的 span 列表,存到 ./data/trace/ 供后续评估。

EvalAgent 的核心创新是「trace-based evaluation」——它从真实运行时数据里抽取出工具调用、错误恢复、决策序列等行为信号,而不是只看 agent 的最终输出文本。这跟只看代码或只看答案的传统评估有本质区别。

DeepEval 评估框架

一个开源的 LLM/Agent 评估库,提供 G-Eval、AnswerRelevancy 等内置指标和 BaseMetric 基类,让用户继承后实现 measure() / a_measure() 即可自定义指标。它内部用 LiteLLM 适配多种模型 provider(包括 AWS Bedrock),但需要正确的 "bedrock/" 前缀才能调通。

EvalAgent 默认用 DeepEval 实现 LLM-as-Judge 指标。本文 14/40 失败里有 9 个是 Sonnet 生成代码时没正确处理 DeepEval 的 async_mode,导致 measure 缺失对应的 a_measure 协程——理解这个细节能看懂失败分析章节。

Pairwise Comparison(成对比较)与 Thurstone 法则

不直接给评估对象打绝对分,而是每次拿 A、B 两个方案比较哪个更好。心理学里的 Thurstone 法则证明:在缺乏标定尺度的领域,相对判断比绝对打分更稳定、更易达成一致。LMArena 等就是这套思路。本文的 meta-evaluator 走 agentic 路线,可以读多个文件、跑 shell 工具做多步审查,而不只是单 prompt 给答案。

本文的 5 维度权重打分(URF 15%、MR 30%、CQC 25%、PQ 15%、PCA 15%)就是建立在 pairwise 基础上;理解为何「相对判断更可靠」能解释为什么需要 agentic meta-evaluator。

研究动机

随着 AI agent 进入代码生成、科学发现、金融分析等高风险场景,如何可靠地评估它们成为新的瓶颈。和 LLM 评估(看单轮输出质量)不同,agent 评估必须审视执行轨迹里的「推理步骤→工具调用→错误恢复→状态转移」整条行为链——只看最终答案不够,因为正确答案可能掩盖了错误的推理过程(Lightman 等人 2023 已论证),而失败输出也可能源自健壮的错误处理。当前业界普遍把评估逻辑硬编码到 agent 代码里(DeepEval、Langfuse 的常见做法),导致评估行为在开发环境和生产环境之间漂移。手工设计评估标准、为每个 agent 写埋点、逐条 trace 检查失败原因,代价高昂且需要领域专家。当用户拿着一个新 agent 问「帮我评估一下」时,方法论层面的能力几乎为零。

本文的目标是本文要解决的是「评估生成」(evaluation generation)问题:给定一个 agent 的源代码和执行轨迹,自动产出完整的评估制品——评估准则、可执行评估代码、可读的诊断报告。具体可量化目标有两个:第一,把端到端的评估成功率(Eval@1)从基线的 15–35% 提升到 60% 以上;第二,在 5 维度成对比较上拿到 80% 以上的胜-平率,并让人工专家 80% 以上的对比中偏好生成结果。

与已有工作不同的是,现有 LLM-as-a-Judge(Zheng 2023)和 agentic judge(Zhuge 2024、He 2025、Kim 2025)都把评估当作「已经知道评什么、给个分数」的下游任务,假设评估准则已经存在。本文识别的 gap 是更上游的——设计「该评什么、怎么评」。作者实证发现,仅靠强代码能力(Claude Code + Sonnet 4.5)直接生成评估代码,会出现三种系统性失败:指标膨胀(每个 agent 平均塞 12+ 个零散指标,偏好延迟分位数和 token 计数等运维指标)、代码过度工程化(生成的评估代码比必要的 2–3 倍长、分散在 5–7 个文件、引入过早抽象)、plan-code drift(计划里写得很漂亮的语义评分标准,实现时退化为关键词计数)。EvalAgent 的独特切入角度是:通用代码 agent 缺乏的不是写代码能力,而是评估领域的「领域知识」,因此通过 evaluation skills(程序化指令+可复用代码模板+动态 API 文档)把这种知识显式注入,而不是寄希望于模型自己悟出来。

核心方法

EvalAgent 的整体思路可以类比为「给一个资深评估工程师配一本操作手册」:通用 agent 已经会读代码、跑命令、写测试,但不知道「评估 agent」这个特定任务该用什么方法论、该踩哪些坑、该用哪些工具的当前 API。EvalAgent 把这些知识编码成一组「评估技能」(evaluation skills),并在一条 6 阶段流水线上按需加载——每个阶段只调入相关的技能片段,避免上下文膨胀。具体而言,流水线依次做评估规划(生成结构化 plan)、测试用例生成(JSONL)、agent 埋点(OTEL/Traceloop)、轨迹收集与处理、评估代码生成(DeepEval 集成)、报告输出。核心直觉是:与其让模型一次性 end-to-end 输出所有制品,不如用 skills 把每一步「该看什么、该写什么、该避免什么」先验化,同时用 Context7 在代码生成阶段实时拉取最新 API 文档,解决训练数据陈旧导致的 API 漂移。

EvalAgent 的核心创新是「把评估领域知识显式编码为可加载的 evaluation skills」,而不是依赖模型隐式学会。这与已有工作有本质区别:(1) 相比纯 LLM-as-Judge(Zheng 2023、Kim 2023),EvalAgent 不是「给定一个评分标准判分」,而是先生成评分标准——这是更上游、更难的任务;(2) 相比已有 agentic judge(Zhuge 2024、Chen 2025),EvalAgent 不是直接给 agent 行为打 verdict,而是动态生成「针对该 agent 的整套评估流水线」,包括指标定义、可执行代码、报告;(3) 相比已有 agent 评估框架(DeepEval、RAGAS、Langfuse)需要用户手工配置指标,EvalAgent 把「指标选择+代码实现+报告输出」全自动化。具体来说,skills 包含三类内容:程序化指令(如「先做最小可用版本、验证库 API 再写代码、严格按 plan 不超范围」)、可复用代码与模板(plan 模板、report 模板、OTEL 解析和 DeepEval 集成的代码模式)、动态资源(通过 Context7 拉取 DeepEval/LiteLLM/Bedrock 的最新签名)。消融实验(Table 9、Table 10)直接证明:去掉 skills,Eval@1 从 65% 跌到 30%;去掉 Context7,Sonnet 4.5 的 Eval@1 从 65% 跌到 20%,下降 45 个百分点。

方法步骤详情

EvalAgent 的 6 阶段流水线完整步骤如下,每一步只加载相关 skills,遵循 progressive disclosure 原则。**阶段 1 评估规划**:输入是 agent 源码、OTEL 轨迹、用户需求;操作是调用 planning skill 和 plan 模板,输出结构化 Markdown plan(包含 agent specification、2–4 个聚焦指标及评分 rubric、测试场景、技术栈)。**阶段 2 测试用例生成**:输入是阶段 1 的 plan;操作是按 plan 列出的场景合成 JSONL 测试集,每条含 test_id、scenario、query、description、expected_behavior;输出 test_cases.jsonl(该阶段可替换)。**阶段 3 agent 埋点**:输入是 agent 源码;操作是用 Traceloop.init 加几行 OTEL 埋点(Code 2 示例),disable_batch=True,导出到本地 4318 端口。**阶段 4 轨迹收集与处理**:输入是运行 agent 产生的 OTEL JSONL;操作是 trace processor 过滤出 traceloop.*/gen_ai.*/http.* 等 agent 相关 span,抽取 operation 名、输入/输出、提示/补全、工具元数据、耗时;输出紧凑的 per-trace JSON 制品。**阶段 5 评估代码生成**:输入是 plan + 抽取后的 trace;操作是调用 code generation skill(要求「先做最小可用版本、严格按 plan、避免过度工程」),结合 trace 解析和 DeepEval 集成的 code patterns,通过 Context7 拉取最新 API;输出三类制品——指标实现类(确定性检查 + LLM-as-Judge)、评估 orchestrator、依赖清单。Code Quality 约束:200–400 LOC、2–4 文件、无未用导入。**阶段 6 报告输出**:输入是评估运行结果;操作是按 report 模板填四段——执行摘要(测试规模/成功率/关键强弱项)、分指标分析、失败根因分析(含具体文件:行号引用)、优先级建议。EvalAgent 基于 Claude Code v2.1.92,骨干为 Sonnet 4.5,集成 DeepEval,实时查询 Context7。

技术新颖性

技术新颖性体现在三个层面。第一,**抽象层面**:把 evaluation generation(评估生成)和 evaluation judgment(评估判断)显式分开——前者更上游、要求设计能力,后者只要求判定能力。已有工作几乎都只做后者,本文首次把前者作为系统性问题处理。第二,**方法论层面**:evaluation skills 是一种「可重用的领域知识包」,把程序化指令+模板+代码 pattern+动态文档统一在同一抽象里,并通过 progressive disclosure 控制上下文。这比 prompt 工程(脆弱、不可复用)和微调(成本高、难更新)都更灵活。第三,**评测层面**:本文第一次为「评估自动化系统」建立 benchmark(AgentEvalBench:20 个真实 agent × 5 测试场景 × 2 类需求),并提出 Eval@1 指标——它比 Pass@1 更严格,要求代码不仅能跑,还要产出非平凡、有意义的评估结果(明确排除常量/全零指标、跑在 mock 数据上、把预测当 ground truth 这三种伪成功)。这给整个子领域提供了可复现的评估基座。

EvalAgent pipeline. EvalAgent maps agent code and user requirements to an executable evaluation workspace and actionable report through a six-stage process: (1) evaluation planning, (2) test case generation, (3) agent instrumentation, (4) trace collection and processing, (5) evaluation code generation and execution, and (6) reporting with actionable recommendations. Evaluation skills guide each stage.
Figure 1: EvalAgent pipeline. EvalAgent maps agent code and user requirements to an executable evaluation workspace and actionable report through a six-stage process: (1) evaluation planning, (2) test case generation, (3) agent instrumentation, (4) trace collection and processing, (5) evaluation code generation and execution, and (6) reporting with actionable recommendations. Evaluation skills guide each stage.
Meta-evaluation framework. The agentic meta-evaluator performs pairwise comparisons between two approaches. (Left) Shared context and approach-specific artifacts. (Center) Evidence-grounded judgment across five weighted criteria with anti-length bias. (Right) Weighted aggregation yielding the final winner.
Figure 2: Meta-evaluation framework. The agentic meta-evaluator performs pairwise comparisons between two approaches. (Left) Shared context and approach-specific artifacts. (Center) Evidence-grounded judgment across five weighted criteria with anti-length bias. (Right) Weighted aggregation yielding the final winner.

实验结果

核心实验围绕 2×2 因子设计(Haiku 4.5 / Sonnet 4.5 × 通用 / 具体需求)、4 个基线(B1 LLM-Singleturn、B2 Agent-Sourcecode、B3 Agent-Onestage、B4 Agent-Twostage)展开,全部跑在 AgentEvalBench 的 20 个 agent × 2 类需求 = 40 个评测对上。**主结果(Table 5)**:EvalAgent 在 5 维度成对比较上对所有基线、两种骨干都拿到 84–100% 的胜-平率;Eval@1 上 Sonnet 4.5 达到 65.0%(vs B4 30.0%、B3 35.0%、B2 60.0%、B1 17.5%),Haiku 4.5 达到 62.5%(vs B4 32.5%、B3 17.5%、B2 45.0%、B1 15.0%)。其中 B2(只看源码不看 trace)的 Eval@1 数字偏高(最高 60%)的原因被作者指出——它经常跑在 unit test stub 上而非真实 agent 行为,属于伪成功,**trace 才是真实质量的试金石**。**消融发现 1(Trace 价值,Table 7)**:B3 vs B2 的胜-平率 73–77%,Metric Relevance 维度最高 80%,说明 trace 让指标能评估「agent 实际干了什么」,但代价是 Eval@1 从 60% 降到 35%(解析复杂度)。**消融发现 2(Plan 的两面性,Table 8)**:无结构化的 plan-then-implement (B4) 反而输给 one-stage (B3)——B3 vs B4 胜-平率 73.8%,Sonnet 4.5 下 B4 产生 4.4× 更长的 plan、6.6× 更长的代码、却换来类似的 Eval@1。B4 靠更多异常处理避免了崩溃,但经常产出全零指标(trace 格式不匹配)。**消融发现 3(Skill 价值,Table 9)**:固定 prompt 要实现 k∈{1,3,5} 个指标,EvalAgent 在 5 指标时 Eval@1 升到 65%,B3 跌到 30%、B4 到 40%——多指标时共享 trace 解析被 factors out,失败概率不叠加。**消融发现 4(Context7 价值,Table 10)**:Sonnet 4.5 启用 Context7 后 Eval@1 从 20% 涨到 65%,绝对提升 45pp;Haiku 4.5 提升 15pp(62.5%→47.5%)。原因是缺少 Context7 时模型写出 `us.anthropic.claude-sonnet-4-...` 而非正确的 `bedrock/us.anthropic.claude-sonnet-4-...`,DeepEval 报缺 a_measure() 协程错。**定性发现(Table 11)**:EvalAgent 平均 289 LOC、2 文件、0 死代码;B1 694、B2 1068、B3 844、B4 1902(EvalAgent 的 2.4–6.6×)。基线 35–75% 的 agent 退化为关键词启发式(regex 数动词、硬编码词典),EvalAgent 仅 20%——它使用 GEval 做语义评估。B4 在 11/20 agent 上生成未被引用的 report_generator.py 等死代码文件,EvalAgent 在 19/20 agent 上严格维持 2 文件模式。**人类对齐(Table 3)**:3 位专家对 40 对评估对比做 blinded pairwise 评判,Fleiss' κ=0.923(几乎完美一致),79.5% 偏好 EvalAgent(10.5% 平,10.0% 偏 B4);meta-evaluator (Opus 4.5) 与人类多数决的整体胜者一致率 97.5%(39/40),200 个维度级判断的一致率 75.0%(Gwet's AC1=0.687,Spearman ρ=0.617)。**元评估者一致性**:跨模型(Opus 4.5 vs Sonnet 4.5)一致率 86.6%;同一模型三次独立运行的三方一致率 76.3%、配对一致率 84.2%(远高于 33.3% 随机基线)。**失败分析(Table 12)**:Sonnet 4.5 失败 14 例里 9 例是 DeepEval async_mode 陷阱(生成的 measure 缺 a_measure 协程),代码结构本身都正确,手动设 async_mode=False 即可;Haiku 4.5 失败 15 例里 6 例是 Python API 误用(Path.ctime()、dict(os.stat()) 等)、5 例是时间戳字符串算术——表明小模型存在能力门槛。

Meta-evaluation dimensions. Each dimension yields A wins, B wins, or Tie. When plans are unavailable, weights renormalize to URF (25%), MR (40%), CQC (35%).
Table 1: Meta-evaluation dimensions. Each dimension yields A wins, B wins, or Tie. When plans are unavailable, weights renormalize to URF (25%), MR (40%), CQC (35%).
AgentEvalBench inventory. 20 agents, 9 frameworks, 14 domains, 3 complexity tiers.
Table 2: AgentEvalBench inventory. 20 agents, 9 frameworks, 14 domains, 3 complexity tiers.
Human expert vs. meta-evaluator agreement on EvalAgent vs. B4.
Table 3: Human expert vs. meta-evaluator agreement on EvalAgent vs. B4.
Baselines. All agentic methods share identical tool access (e.g., file reading, code execution).
Table 4: Baselines. All agentic methods share identical tool access (e.g., file reading, code execution).
Main results. (a) Win-tie rates across 5 meta-evaluation dimensions. (b) Eval@1 (evaluation success rate) across 20 agents × 2 requirement types. (c) Efficiency.
Table 5: Main results. (a) Win-tie rates across 5 meta-evaluation dimensions. (b) Eval@1 (evaluation success rate) across 20 agents × 2 requirement types. (c) Efficiency.
Performance by requirement type. Results aggregated across Haiku 4.5 and Sonnet 4.5.
Table 6: Performance by requirement type. Results aggregated across Haiku 4.5 and Sonnet 4.5.
B3 vs B2: trace-based vs. source-code-only. Win-tie rates are reported for B3 over B2.
Table 7: B3 vs B2: trace-based vs. source-code-only. Win-tie rates are reported for B3 over B2.
B3 (direct code implementation) vs. B4 (plan-then-implement). Win-tie rates are reported for B3 over B4.
Table 8: B3 (direct code implementation) vs. B4 (plan-then-implement). Win-tie rates are reported for B3 over B4.
Eval@1 vs. metric count.
Table 9: Eval@1 vs. metric count.
Context7 ablation.
Table 10: Context7 ablation.
Artifact comparison across all 20 agents (generic requirements, Sonnet 4.5).
Table 11: Artifact comparison across all 20 agents (generic requirements, Sonnet 4.5).
Execution failure categorization.
Table 12: Execution failure categorization.
查看结构化数据
任务指标本文基线提升
AgentEvalBench 整体成对比较(Sonnet 4.5 骨干) Overall Win-Tie Rate EvalAgent 自身(vs B4):Overall 90.0%,MR 87.5%,CQC 92.5% B4 Agent-Twostage:5 维胜-平 60.0/87.5/92.5/83.8/61.3% 绝对提升 0–27.5pp,5 维平均提升约 13pp
AgentEvalBench 评估代码可执行性 Eval@1 Sonnet 4.5:65.0%(26/40);Haiku 4.5:62.5%(25/40) B4:30.0–32.5%;B3:17.5–35.0%;B2:45.0–60.0%;B1:15.0–17.5% 相对最强基线 B2 的 60% 提升 5pp,但 B2 数字含伪成功;相对同架构 B4 提升 32.5–35pp
人类专家偏好(盲评,n=40 对) Prefer EvalAgent 79.5%(ties 10.5%,baseline 10.0%) Agent-Twostage (B4):10.0% 胜出近 8 倍,Fleiss' κ=0.923 证明专家间几乎完全一致
技能消融(Sonnet 4.5,5 指标复杂度) Eval@1 65.0%(5 指标时反而上升) B3 Onestage 30%;B4 Twostage 40% 在 5 指标复杂度上比 B3 高 35pp、比 B4 高 25pp,且随指标数增加不退化
Context7 动态文档消融 Eval@1 Sonnet 4.5 启用 Context7:65.0%;Haiku 4.5:62.5% Sonnet 4.5 关闭 Context7:20.0%;Haiku 4.5:47.5% Sonnet 绝对提升 +45pp,Haiku +15pp,是单一最强干预
代码体量(20 agent 平均) LOC + 文件数 289 ± 67 LOC,2.0 ± 0.2 文件 B1 694/3.4;B2 1068/5.1;B3 844/5.4;B4 1902/8.6 比 B4 少 6.6× 代码、4.3× 文件,且 0 死代码 vs B4 的 29 个死代码实例
评估策略质量 LLM-as-Judge 占比(vs 关键词启发式) 65% agent 仅用 LLM-as-Judge(13/20),20% 同时使用 B1–B4 的关键词启发式占比 25–35% 把语义评估的占比从 25–45% 拉到 65%,验证 skill 引导远离浅层启发式
Meta-evaluator 跨模型一致性 Case-level Agreement Opus 4.5 vs Sonnet 4.5:86.6%;同模型三次运行三方一致:76.3%、配对:84.2% 随机三选一基线 33.3% 远高于随机基线 43pp+,证明 meta-evaluation 鲁棒不依赖具体模型

局限与改进

**作者承认的局限**:(1) 20 个 agent 仍可能没覆盖所有 agent 类型,特别是具身 agent、多模态 agent;(2) 所有实验都用 Claude 模型家族(Sonnet/Haiku/Opus),缺乏跨家族验证;(3) Eval@1 62.5–65.0% 意味着约 1/3 的生成评估仍需人工调试;(4) Meta-evaluation 本身主观性强,即使人类专家对 Plan Quality 的一致性也只到 Fleiss' κ=0.885、Plan-Code Alignment 0.700,比其他维度显著低。**我的额外观察**:(1) 失败分析(Table 12)显示 Sonnet 9/14 失败都是同一个 DeepEval async_mode 坑,作者估算「单修这一行 Eval@1 能到 87.5%」——这反过来暴露 EvalAgent 的 skills 还不完整,应当把「DeepEval 异步处理」做成强制 skill 而非留给模型自行处理;(2) AgentEvalBench 的 20 个 agent 平均 957 LOC、3.2 工具、145 事件(Table 2),但 adala_agent 高达 3900 LOC、9 工具、156 事件,最小的 ai_tic_tac_toe 只有 369 LOC——复杂度分布偏中等,可能不足以代表真实工业 agent;(3) B2 数字偏高是因为跑在 stub 数据上被 Eval@1 算为「成功」,这暴露 Eval@1 定义还需要把「使用真实 trace 数据」显式作为判据,否则会激励模型走捷径;(4) EvalAgent 自身基于 Claude Code 闭源系统,skills 模板细节也未完全公开(仓库只给了 D 节的 prompt 节选),可复现性受限。

独立分析的弱点

**弱点 1:Sonnet 9/14 失败集中在 DeepEval async_mode 这一个坑**——这是 skills 设计不够防御性的体现。改进方向:把 DeepEval 同步/异步处理封装成强制 skill(自动注入 `async_mode=False` 或自动补 a_measure 协程),作者估算单这一项修复就能把 Eval@1 从 65% 拉到 87.5%。**弱点 2:B2 跑在 unit test stub 上被 Eval@1 误判为「成功」**——当前 Eval@1 检查「能跑+非平凡输出」,但无法区分输出是来自 stub 数据还是真实 trace。改进方向:Eval@1 应额外要求 `actual_output` 字段非空且能溯源到 OTEL span 里的具体 gen_ai.* 事件,否则一律判失败。**弱点 3:人类对 Plan Quality 的一致性仅 0.885,Plan-Code Alignment 仅 0.700**——这两个维度的 rubric 描述偏抽象(Table 16、17),不同专家对「complete」「aligned」的理解差异大。改进方向:把 Plan Quality 拆成「结构完整度」(自动检查 section 是否齐全)+「指标可操作性」(每个 metric 是否给出具体 method 字段);把 Plan-Code Alignment 改成结构化检查——为每个 plan 里声明的 metric 提取其名,然后在代码里做 AST 匹配,统计对齐率。**弱点 4:20 个 agent 的多样性仍有限**——没有具身 agent、纯语音 agent、agentic 搜索类 agent。改进方向:下一版加入 SWE-Bench 风格 coding agent、Mind2Web 风格 web agent、τ-bench 风格客户服务 agent,把跨领域泛化作为硬指标。**弱点 5:所有实验在 Claude 模型族上做**——当用户换用 GPT-5、Gemini、Qwen3-Coder 时,evaluation skills 是否同样有效未知。改进方向:在附录里加跨家族 1-shot 复现实验,并提供抽象 skill 接口让用户替换 DeepEval 集成代码。**弱点 6:6 阶段流水线是串行而非闭环**——生成的评估报告只交付给人类,不回流给 agent 做改进。改进方向:增加第 7 阶段「agent 改进建议闭环」,把报告里的优先级 P1 建议自动转成对 agent 源码的 patch。

未来方向

**作者提出的方向**:(1) 闭环迭代——让评估反馈直接驱动 agent 改进,而不只是产出报告;(2) 领域化 skill 库——为对话系统、具身 agent、coding assistant 各建一套 evaluation skills;(3) 更复杂的测试数据生成——从简单合成走向对抗性、组合式场景构造;(4) 通用 trace 格式标准——目前 OTEL 属性名各家 agent 不统一,需要 schema 收敛;(5) 扩充 AgentEvalBench 到 50–100 个 agent;(6) 更细致的 meta-evaluation 方法——Plan-Code Alignment 维度的人间一致性还有 0.700 的提升空间。**基于成果可延伸的方向**:(1) 把 EvalAgent 做成 IDE 插件,agent 作者写完代码后一键产出 CI 集成的 eval 套件;(2) 把 evaluation skills 与 Model Context Protocol 结合,让 skill 可以被任何 agent 框架(不只是 Claude Code)按需加载——这能避免对单一编程助手的依赖;(3) 用 EvalAgent 反向评估 EvalAgent 自己(即 self-meta-evaluation),看「自动评估一个评估系统」是否可行;(4) 结合 trajectory attribution(Code 15 已展示的 agent 归属)做多 agent 系统的归因评分,把贡献分配到具体子 agent;(5) 探索 evaluator-evaluator 网络——用 N 个不同的 meta-evaluator 取众数,进一步降低主观性。

复现评估

**开源情况**:代码与 AgentEvalBench 已开源在 https://github.com/awslabs/Agent-EvalKit(论文反复提到),包含 baseline 实现、skills 模板节选、prompt 示例。**数据资源**:AgentEvalBench 包含 20 个真实 agent(涵盖 LangChain、LangGraph、LlamaIndex、CrewAI、Strands、Agno、Adala、MCP/Bedrock、Custom 9 个框架、14 个应用域、3 个复杂度档),平均 957 LOC,每个 agent 配 5 个测试场景和 2 类评估需求。**算力需求**:EvalAgent 自身基于 Claude Sonnet 4.5,每次生成评估代码约 4 分钟、2,095K tokens(Table 5c),按 AWS Bedrock Sonnet 4.5 定价约 $1.94/case;20 agent × 2 需求 × 5 条件 ≈ 200 次生成 = ~$400/单次完整实验。Meta-evaluation 用 Opus 4.5 作为 judge 又是一笔费用。**复现难度**:中等偏难——主体框架已开源,但 (a) skills 完整 prompt 模板在 D 节只给了节选、完整版可能在仓库 README;(b) OTEL 轨迹的具体采集方式需要读者根据每个 agent 单独跑一遍 Traceloop;(c) baseline B1–B4 的 prompt 模板公开在 D.1,但 temperature、tool-call 限制(50 步)等超参需要仔细核对;(d) Context7 的接入和 license 状态需自确认。**实践建议**:先跑 `app/cli crawl` 类似流程抓一个 agent 的 trace,按 D 节提示配置 Claude Code + Context7,按 README 启动 EvalAgent;如果有 DeepEval 经验,10× 比对一次完整 pipeline 应该 1–2 天可走通。