评测驱动开发(14):EDD 落地路线图

QuibblerAgentQuibblerAgent 2026-11-13 约 13 分钟 3 次阅读

《评测驱动开发(EDD)》系列写到第 14 篇,收官。前 13 篇沿着"要不要评 → 数据集 → 评估器 → 粒度 → 工具 → 门禁 → 线上 → 人工 → 红队"一路推进,每篇解决一个专门问题;但真要动手时,没人会按系列顺序重读 13 篇——你面对的永远是一个具体处境:新项目从哪起步、judge 分数不对劲翻哪篇、团队四周冲刺怎么排。参照《上下文工程》第 18 篇的手册化收官,本篇不再引入新知识,把 13 篇浓缩成一套可随身查阅的落地手册。

手册五件套:一条主线回顾、一张症状处方速查表、一份四周落地路线图、一张 14 篇知识地图,外加评测文化的组织落地与三件立刻可做的事。可以通读一遍,更建议把速查表与知识地图收进书签,出事时按图索骥。本文按"主线 → 速查 → 路线图 → 地图 → 版图 → 组织 → 行动 → 总结"组织全文。


1、系列主线回顾

先回答总问题:这 13 篇到底在讲什么?一句话——把"感觉更好"换成"分数更好",并让分数贯穿离线与线上全生命周期。第 1 篇立下总纲:评测集就是规格说明书,先定义"好"再写应用,这套做法在 Braintrust 的 EDD 原文里叫 eval-as-oracle。其余 12 篇是一条环环相扣的链,全貌如下:

flowchart TD A["要不要评(第 2 篇)"] --> B["数据集(第 3 篇)"] B --> C["评估器(第 4~7 篇)"] C --> D["粒度(第 8 篇)"] D --> E["工具选型(第 9 篇)"] E --> F["门禁(第 10 篇)"] F --> G["线上监控(第 11 篇)"] G --> H["人工反馈(第 12 篇)"] H --> I["红队(第 13 篇)"]

这张图的读法自上而下,也是依赖顺序:每个环节吃上一个环节的产出。没有数据集,评估器无从校准;没有评估器,CI 无物可挡;没有离线基线,线上监控就失去"上线前已知好"的参照。反过来,跳步是最常见的返工原因——先买工具再想清楚要不要评(第 2 篇的四个信号没对过一遍)、judge 先上线而金标还没标(第 6 篇的 kappa 无从算起),都会在几周后推倒重来。

链条末端两环各有闭环属性:人工不是自动化之前的过渡形态,而是全体系的地基——judge 的 kappa、金标集、线上抽检全部压在人的判断上(第 12 篇);红队是安全口,把对抗样本变成发版流水线的常客,而不是事故后的补丁(第 13 篇)。

2、症状处方速查表

第一个随身工具解决"出了状况翻哪篇"。以症状为索引、处方为行,出处一列就是该翻的那篇:

症状 首选处方 出处
想改提示词没底气,改好一处怕坏别处 建 5~10 条冒烟集,改动前后各跑一遍 第 2 篇
用例涨过 30 条,肉眼判不过来 断言接管确定性维度,肉眼退到模糊地带 第 4 篇
冒烟集只守已知火点,测不出盲区 真实流量采样扩黄金集,分层覆盖 第 3 篇
judge 分数忽高忽低,不知该不该信 跑换序、注水、跨厂三个自查实验 第 6 篇
judge 通过率报表没人敢签字 人工标 50 条金标算 kappa,0.6 是可用线 第 6 篇
Agent 结果对,工具链路经常绕路 轨迹评估,把调用序列当评测对象 第 7 篇
端到端分数降了,定位不到组件 组件级拆开测,按金字塔分层归因 第 8 篇
工具选型摇摆,LangSmith 还是 promptfoo 先列需求五件套,再查决策矩阵 第 9 篇
CI 无故飘红,本地复跑又绿 抖动三件套:重跑、容忍带、取中位数 第 10 篇
离线指标全绿,线上用户在骂 采样审计加漂移检测,坏例回流评测集 第 11 篇
用户点踩误报多,backlog 堆伪需求 置信度清洗加人工确认卡点 第 12 篇
提示词被注入,越狱输出失控 红队对抗样本进发版流水线 第 13 篇

用表两条纪律。其一,处方按出处叠加而非单选:数据集、断言、judge 本就是组合拳,多数症状的完整解横跨两三篇。其二,改完必须回评测关单——凭体感放行的改动,会在两周后以更隐蔽的方式复发,这是 13 篇里重复次数最多的一条教训。

3、四周落地路线图

速查表治已病,路线图防未病。给"决定把评测体系一次搭起来"的团队一份四周计划:每周对应第 2 篇成熟度阶梯的一级,周末以产出物验收,且产出物要变成下一周的日常。

周 目标 关键动作 周末产出物
第 1 周 L1 冒烟集与首条断言 固化 5~10 条真实用例;写 20 行跑批脚本;高频维度接断言 smoke.yaml、跑批脚本、基线通过率
第 2 周 L2 黄金集与 judge 用例扩到 30~50 条并分层;写 rubric 与 judge 提示词;标 50 条金标 黄金集 v1、judge 套件、kappa 报告
第 3 周 L3 CI 门禁 评测改写 pytest 参数化用例;配两级流水线与阈值表 workflow 配置、阈值表、红灯处置文档
第 4 周 L4 监控与红队起步 采样审计与漂移报表;反馈入口埋点;攒首批对抗样本 周报脚本、漂移指标、10 条对抗用例

四周是冲刺节奏,不是军令状。第 2 篇的结论仍然成立:多数项目停在 L1~L2 性价比最高,两三人维护的系统把第 4 周推迟到流量上来之后再做,完全健康。路线图的关键不在快,而在每周的产出物都要活下来——第 1 周的脚本要跑进此后的每次提示词修改,第 3 周的门禁要真的拦过一次合并。每周末问一句"这个产出物下周还会被谁用",答不上来,说明在赶进度而不是建体系。

4、十四篇知识地图

第二个随身工具是全系列索引:每篇一行,第三列写"何时回头查"。用法不是通读,是定位。

篇 主题 何时回头查
1 EDD 全景与八步闭环 给团队定调、讲清 eval-as-oracle 时
2 要不要评与冒烟起步 第一次想上评测、L0 升 L1 时
3 数据集工程 冒烟集撞天花板、黄金集扩容时
4 确定性断言 judge 太贵太抖、想先省后稳时
5 judge 搭建 第一次写 rubric 与 judge 提示词时
6 judge 校准与偏差治理 分数可疑、kappa 验收不达标时
7 轨迹评估 Agent 工具链路失控时
8 端到端与组件级 归因不清、搭评测金字塔时
9 工具选型 采用与自研之间摇摆时
10 评测进 CI 定阈值、治抖动、红灯分诊时
11 线上监控 上线后漂移告警、A/B 判断时
12 人工反馈闭环 点踩治理、金标与标注运营时
13 红队与安全 接外部输入、防注入越狱时
14 本篇路线图 不知道从哪开始、翻哪篇时

5、三系列知识版图

收官时把三个系列放回一张图。本站的 Agent 工程知识体系至此 62 篇:30 篇搭骨架,18 篇供血液,14 篇验健康。

系列 篇数 角色 核心问题
AI Agent 开发 30 搭骨架 系统能不能干起来:规划、工具、RAG、记忆、多 Agent、部署
上下文工程 18 供血液 每一步喂给模型什么:窗口账、压缩、注入、缓存、安全
评测驱动开发 14 验健康 到底干得好不好:数据集、评估器、门禁、监控、红队

三系列的咬合点在原文里都留了接口:上下文工程第 15 篇把"上下文质量"变成可评测对象,正是本系列的交接点;Agent 系列第 27 篇的 LangSmith 实战是工具前站;本系列第 1 篇的 eval-as-oracle 则把前两个系列的一切产出统一纳管进评测循环。

合起来的判断是:骨架决定能力上限,血液决定稳定下限,评测决定你敢不敢说"它现在没问题"。前两个系列的任何改动——换了压缩策略、调了提示词、升了模型版本——只有经过 EDD 的门禁与监控,才有资格宣称"变好了"。这也是为什么评测是第三根支柱,而不是锦上添花的可选件。

6、评测文化的组织落地

工具链是机器的部分,评测体系能不能活下来,取决于组织习惯。两件事最关键:小团队从哪起步,以及变更评审的纪律。

**小团队的起步姿势。**1~3 人的团队不必按大厂分工幻想"标注组加评测组":先花两小时把 L1 冒烟集跑起来,断言能接的维度全部交给断言(第 4 篇)。要上 judge 之前,金标标注找一位同事交换交叉标——既写提示词又当金标裁判的人,确认偏误会把坏输出标成好输出,judge 对着这份金标校准,等于把偏差焊死。日常运营用轮值:每人每周固定半天看失败 case 与新点踩,比专职标注扛得住倦怠(第 12 篇)。

**变更评审的纪律。**提示词也是代码,改提示词的 PR 就该像改代码一样带测试结果:评测报告当附件,无报告不评审。报告只需要两样——改动前后的通过率对比,以及新增失败 case 清单;评审人看两件事:分数动了多少、失败的是哪几条。把这条写进贡献文档,它就与"红灯 PR 不许合并"(第 10 篇)同级的默认纪律。Hamel Husain 的评估长文有同样的观察:没有评测护栏的提示词评审,最终都退化为比谁嗓门大。

评测文化落地的标志,不是工具链凑齐,而是再也没人问"能不能先合了再说"。

7、三件立刻可做的事

手册的最后是行动清单。三件事按顺序做,每件半天以内,分别对应第 2、4、6 篇。

**第一件:写 5 条冒烟集,两小时。**从线上日志或测试对话里挑 5 条最常翻车的真实问法,固化成 YAML:

# evals/smoke.yaml —— 最小冒烟集:每次改提示词后全量跑
- id: order-status-001
  input: 我的订单 38291 到哪了
  context: user_id=u1024;订单=已发货;承运=顺丰
  expect: 含运单号与预计送达日,不编造物流节点
- id: refund-002
  input: 买完九天了还能退吗
  context: 订单收货 9 天,政策是 7 天无理由
  expect: 明确告知超期,给人工客服入口

验收标准:改一处提示词,前后各跑一遍,两分钟内能回答"变好还是变坏"。做到这一步,项目就离开了 L0 手工点测。

**第二件:给一条断言,一小时。**挑最常出问题的确定性维度——必须包含的字段、禁止出现的措辞、JSON 结构校验——从第 4 篇的断言家族里选一种,写成 pytest 参数化用例。验收标准:下次提示词改动被它拦下一次,或干净放行一次,都算数;DeepEval 与 promptfoo 都能让这一条用例直接跑进 CI。

**第三件:算一次 kappa,半天。**人工标 20 条金标,judge 跑同一批,用第 6 篇的脚本算 Cohen's kappa。判读线:低于 0.4 不可用,0.6 可用于低风险决策,0.8 以上才算可靠的自动评分。这一步的意义在于,你第一次知道自己那把尺子准不准——多数团队第一次算都低于预期,而低于预期本身就是收获:它告诉你要先修 rubric 还是先换 judge 模型。

8、总结

14 篇收束成一条链:评测当规格(第 1 篇),先想清楚要不要评(第 2 篇);数据集定上限(第 3 篇);断言打底、judge 校准后上岗、轨迹管过程(第 4~7 篇);粒度分层好归因(第 8 篇);工具减摩擦(第 9 篇);CI 当刹车(第 10 篇);线上当哨兵(第 11 篇);人工是拆不掉的地基(第 12 篇);红队守住安全口(第 13 篇)。概率世界里没有 100% 绿,只有"分数不劣化"——这是全系列唯一需要背诵的定理。

本系列之后,博客的下一个系列是《本地大模型部署实战》16 篇:从"判好坏"走向"模型自持",推理引擎、量化与显存账都在那边的射程里。更远处,Mastra(TypeScript 优先的 Agent 框架,内置 workflows 与 evals)、多模态应用、后训练三个主题已经排队。对于跟着走完全程的读者,建议今天就把第 7 节的第一件事做掉——冒烟集第五个条目写完的那一刻,你的项目就正式进入了评测驱动。

相关推荐

​Jev 详解:不做生成的判断模型
精选AI

​Jev 详解:不做生成的判断模型

Jev 详解:不做生成的判断模型让 LLM 干"判断"的活,一直是件拧巴的事:它擅长生成文本给人读,你要的却是结构化决策给代码用——于是提示词约束、JSON 解析、重试兜底一层层糊上去。TypeSafe AI 的答案是干脆换一类模型:Jev,首个 System One 模型——不做文本生成,专职快速、结构化的判断:输入状态与类型化问题,输出带概率与置信度的结构化答案,类型错误在数学上不可能发生,因

718
网站被注入恶意脚本排查实录:AI 辅助安全分析实战
置顶 精选AI

网站被注入恶意脚本排查实录:AI 辅助安全分析实战

网站被注入恶意脚本排查实录:AI 辅助安全分析实战某天收到华为云监管反馈,称个人博客网站存在色情违规界面。作为技术博主,这简直是晴天霹雳——网站一直正常运行,怎么会突然出现这类问题?经过排查发现,网站被注入了恶意跳转脚本。本文记录完整的排查过程,重点分享如何借助 AI 快速定位问题并修复,希望能给遇到类似情况的开发者提供参考。1、问题发现与初步排查收到监管反馈后,第一时间打开网站检查。首页看起来完

421
博客七周年:AI 一天完成整体重构
全站置顶 精选AI

博客七周年:AI 一天完成整体重构

博客从 2019 年国庆用 Xiuno BBS 搭建,到 2026 年国庆整整七年。868 篇文章、53 条评论、6060 个代码块,这次与 AI Agent 结对,一天完成从 PHP 论坛到 Next.js 的整体重构与无损迁移。

379