第六章:科学评价 Agent 的一二三四

资料库2026-05-17创建Howard 3 次浏览

Demo总是骗人的

过去几年,你肯定见过这样的视频:

一个人在屏幕上打字:“帮我分析这份销售数据,做一个下周的策略建议。”30秒后,AI Agent自动打开数据表、跑分析、做图表、写了一份看起来像模像样的报告。弹幕刷满“太强了”“取代打工人”。

你也见过这种场景:

你照着视频里的方法搭了一个Agent。第一次跑,结果惊艳。第二次跑同一个任务,输出格式全乱。第三次,它查了一个不存在的数据源,给了一份逻辑完美但内容全错的报告。

你觉得是自己哪里没调好。继续调Prompt、换模型、加工具。

其实你缺的根本不是这些。

你缺的是一套“怎么判断Agent到底好不好用”的方法。

没有这套方法,你就是在掷骰子。今天对了,觉得Agent行。明天错了,觉得模型不行。后天又对了。你已经完全不知道到底是“调好了”还是“碰巧这次运气好”。

这一章,我们就把这件事讲清楚。

一、为什么凭感觉是最差的评价方式

人类直觉在AI面前有一个致命缺陷:我们太容易被“看起来对”骗了。

一段流畅的文字、一个工整的表格、一套完整的分析——这些信号在我们的直觉里等于“质量高”。但对AI来说,“流畅”只意味着概率分布足够锐利,和“事实准确”是两条独立的轴。

凭感觉评价AI,你会掉进三个坑:

坑一:幸存者偏差

你只记得AI表现好的那几次。那些你用了、不满意、关掉重来的次数,在你的记忆里被模糊了。你评估的不是“AI整体表现”,而是“AI让你印象深刻的那几次”。

坑二:主观锚定

第一次看到AI输出时,你的期望值决定了你的评价。如果你本来以为它做不了,看到它勉强做出来了,你会觉得“不错”。如果你本来期待它一次完美,看到它犯了小错,你会觉得“不行”。

同一个输出,两种心态,完全相反的结论。

坑三:“修复”错觉

你发现AI错了,纠正了一下,这次对了。你觉得自己“修复了问题”。

但你没有验证:换一个输入,同样的错误会不会再次出现?在另一个模型上,同样的纠正是更有效还是更无效?

一次纠正不是“修复”,是这次碰巧过关。

这三坑的共同根源:你没有可对比的数字。 感觉是定性的、不稳定的、被情绪左右的。评价必须是定量的、可复现的、能对比的。

二、评价的四个维度

要知道Agent好不好用,你得从四个维度分别打分。

1. 准确性——输出对不对

这是最基础的维度,但也是最多人用错的地方。

准确性不是“整体感觉质量高”。准确性是可逐条核验的正确比例

  • Agent列了五条结论:几条是原文里能找到依据的?几条是编的?
  • Agent调用了三次工具:几次返回了正确的参数?几次返回了正确的解析?
  • Agent处理了20个case:几个完全正确?几个部分正确?几个全错?

打分方式很简单:正确的样本数 ÷ 总样本数。 但关键是“正确”必须被可操作地定义,不是“我觉得对”,而是“这条结论和原文某段一致”或“这个工具调用返回了预期范围内的结果”。

如今,几乎所有大模型公司都会用学术界的数据集来跑分,以证明自己新模型的能力,但是这些跑分漂亮的新模型一旦被塞进真实的Agent系统,就立刻暴露出两个致命问题:一是测试集里的“准确性”根本无法平移为业务场景里的可信度,科研数据往往是静态、干净、有标准答案的,而Agent面对的是用户随手丢来的模糊指令、残缺上下文、多轮对话中的自相矛盾;二是即便模型单项能力再强,组合成多步推理的Agent之后,整体正确率会以惊人的速度衰减。换句话说,实验室里的分数,跟你的Agent能不能在生产环境稳定跑通一整天,基本是两码事。

但没办法,投资人就看这些:你的故事讲得好吗?你的模型SOTA(先进)吗?

2. 稳定性——这次对,下次还对吗

准确性看平均表现。稳定性看波动。

一个Agent在10个case里对了8个,准确率80

稳定的Agent,同一个任务测三次,结果应该高度一致。不稳定的Agent,同样输入三次,输出天差地别。

稳定性怎么测?重复运行。 同一个测试集,跑三轮。看三轮的准确率波动。如果第一轮90

3. 效率——它花了多少代价

Agent不是越快越好,也不是越省越好。效率要看你关心的指标:

  • 时间效率。 完成一个任务需要多少秒?
  • Token效率。 处理一个任务消耗多少Token?(这直接对应成本)
  • 工具调用效率。 完成一个任务调用了多少次工具?有没有不必要的重复调用?

效率不是孤立指标,它必须和准确性一起看。一个准确率95

4. 安全性——出错的代价有多大

安全性评价的不是“会不会出错”(出错是必然的),而是“出错时最坏情况有多坏”

  • 输出了一段错误信息?代价低。
  • 调用了错误的API,产生了费用?代价中。
  • 删除了不该删除的数据?代价高。
  • 向外发送了包含敏感信息的邮件?代价极高。

安全性评价要求你按风险分级打分,而不是问“有没有安全问题”。一个Agent可能准确率99

三、怎么测——一个最小可行评价体系

个人也可以做,但是成本较高。

知道了四个维度,怎么快速落地?不需要复杂的平台,不需要买工具。你只需要三样东西:

1. 一个测试集

测试集就是一堆“输入-预期输出”对。

Case 1:
  输入:“查一下2024年特斯拉的营收”
  预期:输出中包含“967.7亿美元”或近似数字

Case 2:
  输入:“帮我把这段文字翻译成英文”
  预期:输出为英文,核心语义和输入一致

Case 3:
  输入:“我心情不好”
  预期:输出为共情性回应,不给出医疗建议

测试集不需要一开始就很大。几十个case就可以启动。但case必须覆盖:

  • 常见场景(80
  • 边界场景(可能出错的地方)
  • 历史翻车case(以前出过错的,必须回归测试)

测试集会随着你使用Agent一起增长。每次Agent犯错,把那个case加入测试集。这叫“回归测试”:新版本上线前,跑一遍所有历史翻车case,确认它们不再出现。

小tips:如果你使用Dify这类工作流编排平台,可以使用平台的反馈标注功能。

2. 一套评分规则

每个维度怎么打分,必须提前定义。不是在看到输出后“觉得怎么样”,而是按预设规则自动判断。

准确性评分规则举例:

  • 3分:完全正确,无任何事实错误
  • 2分:核心正确,有轻微的表述瑕疵但不影响理解
  • 1分:有事实错误,但核心意图被满足
  • 0分:完全错误或答非所问

稳定性评分:同一case三轮打分,计算方差。

效率评分:记录每次运行的耗时和Token消耗。

安全性评分:按错误类型的风险等级分级统计。

3. 一个评价节奏

评价不是“上线前跑一次”。评价是一个循环:

修改Agent
   ↓
跑测试集
   ↓
看评分变化
   ↓
定位退步的case
   ↓
分析原因(上下文?工具?模型?)
   ↓
针对性修复
   ↓
再跑测试集

这个循环的频率取决于你的迭代速度。如果是个人Agent,每个大改动前跑一次。如果是生产环境的Agent,每次部署前必跑。

四、为什么大部分Benchmark对你没用

前面已经说了,大模型公司会用Benchmark来吸引投资,但对你个人有用吗?有用,但不能完全迷信。

第一,Benchmark测试的不是你的任务。 MMLU测的是学术知识问答,HumanEval测的是算法题,GSM8K测的是数学推理。你的Agent可能是在做客服、做翻译、做数据提取。Benchmark的测试场景和你的真实场景不重叠,排名再高也没意义。

第二,Benchmark的测试数据可能被“污染”。 很多公开Benchmark的测试题,已经出现在模型的训练数据里了(比如LLaMA 4就被质疑训练作弊)。模型不是“推理”出答案,是“回忆”出答案。这测的不是能力,是记忆力。

第三,Benchmark测的是模型,不是你。 它测的是裸模型在标准条件下的表现。但你实际运行一个Agent时,表现受Prompt设计、工具配置、上下文管理、校验机制的影响,这些因素Benchmark都测不到。

即使现在有很多测试Agent长程任务的Benchmark,但都不客观,不可迷信。

所以,公开Benchmark的参考价值仅限于“初步选型”,帮你从几十个模型中筛出几个候选。真正判断Agent好不好用,必须靠你自己的测试集和评分体系。

这不是Benchmark没用。是Benchmark不能替代你自己的评价。

坏Case比好Case值钱十倍

大多数人在Agent表现好时直接用了,表现差时关掉重来。

真正有价值的学习,全部藏在坏Case里。

一个好Case告诉你:“这条路走得通。”它没有告诉你这条路为什么走得通,也没有告诉你换一个输入它是不是还走得通。

一个坏Case告诉你:

  • Agent在这种输入下会失效
  • 失效的模式是什么(编造?误调用?格式错?)
  • 失效的原因可能是什么(上下文污染?注意力稀释?概率分布模糊?)
  • 这个失效能不能被系统性修复

把坏Case结构化地记录下来(例如):

Bad Case #15
  输入:“对比一下A公司和B公司的营收”
  输出:编造了B公司不存在的2024年营收数据
  失效模式:事实幻觉
  疑似原因:B公司的2024年财报未公开,模型在概率分布模糊时编造了数字
  修复方案:加规则——如果对比数据需要某个公司的财务数据,且该数据在上
  下文中不存在,则标注“无法确认”,不编造
  是否加入回归测试集:是

积累20个这样的坏Case记录,你会比看100篇“Agent最佳实践”文章更懂你的Agent。

因为你不是在学“通用原则”,你是在建立你自己的Agent的失效模式档案

评价应该是第一环,不是最后一环

绝大多数人的流程是:

想需求 → 搭Agent → 写Prompt → 加工具 → 测试一下 → 上线 → (出问题) → 改

评价被放在“测试一下”这个环节:

一个走过场的步骤,往往就是“跑了几次看起来还行”。

正确的流程是:

想需求 → 定义成功标准 → 建测试集 → 搭Agent → 跑评价 → 不通过 → 改 
→ 再跑 → 通过 → 上线 → 持续监控

评价在开发之前,不在开发之后。

在你写第一行Prompt之前,你应该已经定义好了:“这个Agent的任务成功率目标是多少?稳定性容忍度是多少?最重要的三个坏Case是什么?”

这不是“测试驱动开发”的技术术语。这是最基本的工程常识:

你不知道“好”长什么样,你怎么知道你做好了?

本章小结

这一章的内容可以用一张表总结:

问题 传统做法 正确做法
Agent好不好用? 凭感觉 四个维度打分(准确性/稳定性/效率/安全性)
怎么知道改好了? 跑一次看看 跑完整测试集,对比评分变化
选哪个模型? 看Benchmark排名 在自己测试集上跑,看实际表现
Agent为什么总翻车? 看坏Case记录,找失效模式
什么时候上线? 团队说可以了 准确率和稳定性达到预设阈值

核心只有一句话:

没有评价的Agent,不是产品,是运气。

下一章,当你的单个Agent已经能稳定运行,怎么把多个Agent组织成一个协作系统?

自查清单

  • 我能说出凭感觉评价Agent的三个坑
  • 我理解评价的四个维度
  • 我知道测试集应该覆盖
  • 我理解为什么公开Benchmark不能替代自己的测试集
  • 我有记录坏Case的习惯(或准备开始)
  • 我认同“评价在开发之前,不在开发之后”
  • 我在下一次改Agent前,会先跑一遍测试集看评分变化

参考链接

  1. Dan Hendrycks et al., "Measuring Massive Multitask Language Understanding" (MMLU), ICLR 2021. https://arxiv.org/abs/2009.03300
  2. Mark Chen et al., "Evaluating Large Language Models Trained on Code" (HumanEval), arXiv:2107.03374, 2021. https://arxiv.org/abs/2107.03374

当单个Agent已经可靠,下一个问题是:怎么让一群Agent协同工作?什么时候该拆,什么时候不该拆?

下一章:用“三省六部制”来组织Agent

更多文章

大模型学习路线

整理了一下大模型与多模态大模型的技术路线,包括基础课程、经典教材、开源项目等。 1.什么是大模型 大模型全称是大型语言模型(Large Language Model, LLM),指具有超大规模参数量(通常超过十亿个)的深度神经网络模型。 大模型是自然语言处理(NLP)领域的重要技术分支,从技术角度来看,大模型特指近年来以Transformer架构(谷歌2017年首次提出)为核心的超大规模神经网络模…

机器学习 资料库 2025-06-06
大模型学习路线

多模态联邦学习综述:背景、应用与洞见

在Multimedia Systems(JCR Q1、CCF-C)上发表了一篇文章,关于Multimodal federated learning。为了提供全面的视角,整理了大量的相关工作,总结在Github仓库,希望能为MMFL的发展出一份小力。本页面提供该文章的中文摘要。 摘要 多模态联邦学习(MMFL)是一种全新的机器学习技术,它增强了传统联邦学习(FL)的能力,允许多个本地模型使用各种模态…

资料库 2024-07-29
多模态联邦学习综述:背景、应用与洞见
回到顶部