Skip to content

第 10 课 · Eval 与降级:Agent 怎么测

AI 输出不确定、无标准答案 → 不能像普通代码测对错,只能「评好坏」。 没 Eval,优化全靠感觉,改好一个可能弄坏三个都不知道。


本课要解决的问题

工程篇收尾,回答「能不能上生产」的两个硬指标:

  • Eval: 输出不确定的 AI 系统,怎么衡量质量、怎么防退化?
  • 降级: 模型 / 检索 / 工具挂了,怎么不拖垮业务?

一、为什么不能用普通测试

不确定(采样随机,同一问两次答不同)
+ 开放式(无唯一正确答案)
+ 难量化(「答得好」不好写成断言)

所以要从「测对错」转向 「评好坏」


二、四种评估方法

方法说明适用
人工评估按评分标准(Rubric)打分最准但慢,早期 / 定标准
自动指标精确匹配、embedding 相似度有明确对错(分类 / 抽取)
LLM 当裁判用另一个 AI 给答案打分规模化评开放式回答,关键场景仍要人抽检
生产信号A/B、点赞点踩、是否追问 / 放弃上线后持续监控

三、核心:评估集(Golden Set)

攒一批代表性用例(问题 + 期望要点,30~100 条)
→ 每次改动跑一遍,看整体质量变化 = AI 版回归测试

评估驱动开发闭环:

建评估集 → 跑基线分 → 改进(prompt / 检索 / 切块)→ 再跑对比
→ 变好保留 / 变差回退 → 循环

评估维度

维度看什么
准确性答得对不对
相关性有没有答到点上
忠实度 Faithfulness基于资料、没瞎编(RAG 最关键)
格式合规是否按要求结构输出
安全性有无有害 / 越界
成本 & 延迟token / 速度

四、RAG 与 Agent 的专项评估

RAG:两段分开评

① 检索对不对(Retrieval):找没找到对的资料?找错了后面全白搭
② 生成好不好(Generation):拿到对资料后,答得准不准、忠不忠于资料?

RAG 答错,先分「没找到」还是「找到了但答歪」—— 病因不同,药不同。

Agent:加评「轨迹」

自主 Agent 除了看 最终结果,还要看 过程:

评什么说明
端到端成功率任务最终有没有完成
轨迹是否合理每一步调的工具对不对、有没有绕圈
步数 / 成本多少轮完成,超没超预算
是否越权 / 危险动作有没有调不该调的工具

五、降级:AI 挂了别拖垮业务

生产系统必须为「AI 不可用 / 不可信」准备兜底:

故障降级策略
模型超时 / 报错重试 → 切备用模型 → 返回固定话术
检索为空明确「未找到相关内容,建议问老师」,不要硬编
工具失败返回「暂时查不到,请稍后再试」,不让模型编结果
成本 / 轮数超限Agent 熔断,退回简单 Workflow 或人工
置信度低拒答 / 转人工,而非勉强作答

降级的第一原则:宁可说「我不知道」,也不要编。 教材场景尤其如此。


六、别过度工程

起步:人工 + 10~30 条,眼睛看(能发现 80% 问题)
成长:加 LLM 裁判,扩到 50~100 条
成熟:接生产反馈 / A-B / 监控

本课结论

  1. AI 系统「评好坏」而非「测对错」:不确定 + 开放 + 难量化。
  2. 四方法: 人工、自动指标、LLM 裁判、生产信号。
  3. Golden Set 是 AI 版回归测试,支撑评估驱动开发闭环。
  4. RAG 分「检索 / 生成」两段评;Agent 加评「轨迹」。
  5. 降级第一原则:宁可拒答,不要编。 每类故障都要有兜底。

课后自检(3 分钟)

  • [ ] 我有一个 30 条起步的评估集,改动后会跑对比
  • [ ] 我评了忠实度(RAG 最关键的维度)
  • [ ] RAG 我能分清失败是「没检索到」还是「答歪了」
  • [ ] 若跑 Agent,我评了端到端成功率和轨迹合理性
  • [ ] 模型 / 检索 / 工具失败我都设了降级话术,绝不编造

下一课预告

第 11 课 · 阅读器 AI 答疑架构全景 —— 进入第四篇「场景篇」,把前十课拼成一张完整的阅读器答疑架构图。


延伸阅读


© 曹宇春

© 曹宇春 · 个人学习整理,欢迎交流