Appearance
04. Evals 与评测体系详解
版本:
v1.2最后更新:
2026-07-09适用对象:准备把 LLM 应用从“能跑 Demo”推进到“能持续迭代、能回归、能上线、能解释退化原因”的产品、算法、平台与工程同学
1. 为什么 AI 系统必须做评测
传统软件很多时候是:
- 输入边界相对明确
- 输出结果相对确定
生成式 AI 不是这样。即便同一个任务、同一个模型、同一个 Prompt,结果也可能因为:
- 上下文变化
- 检索内容变化
- 工具状态变化
- 模型版本变化
- 采样参数变化
而发生明显波动。
所以评测的目标,不是证明系统永远正确,而是建立一套:
- 可持续比较
- 可解释退化
- 可指导优化
- 可作为发布门禁
的工程机制。
如果没有评测,团队常见处境会变成:
- 改了 Prompt,不知道到底变好还是变差
- 换了模型,只能靠主观感觉判断
- 线上出问题,只能看报错率,解释不了质量退化
- 版本迭代很多,但没有办法稳定回归
2. Eval 到底是什么
可以把 Eval 理解为:
- 用一组样本
- 配一套明确标准
- 通过规则、人工或 grader 打分
- 比较不同版本结果
- 再把结果回流到系统优化里
它评测的对象不只可以是模型本身,还可以是完整系统:
- Prompt
- Structured outputs
- RAG
- Tool calling
- Agent
- Workflow
- Guardrails
- 人机协同链路
所以更准确地说:
Eval 是 AI 系统的质量回路,而不是某个单点打分脚本
2.1 “评测”这个词在工程里经常指三种不同东西
OpenAI 当前 Evaluation best practices 官方文档里给出的分类很有用。你看到“evals”这个词时,它可能指:
- 行业 benchmark 例如 MMLU 这类模型横向比较基准
- 通用分数或指标 例如 ROUGE、BERTScore、准确率这类数值
- 面向你自己业务实现的具体测试
真正对业务最有价值的,通常是第 3 类。
2.2 Eval 不是只看“最后答案对不对”
在 LLM 系统里,最后答案经常只是现象层。
真正需要评估的可能是:
- 检索是否命中正确证据
- Tool 是否选对
- 参数是否填对
- JSON 是否满足 schema
- Agent 是否在该停的时候停下
- 高风险动作是否进入审批
也就是说,成熟评测一定会从“最终结果”往“中间链路”下钻。
3. 先判断你的系统属于哪种架构,再决定 eval 怎么做
OpenAI 当前 Evaluation best practices 官方文档明确建议,先识别系统里“哪里开始出现非确定性”,再决定评测点。一个很实用的分法是四类:
- Single-turn model interaction
- Workflow
- Single-agent
- Multi-agent
3.1 单轮模型调用
典型特征:
- 输入一次
- 输出一次
- 中间没有复杂状态和外部工具
评测重点通常是:
- 输出质量
- 结构化稳定性
- 风格约束
- 安全约束
3.2 Workflow
典型特征:
- 多步骤串联
- 某些步骤是固定逻辑
- 某些步骤调用模型
评测重点通常是:
- 每个节点的局部正确率
- 节点间衔接是否稳定
- 哪个节点引入退化
3.3 单 Agent
典型特征:
- 会规划
- 会调用工具
- 会根据上下文继续多轮执行
评测重点通常是:
- 任务完成率
- Tool 选择和参数正确率
- 回合控制
- 停止条件
- 人工接管率
3.4 多 Agent
典型特征:
- specialist 分工
- handoff
- 工具面和权限面不同
评测重点通常是:
- handoff 是否合理
- 路由是否稳定
- specialist 是否各自完成边界内职责
- 多 agent 协作是否真的比单 agent 更好
4. 一个完整评测体系通常分四层
一个成熟评测体系,通常至少由四层组成。
4.1 样本层
回答:
- 用哪些输入来测
- 这些样本代表哪些业务场景
4.2 标准层
回答:
- 什么叫通过
- 什么叫退化
- 哪些错误不可接受
4.3 打分层
回答:
- 用规则判断
- 用人工判断
- 还是用 grader 模型判断
4.4 决策层
回答:
- 这次结果能不能上线
- 哪类退化必须拦截
- 哪些样本要回流成新的回归集
如果只做前两层,没有形成上线决策,评测还停留在“看报告”。
如果只做打分,没有高质量样本和标准,打分也不可靠。
5. OpenAI 2026 年的评测产品心智:Datasets、Evals、Traces、Agent evals
这一部分特别需要按当前时间理解。
根据 OpenAI 当前官方资料,在 2026-07-09 可访问状态下:
Datasets适合更轻量、更快开始的评测构建Evals仍然可用,但已经进入弃用迁移阶段Trace grading和Evaluate agent workflows更适合 agent / workflow 级问题
5.1 先说最重要的时间线
根据 OpenAI 官方 Deprecations 页面:
2026-06-03:Evals 平台宣布弃用2026-10-31:现有 Evals 变为只读2026-11-30:Evals dashboard 和 API 计划关闭
这意味着你今天还可以参考和使用这套能力,但不能再把它当成长期唯一依赖。
5.2 如果你是新团队,官方现在更推荐从 Datasets 起步
OpenAI 当前 Working with evals 和 Getting started with datasets 官方文档都在强调:
- 如果你是刚开始做评测
- 或者想更迭代式地尝试
可以优先从 Datasets 开始。
它更适合:
- 快速组织样本
- 尝试 Prompt 或模型变更
- 用较轻的成本搭建评测起点
5.3 如果你需要大规模、程序化、外部模型比较,Evals 仍然有现实价值
虽然 Evals 处于弃用阶段,但在过渡窗口里它仍然适合这些事情:
- 通过 API 程序化运行
- 批量执行
- 跑外部模型对比
- 用 grading 配置做系统化比较
工程上更稳的理解通常是:
Datasets更适合起步和快速迭代Evals更适合程序化运行和大规模实验Trace grading更适合 agent/workflow 问题定位
5.4 Agent 系统不要只看 final answer,要尽快上 traces
OpenAI 当前 Evaluate agent workflows 和 Trace grading 官方文档给出的结论很明确:
- Trace grading 是定位 workflow 级问题最快的方法
Trace 记录的是:
- 模型调用
- 工具调用
- guardrails
- handoffs
- 决策路径
它不是只看“最后答得像不像”,而是直接看“系统一路怎么走到这里”。
6. Evals 在 LLM 系统里到底评什么
评测维度通常不是单一总分,而是一组多目标组合。
常见维度包括:
- 正确性
- 完整性
- 一致性
- 结构化输出合法性
- 引用准确性
- 安全性
- 成本
- 延迟
不同系统的重点不同:
- 分类系统更看准确率、召回率、误判率
- RAG 更看证据覆盖、引用正确率、回答与证据一致性
- Agent 更看任务完成率、工具调用正确率、人工接管率
- Structured extraction 更看字段齐全率、枚举合法率、格式有效率
所以评测设计第一步不是问“总分怎么算”,而是先问:
- 这条业务最怕哪类错
7. 离线评测是起点,不是终点
离线评测的优点很明显:
- 可重复
- 成本可控
- 适合回归
- 适合做版本间对比
但离线评测天然有边界:
- 样本永远不可能覆盖全部线上分布
- 用户行为会变化
- 知识库会变化
- 工具、策略、模型会持续变化
因此更现实的体系通常是:
- 离线评测做门禁
- 在线观测做验证
- 线上失败样本回流补充离线集
7.1 线上失败不回流,离线集迟早会失真
这是很多团队一开始最容易忽略的一点。
如果线上真实失败样本从来不回流,离线评测集就会越来越像:
- 老版本问题集
- 人工想象场景集
而不再像真实生产分布。
8. 最小可行评测闭环该怎么搭
对多数团队来说,起步并不需要先上复杂平台。更推荐先把这个最小飞轮跑通:
- 收集代表性样本
- 为每类样本定义成功标准
- 跑当前系统,保留输入、输出和关键中间证据
- 用规则、人工或 grader 打分
- 分类失败原因
- 修改系统
- 对同一批样本再次运行并比较
只要这套闭环能持续跑,你就已经开始做真正的 Eval 了。
8.1 最小闭环的关键不在平台,而在可重复性
你至少要保证:
- 同一批样本能重复跑
- 同一套标准能重复打分
- 同一版本结果能被保存和比较
否则“评测”很快会退化成:
- 看几条日志
- 手工试一试
- 大家感觉还可以
9. 样本集不是越大越好,而是越代表越好
一个可用的评测集,至少要覆盖三类样本:
9.1 正常样本
代表主流业务分布,用来判断系统是否稳定满足日常质量。
9.2 边界样本
代表长度极端、上下文不完整、输入模糊、脏数据等场景。
9.3 高风险失败样本
代表过去真实翻车、投诉、事故、误判、越权或幻觉案例。
如果评测集只包含“最好回答”的题,结论通常会过度乐观。
9.4 还可以再加一类:迁移样本
当你在做:
- 模型切换
- Prompt 大改
- 工具协议迁移
- 输出 schema 迁移
更稳的做法通常是单独维护一组:
- 迁移敏感样本
它们不一定是最常见样本,但很适合暴露兼容性问题。
10. 样本版本化为什么很重要
很多团队一开始做评测,最大问题不是不会打分,而是每次都悄悄改样本。
建议至少版本化这些对象:
- 数据集本身
- 样本标签
- 评分规则
- grader 提示词
- 基线结果
否则你很容易陷入这种局面:
- 分数看上去变高了
- 但其实只是题库换了、grader 变了、标准松了
这也是为什么 baseline 和 benchmark 应该被当作正式资产治理。
10.1 Dataset version、grader version、baseline version 最好分开
评测体系里至少有三套可能变动的东西:
- 数据
- 评分器
- 被测系统基线
把这三者拆开版本化,你才能回答:
- 这次上升到底是系统变好了
- 还是 grader 变松了
- 还是数据集变简单了
11. 成功标准必须从模糊口语变成可执行规则
差的标准通常长这样:
- 回答得不错
- 看起来更自然
- 好像更像人工
好的标准应该尽量可执行,例如:
- JSON 是否合法
- 字段是否齐全
- 枚举值是否在允许集合内
- 摘要是否覆盖至少 3 个关键点
- 回答是否引用了检索证据
- 是否出现明确禁止内容
- 是否在预算内完成
标准越具体,系统越能被持续优化。
11.1 最好先写失败标准,再写成功标准
这是很实用的一条经验。
很多时候团队对“优秀答案”分歧很大,但对“绝对不能接受的失败”反而更一致。
例如:
- 编造引用
- 漏关键字段
- 误触发写工具
- 越权回答
先把这些写清,评测门禁会更容易落地。
12. 三种最常见的打分方式
12.1 规则打分
适合:
- JSON 合法性
- 长度限制
- 字段缺失
- 枚举合法性
- 正则或 schema 校验
优点:
- 快
- 便宜
- 稳定
限制:
- 很难覆盖复杂语义质量
12.2 人工打分
适合:
- 高价值样本
- 模糊语义判断
- 新任务冷启动
- 校准 grader 标准
优点:
- 质量高
- 能发现意外问题
限制:
- 慢
- 贵
- 扩展性差
12.3 模型 grader
适合:
- 复杂语义判断
- 大规模评测
- 一致性要求较高的批量比较
优点:
- 可扩展
- 比纯人工更高效
限制:
- grader 本身也会有误差
- 需要定期和人工标注校准
最稳妥的策略通常不是三选一,而是组合使用。
13. OpenAI 当前官方 grader 能力,最该怎么理解
OpenAI 当前 Graders 官方文档把 grader 类型写得比较清楚。常见类型包括:
string_checktext_similarityscore_modelpython code execution
在更复杂场景里,还可以做:
multigrader 组合
13.1 string_check 最适合做强约束对齐
适合:
- 枚举值是否一致
- 工具名是否一致
- 参数字符串是否一致
尤其适合结构化输出和 tool calling 场景。
13.2 text_similarity 更像软匹配
当你不要求逐字相等,而更关心语义接近时,这类 grader 更合适。
但也要小心:
- 软匹配更容易放过错误细节
13.3 score_model 更适合复杂语义 rubric
当你想评估:
- 回答是否完整
- 是否忠于证据
- 是否满足风格要求
这类复杂标准时,score model grader 更实用。
但它不是“万能裁判”,后面还需要人工校准。
13.4 Python grader 适合确定性程序校验
当规则本身可以被程序明确表达时,Python grader 往往更可靠,例如:
- 自定义计算逻辑
- 数值比对
- 组合规则
13.5 多 grader 组合通常比单总分更稳
OpenAI 当前官方文档里明确支持多 grader 组合。
工程上这很有意义,因为你可以拆开看:
- 结构化正确率
- 语义质量
- 工具参数正确率
- 安全项
而不是只看一个平均分。
14. grader 不是“万能裁判”
OpenAI 官方关于 graders 和 evaluation best practices 的资料一直在强调一个现实:
- grader 自己也会错
- grader 提示词、rubric 和样本分布都会影响结果
因此生产上更稳妥的做法通常是:
- 先用规则收掉结构性错误
- 再用 grader 处理复杂语义判断
- 最后抽样人工校验 grader 的一致性
14.1 grader 校准不是一次性动作
随着这些东西变化:
- 业务目标
- 模型
- Prompt
- 数据分布
grader 本身也会漂移。
所以校准最好长期保留:
- 人工 gold set
- grader vs human 差异集
- 定期抽检节奏
14.2 partial credit 比二元判断更适合复杂任务
OpenAI 当前 grader 文档里也明确提到:
- 有时给 partial credit 比只给 0/1 更有用
这尤其适合:
- 多字段抽取
- 多步骤推理
- 多证据覆盖
因为复杂任务里“完全错”和“差一点对”对优化方向完全不同。
15. Tool calling、JSON 输出和结构化任务要单独评
OpenAI 当前 grader 官方文档里专门解释了:
sample.output_jsonsample.output_tools
这些变量如何被 grader 消费。
这对工程落地很重要,因为它说明:
- 工具调用不是只能看最终自然语言
- JSON 输出也不是只能看 output_text
15.1 Tool calling 评测通常至少拆成两层
一个很常见、也很稳的做法是分别评:
- 工具名是否正确
- 参数是否正确
因为这两类错误的根因通常不同:
- 工具名错更像路由问题
- 参数错更像 schema、Prompt 或上下文问题
15.2 JSON 输出不要只看“能 parse”
结构化输出至少要继续检查:
- 字段齐全率
- 枚举合法率
- required 字段命中率
- 值域是否合理
15.3 Tool 和 JSON 评测非常适合规则 + grader 组合
例如:
- 规则层检查 schema、字段、枚举
- grader 层检查语义是否符合业务预期
这种组合比只看文本相似度稳定很多。
16. 一个成熟评测体系会把失败样本做分类
失败样本不是只拿来算分,更重要的是拿来定位优化方向。
建议至少按这些维度分类:
- Prompt 设计问题
- 上下文装配问题
- 检索问题
- 工具问题
- 模型能力问题
- 输出格式问题
- 安全与护栏问题
一旦分桶清楚,后续优化会快很多,因为团队不再只是看到“错了”,而是知道“错在哪一层”。
16.1 失败分桶最好能反向映射 owner
更成熟的做法通常是让每个失败桶都能映射到:
- Prompt owner
- 检索 owner
- 平台 owner
- Agent owner
- 安全 owner
这样评测报告才能真的推动行动,而不是停在观察层。
17. 为什么复杂系统要分层评测
对于 Prompt、RAG、Agent 这类系统,只看最终答案通常不够。
17.1 Prompt 系统
重点看:
- 输出质量
- 结构化稳定性
- 拒答和约束执行
17.2 RAG 系统
重点看:
- 检索命中质量
- rerank 是否把好证据顶上来
- 生成是否忠于证据
17.3 Agent 系统
重点看:
- 任务完成率
- 工具选择正确率
- 参数填写正确率
- 人工接管是否合理
- 停止条件是否正常
分层评测的意义在于,系统退化时你能更快定位:
- 是检索坏了
- 是工具坏了
- 还是最终生成坏了
18. Trace grading 和 Agent evals 为什么特别重要
OpenAI 当前 Evaluate agent workflows 和 Trace grading 官方文档里给出的主线非常明确:
- Start with traces when you are still debugging behavior
原因很简单:
- final answer 只能告诉你结果不好
- trace 才能告诉你是哪里开始走偏
18.1 什么是 trace
Trace 通常包含:
- 模型调用
- 工具调用
- guardrails
- handoffs
- 状态推进
- 最终输出
18.2 Trace grading 最适合回答什么问题
例如:
- planner 有没有反复重试无意义工具
- handoff 是否发生在正确时机
- 高风险动作前是否进入了审批
- 哪一步开始引入幻觉或越权风险
18.3 Agent eval 不该只看 final answer
一个成熟 agent eval 至少应该同时看:
- 终态结果
- 路径质量
- 工具质量
- 审批与安全边界
- 成本与延迟
19. 评测体系要同时看质量、成本和延迟
很多团队会犯一个经典错误:
- 只追求质量提升
但真实系统里,常见情况是:
- 质量提升了一点
- 延迟翻倍
- 成本暴涨
- 安全护栏变弱
所以建议至少保留这些指标组:
- 质量分
- 任务完成率
- 延迟
- token 成本
- 工具调用次数
- 安全失败率
否则上线决策会被“单一高分”误导。
20. 在线评测和离线评测怎么衔接
更成熟的团队通常会形成这样一条链路:
text
线上请求
-> 失败样本沉淀
-> 标注与分桶
-> 进入数据集新版本
-> 离线回归评测
-> 新版本比较
-> 再上线观察这条链路的关键不在平台,而在闭环。
如果线上失败样本从来不回流,离线集迟早会和真实业务脱节。
21. 什么时候应该上自动化评测门禁
只要系统开始进入以下任一阶段,就应该尽快引入自动化门禁:
- 产品持续迭代
- 多人协作
- 多模型切换
- 上线前需要比较多个版本
- 线上更新频率高
更具体地说,可以先从这些门禁开始:
- 结构化输出必过
- 高风险样本不允许退化
- 核心业务任务完成率低于基线时禁止上线
- 成本或延迟超过阈值时告警
21.1 门禁阈值不该只看一个平均分
OpenAI 当前 Evaluation best practices 一直强调先定义目标、数据集和指标,再持续比较版本。
这放到发布门禁里,通常意味着不要只看一个总分,而要至少同时看:
- 总体通过率
- 高风险样本通过率
- 结构化输出成功率
- 成本和延迟是否越界
如果只是“平均分过线就发布”,很容易出现:
- 高频正常样本把整体均值拉高
- 边界样本和高风险样本已经明显退化
21.2 不同任务,门禁强度也应该不同
更现实的做法通常是按任务分层:
- 低风险问答:可以允许更高探索空间
- 结构化抽取:更看字段正确率和格式稳定性
- RAG 问答:同时看检索质量和答案忠实度
- Agent / tool calling:更看工具正确率、参数正确率和安全边界
22. 2026 年做评测时,官方迁移趋势该怎么理解
按 2026-07-09 可访问的 OpenAI 官方资料看,一个更现实的理解方式是:
- 继续用 Evals 的思路和能力搭体系,但不要把新建设计完全绑死在旧平台对象上
- 新团队优先学会用 datasets、traces、graders 和回流闭环
- 老团队则要准备迁移窗口,特别是
2026-10-31与2026-11-30这两个时间点
22.1 你真正该保留下来的不是某个产品名,而是这四类资产
无论底层平台如何变化,真正应该长期保留的是:
- 数据集
- 评分 rubric
- grader 配置
- baseline 与回放证据
只要这些资产是版本化和可迁移的,平台变化不会把体系整体打散。
22.2 评测平台会迁移,但评测方法不会过时
即便 Evals 平台进入弃用,以下方法论仍然有效:
- 先定义目标
- 设计样本集
- 组合 evaluator
- 做离线回归
- 让线上失败回流
- 用门禁控制发布
这才是评测体系真正的长期价值。
23. 一个更现实的建设顺序
如果你现在要从零搭评测体系,一个很稳的顺序通常是:
- 先收 50 到 200 条有代表性的真实样本
- 定义最重要的 3 到 5 个指标
- 先做规则校验和少量人工校准
- 再引入 grader
- 建立样本版本和 baseline
- 接入线上失败回流
- 再做自动化门禁
- 最后再补 trace grading 和 agent eval 深度治理
这个顺序能避免一开始就被平台复杂度拖住。
24. 六个最常见的评测误区
24.1 只看最终答案,不看中间链路
结果是:
- 退化原因永远很难定位
24.2 只看平均分,不看高风险样本
结果是:
- 真实事故样本被均值掩盖
24.3 数据集不版本化
结果是:
- 分数变化失去可解释性
24.4 把 grader 当绝对真理
结果是:
- 误把 grader 偏差当模型退化
24.5 线上失败不回流
结果是:
- 离线集越来越脱离真实生产
24.6 把评测当“发布前最后一关”
结果是:
- 没有形成持续优化飞轮
25. 推荐搭配阅读
26. 重点官方资源
- OpenAI
Working with evals:https://developers.openai.com/api/docs/guides/evals - OpenAI
Evaluation best practices:https://developers.openai.com/api/docs/guides/evaluation-best-practices - OpenAI
Graders:https://developers.openai.com/api/docs/guides/graders - OpenAI
Getting started with datasets:https://developers.openai.com/api/docs/guides/evaluation-getting-started - OpenAI
Evaluate agent workflows:https://developers.openai.com/api/docs/guides/agent-evals - OpenAI
Trace grading:https://developers.openai.com/api/docs/guides/trace-grading - OpenAI
Deprecations:https://developers.openai.com/api/docs/deprecations - OpenAI
Evaluate external models:https://developers.openai.com/api/docs/guides/external-models
27. 一句话总结
评测体系真正要解决的,不是“给模型打一个分”,而是把:
- 数据集
- rubric
- grader
- 版本比较
- 发布门禁
- 线上失败回流
连成一条可持续运行的工程闭环。