Agent 评测怎么做?测试开发看懂离线评测、在线巡检与归因闭环

举报
霍格沃兹测试开发 发表于 2026/09/28 14:35:52 2026/09/28
【摘要】 摘要Agent 越来越容易搭,但真正进入生产环境之后,难点很快就从“能不能跑”变成了“跑得对不对”。模型升级以后效果有没有提升? Prompt 改完会不会引入退化? Tool 调用成功了,为什么最终结果还是错的? 线上出现 Bad Case,到底是模型、Prompt、Skill、RAG 还是工具出了问题?这些问题,本质上已经进入软件质量保障的范畴。对测试开发来说,Agent 评测并不是一套完...

摘要

Agent 越来越容易搭,但真正进入生产环境之后,难点很快就从“能不能跑”变成了“跑得对不对”。

模型升级以后效果有没有提升? Prompt 改完会不会引入退化? Tool 调用成功了,为什么最终结果还是错的? 线上出现 Bad Case,到底是模型、Prompt、Skill、RAG 还是工具出了问题?

这些问题,本质上已经进入软件质量保障的范畴。

对测试开发来说,Agent 评测并不是一套完全陌生的东西。

离线评测对应回归测试,在线评测对应线上巡检,Trace 对应链路追踪,Case 归因对应缺陷定位,评测集则会逐渐成为 Agent 项目最重要的测试资产之一。

一套完整的 Agent 评测体系,可以概括成:

四个模块、三种能力、两条 Loop、一套资产。


一、Agent 越容易做,评测反而越重要

现在搭一个 Agent,门槛已经比前几年低了很多。

模型本身的指令遵循、工具调用、多步推理、长上下文能力越来越强,Agent 框架也把规划、记忆、状态管理、工具注册等能力逐渐封装起来。

一个 Agent 很快就能跑起来。

但真正进入生产环境之后,问题才开始变复杂。

比如:

  • Demo 阶段效果不错,一接真实用户就大量翻车
  • 小流量没问题,一扩量问题集中出现
  • Prompt 改了几十版,却说不清到底有没有变好
  • 模型升级后部分能力提升,部分能力却出现退化
  • 线上结果错了,却不知道到底是哪一层的问题

这类问题最后都会回到一个核心:

团队缺少稳定、可重复、可量化的判断机制。

传统软件测试一直在解决同一个问题:

不是“感觉系统没问题”,而是用测试证明系统现在到底处于什么质量水平。

Agent 评测也是一样。


二、Agent 评测到底在测什么?

早期做大模型测试,很多人习惯关注最终答案:

输入问题
↓
模型输出
↓
判断答案对不对

这种方式适合简单问答,但不适合复杂 Agent。

一个真实 Agent 任务可能是:

用户输入
   ↓
理解意图
   ↓
制定计划
   ↓
选择 Skill
   ↓
调用 Tool
   ↓
获取外部数据
   ↓
处理中间结果
   ↓
继续推理
   ↓
生成最终结果

只要其中任何一步出问题,最后结果都可能失败。

所以 Agent 评测不能只关注:

最终答案对不对?

还必须关注:

Agent 是怎么完成这件事的?

这也是 Agent 评测非常关键的变化:

从答案评测,走向行为评测。

对于测试开发来说,被测对象也随之改变了。

以前主要测:

  • 页面
  • 接口
  • 服务
  • 数据库

现在还需要测试:

  • Prompt
  • RAG
  • Memory
  • Tool
  • Skill
  • MCP
  • Workflow
  • Agent 执行轨迹

三、先看全景:Agent 评测体系怎么搭?

一套完整的 Agent 评测体系,主要包括四部分:

  • 离线评测
  • 在线评测与在线监控
  • Case 挖掘与归因
  • Agent 观测基建

测试开发可以直接这样理解:

Agent 评测

测试开发中的对应能力

评测集

测试用例库 / 回归集

离线评测

回归测试

发布门禁

CI/CD 质量门禁

在线评测

线上巡检

在线监控

稳定性监控

Case 挖掘

缺陷发现

问题归因

Bug 定位

Trace

日志 / 调用链

Bad Case

历史缺陷样本

Golden Case

黄金测试样本

这套体系解决的其实就是三个问题:

能不能发现问题?能不能定位问题?能不能让系统持续变好?


四、两条 Loop,决定 Agent 能不能真正持续迭代

Agent 评测不是跑一次测试就结束,而应该形成两条持续运转的闭环。



第一条:Agent 迭代 Loop

线上出现 Bad Case 后,通过 Trace 做问题归因。

最终可能定位到:

  • Prompt 写得不够清楚
  • Skill 描述导致路由错误
  • Tool 参数生成错误
  • RAG 召回有问题
  • 上下文丢失
  • 模型能力不足

修复之后重新跑离线评测,确认核心能力没有退化,再进入下一轮上线。

这就是 Agent 自身的能力演进。


第二条:评测体系迭代 Loop

不是每个失败 Case 都是 Agent 的错。

还有两种常见情况:

第一种:评测集没覆盖。

线上出现了一个新场景,但现有评测集中根本没有类似样本。

那这个 Case 就应该进入评测集。

第二种:评测标准有问题。

Agent 的行为实际上符合用户需求,但现有 Rubric 却判定失败。

这时要修的就不是 Agent,而是评测标准。

所以评测体系本身也必须持续升级。


五、评测集,是 Agent 项目最重要的测试资产

传统测试团队长期积累的是测试用例库。

Agent 团队未来长期积累的,会是:

Eval Dataset。

一个完整的评测 Task,至少要包含:

输入
+
期望行为 / 参考结果
+
评价标准

其中评价标准一般会继续拆成:

  • Metrics
  • Rubric

比如测试一个“自动生成测试用例 Agent”。

如果只写:

测试用例质量要高。

这个标准没办法稳定执行。

可以继续拆成:

Rubric

判定

是否覆盖核心业务流程

Pass / Fail

是否包含异常场景

Pass / Fail

是否包含边界条件

Pass / Fail

是否包含权限校验

Pass / Fail

是否出现需求之外的信息

Pass / Fail

输出格式是否符合规范

Pass / Fail

原本非常主观的“好不好”,就被拆成了可以执行的质量检查项。

这和测试用例设计本身没有本质区别:

把模糊需求拆成可验证条件。


六、Agent 评测集,要同时建端到端和过程评测

Agent 评测集至少要分成两类:

端到端评测集

和

过程评测集。



评测类型

主要关注什么

测试开发视角

端到端评测

事情有没有办成

系统测试 / 验收测试

过程评测

哪一步出了问题

模块测试 / 组件测试

端到端评测

比如一个 Agent 的任务是:

根据 PRD 自动生成 Web 测试用例。

最终需要判断:

  • 是否完成任务
  • 核心功能是否覆盖
  • 输出是否可用
  • 是否符合最终交付要求

关注的是:

用户最后有没有拿到可用结果。


过程评测

继续往下拆:

PRD 解析正确率
      ↓
功能点提取准确率
      ↓
测试点覆盖率
      ↓
测试用例生成质量
      ↓
格式正确率

假设最终结果突然从 90 分掉到 70 分。

端到端评测只能告诉你:

版本退化了。

过程评测可以继续告诉你:

PRD 解析正常 功能点提取正常 测试点覆盖率从 92% 降到了 68%

问题就能快速定位。

所以:

端到端评测负责报警,过程评测负责找问题。


七、离线评测,就是 Agent 的回归测试

只要 Agent 发生变更,都应该重新跑离线评测。

常见变更包括:

  • 模型升级
  • Prompt 修改
  • 知识库更新
  • Skill 新增
  • Skill 下线
  • Tool 更新
  • Workflow 调整

整个过程和传统回归测试高度相似

这里有一个很重要的前提:

评测环境要尽量固定。

因为回归测试本质上是控制变量。

同一批样本、同一套 Rubric、同一套执行环境,只改变 Agent 版本,才能判断分数变化到底来自哪里。


八、Agent 回归不能只跑一次

传统接口测试经常是:

执行一次
↓
Pass / Fail

Agent 不一样。

模型输出存在随机性。

同一个 Task 连跑几次,可能得到:

第一次:Pass
第二次:Pass
第三次:Fail
第四次:Pass
第五次:Pass

这时更有价值的数据不是:

第一次有没有通过。

而是:

这个任务的稳定通过率是多少。

所以 Agent 评测通常需要:

  • 多次 Trial
  • Pass Rate
  • Pass@k
  • 稳定性统计

未来 Agent 测试会越来越关注:

概率稳定性。

而不是只看一次执行结果。


九、评测门禁不能只有一个总分

Agent 发布不能简单规定:

总分 80 分以上就可以上线。

不同问题的严重程度完全不同。

比如:

类型

示例

门禁策略

安全

越权、敏感信息泄漏

一票否决

准确性

金额、关键数据错误

一票否决

核心能力

关键任务失败

强门禁

体验

表达自然度

阈值判断

成本

Token / 执行步数

设上限

安全类、数据准确性类问题,通常不应该被“平均分”稀释掉。

所以 Agent 回归更适合使用:

分层门禁。

真正有约束力的评测,还应该接入 CI/CD 或发布流程。

否则评测报告再完整,也只是建议。


十、离线守住已知,在线负责发现未知

离线评测有一个天然限制:

只能测已经进入评测集的问题。

评测集没有覆盖的场景,永远测不出来。

所以 Agent 质量体系必须同时建设线上能力。

主要包括:

  • 在线评测
  • 在线监控
  • 巡检
  • AB
  • 影子模式

在线评测和在线监控的区别

模块

关注点

在线评测

Agent 工作得好不好

在线监控

Agent 有没有正常工作

举个例子。

Tool 调用成功率:

100%

超时:

0

异常:

0

监控看起来一切正常。

但如果 Tool 返回的数据是错的,Agent 最终给用户的结果仍然可能是错的。

所以:

可用性正常,不代表质量正确。


十一、线上监控至少要看三类指标

① 可用性

例如:

  • Skill 成功率
  • Tool 成功率
  • 调用失败率
  • 超时率
  • 异常类型

② 性能和成本

例如:

  • Token 消耗
  • 平均响应时间
  • 平均执行步数
  • 模型调用次数

Agent 系统相比传统软件,还多了一个非常重要的质量维度:

成本。

比如同一个任务:

旧版本

8 Step
5000 Token
10 秒

升级以后:

新版本

25 Step
20000 Token
30 秒

即使最终结果提升了一点,也要重新评估这个版本是否值得上线。

③ 行为监控

例如:

  • 任务类型分布
  • Skill 调用频率
  • 平均对话轮次
  • Agent 执行路径

这类指标特别适合发现新的用户需求。

如果某类任务比例突然增加,而现有 Agent 在这个场景表现很差,就意味着:

评测集也需要跟着变化。


十二、Bad Case 不应该修完就结束

传统软件线上出了 Bug,经常是:

发现问题
↓
修复
↓
验证
↓
关闭 Bug

Agent 更适合做成:

发现 Bad Case
↓
问题归因
↓
修复 Agent
↓
加入评测集
↓
以后每次版本自动回归

这样一个线上事故,才能真正变成长期资产。

Case 池可以继续拆成两类:

Good Case

代表系统已经做得比较好的案例。

可以进入:

Golden Dataset

用于定义:

什么水平才算好。

Bad Case

代表系统已经踩过的坑。

可以进入:

Error Dataset / 错题集

用于确保:

同样的问题不要再犯第二次。


十三、Trace 是 Agent 测试绕不开的一层

Agent 出了问题,最大的麻烦之一就是:

最终结果错了,但不知道中间发生了什么。

一次 Agent 执行可能经历:

用户输入
↓
模型调用
↓
任务规划
↓
Skill 选择
↓
Tool 调用
↓
返回数据
↓
上下文更新
↓
再次推理
↓
最终输出

如果系统只保存:

用户输入
+
最终答案

基本很难做稳定归因。

所以 Agent 观测基建必须能够提供 Trace。

Trace 至少应该记录什么?

对象

需要记录

Model

输入、输出、耗时、Token

Prompt

实际执行版本

Tool

参数、结果、异常

Skill

选择过程、执行结果

Context

关键上下文变化

Workflow

执行路径、分支

Retry

重试次数、原因

Result

最终交付结果

冷启动阶段,不一定一开始就把观测平台做得很重。

但至少要做到:

最小可归因。

也就是拿到一个 Bad Case 后,可以通过 Trace 还原当时到底发生了什么。


十四、Agent 问题怎么做归因?

Agent 最终失败,不等于:

模型不行。

问题可能发生在很多层。

这套排查过程,其实和测试开发熟悉的 Bug 定位非常像:

发现问题
↓
稳定复现
↓
查看日志
↓
分析调用链
↓
确认根因
↓
修复
↓
回归

只是 Agent 的链路更长,而且多了模型、Prompt、上下文、RAG、Tool、Skill 等新的变量。


十五、还有一种问题:评测标准本身错了

Agent 评测有一个很容易被忽略的风险:

评测判定失败
↓
不断优化 Agent
↓
Agent 越来越适合 Benchmark

但用户真正想要的东西,可能没有变好。

这种情况本质上就是:

过度拟合评测集。

所以遇到 Bad Case 时,不要永远默认:

Agent 错了。

还要检查:

  • Rubric 是否合理
  • 样本是否还有代表性
  • 用户需求是否变化
  • 评测集分布是否跟真实流量一致

否则最后可能出现:

评测分越来越高,真实用户却越来越不满意。


十六、测试开发团队可以怎么开始?

不需要一开始就把整套平台一次建完。

Agent 评测更适合从最小闭环开始。

第一阶段:先把回归跑起来

至少准备:

  • 一批核心端到端 Task
  • 一批关键过程 Task
  • 基础 Rubric
  • 简单回归脚本

先能判断:

改完到底有没有退化。


第二阶段:让 Bad Case 回流

线上每发现一个典型问题:

Bad Case
↓
定位
↓
修复
↓
加入 Eval Dataset

逐渐形成:

  • 黄金集
  • 错题集
  • 必过集
  • 挑战集

第三阶段:补齐 Trace

保证:

  • 模型调用看得见
  • Tool 调用看得见
  • Skill 路由看得见
  • 执行路径看得见

做到真正可归因。


第四阶段:接入研发流程

最后把评测真正放到:

代码 / Prompt / Skill 变更
        ↓
     自动 Eval
        ↓
     质量门禁
        ↓
       发布

这时候 Agent Eval 才真正成为质量体系的一部分。


十七、Agent 评测为什么值得测试开发关注?

Agent 时代,并没有让测试变得不重要。

恰恰相反。

随着软件逐渐具备:

  • 推理
  • 规划
  • 工具调用
  • 记忆
  • 自主执行

被测系统反而变得更复杂了。

过去测试开发主要解决:

软件代码写得对不对。

现在还要继续解决:

Agent 理解得对不对。

路由选得对不对。

工具调得对不对。

执行过程对不对。

最后的事情到底有没有办成。

这会带来一批新的测试工程问题:

  • Agent Eval Dataset 怎么建?
  • Rubric 怎么设计?
  • Tool Calling 怎么测试?
  • Skill 路由怎么测试?
  • RAG 怎么评测?
  • 多轮 Agent 怎么回归?
  • Trace 怎么采集?
  • Bad Case 怎么自动归因?
  • Eval 怎么接入 CI/CD?
  • 在线巡检怎么做?

这些问题,最终都离不开测试工程能力。


写在最后

一套完整的 Agent 评测体系,可以收敛成四句话:

离线评测守住已知问题。

在线评测和监控负责发现未知问题。

Case 挖掘与归因负责找到问题发生在哪里。

Trace 和观测基建负责让整个过程真正可分析、可复现、可回归。

最后,所有线上问题继续沉淀回评测集

当软件开始具备推理、规划和自主调用工具的能力之后,我们该怎样重新做好质量保障。

这才是 Agent 时代测试开发真正值得提前布局的方向。

关于我们

本文部分内容参考了霍格沃兹测试开发学社整理的相关技术资料,主要涉及软件测试、自动化测试、测试开发及 AI 测试等内容,侧重测试实践、工具应用与工程经验整理。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。