订阅更新

Agent效果怎么评估?上线前怎么证明新版本更好?

Agent手册 第 11 题 约 9 分钟读完

本文目录
  1. 30秒版回答
  2. 面试官在考什么
  3. 展开一:评测集怎么建
  4. 展开二:指标分层
  5. 展开三:LLM 当评委——好用但要校准
  6. 展开四:回归对比——看“对变错”的样本
  7. 展开五:线上评估与回流闭环
  8. 追问链
  9. 加分说法 vs 减分说法
  10. 怎么挂到你的项目上
  11. 总结

30秒版回答

我会分三层做:离线评测、线上评估、持续回流。

离线评测的核心是一份按场景和难度分层的评测集,从真实用户问题中采样,每条样本有标准答案或标准证据。指标分层看:结果是否正确、过程是否合理(工具选得对不对、步数是否冗余)、成本和延迟是否可接受。每次改提示词、换模型都要跑全量回归,不仅看整体分数,还要看哪些样本从对变错。

能自动判定的用程序判定(比如问数结果和标准结果比对);开放式回答用 LLM 当评委,但评委本身要用人工标注做校准。

线上看用户反馈、人工兜底率、任务完成率,并且做灰度对比。答错的线上案例回流到评测集,评测集越用越强。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

面试官:「你们改了提示词、换了模型、加了工具之后,怎么知道新版本比旧版本好?Agent 的效果到底怎么评估?」

这道题是第三轮最重要的一道,它能一针见血地区分“做过”和“只看过”。只看过的人会说“我们找人试了试,感觉效果不错”;做过的人会讲评测集怎么建、指标怎么定、怎么防止改一个问题坏三个问题。

对数据开发来说,这道题其实是主场:评估本质上是一个数据问题——构造样本、定义指标、做对比实验、监控线上效果、回流坏样本。这和我们做数据质量、做 A/B 实验分析的方法论是相通的。

面试官在考什么

• 是否有评测集,并且知道评测集要覆盖真实分布和困难样本。

• 指标是否分层:不只看最终答案,还看检索、工具调用、轨迹、成本和延迟。

• 是否了解 LLM 作为评委(LLM-as-a-judge)的用法和局限。

• 是否有离线回归 + 线上监控 + 坏样本回流的闭环。

展开一:评测集怎么建

评测集是整个评估体系的地基。没有评测集,所有“效果提升”都是感觉。建评测集有几个原则:

• 来自真实分布:从线上日志、历史工单、用户群聊里采样,而不是工程师自己编问题。自己编的问题往往太“标准”,和真实用户的问法差距很大。

• 分层覆盖:按场景(问数 / 知识问答 / 诊断)、难度(简单 / 多步 / 需要澄清 / 应该拒答)分层,每层都有足够样本。

• 包含负样本:该澄清的、该拒答的、超出权限的问题,Agent 是否正确处理,和答对同样重要。

• 版本化管理:评测集本身也要像代码一样版本化,否则今天和上个月的分数没法比较。

// 一条评测样本的结构
{
  "case_id": "metric_0137",
  "scenario": "智能问数",
  "difficulty": "multi_filter",           // 简单/多过滤/同环比/需澄清/应拒答
  "question": "上个月华东区新客的客单价比前一个月涨了多少",
  "user_role": "region_manager_east",       // 用于测试权限
  "expected": {
    "type": "result_match",                 // 结果比对,而不是文本比对
    "reference_sql": "SELECT ...",
    "tolerance": 0.001
  },
  "expected_tools": ["query_metric"],       // 用于过程评估
  "tags": ["时间解析", "环比"],
  "source": "online_feedback_2026-09"
}

展开二:指标分层

层次看什么典型指标判定方式
结果层最终答案对不对正确率、引用正确率、拒答准确率程序比对 / LLM 评委 / 人工
过程层推理和行动路径是否合理工具选择正确率、平均步数、无效调用率对比期望工具和轨迹
检索层证据有没有找回来Recall@K、MRR、无结果率与标注的标准证据比对
安全层有没有越权或违规越权率、敏感信息泄露率红队样本 + 规则检测
效率层代价是否可接受P50/P95 延迟、单次成本、Token 数直接统计

过程层是 Agent 评估和传统模型评估最大的不同。同样答对了,一个版本用了 2 步,另一个用了 9 步,后者的成本、延迟和出错概率都更高。只看结果会掩盖这种退化。

展开三:LLM 当评委——好用但要校准

开放式回答(比如解释原因、总结文档)没法用程序判定对错,常用做法是让另一个模型按评分标准打分。但它有几个已知问题:偏好更长的回答、偏好和自己风格相似的回答、对位置敏感(两个答案比较时倾向于选第一个)。

# LLM 评委的评分提示(示意)
你是评审员。根据【参考证据】判断【回答】的质量,按以下标准逐项打分:
1. 忠实性(0-2):回答中的每个事实是否都能在证据中找到依据
2. 完整性(0-2):是否回答了问题的所有部分
3. 引用(0-1):是否给出了正确出处
先逐条列出回答中的事实及其证据位置,再给分。
只输出 JSON:{"faithful":x, "complete":x, "citation":x, "reason":"..."}
 
# 校准做法
- 抽取一批样本由人工打分,计算评委与人工的一致率
- 一致率不达标就修改评分标准,而不是直接用
- 两两比较时交换 A/B 位置各评一次,消除位置偏差

我会强调一点:LLM 评委是放大人工标注的工具,不是替代人工标注。没有人工校准的自动评分,分数涨了也不知道是真的变好还是评委被“讨好”了。

展开四:回归对比——看“对变错”的样本

这是最容易被忽视的地方。新版本整体正确率从 80% 涨到 83%,看起来是进步。但如果拆开看,可能有 10 个样本从错变对,同时有 7 个样本从对变错——那 7 个退化样本可能恰好是最重要的高频问题。

-- 版本回归对比:找出对变错的样本(评测结果落表后用 SQL 分析)
SELECT n.case_id, n.scenario, n.difficulty,
       o.is_correct AS old_correct, n.is_correct AS new_correct,
       n.steps - o.steps AS step_delta,
       n.cost - o.cost   AS cost_delta
FROM eval_result n
JOIN eval_result o ON n.case_id = o.case_id
WHERE n.run_id = 'v2.3' AND o.run_id = 'v2.2'
  AND o.is_correct = 1 AND n.is_correct = 0     -- 退化样本
ORDER BY n.scenario, n.difficulty;
 
-- 再按场景、难度分组看正确率变化,防止整体平均掩盖局部退化

把评测结果落进数仓、用 SQL 做多维分析——这是数据开发在 AI 团队里非常实用的一项能力,很多算法同学反而不擅长。

展开五:线上评估与回流闭环

• 显式反馈:点赞、点踩、纠错。注意它有偏差:不满意的人更愿意反馈,满意的人通常不吭声。

• 隐式反馈:用户是否追问同一个问题、是否复制了答案、是否转人工、是否在 Agent 回答后又去手动查数。

• 灰度对比:新版本先放一部分流量,对比任务完成率、转人工率、成本、延迟。

• 坏样本回流:点踩和转人工的案例每周人工复核,确认是问题的加入评测集,形成“线上发现 → 评测集覆盖 → 回归防退化”的闭环。

追问链

追问一:评测集多大合适?

没有固定数字,关键是每个分层都要有足够样本,让结论在统计上站得住。如果某个难度层只有几条样本,正确率波动一两条就是几十个百分点,结论没有意义。实践中会先保证每个核心场景、每个难度层都有一定数量的样本,再根据线上问题分布逐步扩充。另外要定期淘汰过时的样本,比如口径已经变更的问题。

追问二:模型输出有随机性,同一个样本跑两次结果不一样怎么办?

评测时尽量降低随机性(比如把采样温度设低),并对关键样本跑多次取通过率,而不是只跑一次。比较两个版本时,看的是在同一批样本上多次运行的统计结果。如果某个样本多次运行结果摇摆不定,说明它本身处于模型能力边界上,要单独标记出来分析。

追问三:怎么评估多步 Agent 的过程是否合理?

两种方法结合。一是关键节点检查:比如问数场景必须调用了指标查询工具、必须带了时间过滤,不要求每一步都和标准轨迹完全一致,只检查关键节点。二是效率指标:平均步数、重复调用率、失败后的恢复率。完全要求轨迹一致太严格,因为达成同一个目标可以有多种合理路径。

加分说法 vs 减分说法

✔ 加分说法✘ 减分说法
评测集来自真实分布,分层覆盖,含负样本找几个人试一试,感觉不错
指标分层:结果、过程、检索、安全、效率只看一个总体准确率
LLM 评委要用人工标注校准完全依赖 LLM 自动打分
回归看“对变错”的样本,不只看平均分评测集是工程师自己编的
线上反馈回流评测集,形成闭环上线后就不管了

怎么挂到你的项目上

话术模板:“我们的评估分三层:离线评测集、线上灰度、坏样本回流。评测集从真实问题里采样,按场景和难度分层,包括该拒答和该澄清的样本。每次迭代都跑回归,评测结果落表,用 SQL 按场景和难度拆分对比,重点看对变错的样本。开放式回答用 LLM 评委,但先用人工标注做了一致率校准。”

这里你的数据分析能力是加分项:A/B 实验、分层分析、样本偏差,这些都可以直接迁移到 Agent 评估。

总结

Agent 评估的核心是:评测集是地基,分层指标是骨架,回归和回流是闭环。数据开发答这道题有独特优势——评估本质上就是数据工作。把评测结果落表、用 SQL 分层分析、看退化样本,这些细节一讲出来,面试官就知道你是真做过的。

下一篇聊排错:Agent 一次回答错了,你怎么定位错在数据、检索、工具还是模型?

你们评估 AI 应用效果,现在用的是人工评估还是自动评估?评论区聊聊~

关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长

刷题进度保存在当前浏览器