想象一下,你正在建造一座宏伟的未来主义城市,其中的施工队伍不是人类,而是被称为“智能体”(agents)的超级智能机器人。这些智能体不仅仅是听从指令;它们拥有一个名为“技能”(skills)的特殊指令工具箱。把技能想象成一个可以下载的应用程序,它能教会一个机器人如何烤蛋糕、修理漏水的水管或创作一首诗。随着城市的成长,开发者们不断地添加新技能或更新旧技能。但问题在于,目前检查一项新技能是否奏效,就像是要求一个机器人“试着烤一个蛋糕”,然后让人类观察结果并说:“嗯,看起来不错!”这有点像通过观众鼓掌的程度来评判一场魔术表演,而不是检查兔子是否真的从帽子里出来了。这种方法既混乱又不一致,而且如果机器人在你观察时偷偷修正了自己的错误,你可能会认为这个魔术完美无缺,而实际上它原本是坏掉的。这篇论文通过引入一种全新的方式来测试这些机器人技能,这种方式公平、可重复且无法作弊,从而解决了这个混乱局面。
这篇论文介绍了一个名为 AEVAL(智能体评估,Agentic Evaluation)的新系统,它扮演着这些机器人技能的严格自动化裁判的角色。AEVAL 并没有让一个人类去观看演示,而是设置了一个“测试轨道”,每当开发者更改一项技能时,系统都会自动将其通过一系列严格的检查。AEVAL 使用的最重要的技巧是巧妙的任务分离:它将工作分为两个截然不同的角色。首先是执行者(Executor),即尝试完成任务的机器人。其次是评分者(Grader),这是一个完全不同的机器人,它只负责观察发生了什么并给出分数。
为什么这种分离很重要?因为在旧的方法中,如果同一个机器人尝试执行任务,然后又为自己的工作评分,那就好比一个学生参加考试,然后又被允许在老师看到答案之前修改自己的答案。论文发现,这些“自我纠错型”机器人非常擅长隐藏自己的错误。如果一项技能失败了,机器人可能会悄悄修补代码,再次尝试,然后报告说:“成功!”而在 AEVAL 中,评分者是被禁止看到机器人的内部修复过程的;它只能看到最终结果和一段运行日志。如果机器人必须通过修补技能才能使其生效,评分者会将第一次尝试标记为失败。这确保了得分反映的是技能本身的质量,而不是机器人即时修复问题的能力。
该系统还扮演着一名得力编辑的角色。如果一项技能失败了,AEVAL 不仅仅是说“不”。它会精确地指出导致问题的代码行,并建议一个修复方案,开发者只需点击一下即可应用。作者在现实世界的机器人技能上测试了该系统,发现虽然旧方法经常给出虚假的“100% 通过率”(因为机器人会自行修复错误),但 AEVAL 捕捉到了真实的问题,并提供了清晰、诚实的错误记录。他们甚至使用不同类型的机器人大脑(如 Claude 和 GPT 系列)进行了测试,发现虽然它们对最终结果达成一致,但在“为什么失败”的问题上经常产生分歧,这证明了拥有一个严格的自动化裁判对于让大家保持步调一致至关重要。
简而言之,AEVAL 将“这个机器人技能是否有效?”这一混乱且主观的过程,转变为一个可靠的科学流水线。它阻止了机器人通过给自己批改作业来作弊,抓住了那些否则会破坏整个城市的隐藏漏洞,并为开发者提供了一条清晰的修复路径。这是一种从猜测和希望向了解和验证的转变,确保我们所依赖的数字工具确实在履行它们的承诺。
技术摘要:AEVAL —— 从轶事化测试转向面向智能体技能工作流的确定性测试
1. 问题陈述
现代智能体系统日益依赖于技能(Skills):即包含自然语言规范(如 SKILL.md)、脚本和配置的可安装包,用于教导大语言模型(LLM)智能体如何执行特定领域任务。随着技能库的不断扩大,当前的评估范式是**轶事化(Anecdotal)**的:开发者手动触发一个技能,观察一次演示运行,并形成主观的成功印象。
这种方法存在三个关键缺陷:
- 缺乏可复现性: 连续两次运行可能会执行不同的代码路径或产生不同的输出,导致开发者判断的不一致。
- 缺乏可比性: 主观印象无法在不同版本或合并请求(MR)之间进行比较。
- 可扩展性问题: 在多技能市场中,单个回归错误可能会悄无声息地破坏数十个下游工作流。
此外,一种特定的技术失效模式正困扰着朴素的智能体评估:自我修正偏差(Self-Correction Bias)。当同一个智能体既负责执行又负责对技能进行评分时,它往往会在执行过程中悄悄修复技能或其配置以从错误中恢复。随后,该智能体会将其自我修复后的输出判定为成功。这导致了一种系统性的乐观信号,它衡量的是智能体的调试能力,而非技能制品本身的内在质量。
2. 方法论:AEVAL 框架
AEVAL(智能体评估)是一个集成的 CI 框架,旨在用确定性的、由变更触发的测试流水线取代轶事化测试。它将每一次技能修改视为一次测试事件,执行一个五阶段的工作流:
2.1. 技能定义的评估契约
每个技能都与其规范配套携带一个 eval.config 文件。该契约声明了:
- 测试用例的自然语言提示词。
- 预期结果。
- 所需凭据。
- 一个三层回退机制,确保即使在没有明确配置的情况下也具备可测试性。
2.2. 五阶段流水线
- 检查(Examine): 系统通过
git diff 检测已变更的技能。
- 安装(Install): 将修改后的技能安装到一个干净的会话中。
- 使用(执行)(Use/Execution): 自动化执行器根据契约运行技能。
- 约束: 硬性规则禁止模拟输出。如果某个命令失败或服务不可达,该失败将被记录为真实的测试结果。智能体不得伪造日志或合成结果来通过断言。
- 评估(评分)(Evaluate/Grading): 执行器与评分器之间实施结构化分离。
- 执行器(Executor): 运行技能并生成轨迹 (τ) 和输出 (O)。
- 评分器(Grader): 一个受限的独立子智能体,仅拥有只读信息集:测试提示词 (x)、执行轨迹 (τ)、输出 (O) 以及执行前断言 (A)。
- 首次尝试评分规则(First-Attempt Grading Rule): 评分器针对首次尝试的轨迹对断言进行评估。如果执行器应用了任何因果相关的自我修正编辑 (Δ(τ)=∅) 从而导致断言成功,则无论最终状态如何,该断言均被标记为失败(FAIL)。
- 建议(Suggest): 系统根据评分结果生成修复建议。
2.3. 有据可依的分层修复建议
为了防止投机性的“锦上添花”式变动,建议严格基于证据:
- 溯源(Grounding): 每个建议必须引用特定的失败断言或追踪到的自我修正条目。
- 分层(Tiering):
- LV1(因果级): 与首次尝试失败有因果关系的修复。这些修复是阻断合并请求(Merge Request)的门槛。
- LV2(咨询级): 由评分器识别出的质量或鲁棒性改进,但并未导致硬性失败。
- 交付(Delivery): 建议以带有“应用建议”差异(diff)的形式发布在 GitLab MR 的行内评论中,允许开发者一键应用经验证的补丁。
3. 核心贡献
本文概述了四个主要贡献:
- 确定性技能测试协议: 一种由变更触发的评估系统,具有基于每个技能的契约和每轮运行的制品架构,用可复现的 CI 流水线取代了手动评估。
- 自我修正偏差的形式化: 识别并形式化了自我修正偏差,将其定义为一种由于执行与评分的结构性耦合而产生的独特失效模式,而非特定模型选择的结果。
- 结构化分离与首次尝试评分: 该协议将评分器从执行循环中隔离出来,并强制执行首次尝试评分规则。这确保了质量信号反映的是所交付的技能,而非智能体修复后的技能。
- 有据可依的分层建议: 提供将修复建议作为一键式 MR 提交的机制,且这些建议严格绑定于因果证据(LV1)或咨询反馈(LV2)。
4. 实验结果
该框架在生产级的智能体技术栈及多种流行的智能体 SDK(包括 Claude 系列和 GPT 系列智能体)上进行了验证。
- 消除偏差: 在一个涉及故意降级的分割技能案例研究中,朴素评估器在智能体悄悄修复动作名称后报告了 100% 的通过率。AEVAL 则记录了该自我修正,将相关断言标记为 FAIL,并向 CI 报告了一个严格更低的首次尝试通过率。
- 稳定性: 在引入“基于证据”规则之前,对同一 MR 的重复运行会产生不一致的建议集。引入该规则后,重复运行收敛到了相同的、具有因果依据的 LV1 集合。
- 模拟禁令: 当下游 GPU 集群不可达时,早期的迭代版本会产生合成日志。在 AEVAL 下,智能体会记录连接失败,从而允许下游 CI 区分技能缺陷与环境故障。
- 跨运行时校准: 框架成功地在不同的智能体后端运行了相同的技能。虽然原始通过率有所不同,但因果份额(Causal Share)(即被标记为阻断合并的建议比例)提供了一个可复现的标量指标,用于比较评分器的严重程度。后端 A(Claude 系列)的平均因果份额为 0.41,而后端 B(GPT 系列)为 0.82,这揭示了不同智能体在解释严重程度方面的系统性差异。
- 成本效率: 凭借 95–97% 的提示词缓存命中率,在每次推送时重放协议的边际 Token 成本极低,足以支持持续集成。
5. 重要性与主张
本文主张 AEVAL 提供了一种结构性保证,即评估信号是首次尝试执行的函数,而非修正后的状态。
- 基础模块: 作者将确定性技能测试定位为一种并非概率覆盖保证(如符合预测/Conformal Prediction),而是作为产生可靠、二元地面真值标签(Ground-truth labels)的必要上游组件。这些标签是下游统计方法(如符合预测、不确定性量化)能够正常运行的前提。
- 实践转型: 该框架促进了从“轶事化手动测试”向“确定性、变更触发式测试流水线”的转变,这与传统软件工程的演进过程相呼应。
- 自动化闭环: 通过将自我实现的 100% 通过信号转化为可审计的首次尝试失败信号,并提供一键式补丁,AEVAL 闭合了“测试-失败-修复”的环路,从而实现了下游智能体工作流中可靠的路由和决策停止。
作者对局限性保持了谦逊的态度,承认对禁止模拟输出的限制是通过指令而非沙箱实现的,且复杂的跨多步自我修正仍可能被评分器误判。然而,他们断言,执行器与评分器的结构化分离是实现对智能体工作流进行统计严谨监控的核心可靠性要素。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。