【翻译】关于智能体评测(Agent Evals)你需要知道的一切
我翻阅了关于智能体评测(Agent Evals)的 46 篇核心资料 :")
为什么要做这件事
我曾开发过一个在自己写的 Evals 测试集中得分高达 95% 的智能体。但直觉告诉我系统明显存在缺陷——在尚未排查出具体出错的 Trace 之前,我就隐约感受到了异常。
Evals 的核心价值,正是将这种工程师的直觉(Gut Feeling)具象化为清晰的监控看板。
指标为何会粉饰太平?到底该如何科学地评测一个智能体?
当我试图寻找速成方案、期盼能直接套用某种现成的 A → B → C 标准化流程时,现实却泼了冷水:根本不存在这种银弹。
迷雾背后的真相
在顺着资料抽丝剥茧的过程中,我研读了大量博客(特别是 Evals 领域的权威 hamel.dev)、常见问答、学术论文与付费课程,但它们的内容零散割裂。
我花费了大量时间去沉淀对 Evals 的技术直觉,而你也必须经历这一过程。审阅真实 Trace 是建立工程直觉的必经之路,没有任何一篇文章能够替代亲自动手排查的工作量。
但你当下或许没有充裕的时间去逐一研读。或许某个线上 Eval 正在生产环境报错,急需你今晚排查修复。
无论处于哪种境遇,你都需要一张全局知识图谱——先进行广度优先搜索(BFS)建立认知框架,再按需沿着链接深入钻研。这也是我撰写本文的初衷。
本文的定位与边界
本文梳理了智能体评测领域核心的 80/20 法则:涵盖胜任日常工作所需的核心要素,剔除冗余干扰。
这里不会罗列每一种细枝末节的技巧。若想深入某个特定阶段,文末附带的完整参考清单提供了深度钻研的入口。读完本文,你将对自研智能体的后续演进路径拥有清晰的行动指南。
为提供更具实操性的体验,我还构建了一个轻量级的交互式测试平台 loopbreak。该平台模拟了一个电影票务智能体,完整复现了本文提及的各类典型失效模式。阅读各章节时,可同步进入对应的关卡进行实测演练:
体验地址:https://loopbreak-eval.vercel.app
(本文亦可作为系统 Prompt 使用:将其输入你的智能体,并向其提问“我目前的实现存在哪些误区?”)

在 loopbreak 平台上审阅并判定真实 Trace
你当前处于哪一阶段?
开发团队通常面临两种典型场景:
- 智能体已上线生产环境,但无法厘清偶发失效的底层归因。→ 参见 Part 2
- 智能体仍处于研发期,尚未构建发布前系统化测试的标准路径。→ 参见 Part 3
在分流进入具体落地指南前,必须先厘清两个场景共用的核心概念。
Part 1:核心概念体系
Evals 是研发工作流的锚点(Anchor)
首先必须建立的核心认知是:Evals 必须作为研发流程的锚点。对智能体的每一次改动,都必须通过 Evals 的闭环检验。
Langfuse 将这一闭环定义为 AI 工程循环(AI Engineering Loop):
Trace(链路追踪)→ Monitor(线上监控)→ Build Datasets(数据集构建)→ Experiment(迭代实验)→ Evaluate(效果评估)
前两个环节用于洞察生产现状,后三个环节用于驱动开发迭代。闭环无须在立项第一天强行全量铺设。
上述循环是非常优秀的基础心智模型,但真实的工程闭环往往更为复杂:在构建智能体时,研发工作绝不仅限于运行评测,还涉及重构 Prompt、拓展 Tool 集合、修整 Memory 机制、调整 Harness 脚手架以及替换基础模型。因此更科学的架构是嵌套的双循环模型(Two Loops):

外层循环:构建智能体(Building The Agent)
1. 实施变更(Prompt、Tool、Memory、Harness 或 Model)
2. 发布交付
3. 观察生产环境行为
4. 决策下一轮改动
内层循环:Evals 评测引擎,嵌入在外层循环的核心节点中:
- 发布前:改动必须在黄金数据集(Golden Dataset, GDS)上全量回归。若破坏原有正常用例,严禁合并发布。
- 发布后:调阅真实 Trace,归纳新型失效场景,将其提炼为新的测试用例与判定规则。
由此,第 4 步的演进决策彻底脱离主观臆断,完全由内层评测所捕获的客观事实驱动。这就是“锚点”的真正含义。
LangChain 在其经典的 Harness Engineering 报告 中验证了外循环的价值:在底层模型完全不变的前提下,仅仅优化模型外围的调度脚手架(Harness),智能体在 Terminal Bench 2.0 上的得分便从 52.8 跃升至 66.5,排名从前 30 名开外飙升至前 5。
他们如何获知该改动哪些环节?答案只有一条:深入阅读 Trace。
多数团队陷入的路径误区
以下是推进 Evals 的理想演进阶梯,但绝大多数团队往往本末倒置,直接从第 5 步切入:
- 审查诉求 → 亲自阅读 Trace
- 大幅裁剪 → 大多数失效根本无须构建 Eval
- 极简规则 → Pass/Fail 判定,单一规则聚焦单一失效
- 加速闭环 → 沉淀每次改动均自动运行的测试集
- 最后再自动化 → 引入 LLM Judge
多数团队起手便尝试配置 LLM Judge 并设定诸如“帮助度(Helpfulness)”等模糊度量,这本质上是跳过了前 4 步基石的空中楼阁。
失效模式与误差分析(Error Analysis)
洞察评测指标的唯一途径,是亲自审阅智能体的实际输出。Hamel Husain 与 Shreya Shankar 在其评测指南中强调,误差分析是 Evals 体系中权重最高的工程活动。
在此提出严肃预警:在实践中你极易产生“使用 LLM 代替人工打标”的冲动。这是最严重的工程误区,不仅无法降低工作量,反而会因缺乏基准直觉而消耗更多排查时间。在评测认知层面,直觉绝不能被外包。
标准执行步骤:
1. 抓取约 100 条真实 Trace,导入到低摩擦、无跳转的信息流界面。若查阅阻力过高,打标质量将急剧衰减。
2. 为每条 Trace 标记 Pass 或 Fail,并用自然语言简述出错根因。在此阶段切勿预先设定抽象分类标签。
3. 前 30 条 Trace 必须由核心研发人员人工通读打标。
4. 归纳梳理打标备注,聚类合并为具体的失效类型并统计频次。
5. 当连续审阅 20 条 Trace 均未出现新失效类型时,即可停止扩充(依据 Langfuse 经验准则)。
在这一过程中,“帮助度不足”这种空洞的描述不会出现;取而代之的是诸如“工具调用报错但仍然对用户谎称退款成功”等具体具象的业务缺陷。这些沉淀下来的客观事实,才是系统真正的核心验收标准。
大幅精简:多数缺陷无须构建专用 Eval
完成失效分类后,清单中的绝大部分条目并不需要单独编写 Eval:
- 若调整 Prompt 能彻底杜绝该类问题,直接修复并结项即可。
- 若该项评分的高低根本不会改变业务决策(例如不会因此阻断部署发布),则无须纳入自动化追踪。
OpenAI Cookbook 中关于发票审查系统的案例极具代表性:其智能体在商户名称识别上的错误率高达 85%,但团队选择放任该缺陷,因为该字段错误完全不影响发票是否触发人工审计的后续决策。因此评测优先级必须严格遵循:先按发生频次排序,再按业务影响度过滤。
错误的输出只有在能够改变后续执行路径时,才具备拦截度量的价值。唯一的例外是硬性合规与输出格式要求,此类用例自立项第一天起就必须纳入强校验。
黄金数据集(Golden Dataset, GDS)
黄金数据集由真实用户输入及人工编写的期望输出构成。其基线应首先涵盖历史上曾经引发故障的真实缺陷样本。
在确定性校验层面,代码断言即是天然的单元测试;而在非确定性逻辑层面,黄金数据集则是具备模糊断言能力的集成测试套件。
数据集应涵盖核心业务主干、历史缺陷用例、已知的边界异常以及核心客户严禁故障的黄金链路。Anthropic 指出,起步阶段积累 20-50 个脱胎于真实故障的用例已完全足够支撑运转,关键在于执行成本必须足够轻量,确保在 CI/CD 中能随代码提交频繁运行。
Anthropic 将评测集划分为两层结构:
- 能力评测集(Capability Evals):题目难度偏高,初始通过率较低,用于驱动算法上限的攀升。
- 回归评测集(Regression Evals):用例通过率维持在接近 100%,专用于防范既有功能的性能倒退。
一旦能力评测中的用例能稳定通过,便应将其归档至回归评测集中。(这解释了行业数据维度的差异:Hamel 强调 70% 的通过率是健康的演进态势,而 Anthropic 强调接近 100%,二者分别对应了能力评测集与回归评测集。)
此外,评测集必须保持动态更新。停止吸收生产新缺陷的测试集,会逐步丧失代表性,最终导致评测虚高(95% 误区)的发生。
判定标准:严禁折中评分
判定标准必须为二元的 Pass 或 Fail,严禁使用 1-5 分制或 Likert 量表。中间评分(如 3 分)不仅难以形成客观共识,更会成为大模型敷衍判定的避风港。
优先采用代码规则进行判定。若智能体声称“已完成退款”,不应去校验其对话文本,而应直接查询数据库交易表的状态。对话文本仅反映智能体的说辞,底层数据库才记录其真实的执行动作。
单一评测应严格锚定单一维度的失效,切忌依赖单个评判器笼统给出一个 1-10 的综合分,否则指标波动时根本无法定位缺陷根因。
大模型作为裁判(LLM-as-a-Judge)
在搭建评测系统初期,应克制使用 LLM Judge 的冲动。应首先穷尽能够由代码逻辑实现的硬性校验;仅在确实需要依赖语意理解与复杂常识推断的场景下,再审慎引入大模型裁判。
即便是引入 LLM Judge,亦须保持判定范围的狭窄与聚焦:单次提示词仅验证一个具体问题,提供真实 Trace 作为 Few-Shot 示例,并允许裁判返回“不确定(Unknown)”。
必须警惕一个常见陷阱:将裁判模型与人类打标的一致率(Agreement Rate)直接等同于裁判的有效性。
假设在 100 条样本中仅有 10 条真实失效样本。若某个裁判模型将全部 100 条样本均盲目判定为合格,其表面一致率高达 90%,但该裁判在捕获系统缺陷方面实际毫无效用。
因此必须拆解跟踪两个核心指标:
- 真正率(True Positive Rate, TPR):在所有真实失效样本中,裁判能成功捕获的比例。
- 真负率(True Negative Rate, TNR):在所有正常样本中,裁判正确放行的比例。
即便一个裁判的 TPR 为 80%,TNR 为 90%,在上述场景下其整体一致率仅为 89%(低于盲目全过的 90%),但它成功拦截了 8 起关键故障,其工程实用价值远胜于表面高分但无鉴别力的无效裁判。
在工程落地上,宁可选用一个开销低廉、能够覆盖全量 Trace 的中等精度裁判,也胜过部署一个因调用昂贵而无法常规化运行的高精裁判。
稳定性考量:Pass^k 与 CI/CD 实践
高估智能体鲁棒性最普遍的原因,是在开发单次运行成功后便草率认定功能达标。由于大模型天然具备概率波动,单次执行成功并不能代表生产环境的期望可用度。
因此推荐引入 τ-bench 提出的 Pass^k 评测指标:
假设某个智能体处理特定业务退款的单次成功率为 80%:
- 若运行 3 次且只需任意一次成功(Pass@3),成功率高达 99.2%,数据表现优异。
- 但若业务场景要求连续 3 次运行必须全部成功(Pass^3),在独立运行假设下,整体达标率仅有 51.2%。
对于面向用户、严禁抖动的生产级应用,Pass^k 才是衡量系统工程可用性的客观标准。
此外,评测判定应解耦对特定 Tool 调用序列的严格匹配。复杂任务的求解路径并非唯一,评测重心应放在最终交付的状态结果上,而将调用 Trace 用作缺陷溯源的排查链路。
Part 2:落地方案 A(智能体已上线生产环境)
若智能体已承接线上流量,生产流量即是最高价值的评测来源:
- 全链路追踪:开启全量链路追踪(Tracing)。
- 人工通读:抽取约 100 条近期 Trace,核心研发人员亲自打标前 30 条。
- 聚类与清洗:归纳统计缺陷频次,通过调整 Prompt 彻底解决简单共性问题。
- 代码规则先行:为过滤后的关键缺陷逐一编写 Pass/Fail 判定代码。
- 按需补齐裁判:仅在代码无法覆盖的语意环节引入 LLM Judge,并严格校准 TPR 与 TNR。
- 扩充黄金集:将生产捕获的真实失效用例脱敏归档进 GDS。
- 持续监控与门禁:在 CI/CD 中结合 Pass^k 执行回归门禁,同时维持线上健康度监控。
线上监控关注维度:
- 代码级探针:格式合法性、PII 隐私脱敏、工具调用合规性、底层数据库写入状态。
- 在线裁判:输出是否忠实于工具返回结果(Grounding)、是否正面响应用户诉求。
- 用户行为信号:点踩反馈、频繁追问澄清、要求人工客服介入、关键链路流失。
- 运维与性能指标:Token 成本、端到端时延、首字生成延迟(TTFT)、单任务工具调用频次。
监控系统的使命是定位哪些 Trace 需要深入查阅,而 CI 系统则充当是否准予发布的阻断门禁。保持每周固定审阅 10-20 条新鲜生产 Trace 的工程习惯。
Part 3:落地方案 B(智能体处于立项研发初期)
在缺乏线上真实流量的冷启动阶段,应优先构筑初始评测集:
- 构建种子集:基于预期业务场景和已知历史缺陷构建 20-50 个核心任务。
- 设立绝对红线:为严禁违背的合规底线与格式要求编写强校验规则。
- 人工全量验算:执行智能体并由研发逐条通读校验输出质量。
- 小范围引入裁判:按需引入语意评判器并完成指标校准。
- 门禁流水线集成:配置 CI 自动化流水线,基于 Pass^k 进行重复验证。
- 默认开启追踪:在环境初始部署即接入 Tracing 基础设施。
无真实数据时的合成数据构建法:避免直接向大模型索要宽泛的问题列表,而应正交组合各业务维度(用户角色、操作意图、异常边界、对话情绪),将维度交叉组合映射为具体的合成会话。对于多轮交互智能体,可由另一智能体扮演具备隐藏诉求的仿真客户,最终以底层业务系统的数据库终态作为统一判定标准。
总结:破解 95% 得分陷阱
为何评测得分高达 95% 的智能体在生产环境中仍会频繁翻车?核心根因通常对应以下四类系统性漏洞:
- 黄金数据集失活:未将生产环境新浮现的边缘缺陷持续回流至测试集。
- 脱离业务终态:评测仅仅校验了智能体的“口头答复”(如判定“退款已完成”合格),却未核验底层服务是否真实落盘。
- 裁判盲目宽泛:LLM Judge 具备高一致率但极低 TPR,对大量隐蔽缺陷无感放行。
- 统计口径失真:指标仅衡量了 Pass@1 的单次通过率,忽略了多轮或严苛业务下的 Pass^k 鲁棒性。
落地的最小行动指南:
1. 抓取 100 条真实 Trace
2. 人工精读前 30 条
3. 聚类统计失效类型
4. 通过 Prompt 修复易消除的低级缺陷
5. 针对残留的最严重故障编写专用代码检查点
6. 接入 CI/CD 并持续度量
延伸技术:无需文本生成能力的判定模型(JEV)
TypeSafe 推出的 JEV 是一种专注于决策分类的特化模型(Decision Model)。输入 Trace 与明确的二选一或多选题,它直接输出置信度概率,不包含任何文本推理与解释。其推理开销极低,使得对生产全量 Trace 执行 100% 覆盖评测成为可能(Langfuse 已提供原生集成支持)。
在 2,000 封钓鱼邮件识别的实测基准中,若使用单一宏观问题提问,JEV 的准确率为 62.6%;而当拆解为五个具体的原子判断题时,准确率跃升至 95%。这一实测再次验证了本文倡导的核心准则:单一规则聚焦单一失效。
核心参考文献
精选必读前五篇:
1. Hamel Husain & Shreya Shankar: AI Evals FAQ
2. Langfuse: AI Engineering Loop
3. Anthropic: Demystifying Evals for AI Agents
4. Langfuse: Writing Good Evaluators
5. Eugene Yan: Product Evals in Three Simple Steps