Appearance
第 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 / 监控本课结论
- AI 系统「评好坏」而非「测对错」:不确定 + 开放 + 难量化。
- 四方法: 人工、自动指标、LLM 裁判、生产信号。
- Golden Set 是 AI 版回归测试,支撑评估驱动开发闭环。
- RAG 分「检索 / 生成」两段评;Agent 加评「轨迹」。
- 降级第一原则:宁可拒答,不要编。 每类故障都要有兜底。
课后自检(3 分钟)
- [ ] 我有一个 30 条起步的评估集,改动后会跑对比
- [ ] 我评了忠实度(RAG 最关键的维度)
- [ ] RAG 我能分清失败是「没检索到」还是「答歪了」
- [ ] 若跑 Agent,我评了端到端成功率和轨迹合理性
- [ ] 模型 / 检索 / 工具失败我都设了降级话术,绝不编造
下一课预告
第 11 课 · 阅读器 AI 答疑架构全景 —— 进入第四篇「场景篇」,把前十课拼成一张完整的阅读器答疑架构图。
延伸阅读
© 曹宇春