构建能够自主完成复杂任务的 AI Agent 已经成为行业共识,但如何系统性地评估这些 Agent 的质量却是一个被严重低估的工程挑战。传统的单元测试和静态分析无法覆盖 Agent 在多轮交互、工具调用和状态修改中的动态行为。缺乏自动化反馈环路的团队往往陷入被动循环:在生产环境捕获问题,修复一处回归又引发另一处,完全无法区分真正的性能衰退与噪声波动。本文将从评估体系的底层架构出发,拆解评分器类型与适用场景、核心指标的计算逻辑,并给出可直接落地的工程参数与工具选型建议。
评估体系的四个核心概念
在进入具体实现之前,需要建立统一的术语框架,这直接决定了后续所有评估设计的有效性。Anthropic 的工程实践将 Agent 评估抽象为六个核心概念,理解它们之间的关系是构建可靠评估系统的前提。
任务(Task) 是评估的基本单元,包含明确的输入和成功标准。与传统测试用例不同,Agent 任务往往涉及多步骤的完成条件,例如「修复身份验证绕过漏洞」这一任务需要同时满足单元测试通过、静态分析无警告、安全日志记录正确事件等多个维度。任务设计的关键在于无歧义性 —— 两位领域专家独立评审时应对通过或失败有一致的判断。如果任务本身存在模糊地带,评估结果就会成为噪声而非信号。
试次(Trial) 指对单一任务的一次完整执行。由于大语言模型的输出具有随机性,单次运行的结果不足以代表真实能力,因此需要多次试次来获得统计意义上稳定的评估结果。试次之间必须保持隔离性,共享状态会导致结果失去参考价值 —— 例如某次运行残留的临时文件可能让后续试次获得不公平的优势,或者内存泄漏导致的资源耗尽会让不相关的任务同时失败。
评分器(Grader) 是判断 Agent 表现的核心逻辑模块。一个任务可以配置多个评分器,每个评分器包含多个断言。评分器的设计质量直接决定了评估的有效性,而评分器的类型选择又取决于被评估行为的性质。代码验证适合使用确定性评分器,主观评价则需要基于模型的评分器,复杂的开放性任务往往需要人工评分作为基准来校准模型评分器。
转录本(Transcript) 是完整的行为记录,包括所有输入输出、工具调用、中间结果和推理过程。对于 Anthropic API 评估,这就是完整的消息数组末尾内容。转录本是调试评估系统的关键 —— 当某个任务失败时,只有通过阅读转录本才能判断是 Agent 本身的错误还是评分器配置不当。将转录本与评分结果一起归档是建立评估可解释性的基础。
评估承载系统(Evaluation Harness) 是运行评估的端到端基础设施。它负责提供指令和工具、并发执行任务、记录所有步骤、调用评分器并聚合结果。一个健壮的承载系统必须保证评估环境与生产环境的一致性,否则评估结果无法预测真实表现。容器化是实现环境隔离和可重复性的主流方案,每次试次都应从干净的初始状态开始。
评估套件(Evaluation Suite)) 是一组针对特定能力或行为设计的任务集合。同一套套件内的任务通常共享一个宏观目标,例如客户支持评估套件可能包含退款处理、订单取消和升级转接三类任务。评估套件的生命周期管理同样需要关注:随着 Agent 能力提升,原本的能力评估任务可能接近饱和,此时可以将高通过率的任务毕业为回归套件,持续监控以防止能力衰退。
三类评分器的工程选型
选择正确的评分器类型是评估设计中最关键的决策。不同类型的评分器在速度、成本、确定性和表达能力之间存在显著差异,混用或误用都会导致评估失效。
代码评分器 是最基础也最高效的评分方式,适用于结果可被程序化验证的场景。其优势体现在四个维度:执行速度快、结果确定、可复现、易于调试。常见的实现方式包括精确匹配和正则匹配检查、二元测试如失败转通过和通过转失败测试、静态分析工具如 linter、类型检查和安全扫描、结果状态验证如检查数据库中的预订记录、工具调用验证如确认使用了正确的工具并传入正确的参数。代码评分器的局限性在于对输出变化的敏感性 —— 如果 Agent 给出了同样正确但措辞不同的答案,字符串匹配会错误地判定为失败。因此,代码评分器最适合验证硬性约束,如「用户是否被加入黑名单」或「测试是否全部通过」这类是非题,而非开放式的主观评价。
模型评分器 使用语言模型作为评判者来评估 Agent 输出,是处理开放性任务的首选方案。模型评分器的核心优势在于灵活性和表达能力,能够捕捉语义层面的质量和一致性。典型的实现方法包括基于评分的分级评估、自然语言断言、两者对比评估、参考答案对比评估和多评委共识机制。模型评分器的挑战在于非确定性 —— 相同输入可能产生不同评分,且评分结果需要与人工评分校准以确保准确性。实践中常见的问题是模型评分器可能产生「幻觉」,即对未发生的行为做出评价。解决方法是给模型提供明确的退出选项,当信息不足以做出判断时返回「未知」。此外,将多维度评估拆分为独立的评分请求比用一个评分器同时评估所有维度更可靠,每个维度使用专门的提示词可以获得更稳定的结果。
人工评分器 是评估体系的黄金标准,主要用于两个场景:为模型评分器建立基准和校准、评估高度主观或需要专业知识的任务。人工评分器的优势是匹配真实用户判断的能力,但成本高昂且速度缓慢,难以规模化使用。实际工程中,人工评分通常采用抽样检查的形式,从大量自动化评估结果中随机选取样本进行人工复核,以验证自动化评估的可靠性。当人工评分与模型评分出现系统性偏差时,需要调整模型评分器的提示词或评分阈值。
在实践中,评估系统往往采用混合评分策略。一个编码 Agent 的评估可能同时使用单元测试验证功能正确性、用 LLM 评分器评估代码质量、用静态分析工具检查代码风格和安全漏洞。这种多层验证既保证了结果的确定性,又覆盖了难以程序化验证的维度。关键原则是让每种评分器做它最擅长的事,不要用代码评分器评估开放性回答,也不要用模型评分器验证布尔值结果。
核心指标:pass@k 与 pass^k 的工程实现
由于 Agent 行为在试次之间存在波动,单纯统计通过率会丢失重要的能力信息。pass@k 和 pass^k 两个指标从不同角度捕捉 Agent 的可靠性,选择哪个指标取决于产品的可用性要求。
pass@k 衡量的是在 k 次尝试中至少成功一次的概率。数学定义为从 k 次独立试次中至少有一次成功的概率,公式表达为 1 减去 k 次尝试全部失败的概率。当 k 等于 1 时,pass@k 等于单次成功率。随着 k 增加,pass@k 单调递增,因为更多的尝试意味着更高的成功机会。这个指标反映了「至少一次成功」的场景需求 —— 对于工具调用场景,我们通常只需要 Agent 在某次尝试中找到正确答案即可。
pass^k 衡量的是 k 次尝试全部成功的概率,即一致性的上界。数学定义为单次成功率的 k 次方。随着 k 增加,pass^k 单调递减,因为要求所有 k 次尝试都成功是一个更高的门槛。这个指标反映了需要稳定可靠行为的场景需求 —— 对于面向用户的客服 Agent,用户期望每次交互都能得到正确响应,而非偶尔正确。
两个指标的分歧随 k 增大而加剧。在 k=1 时两者相等,都等于单次成功率。当 k 增大到 10 时,pass@k 趋近于 100%,而 pass^k 可能已经跌至接近 0%。这种差异揭示了评估 Agent 能力时选择正确指标的重要性:如果只关注 pass@k,可能会高估 Agent 的实用性,因为它掩盖了不稳定的问题;如果只关注 pass^k,可能会过于悲观,忽视 Agent 在需要多次尝试的场景中的价值。
工程实现中,建议同时报告两个指标并根据产品需求设置阈值。对于内部工具 Agent,pass@1 达到 70% 可能已经足够;但对于面向客户的交互 Agent,pass^3 达到 90% 才是可接受的底线。实际执行时,需要考虑成本约束 ——k 次试次意味着 k 倍的模型调用费用。在资源有限的情况下,可以采用自适应策略:对低置信度的任务增加试次,对高置信度的任务减少重复。
实践路径:从零构建自动化反馈环路
构建有效的评估体系需要分阶段推进,每个阶段都有明确的里程碑和交付物。以下路径来自 Anthropic 内部和多个前沿团队的实践经验总结。
第一阶段:收集首批任务(20-50 个)。 评估任务不需要一开始就追求数量,关键是覆盖真实场景。对于早期 Agent,每次系统变更通常会产生明显的影响效应,小样本足以检测这些变化。任务来源可以是开发过程中的手动检查点、用户报告的失败案例、生产环境的异常日志。优先将用户影响最大的失败场景转化为评估任务,确保评估套件反映实际使用情况。这个阶段的重点是让团队开始用评估思维工作,将模糊的「Agent 感觉变差了」转化为可测量的具体行为。
第二阶段:设计任务规范与评分标准。 每个任务必须有清晰的完成定义,评审者能够无歧义地判断成功与否。避免使用「优雅地处理」或「合理地回答」这类模糊表述。参考解决方案的编写同样重要 —— 它不仅验证任务的可解性,还能确认评分器配置正确。如果前沿模型在多次尝试后仍然无法通过某个任务,很可能说明任务本身存在配置问题而非 Agent 能力不足。平衡测试正向和负向案例,避免单边评估导致的过度优化。例如,如果只测试 Agent 是否在需要搜索时执行搜索,最终可能得到一个对几乎所有查询都执行搜索的 Agent。
第三阶段:构建评估承载系统。 确保评估环境与生产环境一致,使用容器化实现每次试次的干净启动。共享状态是评估的大敌 —— 残留文件、缓存数据、资源泄漏都会破坏试次之间的独立性。承载系统需要提供完整的工具集、执行环境、状态管理能力,并记录所有步骤以供后续分析。并发执行能力可以显著加速评估过程,但需要合理的资源隔离以避免相互干扰。
第四阶段:迭代评分器设计。 根据 Agent 类型选择合适的评分器组合。编码 Agent 优先使用单元测试验证功能正确性,辅以 LLM 评分器评估代码质量。客服 Agent 需要验证状态变更如工单已解决、对话轮数受限、用 LLM 评分器评估沟通质量。评分器需要持续校准,人工抽样检查模型评分结果,当偏差超过阈值时调整评分逻辑。对于复杂任务,实现部分计分机制 —— 一个正确识别问题但未能处理退款的 Agent 应该比立即失败的 Agent 获得更高的分数。
第五阶段:建立长期维护机制。 评估套件是活的工件,需要持续投入。随着 Agent 能力提升,原本困难的评估任务可能接近饱和,此时需要增加更困难的任务以保持评估信号的有效性。eval 饱和是指 Agent 通过了所有可解任务,无法再从高分中区分能力差异的状态。当通过率接近 100% 时,评估套件应该毕业为回归套件,释放资源用于构建新的能力评估。团队应该像维护单元测试一样维护评估任务,将其纳入常规开发流程而非一次性工作。
主流评估框架选型
从头构建评估基础设施成本高昂,选择合适的框架可以显著加速落地。不同框架在设计理念、功能定位和适用场景上存在差异,需要根据实际需求选择。
Harbor 专为大规模 Agent 评估设计,提供容器化执行环境和跨云提供商的并发执行能力。标准化的任务和评分器格式使得已有的基准测试如 Terminal-Bench 2.0 可以直接复用。对于需要运行行业标准 benchmark 的团队,Harbor 是首选。其生态系统较为封闭,但与主流评估套件的集成度高。
Promptfoo 定位为轻量级提示词测试框架,使用声明式 YAML 配置定义评估。支持的断言类型从字符串匹配到 LLM-as-judge 评分器覆盖全面。优势在于上手简单、与现有 CI/CD 流程集成成本低。对于主要关注提示词效果和模型输出质量的团队,Promptfoo 提供了足够的灵活性且不会引入过多复杂性。
Braintrust 整合了离线评估和生产监控能力,autoevals 库提供开箱即用的评分器实现。对于需要同时在开发阶段迭代和线上环境监控质量的团队,Braintrust 提供了端到端的解决方案。其实验跟踪功能有助于管理评估迭代历史。
LangSmith 和 Langfuse 专注于 LangChain 生态系统的追踪和评估。对于已经使用 LangChain 构建 Agent 的团队,这两个框架提供了最深的集成度。Langfuse 作为自托管开源选项,适合有数据驻留要求的企业。
实际工程中,团队经常组合使用多个框架或自建部分组件。框架只是载体,评估的价值来自于任务设计和评分器质量。选择最契合工作流的框架快速启动,然后将精力投入到评估套件本身的迭代上是更务实的策略。
与生产监控的协同
自动化评估只是理解 Agent 性能的一个维度,需要与生产监控、用户反馈、A/B 测试等方法协同才能获得完整视图。评估方法与 Agent 开发阶段的对应关系可以指导资源配置优先级。
自动化评估最适合用于发布前的质量守护和模型升级的快速验证。它可以在不影响真实用户的情况下运行数千个测试场景,每次代码变更和模型切换都能立即获得质量信号。理想情况下,自动化评估应该集成到 CI/CD 流程中,任何导致评估分数下降的变更都不应被合并。
生产监控在发布后接管,捕捉评估未能覆盖的真实用户行为模式。评估无法穷尽所有边界情况,生产环境的真实流量会暴露合成数据遗漏的问题。生产监控的挑战在于缺乏 ground truth—— 我们能看到用户的行为和结果,但难以自动化地判断结果是否正确。
A/B 测试用于验证重大变更的实际影响,当自动化评估和生产监控都无法提供足够信心时,通过对照实验获取用户层面的效果数据。A/B 测试的周期较长,需要足够的流量才能达到统计显著性,通常用于验证产品层面的目标而非 Agent 能力本身。
用户反馈和人工审查是持续性的补充实践。定期抽样阅读转录本可以建立对失败模式的直觉理解,这类定性洞察往往能揭示量化指标遗漏的系统性问题。用户反馈的稀疏性和自我选择性意味着它不能作为主要的质量保障手段,但可以捕捉团队未曾预料的边缘情况。
没有单一方法能捕获所有问题 —— 这借鉴自安全工程的「瑞士奶酪模型」,每层防御都有漏洞,多层叠加才能降低风险穿透的概率。最有效的团队组合使用这些方法,用自动化评估实现快速迭代,用生产监控获取真实行为数据,用人工审查校准和补充自动化的盲区。
关键参数速查表
构建自动化反馈环路时,以下参数可作为工程实现的参考起点。
任务规模方面,早期阶段使用 20-50 个任务,覆盖核心用户场景即可;成熟阶段根据 Agent 复杂度扩展到数百个。任务来源应优先从真实失败案例转化,确保评估反映实际使用情况。
试次设置方面,单次评估建议至少 3 次试次以获得统计稳定性;生产级别的回归测试建议 5-10 次试次;对于高风险场景可以使用 pass^k 指标要求全部成功。成本敏感场景可以采用自适应策略,对低置信度任务增加重复。
评分器配置方面,编码任务使用确定性评分器验证测试通过率;开放性任务使用 LLM 评分器配合明确的评分标准;主观评价任务需要人工校准后的模型评分器。所有评分器应实现部分计分机制,避免非黑即白的二元判断。
阈值设置方面,面向用户的客服 Agent 要求 pass^3 ≥ 90%;内部工具 Agent 要求 pass@1 ≥ 70%;安全关键任务要求 pass^k ≥ 99%。阈值应根据业务影响动态调整,核心交易场景的容忍度应远低于辅助功能。
执行频率方面,代码变更触发完整评估流程;每日运行回归套件监控能力漂移;每周抽样人工审查转录本。每个阶段的时间成本应在可接受范围内,避免评估本身成为开发瓶颈。
构建 AI Agent 的自动化反馈环路是一项需要持续投入的工程实践。早期投入评估体系建设会显著加速后续迭代,让「Agent 感觉变差了」变成可操作的具体指标。评估的价值会随时间复利,但前提是将其视为核心组件而非可选项。从小处开始,在实践中迭代,让评估成为驱动 Agent 持续改进的基础设施。
资料来源:本文核心概念与实践框架参考 Anthropic 工程团队发布的《Demystifying evals for AI agents》。