深浅色
Agent 评测与工程化(背诵版)
1. 怎么建评测集
- 来源:真实用户 query(脱敏)+ 人工构造的边界用例 + 历史 badcase。
- 规模:先 50 到 100 条覆盖主要场景就够,持续补充比一次做大更重要。
- 每条要有:输入、期望行为(不一定是精确答案,可以是「必须包含 X、不能出现 Y」)、打分方式。
- 追问:为什么不能只看精确匹配?-> 生成式任务答案多样,精确匹配会大量误判。
2. LLM-as-Judge
- 用强模型按 rubric 打分,成本低、可扩展。
- 已知偏置:位置偏置(偏好第一个)、长度偏置(偏好长答案)、自我偏好。
- 缓解:交换顺序跑两次、给明确的评分标准、人工抽检校准。
- 追问:和人工一致性多少算可用?-> 一般要到 80% 以上才敢用来做回归门禁。
3. 线上指标
- 效果:任务成功率、用户采纳率、重试率。
- 成本:平均 token 数、单次请求成本。
- 性能:P95 延迟、首 token 延迟。
- 追问:为什么看 P95 而不是平均?-> 平均值掩盖长尾,体验由最慢的那批决定。
4. Prompt 版本管理
- Prompt 要进代码仓库、带版本号,每次改动可 diff、可回滚。
- A/B 实验按用户分流,看核心指标,注意样本量和显著性。
- 追问:为什么不能直接在生产上改 prompt?-> 无法回滚、无法归因,出了问题说不清。
5. 缓存与降本
- 精确缓存:相同 query 直接返回。
- 语义缓存:query 向量相似度超阈值就复用答案,要小心误命中。
- 其他手段:压缩系统提示、小模型路由、批处理、限制 max_tokens。
- 追问:语义缓存最大的风险?-> 阈值太松会返回不相关答案,宁可漏命中也不要错命中。
6. 可观测性
- 每次请求记录:trace id、完整消息链、工具调用参数和结果、token 数、延迟、模型版本。
- 支持按 case 回放:同样输入重跑,定位是模型变了还是数据变了。
- 追问:日志能存用户原文吗?-> 要看合规要求,一般脱敏或加密存储。
7. 灰度与回滚
- 新模型 / 新 prompt 先小流量灰度,盯核心指标 + 人工抽检。
- 必须有一键回滚(模型和 prompt 都配置化)。
- 追问:灰度比例怎么定?-> 先 1% 到 5% 看会不会崩,再逐步放大。
8. 数据飞轮
- 收集 badcase(用户点踩、人工标注、Judge 判失败)-> 归因分类 -> 补进回归集 -> 修复后跑全量评测。
- 关键:回归集只增不减,防止修好一个坏掉另一个。
- 追问:badcase 怎么归因?-> 分四类:检索问题、prompt 问题、模型能力问题、数据缺失。