地图 《AI 应用工程师学习地图》 第 5 / 7 个系列
- 模型作为组件
- Prompt 与上下文工程
- 检索与知识接入
- 工具、Agent 与 harness
- 评测、可观测与可追溯
- 生产化与运营
- 产品与体验即将发布
上一个系列:工具、Agent 与 harness下一个系列:生产化与运营
内容简介
《评测、可观测与可追溯:怎么知道改了之后更好了》是一组共七篇的系列文章,是《AI 应用工程师学习地图》第五层(L5)的正文。前四层反复说”在评测集上证明”、”用 judge 评”、”从 trace 里采”、”接评测门禁”——这一层讲这些东西本身:评测集怎么建、怎么运营;评分用规则、模型还是人,LLM-as-judge 的偏差有多大、怎么校准;单步、RAG、agent 各评什么;改动怎么过门禁、供应商静默升级怎么发现、在线怎么评;trace 记什么、怎么与 OpenTelemetry 的 GenAI 语义约定对齐;可追溯的几项实践——录制回放、决策点日志、失败分类、版本 diff、反馈绑定;以及运行时的可靠性(guardrails、fallback)与物理世界的仿真(自动驾驶、机器人怎样用仿真替代”在真实世界里试”)。
为什么这一层是应用工程里最常被跳过、又最决定成败的一层:AI 应用的每一次改动——换一个词、换一个模型、改一个 schema、加一个工具——都可能让一部分用例由对变错,而模型的输出没有类型检查、没有编译错误、没有单元测试会红。LangChain 2026 年的《State of AI Agents》报告:57% 的组织有 agent 在生产,质量是部署的最大障碍(32%,几乎是第二名的两倍);89% 的团队接了可观测,只有 52% 接了评测——”看得见”与”能判断好坏”之间的差距,就是事故的来源。评测是 AI 应用的测试体系,可观测是它的日志与监控,可追溯是”出了事能定位到哪一步”。三者缺一,其他六层的每一次改进都无法被证明。
它回答的问题是:
评测集从哪来、多大、怎么维护?规则、judge、人各评什么,judge 的偏差有多大、怎么校准?单步、RAG、agent 各评什么指标?改动怎么过门禁、供应商静默升级怎么发现、在线怎么评?trace 记什么、怎么对齐 OpenTelemetry?出了事怎么追到那一步?物理世界的系统怎么用仿真替代真实测试?1
七篇沿一条线走。第一篇建评测集:它是 AI 应用的单元测试——从真实流量采(高频、边界、失败过的)、几十条起、每条有可检验的期望、hold-out、版本化、与 prompt / 模型 / 工具集版本绑定;合成数据的位置与陷阱;标注的组织。第二篇讲评分:能用规则的不用模型(格式、schema、精确匹配、测试通过),需要判断的用 LLM-as-judge——但 judge 是一个要先被测量的测量仪器:2026 年的两项大规模研究给出的数字——精确匹配一致率相对 Cohen’s kappa 普遍虚高 33–41 个百分点;judge 的排名在不同基准间移动多达 14 位;两个生产部署的 judge 同时表现出 >0.95 的重测信度与 >0.10 的位置偏差(”一致但有偏”);风格偏差(偏爱 markdown 而非纯文本,0.10–0.76)是最大的一类,远超位置偏差(≤ 0.04);冗长偏差因模型而异(有的偏长、Claude 偏短、GPT-4o 中性);一个中档模型加对的去偏策略(Gemini 2.5 Flash + Combined Budget,κ = 0.549,每次评估约 0.001 美元)胜过前沿 judge 且便宜约 15 倍。校准的最小协议:与人工标注比 kappa(≥ 0.61 才算 substantial)、交换顺序、长度匹配、遮蔽来源、跨家族 judge、用敏感度 / 特异度反推真实通过率。人的位置:校准集、抽检、争议裁决。第三篇按对象讲评什么:单步任务(准确率、格式遵循率、拒答正确率、成本、延迟)、RAG(《检索与知识接入(07):检索评测与运营》的分开评:recall@k、faithfulness、引用正确率)、agent(《工具、Agent 与 harness(09):可靠性、评测与运营 agent》的轨迹六维)、多轮对话(策略遵循、任务完成、轮数)、安全(注入抵抗、越权尝试)——一张矩阵;每题跑 \(k\) 次看分布。第四篇讲回归与门禁:改动 = 发布,评测集 × \(k\) 次、逐条 diff、阈值、灰度、回滚(《Prompt 与上下文工程(06):prompt 当代码管——版本、评测、A/B,以及上下文 vs 检索》的流程在这里给出完整实现);供应商静默升级的检测(固定探针集定时跑、分数漂移告警);A/B 与在线评测(隐式反馈:采纳 / 修改 / 重试 / 放弃;显式:点踩;抽样 judge);离线与在线的相关性校验。第五篇讲 trace:会话 → 任务 → 步骤三级树,每个 span 记什么(完整输入输出、usage、effort、工具参数与结果、沙箱与审批、卫士、压缩);OpenTelemetry GenAI 语义约定的现状——2026 年迁入独立仓库 semantic-conventions-genai,gen_ai.* 的 span、事件、指标、属性全部仍是 Development 状态(没有 Stable),属性名在版本间会变(gen_ai.system → gen_ai.provider.name,用 OTEL_SEMCONV_STABILITY_OPT_IN 钉版本),span 已从单次模型调用扩展到整个 agent 循环(invoke_agent、execute_tool、检索、记忆);工具(Langfuse v3 围绕 OTel 重建、LangSmith、Arize Phoenix / OpenInference、Braintrust、Helicone)的选择与自建;敏感数据、采样、保留期。第六篇讲可追溯的实践:录制回放(改非模型部分不重跑模型)、决策点日志(让轨迹能画成状态图)、失败分类学(《工具、Agent 与 harness(09):可靠性、评测与运营 agent》的十类推广到全部应用)、版本 diff(prompt / 模型 / 工具集 / 检索配置的变更与指标变化对齐)、反馈绑定(每条用户反馈带 trace id 进 bad case 队列)。第七篇讲运行时可靠性与物理世界:guardrails(输入 / 输出检查、置信度与拒答、在线 judge 拦截)、fallback(《模型作为组件(06):客户端工程——重试、超时、幂等、限流与流式解析》的方向性)、幻觉检测的实际手段;然后是物理世界的仿真——为什么自动驾驶与机器人不能”在生产里试”,仿真的层次(场景仿真、日志回放、传感器仿真、数字孪生、世界模型生成)、开环 vs 闭环、sim-to-real 差距、覆盖率与长尾、影子模式、HIL / SIL;以及 agent 的沙箱环境与它的同构关系。
系列的组织原则:评测是测试,可观测是日志,可追溯是调试——三者对应传统软件工程里三件成熟的事,只是对象从确定性代码变成了概率性组件。每篇都说清”传统做法在哪里失效、要换成什么”。
缩写
本系列的 5 个缩写(展开)
| 缩写 | 英文全称 | 中文名 | 常见读法 | 一句话 |
|---|---|---|---|---|
| MRR | mean reciprocal rank | 平均倒数排名 | M-R-R | 第一个相关结果排名倒数的平均 |
| nDCG | normalized discounted cumulative gain | 归一化折损累计增益 | 「nDCG」 | 按排名位置打折、再归一化的排序质量分 |
| RAG | retrieval-augmented generation | 检索增强生成 | /ræɡ/「rag」 | 检索增强生成:先检索资料再让模型回答 |
| ROUGE | Recall-Oriented Understudy for Gisting Evaluation | 面向要点评估的召回导向指标 | R-O-U-G-E | 按与参考文本的词重叠给摘要打分 |
| TTFT | time to first token | 首 token 时延 | 逐字母 T-T-F-T | 从发请求到收到第一个 token 的时间 |
为什么写这个系列?
看得见不等于能判断
89% 接了可观测、52% 接了评测——这个差距是这一层最重要的事实。一个 agent 幻觉出一次工具调用、重试了一次付费的副作用、在模型升级后悄悄变差,在 APM 面板上都是”请求成功、4.2 秒”,直到退款队列涨起来。可观测告诉你发生了什么,评测告诉你它对不对。多数团队有前者没后者,于是每次改动都靠”看几个例子感觉不错”上线。
judge 是仪器,先测仪器
2025–2026 年 LLM-as-judge 成了默认的评分手段,也暴露了它的问题:用精确匹配一致率报告 judge 质量系统性高估(未校正机遇一致);judge 有位置、风格、冗长、自我偏好四类偏差,且风格偏差最大却最少被研究;一个 judge 可以同时高度一致(重测 >0.95)又严重有偏(>0.10 位置偏差)——一致性不是正确性。这一层要把 judge 当作测量仪器:先在人工标注的校准集上量它的 kappa、敏感度、特异度、各类偏差,再决定能不能用它做门禁。
trace 的标准正在形成,但还没成
OpenTelemetry 的 GenAI 语义约定让各家可观测工具共享一种 trace 形状——这是好事;但 2026 年中它仍全部是 Development 状态、刚迁入独立仓库、属性名在改、框架们同时发出几代属性。团队要在”用标准”与”标准还在变”之间做选择:按约定打点、钉住版本、把属性改名当破坏性变更。
物理世界的验证是另一门工程
地图里把自动驾驶与机器人作为应用栈的对照:它们的”评测”不能在生产里做,一次失败可能致命,所以验证被做成了一门独立的工程——仿真、日志回放、影子模式、数字孪生、世界模型。数字世界的 agent 正在经历同一过程(沙箱环境、录制回放、评测集),只是代价低几个量级。把两者放在一起看,能理解”验证决定自主”这条判据的严格版本。
现有材料的断层
- 可观测工具的文档教你接 SDK,不讲评测集怎么建、judge 怎么校准;
- 评测论文讲 judge 的偏差与基准的设计,不讲怎么接进 CI 与发布流程;
- “evals 教程”多停在”写几个断言 + 用 GPT 打分”,不讲校准、分布、门禁、在线相关性;
- 自动驾驶的仿真文献与 LLM 应用的评测材料几乎没有交集。
本系列想填补的是从”有几个 prompt 测试”到”有一套能证明改动更好、能发现供应商漂移、能追到出事那一步、能与物理世界的验证方法对话的评测与可观测体系”之间的那段路。
适合哪些读者?
应用工程师
全部七篇。第一、二、四篇是最小必读——没有它们,其他六层的改进都无法证明。
平台 / 可观测工程师
第五、六篇:trace 结构、OTel GenAI 约定的现状与选择、录制回放与决策点日志。
负责质量与发布的人
第二、四篇:judge 能信多少、门禁怎么设、静默升级怎么发现。
做物理世界 AI 的工程师
第七篇:仿真的层次与它与数字 agent 评测的同构。
系列的整体主线
| 篇 | 主题 | 建立的东西 | 传统对应 | 哪里不同 |
|---|---|---|---|---|
| 1 | 评测集 | 从流量采、几十条起、可检验期望、hold-out、版本绑定 | 单元测试用例 | 期望是分布不是值;从生产流量采而不是写出来 |
| 2 | 评分 | 规则 → judge → 人;judge 的四类偏差与校准协议 | 断言 | 断言本身是概率性的,要先被测量 |
| 3 | 评什么 | 单步 / RAG / agent / 多轮 / 安全的指标矩阵 | 覆盖率 | 过程指标(轨迹)与结果并列 |
| 4 | 门禁与在线 | 评测 × k、逐条 diff、灰度、静默升级探针、A/B、隐式反馈 | CI / CD | 依赖(模型)会在你不动的时候变 |
| 5 | trace | 三级树、span 属性、OTel GenAI 现状、工具 | 分布式追踪 | span 里有完整的 prompt 与输出;标准仍 Development |
| 6 | 可追溯 | 录制回放、决策点日志、失败分类、版本 diff、反馈绑定 | 调试与事后分析 | 不可复现 → 录下来 |
| 7 | 运行时与物理世界 | guardrails、fallback;仿真层次、闭环、sim-to-real、影子模式 | 运行时校验;集成测试环境 | 物理世界的”测试环境”是一门工程 |
三条贯穿的线:
- 评测是测试。 没有评测集的改动不是工程是猜测;评测集从真实流量来、随 bad case 长、与版本绑定。第一、三、四篇。
- 测量仪器要先被测量。 judge 的 kappa、偏差、校准在用它之前量清楚;在线指标与离线指标的相关性也要量。第二、四篇。
- 不可复现就录下来。 模型不可复现(《模型作为组件(01):失效模式——非确定性、幻觉、上下文与越界,把「模型会出错」拆成七条可检测的性质》),所以每一步的输入输出都进 trace,回归靠回放,调试靠决策点日志。第五、六篇。
章节结构与分章导读
1. 评测集:AI 应用的单元测试
核心问题:评测集从哪来、多大够用、每条长什么样?怎么防过拟合、怎么随时间维护?合成数据能用吗?2
评测集是这一层的第一块砖,也是 《模型作为组件(05):选型——榜单的失真、自己的评测集与供应商的弃用周期》、《Prompt 与上下文工程(06):prompt 当代码管——版本、评测、A/B,以及上下文 vs 检索》、《检索与知识接入(07):检索评测与运营》、《工具、Agent 与 harness(09):可靠性、评测与运营 agent》反复要求”先建”的东西。来源:真实流量采样——高频(决定平均质量)、边界(长输入、多轮、含数字与专名、多语言)、失败过的(点踩、重试、放弃、转人工、修改后提交);上线前用内部试用、客服工单、竞品案例,上线后第一件事换成真实流量。每条的结构:输入(含必要的上下文与状态——RAG 要固定检索结果或标注相关块,agent 要环境快照)、期望(精确答案 / 可接受集合 / 评分标准 / 验收脚本)、元数据(类型、难度、来源、日期)。规模:几十条能开始区分改动的好坏、几百条能看趋势、按类型分层;每条跑 \(k\) 次(《模型作为组件(01):失效模式——非确定性、幻觉、上下文与越界,把「模型会出错」拆成七条可检测的性质》的非确定性)。维护:每周从 bad case 补、hold-out 不参与迭代、版本化并与 prompt / 模型 / 工具集 / 检索配置的版本绑定、过期用例清理。合成数据:让模型生成用例便宜、覆盖全,但问法不像真人(高估 recall、低估歧义)——作为冷启动与覆盖检查,不作决策依据。标注的组织:谁标、怎么解决分歧、标注指南本身要版本化。
2. 评分:规则、LLM-as-judge 与人
核心问题:哪些能用规则评、哪些要 judge、哪些要人?judge 的四类偏差各多大?怎么校准一个 judge 并决定它能不能做门禁?3
三层评分:规则(格式、schema 校验、精确 / 集合匹配、数值容差、测试通过、正则、引用存在性)——确定、免费、优先;LLM-as-judge(相关性、忠实度、有用性、风格、按 rubric 打分、pairwise 比较)——需要判断的地方;人(校准集标注、抽检、争议裁决、新失效模式的发现)。judge 的四类偏差与 2026 年的数字:位置(偏爱先出现或后出现的——两个生产 judge >0.10)、风格(偏爱 markdown 与结构化外观——0.10–0.76,最大的一类)、冗长(因模型而异:Llama / Gemini 偏长 +0.24 到 +0.44,Claude Sonnet 4 偏短 −0.12,GPT-4o 中性 −0.04)、自我偏好(偏爱同家族的输出)。报告方式的陷阱:精确匹配一致率相对 Cohen’s kappa 普遍虚高 33–41 个百分点(未校正机遇一致);judge 排名跨基准移动多达 14 位(一个基准上好的 judge 换个任务未必好);重测信度 >0.95 与位置偏差 >0.10 并存——”一致但有偏”。最小校准协议:(1)人工标注的校准集(几十到几百条);(2)与人比 Cohen’s kappa,≥ 0.61 算 substantial,报区间;(3)pairwise 时交换顺序重评,只保留双向一致的判定;(4)长度匹配的改写对照;(5)遮蔽来源 + 跨家族 judge;(6)用 judge 的敏感度与特异度反推真实通过率并报区间;(7)rubric 固定并版本化(rubric 漂移是交换测试看不见的)。去偏的实证:中档模型 + 组合去偏策略(Gemini 2.5 Flash + Combined Budget,κ = 0.549,约 0.001 美元 / 次)胜过前沿 judge(Claude Sonnet 4 同策略 69.5%,约 0.015 美元)——judge 的选择与去偏比 judge 的大小更重要。pairwise vs pointwise:pairwise 更敏感也更易受干扰特征翻转(一项研究中 35% vs 9%);门禁用 pointwise 加校准,模型对比用 pairwise 加交换。人的成本与位置。
3. 评什么:单步、RAG、agent 与多轮的指标矩阵
核心问题:不同形态的应用各评什么?过程指标为什么与结果并列?每题跑几次?4
一张矩阵。单步任务(分类、抽取、生成):准确率 / F1、格式遵循率、schema 通过率、拒答正确率(该拒的拒、不该拒的不拒——《Prompt 与上下文工程(03):结构化输出——约束解码、schema 设计与失败修复》的出口)、成本、TTFT 与总时长;RAG(《检索与知识接入(07):检索评测与运营》):检索侧 recall@k / MRR / nDCG,生成侧 faithfulness / answer relevance / 引用正确率,固定检索评生成,三个数字定位;agent(《工具、Agent 与 harness(09):可靠性、评测与运营 agent》):结果、效率(步数 / token / 美元 / 墙钟)、过程正确性、安全(越权尝试)、鲁棒性(面对工具错误与注入)、部分结果质量;多轮对话:任务完成、策略遵循(τ-bench 式)、轮数、用户模拟器的设计与它的局限;安全:注入抵抗率(红队集)、越权、敏感信息泄漏(L3 的”不该看到”集)。横切:每题 \(k\) 次看分布(pass@k、一致率、方差);按类型分层报告而不是一个总分;成本与延迟永远与质量一起报(《模型作为组件(04):成本与延迟的账——一次调用花多少钱、慢在哪一段》)。公开基准的位置(《模型作为组件(05):选型——榜单的失真、自己的评测集与供应商的弃用周期》、《工具、Agent 与 harness(09):可靠性、评测与运营 agent》):缩范围,不决策。
4. 回归与门禁:CI、供应商静默升级、A/B 与在线评测
核心问题:改动怎么过门禁?供应商在你不动的时候换了模型怎么发现?在线怎么评、离线与在线的关系怎么校验?5
门禁(《Prompt 与上下文工程(06):prompt 当代码管——版本、评测、A/B,以及上下文 vs 检索》的实现):每个改动(prompt、模型、effort、schema、工具集、检索配置、harness 版本)触发评测集 × \(k\) 次;指标不低于当前版本减噪声阈值;逐条 diff(由对变错的用例比总分更有信息);成本与延迟不退化;judge 校准过才能作为门禁指标;标签发布(staging → canary → production)与回滚。供应商静默升级:同一模型名下的行为变化(《模型作为组件(01):失效模式——非确定性、幻觉、上下文与越界,把「模型会出错」拆成七条可检测的性质》、第五篇)——固定的探针集(几十条对措辞敏感的用例)每天跑、分数漂移告警、钉快照版本、订阅变更通知。A/B 与在线评测:按 prompt / 模型版本分流,trace 绑定版本;隐式反馈(采纳、修改后提交、重试、放弃、追问、转人工、引用点击)与显式反馈(点赞 / 点踩、评分);在线 judge 抽样跑在真实流量上;离线与在线的相关性——评测集分数涨了在线指标没涨,说明评测集分布过时或指标选错,要定期校验。影子模式(新版本跑但不生效、只记录)作为高风险改动的中间步。
5. trace:span、OpenTelemetry GenAI 语义约定与工具选择
核心问题:trace 记什么、怎么组织?OpenTelemetry 的 GenAI 约定现状如何、该不该用?工具怎么选?敏感数据与成本怎么处理?6
结构:会话 → 任务 / 轮次 → 步骤三级树(《工具、Agent 与 harness(09):可靠性、评测与运营 agent》),每个模型调用 span 记完整输入输出(或能重建它的引用)、模型与 prompt 版本、usage(含缓存读写与推理 token)、effort、stop_reason、延迟分段;每个工具调用 span 记参数、结果(或卸载引用)、耗时、沙箱、审批;检索 span 记查询、候选、排序;压缩 / 卸载 / 卫士 / 审批作为事件;子会话 id 作为链接。OpenTelemetry GenAI 语义约定:gen_ai.* 属性、{operation} {model} 的 span 名、gen_ai.provider.name、usage 属性、事件里的消息内容;2026 年的现状——约定迁入独立仓库 open-telemetry/semantic-conventions-genai(核心仓库 v1.42.0 于 2026-06 弃用并移走全部 GenAI 内容),所有 GenAI 专属的 span / 事件 / 指标 / 属性仍是 Development 状态、没有一个 Stable,属性在版本间改名(gen_ai.system → gen_ai.provider.name),OTEL_SEMCONV_STABILITY_OPT_IN 让你选 span 说哪个版本;span 从单次模型调用扩展到 agent 循环(invoke_agent 拆成 client / internal、execute_tool 命名收紧、检索、记忆、plan),Arize 的 OpenInference 与之对齐。建议:按约定打点、钉版本、把改名当破坏性变更、框架混发几代属性时在后端归一。工具:Langfuse(v3 围绕 OTel 重建,含 prompt 管理与评测)、LangSmith(LangChain 栈)、Arize Phoenix(OpenInference,开源)、Braintrust(trace 到评测的闭环)、Helicone(网关式接入)——按”与评测的集成、自托管、成本、栈”选;自建的最小集。敏感数据:prompt 与输出里有用户数据——脱敏、分级、保留期、访问控制;采样(全量存元数据、按比例存内容、bad case 全量);trace 的存储成本。
6. 可追溯:录制回放、决策点日志、失败分类与反馈绑定
核心问题:出了事怎么追到那一步?改了非模型部分怎么便宜地回归?怎么把用户的一句”不好”变成可修的 bug?7
录制回放:把评测集里每步的模型输出录下来,改工具、解析、卫士、权限、检索配置时重放而不重跑模型——省钱、可复现;只有改 prompt / 模型 / effort 才重跑(《模型作为组件(01):失效模式——非确定性、幻觉、上下文与越界,把「模型会出错」拆成七条可检测的性质》、《工具、Agent 与 harness(09):可靠性、评测与运营 agent》);DeepSeek Harness 的 keyless recorded-session replay 是产品级实例。决策点日志:在循环的每个分支打结构化事件(选了哪个工具与为什么、终止原因、权限判定、预算余量、卫士触发、压缩决定),让轨迹能画成状态图。失败分类学:《工具、Agent 与 harness(09):可靠性、评测与运营 agent》的十类推广到全部应用形态——为每条失败打类,分布进面板,每类有对应的药;新失效模式从人工抽检里发现并加进分类。版本 diff:把 prompt / 模型 / 工具集 / 检索配置 / harness 的变更时间线与指标曲线对齐——”命中率骤降接部署时间线”(《Prompt 与上下文工程(05):prompt caching 与上下文的排列》)的一般化。反馈绑定:每条用户反馈(点踩、修改、重试、投诉)带 trace id 落库进 bad case 队列,队列有 owner 与 SLA,处理结果回到评测集——这是评测集”随 bad case 长”的机制。事后分析的模板。
7. 运行时可靠性与物理世界的仿真
核心问题:上线后怎么在运行时拦住坏输出?物理世界的系统为什么不能”在生产里试”,仿真怎么替代?数字 agent 的沙箱环境与它有什么同构?8
运行时:guardrails——输入侧(注入检测、敏感信息、越界请求)、输出侧(schema 与业务校验、敏感信息、引用存在性、在线 judge 抽样拦截);置信度与拒答(《Prompt 与上下文工程(03):结构化输出——约束解码、schema 设计与失败修复》的出口、L7 的呈现);幻觉检测的实际手段(引用对照、自一致性采样、事实核对工具)与它们的成本;fallback(《模型作为组件(06):客户端工程——重试、超时、幂等、限流与流式解析》的方向性:推理状态不可跨供应商)。然后是物理世界:自动驾驶、机器人、工业控制的失败可能致命且不可逆,”评测”必须在真实世界之外完成——仿真的层次:场景仿真(CARLA 一类:可编程的场景、可复现、可放大长尾)、日志回放(真实传感器数据重放,开环)、传感器仿真(渲染相机 / 激光雷达)、数字孪生(特定场地的高保真复制)、世界模型生成(用生成模型合成场景与传感器数据——NVIDIA Cosmos 一类);开环 vs 闭环(回放不响应系统的动作、闭环仿真才能测决策的后果);sim-to-real 差距与域随机化;覆盖率与长尾(几百万公里的真实里程覆盖不了的稀有事件靠仿真放大);影子模式(新版本在车上跑但不控制、与旧版本或人的决策对比——Tesla 一类公开描述过的做法);HIL / SIL(硬件 / 软件在环)。同构:数字 agent 的容器快照环境、录制回放、影子模式、红队集,是同一套思想在低代价世界的版本;”验证决定自主”(《工具、Agent 与 harness(08):memory 与 human-in-the-loop》)在物理世界是最严格的形态。
8. 系列总结与通关自测
一张总表回顾七篇各自回答的问题与必记的数字,逐篇的核心结论与常见误解,贯穿全系列的几条线,然后是三段自测——判断与计算、跨篇综合、面试题——加一份”读过 / 掌握 / 能教人”的判据。
贯穿全系列的实践线
本系列不设配套实验。每篇末尾有一节实践建议:
| 篇 | 实践建议的内容 |
|---|---|
| 1 | 从日志采 50 条建第一版评测集,每条写可检验期望;设 hold-out |
| 2 | 标 100 条校准集,量你的 judge 的 kappa 与四类偏差;决定它能否做门禁 |
| 3 | 为你的应用形态填指标矩阵,每题跑 k 次报分布 |
| 4 |
|
| 5 |
|
| 6 |
|
| 7 | 列运行时 guardrails;若做物理世界,画出仿真层次与闭环覆盖 |
前置要求与说明
前置要求
- L1–L4——本系列是它们反复引用的”评测集”、”judge”、”trace”的展开;
- 统计基础:Cohen’s kappa、置信区间、敏感度 / 特异度不需要解释。
版本与事实基线
以 2026 年 9 月的公开材料为准:
| 来源 | 内容 |
|---|---|
| LangChain《State of AI Agents》2026 | 57% 生产、质量 32% 为最大障碍、89% 可观测 vs 52% 评测 |
| LLM-as-judge 研究(2026) | 21 个 judge × 3 基准 × 54 万判定的系统评估(kappa 虚高 33–41 pp、排名移动 14 位、一致但有偏);九种去偏策略 × 五 judge 的对比(风格偏差最大、冗长偏差异质、中档 + 去偏胜前沿且便宜 15 倍) |
| OpenTelemetry |
|
| 工具 | Langfuse v3、LangSmith、Arize Phoenix / OpenInference、Braintrust、Helicone 的公开文档 |
| 评测框架 | RAGAS、promptfoo、OpenAI Evals 的指标定义 |
| 物理世界 | CARLA、NVIDIA Cosmos 一类的公开文档;影子模式的公开描述 |
judge 的具体数字来自特定论文的特定设置(模型、基准、rubric),文中引用时标注来源;换模型与任务后数字会变,方法论不变。
章节目录
- 评测集:AI 应用的单元测试
- 评分:规则、LLM-as-judge 与人
- 评什么:单步、RAG、agent 与多轮的指标矩阵
- 回归与门禁:CI、供应商静默升级、A/B 与在线评测
- trace:span、OpenTelemetry GenAI 语义约定与工具选择
- 可追溯:录制回放、决策点日志、失败分类与反馈绑定
- 运行时可靠性与物理世界的仿真
- 系列总结与通关自测
最终目标
读完本系列,面对一个要改动或要上线的 AI 应用,读者应该能够:
| 追问 | 答案来自 |
|---|---|
| 评测集有吗?从哪来?多大?与版本绑了吗? | 第一篇 |
| 这个 judge 的 kappa 多少?位置与风格偏差量过吗?能做门禁吗? | 第二篇 |
| 这个应用形态该评哪些指标?跑了几次? | 第三篇 |
| 这次改动过门禁了吗?供应商换模型能发现吗?在线指标与离线一致吗? | 第四篇 |
| trace 记全了吗?按什么约定?敏感数据怎么处理? | 第五篇 |
| 出了事能追到那一步吗?用户的点踩去哪了? | 第六篇 |
| 运行时拦得住坏输出吗?如果是物理世界,仿真覆盖了闭环吗? | 第七篇 |
这就是 L5 要建立的能力:让每一次改动都能被证明更好或更差,让每一次失败都能被追到那一步——其他六层的所有工作,都靠这一层变成工程而不是猜测。
-
七篇各答一问。评测集:从真实流量采(高频、边界、失败过的),几十条起、几百条看趋势,每条有可检验的期望,hold-out、版本化、与 prompt / 模型 / 工具集版本绑定,每周从 bad case 补(第一篇)。评分:规则(格式、schema、匹配、测试通过)优先,需要判断的用 LLM-as-judge,人做校准集与抽检;judge 的偏差——风格 0.10–0.76 最大、位置 >0.10、冗长因模型 −0.12 到 +0.44、自我偏好——用人工校准集算 Cohen’s kappa ≥ 0.61、交换顺序重评、长度匹配对照来校准(第二篇)。指标矩阵:单步看准确率 / 格式 / 拒答正确率,RAG 看 recall@k 与 faithfulness,agent 看结果 + 步数 / 成本 / 越权 / 鲁棒性,每题跑 \(k\) 次报分布(第三篇)。门禁:每个改动跑评测集 × \(k\)、逐条 diff、不低于当前版本减噪声;静默升级靠每日探针集与钉快照;在线靠 A/B、隐式 / 显式反馈与离线 - 在线相关性校验(第四篇)。trace:会话 → 任务 → 步骤三级,每个模型 / 工具 / 检索 span 记完整输入输出与版本、usage;OTel GenAI 约定 2026 年仍全部 Development、可用但要锁版本(第五篇)。追责:录制回放、决策点日志、失败分类、版本 diff、反馈绑定 trace id(第六篇)。物理世界:场景仿真、日志回放、数字孪生、世界模型、闭环与影子模式替代真实测试(第七篇)。 ↩
-
来源:真实流量采样——高频(平均质量)、边界(长输入、多轮、数字与专名、多语言)、失败过的(点踩、重试、放弃、转人工);上线前用内部试用与客服工单代替。规模:几十条能区分改动好坏、几百条能看趋势、按类型分层,每条跑 \(k\) 次。每条 = 输入(含上下文与状态:RAG 固定检索结果,agent 要环境快照)+ 期望(精确答案 / 可接受集合 / 评分标准 / 验收脚本)+ 元数据(类型、难度、来源、日期)。防过拟合:hold-out 子集不参与迭代;维护:每周从 bad case 补、版本化并与 prompt / 模型 / 工具集 / 检索配置版本绑定、清理过期用例。合成数据能用但只做冷启动与覆盖检查——问法不像真人,会高估 recall、低估歧义,不作决策依据。 ↩
-
规则评:格式、schema、精确 / 集合匹配、数值容差、测试通过、正则、引用存在性——确定、免费、优先;judge 评:相关性、忠实度、有用性、风格、rubric 打分、pairwise;人评:校准集标注、抽检、争议裁决、新失效模式发现。四类偏差的量级:位置 >0.10(两个生产 judge)、风格 0.10–0.76(最大)、冗长因模型而异(Llama / Gemini +0.24 到 +0.44,Claude Sonnet 4 −0.12,GPT-4o −0.04)、自我偏好(同家族)。校准协议:人工校准集几十到几百条 → 与人比 Cohen’s kappa(≥ 0.61 算 substantial,不要用虚高 33–41 个百分点的精确匹配一致率)→ pairwise 交换顺序只留双向一致 → 长度匹配改写对照 → 遮蔽来源 + 跨家族 judge → 用敏感度 / 特异度反推真实通过率并报区间 → rubric 版本化。能做门禁的条件:kappa 过线、偏差已测且可接受、与在线指标相关。 ↩
-
单步任务:准确率 / F1、格式遵循率、schema 通过率、拒答正确率、成本、TTFT 与总时长;RAG:检索侧 recall@k / MRR / nDCG,生成侧 faithfulness / answer relevance / 引用正确率(固定检索评生成);agent:结果、效率(步数 / token / 美元 / 墙钟)、过程正确性、安全(越权尝试)、鲁棒性、部分结果质量;多轮对话:任务完成、策略遵循(τ-bench 式)、轮数;安全:注入抵抗率、越权、敏感信息泄漏。过程指标与结果并列,是因为同样的结果可能靠越权或绕远路得到——过程决定能不能上线、能不能升自主级别。每题跑 \(k\) 次看分布(pass@k、一致率、方差),单次结果在非确定性下没有意义;按类型分层报告而不是一个总分。 ↩
-
门禁:任何改动(prompt、模型、effort、schema、工具集、检索配置、harness 版本)触发评测集 × \(k\) 次,指标不低于当前版本减噪声阈值、逐条 diff 看由对变错的用例、成本与延迟不退化、judge 校准过才能作为门禁指标,再按 staging → canary → production 的标签发布与回滚。供应商静默升级:固定一组几十条对措辞敏感的探针集每天跑、分数漂移告警、钉快照版本、订阅变更通知。在线评测:按 prompt / 模型版本分流 A/B 并把 trace 绑定版本;隐式反馈(采纳、修改后提交、重试、放弃、追问、转人工、引用点击)与显式反馈(点赞 / 点踩);在线 judge 抽样跑真实流量;高风险改动先走影子模式。离线与在线的校验:评测集分数涨而在线指标不涨 = 评测集分布过时或指标选错,要定期对账。 ↩
-
组织成会话 → 任务 / 轮次 → 步骤三级树:每个模型调用 span 记完整输入输出(或可重建的引用)、模型与 prompt 版本、usage(含缓存读写与推理 token)、effort、
stop_reason、延迟分段;工具调用 span 记参数、结果、耗时、沙箱、审批;检索 span 记查询、候选、排序;压缩 / 卸载 / 卫士 / 审批作为事件;子会话 id 作为链接。OTel GenAI 约定:gen_ai.*属性、{operation} {model}span 名;2026 年已迁入独立仓库,但所有 GenAI 专属的 span / 事件 / 指标仍是 Development、没有 Stable,属性跨版本改名——该用(与现有 APM 对接、不锁厂商),但要锁定约定版本并在自己的管道里做映射。工具选型看是否原生 OTel、能否存完整内容、评测与 trace 是否同一处(Langfuse、Arize、LangSmith、Braintrust 一类)。敏感数据:内容分级、脱敏在采集点、保留期按级别;成本:全量采 metadata、内容抽样或卸载到对象存储、长内容存引用。 ↩ -
靠六样东西:录制回放——把每步模型输出录下来,改工具 / 解析 / 卫士 / 权限 / 检索配置时重放而不重跑模型(只有改 prompt / 模型 / effort 才重跑;DeepSeek Harness 的 recorded-session replay 是实例);决策点日志——循环的每个分支打结构化事件(选了哪个工具与为什么、终止原因、权限判定、预算余量、卫士触发、压缩决定),轨迹能画成状态图;失败分类学——每条失败打类进面板、每类有对应的药;版本 diff——把 prompt / 模型 / 工具集 / 检索配置 / harness 的变更时间线与指标曲线对齐;反馈绑定——每条用户反馈带 trace id 进 bad case 队列,队列有 owner 与 SLA,处理结果回到评测集;加一份事后分析模板。 ↩
-
运行时保护:输入侧 guardrails(注入检测、敏感信息、越界请求)、输出侧(schema 与业务校验、敏感信息、引用存在性、在线 judge 抽样拦截)、置信度与拒答出口、幻觉检测(引用对照、自一致性采样、事实核对工具——各有成本)、fallback(推理状态不可跨供应商)。物理世界的系统失败致命且不可逆,评测在真实世界之外完成:场景仿真(CARLA 一类,可编程、可复现、可放大长尾)、日志回放(开环)、传感器仿真、数字孪生、世界模型生成(Cosmos 一类);闭环才能测决策的后果;sim-to-real 差距靠域随机化;长尾靠仿真放大覆盖率;影子模式(新版本跑但不控制);HIL / SIL。与数字 agent 同构:容器快照环境 = 数字孪生、录制回放 = 日志回放、影子模式与红队集两边一样。 ↩
地图 《AI 应用工程师学习地图》 第 5 / 7 个系列
- 模型作为组件
- Prompt 与上下文工程
- 检索与知识接入
- 工具、Agent 与 harness
- 评测、可观测与可追溯
- 生产化与运营
- 产品与体验即将发布
上一个系列:工具、Agent 与 harness下一个系列:生产化与运营
本文由 arganzheng 创作,采用 CC BY 4.0 许可协议。在保留原文作者、署名以及完整原文链接(https://arganzheng.life/evaluation-observability-and-traceability.html)的前提下,欢迎各种形式的转载、翻译或商业引用。
COMMENTS
评论存放在 GitHub Discussions, 用 GitHub 账号登录即可发表,支持 Markdown。 想针对正文某句话说?选中那段文字,点浮出的「评论」即可划线评论;觉得哪里写错了,发表时勾上「同时提交 Issue」。 有人回复你时 GitHub 会按你的通知设置发邮件,不用守在这里。