AI Agent评估实战:工具调用、轨迹匹配与LLM裁判

AI Agent评估需分层:工具调用检查、轨迹匹配、LLM裁判。
本文提出一种分层的AI Agent评估框架,以解决传统最终输出评估忽略过程缺陷的问题。框架包含三个层面:第一层是确定性的工具调用检查,通过断言工具名称和参数来捕获低级错误,成本极低;第二层是轨迹匹配,关注执行顺序和循环,子序列匹配比精确匹配更实用;第三层是LLM裁判,评估最终响应的语义质量,但需明确评分维度并提供示例。文章还介绍了Pydantic Evals和Mastra等框架,并建议从确定性检查开始,逐步引入轨迹匹配和LLM裁判,同时将线上失败案例转化为评估用例,以维持评估体系的有效性。
构建AI Agent只是第一步,如何可靠地评估它们才是真正的挑战。与传统的LLM输出评估不同,Agent的行为是序列化的——它调用工具、观察结果、决定下一步。单纯比对最终答案会忽略过程中的关键失败。本文介绍一种分层的评估框架:先做确定性的工具调用检查,再进行轨迹匹配,最后用LLM裁判处理开放式的质量判断。

为什么Agent评估需要分层
Agent的核心是一个循环:思考→调用工具→观察→再思考。最终输出可能正确,但过程可能充满无效调用、重复尝试或危险的中间步骤。例如,一个客服Agent可能最终给出了正确答案,但在此之前错误地调用了三次退款API。如果只评估最终输出,这种缺陷会被完全掩盖。
因此,有效的Agent评估必须同时覆盖三个层面:工具调用是否正确、执行轨迹是否合理、最终响应质量是否达标。这三个层面从确定到模糊,对应不同的评估技术。原始文章的核心主张正是:按确定性程度分层评估,优先使用廉价且可靠的检查,仅在必要时引入LLM裁判。
第一层:确定性工具调用检查
这是最基础也最快的评估层。Agent的每次工具调用都有明确的名称和参数,可以像单元测试一样断言。例如,检查是否调用了search_flights、参数中的日期格式是否正确、是否在预订前检查了余票。
这类检查完全确定,不需要LLM,运行成本极低。它们能捕获一类常见错误:Agent绕过了关键工具、传入了错误参数、或调用了不存在的工具。在持续集成中,这一层应该作为每次提交的必跑项。Pydantic Evals等框架提供了针对工具调用的断言原语,Mastra也在其评估模块中内置了类似的检查能力。
Pydantic Evals 是 Pydantic 团队推出的评估框架,专为 LLM 和 Agent 应用设计。它利用 Pydantic 的数据验证能力,将评估用例定义为强类型模型,从而在编译期捕获类型错误。对于工具调用检查,Pydantic Evals 允许开发者声明期望的工具名称和参数模式,并自动验证实际调用是否匹配。其核心优势是与 Python 类型系统无缝集成,使得评估逻辑既安全又易于维护。该框架还支持异步评估和批量运行,适合集成到 CI/CD 流水线中。
Mastra 是一个面向 TypeScript 的 Agent 开发框架,内置了评估模块。它与 Agent 运行时深度耦合,能够直接拦截和记录每次工具调用的详细信息,包括输入参数、返回结果和耗时。Mastra 的评估功能支持声明式断言,开发者可以编写针对工具调用序列的检查规则,并轻松集成到现有的测试体系中。由于与运行时同源,Mastra 在捕获中间状态方面具有天然优势,特别适合需要精细调试的复杂 Agent 场景。
第二层:轨迹匹配
工具调用正确不代表顺序合理。轨迹匹配关注的是Agent的执行路径:它是否按照预期的步骤顺序操作?是否出现了不必要的循环?是否在错误的分支上浪费了轮次?
轨迹匹配通常有两种方式。精确匹配适用于流程固定的场景,比如「先查库存→再锁库存→最后下单」,任何偏离都视为失败。子序列匹配则更宽松,只要求关键步骤按序出现,允许中间有探索性调用。实际项目中,子序列匹配更实用,因为它容忍Agent的合理探索,同时确保关键安全检查不被跳过。
轨迹数据也是调试的金矿。当评估失败时,完整的轨迹日志能直接指出Agent在哪一步偏离了预期,比只看最终答案高效得多。
第三层:LLM裁判
前两层覆盖了「做得对不对」,但无法判断「做得好不好」。最终响应的语气、完整性、是否基于工具返回的真实数据——这些需要语义理解。LLM裁判就是为此设计的:用一个更强的模型,按照评分标准对Agent的最终输出打分。
LLM裁判的关键在于评分标准的设计。模糊的指令(如「评价回答质量」)会产生不稳定的分数。有效的裁判提示需要明确维度:事实准确性(是否与工具返回一致)、完整性(是否覆盖用户所有问题)、以及安全性(是否泄露了敏感信息)。同时,应该提供少量标注示例,并让裁判输出结构化的分数与理由,便于人工审计。
需要强调的是,LLM裁判不应作为唯一手段。它成本高、有随机性,且可能被Agent的输出风格欺骗。把它放在分层框架的最后一层,只在前两层通过后运行,是最经济的做法。
工作代码与框架选择
原始文章提供了Pydantic Evals和Mastra的可运行代码示例。Pydantic Evals的优势在于与Python类型系统深度集成,工具调用的断言可以写成类型安全的表达式;Mastra则更适合TypeScript技术栈,其评估模块与Agent运行时紧密耦合,能直接捕获运行时的工具调用事件。
选择框架时,核心考量是评估逻辑与Agent运行时的集成深度。如果评估需要访问完整的中间状态(如每次工具调用的原始返回),选择与运行时同源的框架会更省力。如果只需要黑盒评估,任何能解析轨迹日志的工具都可以。
实践建议
从确定性检查开始。先把所有关键工具调用的断言写出来,这能捕获大部分低级错误,且几乎零成本。然后为核心流程添加轨迹匹配,重点关注安全检查和不可逆操作。最后,对面向用户的响应引入LLM裁判,并定期人工抽检裁判本身的一致性。
评估不是一次性任务。随着Agent能力扩展,评估集需要同步增长。把每次线上发现的失败案例转化为新的评估用例,才能让评估体系真正跟上Agent的演化。
相关推荐

免费GitHub仓库:342小时AI课程,从数学到MCP服务器
一个免费GitHub仓库提供342小时AI课程,包含523节课、20个阶段,覆盖数学基础到Agent构建和MCP服务器。支持目标驱动学习,每节课产出可留存的prompt、skill或agent,已有近10万人开始学习。

AI Agent工具权限失控?Citadel Identity360用MCP注册表治住
Citadel Identity360如何治理AI Agent的工具访问?通过跨平台发现Agent、绑定人类owner、建立MCP注册表可视化访问路径,并用OAuth门控和函数白名单实现工具级授权,堵住Agent权限盲区。

Claude Code额度消耗快?上下文窗口管理技巧省35%
Claude Code额度消耗过快怎么办?本文拆解上下文窗口膨胀的根源,分享按任务节点清理、关闭闲置连接器、精简CLAUDE.md等实用技巧,实测同样20项任务token消耗降低约35%,API成本从5.94美元降至3.91美元。