Agent 时代的 AI 评估新范式

0 评论 98 浏览 0 收藏 25 分钟

Agent时代的AI评估正面临前所未有的挑战,从单一回答质量到多维度的任务执行评估,从线性检查到树状排查,评估体系的复杂度呈指数级增长。本文深入剖析了评估维度爆炸、过程黑盒化、自动化信任危机三大结构性难题,并提出了基于错误分析、LLM-as-Judge验证等五大核心能力的解决方案,为团队构建可靠的Agent评估体系提供了实战指南。

说实话,过去一年多我一直在和评估这件事较劲

团队做 Agent 也有一段时间了,每次发布新功能之前,都会遇到同一个灵魂拷问:这东西到底好不好用。

以前做 Chatbot 的时候,评估方式挺直接的。用户问一个问题,模型给出一个回答,对了就是对了,错了就是错了。人工抽检一下,拉个准确率,基本能说明问题。大家的标准也相对统一——回答有没有事实错误、有没有遗漏关键信息、语气是不是自然。

但到了 Agent 时代,一切都变得模糊了

一个 Agent 可能在几分钟内调用七八个工具,读文档、查数据库、写代码、调 API,中间还可能经历好几轮推理和自我纠错。你说它最后给的结果对不对——可能对,但中间绕了多少弯路、有没有做过什么危险的操作,单看最终输出根本不知道

更麻烦的是,失败的传播路径不再是线性的

传统 Chat 的评估像在检查一条直线:输入进去,输出出来,验证输出就行。Agent 的评估像在检查一棵树:根节点是你提的需求,每个分支是一次工具调用或推理步骤,任何一个节点的错误都可能被下游放大。

这就是 Agent 时代 AI 评估面对的真正困境。

为什么评估突然变得这么难

我见过不少团队,模型从 Chat 切换到 Agent 之后,评估体系基本没变。还是那套自动化指标,还是那种抽检方式,结果呢——指标漂漂亮亮,产品该崩还是崩。

问题出在三个结构性变化上

第一个变化:评估维度爆炸了

过去你只需要评价”回答质量”这一个维度。现在你需要评价任务完成率、工具选择准确率、参数提取精确度、多轮推理连贯性、错误恢复能力、执行效率、安全性。每个维度都有自己的评估方法,彼此之间还存在 trade-off。

举个例子,一个 Agent 任务完成率很高,但代价是绕了很多弯路、调用了很多不必要的工具。另一个 Agent 执行路径很简洁,但遇到边界情况直接放弃。你说哪个更好?

第二个变化:你不知道它在哪里出错

传统评估最大的优势是”结果可观测”。回答好不好,人一眼就能判断。Agent 的执行过程是黑盒里的黑盒——你给它一个任务,它自己决定怎么拆解、用什么工具、按什么顺序执行。

等它跑完了,你只看到最终结果,中间发生了什么只能靠日志还原。但一条 Agent 执行记录可能有几百行,包含多次 LLM 调用、工具返回、状态变更。人工看完一条已经很耗时了,看几十条上百条对团队来说是不小的负担。

第三个变化:自动化评估的信任危机

很多人自然地想到——既然人工评估效率低,那就让 AI 来评估 AI。LLM-as-Judge 确实是个好思路,但这里藏了一个很深的坑。

你用一个大模型去评判另一个大模型的效果,怎么知道这个 Judge 判得准不准?

大部分团队的 Judge 根本没有经过验证。他们写了一段提示词,让模型在 1 到 5 分里打分,然后就把结果当真了。但事实是,未经校准的 Judge 给出的分数可能比随机猜测好不了多少。

这三个结构性变化叠加在一起,造成了一个尴尬的局面——Agent 越做越复杂,评估能力却跟不上。团队花了很多精力在模型选型、提示词优化、工具链搭建上,到了评估环节还是靠”肉眼看看输出对不对”。

错误分析:被跳过的第一步

先说一个我反复看到的错误

很多团队上了 Agent 之后,第一件事是去找评估平台。搭指标、配仪表盘、上自动化测试,看起来很专业。但这些动作背后往往缺少一个关键前提——你知道自己的 Agent 会出什么错吗?

如果连自己 Agent 最常见的失败模式是什么都不知道,那自动化指标就是在测空气。

在 AI 评估这个领域,Hamel 和他的合作者提了一个非常朴素的建议:先花 30 分钟手工看 20 到 50 条真实的 Agent 执行记录。

不做任何结构化标记,就像读故事一样读一遍,看到觉得不对劲的地方就记下来,看看哪些地方反复出现问题。这个过程叫 Open Coding。然后把这些发现归类——有些是事实错误,有些是工具调用错了,有些是中间推理断了但结果碰巧对了。这个过程叫 Axial Coding。

做完这两步,你已经有了一张属于自己的失败模式清单。

有了这张清单,你才算有了评估的基础。你可以针对每一种失败模式设计专门的评估方法,而不是用一个笼统的分数来掩盖所有问题。

说起来有点意思,这个方法太简单了,简单到很多团队不愿意相信它真的有用。但我接触过的团队里,凡是认真做了这一步的,后来在评估上的投入产出比都远高于那些一上来就搭平台的。

有一个数据值得记住:团队应该把 60% 到 80% 的开发时间花在错误分析和评估上。这个比例比大多数人的直觉高得多。大多数团队可能只花了 10% 的时间在评估上,剩下的都在写功能、调模型。结果是功能越加越多,但对产品到底好不好完全没有把握。

评估的五大核心能力

基于这套方法论,结合我自己的实践体会,梳理了 Agent 时代团队最需要建立的五个核心评估能力

评估审计——知道自己站在哪里

评估审计就是退一步看看你现在的评估体系到底在做什么。

很多团队的评估体系是”长”出来的,不是”建”出来的。今天加一个指标,明天加一个测试,时间长了谁也不记得这些指标当初为什么要加、现在到底在测什么。

审计主要看几个方面:现有测试覆盖了哪些失败模式、有没有遗漏高频问题、指标定义是否清晰、测试数据和真实数据的分布是否一致、Judge 是否经过验证。

什么时候该做审计?两个场景——接手一个新项目的时候,或者发现评估指标已经好几个月没更新的时候。

如果指标很久没变过,通常说明出问题了。不是评估体系完美了,而是你已经不再从数据里发现新的问题了。这是一个很危险的信号。

错误分析与失败分类——评估的基本功

这个能力的核心就是 Open Coding 和 Axial Coding,但深入进去会发现很多细节

关键在于建立属于自己业务的失败分类体系

不同类型 Agent 的失败模式差异很大。信息检索类的 Agent,最常见的失败可能是召回不准确,或者把不相关的事实拼凑在一起形成幻觉。任务执行类的 Agent,最常见的失败可能是工具调用参数错了,或者多步推理的中间状态丢失了。对话类的 Agent,最常见的失败可能是上下文理解偏差,或者忘了之前说过什么。

这些失败类型需要自己的分类体系。你不能用别人的分类,因为你的业务场景、用户群体、工具链都不同。

还有一个很重要的点:分类比打分重要得多

如果你的评估体系只给一个综合分数,事实错误和推理断裂在分数上无法区分。但这两个问题的根因完全不同,修复路径也完全不同。前者可能需要改检索或知识库,后者可能需要改推理链或 Prompt。

没有分类就没有诊断,没有诊断就没有修复。

LLM-as-Judge 的设计与验证

用 LLM 来评估 LLM,这个概念已经很普及了。几乎每个做 AI 应用的团队都在用,但真正用好的人不多。

什么情况下该用?LLM-as-Judge 适合评估那些”需要理解语义”的质量维度,比如回答是否完整、逻辑是否自洽、是否基于给定的上下文。不适合评估那些有明确客观标准的事情,比如答案是不是包含某个关键词、格式是否符合要求——那些用规则判断就够了。

用二元评分(Pass/Fail)比打分制(1-5 分)效果好得多

原因很简单。打分制看起来更精细,但不同的人对”3 分”的理解可以差得很远。同一个 Judge 在不同时间对同一个输出可能打不同的分数。而 Pass/Fail 的判定标准是明确的——你有没有违反我制定的规则。

如果你想追踪渐进式的改进,不要依赖分数。把改进拆成几个独立的二元问题:是否包含关键信息、是否格式正确、是否没有多余内容。每个问题单独判断,汇总起来就能反映整体质量的变化。

最关键的一步:验证你的 Judge

大部分团队的 Judge 是未经校准的。他们写好 Prompt 就开始用,对结果深信不疑。但未经验证的 LLM-as-Judge 比没有更危险——它给了你看起来很漂亮的数字,让你误以为一切都在掌控之中。

验证方法说起来简单:找一批人工标注好的数据,分为开发集和测试集。在开发集上优化 Judge Prompt,在测试集上验证效果。

真正重要的指标不是准确率。如果你的失败率只有 5%,一个永远回答 Pass 的 Judge 准确率也有 95%。你要看的是 TPR 和 TNR——它能不能准确识别出失败的案例,会不会误伤正常的案例

做完这一整套验证,你才真正拥有了一个可靠的自动化评估工具。

合成数据生成——武器和陷阱

Agent 业务经常会遇到一个困境:低频但重要的场景很难收集到足够的真实数据。比如一个支付 Agent,支付失败的案例可能只占 1%,但这 1% 你必须要测。

合成数据就是用来解决这个问题的。但用错地方反而会给你虚假的信心。

正确做法是:先基于真实数据观察,定义出关键的变化维度。比如做一个客服 Agent,维度可能包括问题类型、紧急程度、用户情绪、渠道来源。然后基于这些维度组合生成测试数据。

生成方法可以分两步——先手动写 20 个典型的维度组合作为种子,然后用 LLM 扩展生成。这样既能控制数据质量,又能达到足够的规模。

那什么时候不能用?高度专业化的领域知识、低资源语言的对话、没法验证对错的开放性问题、高风险的决策场景、数据分布极度不均的情况。在这些场景里,合成数据生成的测试案例可能和真实情况偏差很大。

人机协作的评估流程

不管自动化做得多好,最终的判断标准还是得人定。

在实践中效果最好的方式,我称之为**”仁慈的独裁者”机制**——指定一位对业务理解最深的领域专家作为最终的判断标准来源。所有的评估标准、争议案例、最终判断,都以这个人的意见为准。

这听起来有点不民主,但多人标注的问题在实践中非常严重。不同标注者对标准的理解不同、严苛程度不同、关注点也不同。如果没有一个统一的仲裁者,标注结果的一致性会非常差。

还有一个被低估的问题:标准漂移。

你和专家坐在一起,让他标注 100 条输出。标到第 30 条的时候,他突然说:”我发现前面标错了一批,我现在的理解不一样了”

这不是他的问题,这是常态。人在评估输出的时候,其实也是在不断重新定义评估标准。你不知道自己在意什么,直到你看到模型的输出。所以别给专家看汇总报表,别让他看统计摘要,直接让他看原始的执行记录。

为什么 LLM-as-Judge 经常翻车

第一层:评分标准的设计问题

大部分团队写的 Judge Prompt 太笼统了。”请判断这个回答是否合理”——什么叫合理?不同模型对”合理”的理解差异巨大。

一个好的 Judge Prompt 应该像一份 checklist。把判断标准拆成一条一条可验证的规则,每条规则对应一个 Pass/Fail 判断。Judge 的工作不是”主观评价”,而是”逐条核对”。

第二层:验证缺失

我反复提验证,因为这是最容易被跳过但又最重要的步骤。

验证流程很简单:准备一批人工标注数据(至少 100 条),跑一遍 Judge,对比 Judge 判断和人的判断,计算 TPR 和 TNR。

如果 TPR 太低,说明 Judge 漏掉了太多失败案例。如果 TNR 太低,说明误报太多。这两个指标需要平衡。

如果 TPR 或 TNR 达不到要求,不要试图用更复杂的 Prompt 来”骗”出更好的结果。回头看看分类标准是不是清晰,标注数据是不是一致,问题定义本身是不是有问题。

第三层:Judge 本身的偏差

LLM-as-Judge 也是 LLM,它有自己偏好和偏差。有些偏向高分,有些偏向严格。有些对中文更敏感,有些对结构化输出更友好。而且这些偏差会随着模型版本更新而变化。

你需要持续监控 Judge 的表现。不是验证一次就完了。每次更新 Judge 模型、每次修改 Judge Prompt、甚至每次 Agent 行为发生变化,都需要重新验证。

数据科学的回归

聊到这里,我想分享一个让我印象很深的观点。

Hamel 在 PyAI 大会上做了一个演讲,标题叫 “The Revenge of the Data Scientist”。他的核心论点是:大语言模型没有让数据科学家的角色贬值,反而让他们变得更关键了。

很多团队以为有了强大的基础模型,调用 API 就行了,不需要再花心思在评估上。结果恰恰相反——模型越强大,系统越复杂,评估就越重要。

而评估方法论绕了一大圈,最后发现所有问题的答案都藏在数据科学的基本功里。

Trace 分析就是探索性数据分析

你打开几十条 Agent 执行记录,一条一条看,记下不对劲的地方——这不就是多年以前的 EDA 吗。数据科学家看分布、看异常值、看模式,你做评估也是干同样的事。

Judge 验证就是模型评估

你拿人工标注数据验证 LLM-as-Judge,算 TPR 和 TNR,校准偏差——这不就是分类模型的评估方法吗。区别只是评估的对象从业务模型变成了评估器本身。

测试集构建就是实验设计

你基于真实数据定义维度,生成合成数据覆盖边缘场景——这不就是实验设计里的样本策略吗。糟糕的实验设计得不到可信的结果,同样,糟糕的测试集也得不到可信的评估。

让领域专家看数据就是数据标注

你不让算法工程师独自判断好坏,而是把产品经理、业务专家拉到数据前面,让他们亲自看、亲自标——这就是最传统也最可靠的数据标注流程。

名字变了,工作没有变

这句话是我从整篇文章里得到的最大感悟。Agent 时代真正稀缺的不是更聪明的大模型,而是能把评估做扎实的基本功。而基本功就是花时间去看数据,去理解系统在真实场景下的表现,去建立自己的失败分类体系,去验证每一个自动化判断。

评估基础设施怎么搭

从最小可行评估开始

什么是最小可行评估?一台电脑,一个共享笔记本,一个人。这个人就是你的”仁慈的独裁者”,负责每周花固定时间看 Trace、做标注、更新失败分类。

不需要平台,不需要工具链,甚至不需要自动化。在建立至少几十条标注数据、有了基础的失败分类体系之前,任何平台都是过早优化。

那什么时候该上自动化?当你发现分类体系稳定了——新 Trace 看来看去都是那几类失败,不再出现新类型了——这时候就可以考虑把高频稳定的失败类型用自动化评估覆盖起来。

CI 评估和生产监控是两回事

CI 评估在发布之前做,用小而精的数据集(100 条左右),主要做确定性检查——有没有回归、有没有新增的失败。评估方法偏向规则判断和简单的 LLM-as-Judge。

生产监控在发布之后做,用采样的方式收集在线数据,依赖更复杂的 LLM-as-Judge 来分析。目的是发现新的失败模式,而不是检查已知问题。

两者之间的循环很重要。生产监控发现了新的失败模式,就把它加入 CI 数据集,确保后续改动不会再引入同样的问题。

定制化工具还是标准品

我见过两种极端的团队。一种是自己做了一套完整的评估平台,花了好几个月,差点把项目拖死。另一种是买了市面上最贵的评估平台,结果发现和业务场景完全不匹配。

我倾向于中间策略——先用简单工具建立评估流程,需求明确后再考虑平台化

Hamel 提到一个数据:定制化的标注工具能让迭代速度提升 10 倍。我信这个数字,因为当评估流程完全匹配业务逻辑时,效率确实是指数级的提升。但前提是你先搞清楚流程,再用工具匹配流程,而不是反过来。

Guardrails 和 Evaluators 的区别

Guardrails 是在用户看到输出之前就拦截问题。特点是快、确定、低成本——比如正则表达式检查、关键词过滤、格式验证。适合拦截那些”一看就知道有问题”的情况。

Evaluators 是事后诊断,可以慢一些、深入一些——比如 LLM-as-Judge 判断回答是否完整、逻辑是否自洽。适合评估那些”需要理解语义”的质量维度。

最简单的判断标准:如果需要在 100 毫秒内做决定,用 Guardrails。如果有几分钟时间来评估一条输出,用 Evaluators。

写在最后

回到最开始那个问题:Agent 时代评估到底怎么做?

我的答案也许会让你失望——没有什么灵丹妙药。

你可以把市面上所有的评估方法论都学一遍,所有的评估工具都试一遍,但最终你会发现最有用的那个方法是最简单也最费力的:打开几十条真实的执行记录,一条一条看。

看多了你就知道 Agent 通常在哪里犯错,哪些错误是致命的,哪些是被放大了的,哪些问题值得花时间去修复,哪些问题其实用户根本不在意。

这种判断力没有捷径!

建立评估体系的第一步永远不是选平台,而是建立可观测的判断力。判断力来自你对数据的熟悉程度,来自你对自己系统的理解深度,来自你敢不敢花时间去看那些枯燥的执行日志。

在你还不知道自己的系统会怎么犯错之前,任何自动化评估都是在测空气。

花时间看数据吧,这是性价比最高的投入。

本文由 @学不会AI 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!