标签归档:AI评测

关于行业 AI Agent 评测的 9 个方面

做 AI Agent,跑起来很容易,简单点函数调用+几个最好的大模型,复杂一点,整合或「学习」一些开源的多 Agent 项目,也能跑起来。

但是如何真正要做到一个行业中去,把一个行业 Agent 做好就没那么容易了,特别是让这个 Agent 能稳定的迭代,稳定的跑对了,也就难了。

在这些迭代过程中,我们会不停的换模型、改提示词、加工具、加缓存、改路由、做多智能体……

这样我们就会收获如下的一堆问题:

  • 线上用户说「变笨了」,却没证据;
  • 反馈说生成效果不行,却不知道该如何描述其所说的效果;
  • 修一个 bug,引入三个新 bug;
  • 团队讨论靠口感,最后靠拍板;
  • 研发不敢升级模型,因为测试周期太长;
  • 业务要结果,技术要可控,双方都焦虑。

面对这些问题,我们聊聊如何对行业 Agent 做评测。

0. 说在前面

我们评测的是「系统」,不是「模型」

很多团队说在做评测,实际上只是在测「模型回复像不像」。对 Agent 来说不够,因为 Agent 的能力来自两部分:

  • 模型
  • 工程:提示词、工具编排、状态管理、记忆、重试策略、检索、权限、路由、超时、并发、回退等

所以评测对象应该是:模型 + 工程 的整体行为。

1. 标准

团队里面一定要有领域专家,没有领域专家的测评只能算自娱自乐。

Agent 的「好」不是抽象的。没有领域专家,评测标准会变成两类坏结果:

  • 写得很漂亮,但不对应业务结果(比如客服很礼貌,但票据没关单)
  • 标准含糊,评分不可重复(今天判通过,明天同样输出判不通过)

「领域专家」不一定是外部大咖,很多时候就是我们身边的同事:

  • 客服主管(知道什么叫“解决”)
  • 财务/风控(知道哪些动作不能做)
  • 资深运营(知道用户会怎么钻空子)
  • 负责交付的实施/售后(知道线上真实约束)
  • 售前负责人(知道用户要的是什么)

要求只有一个:两位领域专家独立评审同一个任务,应该能得到一致的 pass/fail。做不到就说明任务或标准还不够清晰。

2. 数据集

输入与输出要成对,从 20 条 good case 和 bad case 开始吧。

很多团队拖着不做评测,理由是「没有足够的数据」。

2.1 数据集怎么来

  1. 线上事故 / 客诉 / 工单:最值钱,但也是压力最大的
  2. 发布前人工回归里会反复点的那些检查项
  3. 运营同学最常复述的“用户就爱这么问”
  4. 灰度期间的失败轨迹(尤其是工具调用失败、超时、权限不足、状态不一致)

2.2 一个测试任务里应该包含什么

  • 输入(用户消息 + 初始状态 + 可用工具 + 环境约束)
  • 明确的成功条件
  • 参考解(可能是图、视频和文本)

当遇到测试不通过或者通过率很低时,一般不是模型不行,可能是设计的测试任务有问题。

2.3 数据集要有正反两派

测试人都知道的,做测试更多的是测异常。在做数据集时,这个逻辑一样的成立。

  • 该搜 vs 不该搜
  • 该下单 vs 不该下单
  • 该升级人工 vs 应该继续处理
  • 该改文件 vs 不该动文件
  • 该生成图 vs 应该拒绝(合规/版权/不当内容)

3. 系统

让过程系统化,小系统也是系统

评测不系统化,最后一定会回到「手工点点点 + 群里吵架」。一个可用的评测系统,最少包括:

3.1 评测运行系统

  • 并发跑任务
  • 每个环境隔离(干净的文件系统、数据库、缓存、账户)
  • 固定随机种子/版本(尽量可复现)
  • 记录完整过程
  • 输出结构化结果

请注意:共享状态会污染结果。

这个系统可以大,也可以小,甚至小到只是一个 python 脚本。

3.2 评测资产管理

  • 任务版本化(任务也要像代码一样走 PR)
  • rubric/断言版本化
  • 基线版本固定可回放
  • 失败样本池:每次线上新失败,能快速进入评测集
  • 评测数据集管理
  • 评测结果管理,特别是图片类 Agent,所有的结果图都需要保存,并且能随时查阅,给到领域专家来审查。

3.3 结果可读性

最终的结果重要,但这个结果不仅仅是分数,还必须能「点开看」:

  • 失败的结果
  • 判定理由
  • 最终的证据(输入的 prompt,图片结果,过程中的数据库/文件/页面状态等等)

4. 成本

和过往的测试工作不同,AI 的评测需要更多些的考虑成本,特别是多模态或视频,生图类 Agent。

这里的基本逻辑是:每个 AI 算力资源都是有限的,也是贵的。

如果在一个死循环中写了调用外部视频生成的接口逻辑,那等待的就是账号里面的钱被用光,如果有加了使用限制,大概率就是达到限制。

以第三方大模型账号为例,有几个小点:

  1. 测试账号要和生产账号隔离,防止异常突出导致资源受限,在每个平台请求并发数,或者分钟请求数,或者 token 速度都是有限的,不同环境的资源需要隔离开来。
  2. 账号需要做好限制,防止账号的钱被用完;
  3. 安全考虑,定期更换。

5. 传统测试方式

静态分析、工具验证、记录分析这些传统的测试方法别丢了。

5.1 静态分析

适合:

  • 代码类:lint、type check、安全扫描(ruff/mypy/bandit 这类)
  • 配置类:schema 校验
  • 文本结构:JSON schema、正则、字段完整性 优势:快、便宜、可复现、可 debug。

5.2 工具验证

Agent 出问题很常见的一类是:工具用错、参数错、顺序不合理、该用不用。

你可以验证:

  • 是否调用了某工具
  • 参数是否在范围(例如退款金额 <=100)
  • 是否访问了不该访问的资源

但要注意:不要把“必须按某条路径走”写死。太死会惩罚合理的创造性解法。更推荐「看产出」,必要时只加一些底线约束(比如必须做身份验证)。

5.3 记录分析

不一定评价“对错”,而是监控质量与成本:

  • turn 数、toolcall 数、tokens
  • 延迟:TTFT、总耗时、吞吐
  • 重试次数、错误码分布

6. 新的基于大模型的测试

该用用,但要用得克制

对于评测,我们通过可以分为三类:代码型、模型型、人工。实际落地里,模型型的价值主要在两件事:

  1. 开放式输出:没有唯一正确答案(客服话术、研究总结、写作、规划)
  2. 细粒度质量维度:礼貌、同理心、覆盖度、论证质量、是否胡编

常用方式:

  • 打分(按维度给分)
  • 自然语言断言(是否满足某条要求)
  • A/B 谁更好
  • 对照参考答案
  • 多裁判投票/取中位数

但需要注意:

  • 非确定性:同样输入可能不同评分
  • 更贵:相当于每条任务再跑一遍模型
  • 需要校准:必须和人评对齐,否则就是“模型自嗨”

一个实用的建议:给 LLM 评测一个「退路」,例如信息不足就输出 Unknown,避免它为了「必须回答」而脑补。

另外:把评分标准结构化,并拆维度单独评,不要一次判所有维度,噪声会很大,因为随着上下文更长,大模型的注意力会出现一些问题。

7. 人工评分

领域专家门禁:效果不好就不能上,灰度可选

人工评分并不是用来「天天打分」的,人工的职责更多是:

  • 定义标准(什么叫好)
  • 校准 LLM grader(对齐、抽检、纠偏)
  • 做门禁(关键版本上线前必须过)

7.1 门禁怎么做

  • 定一个小的「关键任务集」(比如 30 条最关键、最敏感、最影响收入/合规的),或者称为黄金链路
  • 每次大改/换模型/换工具链,必须过这个集
  • 过不了:不讨论「用户可能不在意」,直接回滚或修

7.2 灰度

没有足够流量,灰度很难有显著的效果,也没有啥意义:

  • 用离线评测 + 小范围内测
  • 线上用强监控兜底(错误、成本、关键转化、人工接管率等)

等流量与组织能力到位,再做严格 A/B。

8. 流程

从 0 到 1,再到可持续

这套流程的目标很简单:让每次改动都有依据,上线前知道会不会退步,退步了能快速定位原因。

第 0 步:尽早开工,小样本就能跑起来

别等“数据够多”。先做一个能工作的最小闭环。

    • 先收 20–50 条真实案例(成功和失败都要)
      • 来源:线上工单、客服反馈、bug 记录、内部手工测试步骤

 

  • 每条案例都写清楚:什么算成功,什么算失败
  • 先把基础能力跑通:
    能批量跑 → 每次互不干扰 → 全程有记录 → 能出汇总表

这一阶段不追求完美,只追求“评测能运转”。

第 1 步:把“手工回归”变成固定任务清单

你们发布前人工必做的检查,本质上就是任务列表,只是没系统化。

  • 发布前“必须点”的那些流程,全部写成任务,进评测库
  • 线上出现的 bug / 客诉,能复现的尽量都写成任务
  • 按影响排序:
    影响钱 / 合规 / 大客户 / 高频场景优先

做久了会发现:评测库就是你们产品真实使用方式的地图。

第 2 步:任务要写得清楚,评分要能落地

一条任务写不清楚,后面全是噪音。

至少要满足三条:

  1. 两位领域同学看完任务描述,能给出一致的“过/不过”
  2. 给每条任务准备一个“标准答案/参考做法”(证明这题能做对)
  3. 评分标准不能靠“默认常识”
  • 评测要检查什么,任务里就要写清楚
  • 别出现“任务没说路径,但测试默认某个路径”这种坑

任务写得越清楚,后面迭代越省时间。

第 3 步:任务要成对出现

很多系统越改越怪,可能是评测只给了单边信号。

每类行为都尽量做成一对:

  • 该查资料 / 不该查资料
  • 该下单 / 不该下单
  • 该继续处理 / 该转人工
  • 该修改文件 / 不该动文件
  • 该生成 / 该拒绝(合规类尤其重要)

第 4 步:把评测环境做稳定,确保结果可信

评测不可信,比没有评测更糟糕。

关键点:

  • 每次运行从干净环境开始(文件、数据库、缓存都重置)
  • 尽量减少共享状态(否则会互相污染)
  • 资源要有上限(CPU/内存/网络),避免“机器不够导致一片失败”
  • 失败要能区分:
    • 是系统真不行
    • 还是环境抖动、配额限制、工具不稳定

要保证:同一版本跑两次,结果大体一致。

第 5 步:评分规则按「能自动就自动」来设计

评分不要一上来就全靠大模型判。

推荐顺序:

  1. 能用确定规则判断的,先用确定规则
  • 结果是否写进数据库、订单是否存在、文件是否生成、测试是否通过
  1. 能用简单规则校验的,用规则
  • 字段完整、格式正确、调用工具参数在范围内
  1. 只有在确实需要“主观判断”时,才用大模型评分
  • 语气、解释是否清楚、内容是否覆盖关键点

还有一条很重要:
尽量评「最终交付」,少评「必须怎么做」。
路径卡太死,会误伤很多正确解。

第 6 步:固定做「看过程记录」,不然不知道问题在哪

很多团队评测做不下去,就是因为只看分数,不看过程。

至少要做到三件事:

  • 分数下降时:优先看失败最多、影响最大的那几条任务的过程记录
  • 每周抽查一批「通过」的过程记录(防止钻规则漏洞)
  • 发现「明明做对了却被判错」,立刻修任务描述或评分规则

一句话:评测系统也要像产品一样调试。

第 7 步:分数到顶了就补题,不然评测会失效

分数 100% 不代表系统没问题,只代表这套题已经测不出差异。

做两件事:

  • 持续把新的线上失败变成新任务
  • 专门补「更难、更真实」的场景(长流程、多约束、容易出错的边界条件)

评测库要一直增长,否则它会变成摆设。

第 8 步:让评测「有人管、有人用、有人能加题」

长期最有效的分工通常是:

  • 有一个小组负责评测系统本身(跑得稳、记录全、报表清楚)
  • 各业务团队负责写任务(最懂用户的人写,写出来才贴近真实)
  • 写任务像写代码一样走评审流程(谁提的、为什么提、怎么验证)

让离用户最近的人能把问题变成任务,是评测能持续的关键。

9. 非确定性

别再只盯「通过率」,用 pass@k 和 pass^k 讲清楚“稳定性”

Agent 的输出有随机性,同一任务可能今天过、明天不过。以下两个指标可以有:

    • pass@k:k 次尝试里至少成功一次的概率
      • 适合“允许多试一次”的场景(比如离线生成候选方案)

 

  • pass^k:k 次尝试全部成功的概率
    • 适合“线上必须稳定”的场景(客服、交易、流程自动化)

它们会随着 k 分化:

  • k 越大,pass@k 越接近 100%
  • k 越大,pass^k 越接近 0(对稳定性要求更苛刻)

这能解决很多争论:

  • 研发说「抽卡,多跑几次能过」
  • 业务说「用户只给一次机会」
    用 pass@k 和 pass^k 直接对齐产品要求。

10. 安例:生图 AI Agent 如何评估

生图 Agent 的评测,比「文生图模型评测」更难,因为 Agent 往往还会:

  • 和用户多轮确认需求
  • 调风格/比例/seed/参考图
  • 调用安全审核、版权过滤、提示词改写
  • 产出多张候选并做挑选/排序
  • 写交付说明(可商用/不可商用、使用建议)

评测要覆盖的不是「画得好不好」一句话,而是「是否按业务标准交付」。

下面给一套实用的评测维度:

10.1 标准

先定“交付合格”是什么

建议产品/设计/合规一起定 3–5 条硬标准,例如:

  • 不违规:敏感内容、未成年、色情、仇恨、暴力、政治等必须拦截或降级
  • 不侵权:明显模仿特定 IP / 特定艺人脸 / 商标露出等按策略处理
  • 满足需求:主体、场景、风格、比例、文字有无(比如“不要文字”)
  • 质量底线:严重畸形、手指崩坏、文本乱码(如果要求有字则反过来)
  • 可用性:分辨率、格式、背景透明/不透明、交付数量

标准不要写成「更美观」「更高级」,要写成可判定的条目。

10.2 数据集

最有效的来源通常是:

  • 用户最常下单的品类(电商主图、海报、头像、插画、UI 素材)
  • 客诉:不像、漏元素、风格跑偏、文字错、侵权被投诉、审核误杀
  • 运营活动:固定模板需求(这类最适合做回归)

每条任务里建议固定:

  • 用户输入(含约束:尺寸、风格、禁忌、用途)
  • 允许的工具(生成、放大、背景去除、OCR 检查、合规审查)
  • 成功条件(至少满足哪些项)
  • 参考交付(如果你们已有人工优秀样例,可以作为对照,但不强制唯一答案)

10.3 评测流程

评测建议按「确定性 → 半确定性 → 开放判断」的顺序叠起来,减少噪音、降低成本。

A. 结果校验(尽量全自动、最优先)

这层解决「交付物是否合格」的硬指标:

  • 格式、尺寸、分辨率、通道(如 PNG 透明背景)
  • 交付数量(例如必须 4 张)
  • 文件可打开、无损坏
  • 禁止内容检测(审核模型/规则引擎给出通过/拦截/分级)

B. 内容对齐(半自动,能做多少做多少)

这层解决“有没有按需求做”的关键事实核对:

  • 关键元素是否出现:用图像理解/检测器做覆盖检查(比如“猫 + 红围巾 + 雪地”)
  • 不该出现的是否出现:
    • “不要文字”→ 用 OCR 检测是否有字
    • “不要 logo/商标”→ logo/商标检测(覆盖不了的留到抽检)

C. 开放项判断(用于难以规则化的部分)

这层才用多模态判断去评估更开放的维度,例如:

  • 主体/场景/风格是否整体匹配需求
  • 是否存在明显瑕疵(手部畸形、脸崩、透视严重错误等)
  • 交付说明是否写清:能否商用、限制条件、使用建议

注意:开放项的判定要校准,不要一开始就“全自动放行”。

D. 过程约束(管体验、管成本)

对 Agent 的“过程”也要设上限,不然容易出现“靠烧钱刷分”:

  • 最大对话轮次(例如 ≤ 6 轮)
  • 工具调用次数上限(避免无限重试)
  • 总耗时 / 总成本阈值

10.4 成本控制

生图评测很贵,建议分三层跑,不同层用不同频率:

  1. 回归层(少量高价值,天天/每次发布必跑)
    高频品类 + 高风险合规项 + 线上常见故障
  2. 能力层(持续加难题,定期跑)
    风格混合、复杂构图、多约束冲突、长对话澄清等
  3. 抽检层(人工校准,每周固定抽样)
    抽查“通过样本”和“失败样本”,用来校准开放项判断与审核策略

10.5 典型坑

提前避开

  • 只看审美分,不看合规/侵权/交付规格 → 上线风险最大
  • 只测“能生成”,不测“该拒绝/该降级” → 合规体系形同虚设
  • 不看过程记录 → 不知道是 Agent 真错了,还是评分/审核错了;也抓不到“用昂贵链路刷通过”
  • 评分规则写死 → 把某一种构图当唯一正确,误杀大量合理解(导致迭代方向跑偏)

11. 最后

评测的目标是:知道变好还是变差、知道差在哪、知道怎么改。

真正成熟的状态通常是这样:

  • 每次改动都有反馈:离线分数怎么变、失败清单有哪些,一眼可见
  • 分数下降能追到根因:能定位到具体哪条任务、哪段过程记录出了问题
  • 关键回归集就是门禁:过不了就不发布(不讨论「感觉应该没事」)
  • 换模型/换策略能算账:能快速判断「收益是否值得成本与风险” 」
  • 线上与离线形成闭环:
    • 线上出现的新失败,能快速回流成任务进评测库
    • 离线提前发现的风险,能在上线前就挡住

最后一句:一定要看过程记录。

以上。