Part B · 横切深挖 · B06 P0

Agent evaluationAgent 评估

口述 2 min 追问 7 层 适合 垂直 Agent 研发, FDE, Solutions
Prompt 题面

先想清楚再开口

你刚讲完一个 Agent 的设计,面试官接着问:「你说要评估它。跑一次成功算不算过?轨迹很漂亮,却违反了一条业务规则呢?下周要换模型,你凭什么说新版能上线?」

题面为本书自拟的训练题,不代表任何公司的真实面试题或真实系统。场景沿用 A04 的合同审查系统(虚构练习设定)。

约束

约束取值(练习设定)
被评对象A04 的逐条目判定流水线:每个清单条目输出一个结论(满足 / 不满足 / 缺失 / 不适用 / 无法判断)加引用
已有标注60 份历史合同 × 40 条目 = 2,400 条条目判定,按清单 v1 由合规专家盲审,高风险条目双人裁决;随机抽取的「满足」项还没有双人裁决,这是现有标注的弱点
正类「不满足 / 缺失」约占 10%,即约 240 条;漏报最贵
用途每次改 prompt、换模型、清单改版,都要决定能不能上线
运行模型输出有随机性:同一合同跑两次,个别条目结论会变
预算一次发布评测要在一晚(按 8 小时计)内跑完
答到一半再点开:面试官补了一句

「上线三个月后,线上的人工推翻率涨了一倍,可你的离线评测分数一点没变。」

Answer 参考回答

先口答,再展开

展开参考回答

该先问的问题

  1. 「通过」由谁定义?业务方最怕的是漏报还是误报?这决定主指标是哪一个,以及阈值卡在哪里。
  2. 真值从哪来?标注人是谁、分歧怎么裁决、有没有测过标注人之间的一致率?标签对应哪一版清单?标签不可信或过期,后面所有数字都不可信。
  3. 这次评估要支撑什么决定——发布门禁、模型选型,还是向业务方证明价值?这决定要多精确,也就决定了样本量。
  4. 系统能不能在隔离环境里重置、重跑?工具有没有副作用?这决定能不能测一致性。
  5. 线上能拿到哪些信号(人工推翻、抽查结果、周转时间)?这决定离线分数怎么和线上对账。

一句话框架

评估不是一个分数:用可重置的任务集,把结果、规则遵守、轨迹和一致性分开量;结果由外部检查器或专家标签判,指标带置信区间,离线做门禁,线上盯漂移。

设计取舍表

设计点采用否决的备选什么证据会让我改
真值来源专家盲审标签,按清单版本(checklist_version)存;高风险条目和随机抽取的「满足」项双人裁决;再加能写成规则的确定性检查(格式、引用是否存在于原文)拿旧的人审意见当真值,或让被测模型自己评标注人之间的一致率低于约定阈值时,先修标注规范,再谈模型分数
主指标以「不满足 / 缺失」为正类,算条目级 recall 和 precision;按条目、扫描件与否、部门分层;每个数都附合同级区间和样本量。五选一结论只为统计才折成二元:正类被判「无法判断」不算召回,另报「含转人工的 recall」和「无法判断」率整体准确率——正类只占 10% 时,全部判「满足」也有 90%业务方改口径(见追问 2)时,换成固定 recall 下比较 precision
一致性离线:每个条目重复跑 k 次,报告 pass^k 和结论翻转率,并找出容易翻转的条目类型。线上:新合同没有历史翻转可查,高风险条目本来就全部人审,所以对命中风险规则的其余「满足」条目(扫描页、含例外或否定条件、离线翻转率高的条目类型)当场多跑两次,三次不一致就转人工只跑一次就记分;或者把离线集上的翻转标签直接套到新合同上线上多跑的分歧率长期接近零,改为只对离线学到的高翻转条目类型多跑,省延迟和 token
规则遵守单独计数:硬规则(如高风险条目必须附引用)违反一次就不过门禁,不和质量分折算把违规折算成扣分,混进总分不改;规则违反和答错是两种不同的风险
轨迹抽样看轨迹,做失败归类(没召回 / 判错 / 引用错 / 格式错),用于诊断;「结论对但引用错页」单独计数,高风险条目按失败计给轨迹打分并纳入门禁某一类失败占比长期稳定、能自动识别时,把它的检测升为门禁
评委LLM-as-judge 只用于规则写不出来的维度。评「引用的证据是否支持结论」时,只给条目要求、原页引用和结论;评「理由是否成立」时才给理由,但去掉执行者的自评与自证话术,并隐去版本和来源。两个维度分别和专家标签校准同一个模型自评,或让评委读带自评的完整输出评委和专家的一致率掉到阈值以下,这个维度退回人工抽评
离线与线上离线评测做发布门禁;线上盯人工推翻率、抽查结果和各层分布,与离线对账只看离线分数线上指标和离线背离时,从线上抽样补标注,扩充评测集
Two-minute English 口述

两分钟,先结论后展开

展开 2 分钟英文口述稿

I don't treat evaluation as one number. For the contract reviewer, the unit is a single checklist item on a real contract, labeled blind by compliance experts, with double review on high-risk items.

I measure four things separately. Outcome: recall and precision on the classes that matter — "not met" and "missing" — split by item type, scanned versus digital, and department, each with a confidence interval, because two hundred positives give you roughly plus or minus four points. Rules: hard-rule violations are counted on their own and block release, instead of being averaged away. Trajectory: sampled and bucketed by failure type, so we know what to fix. Consistency: offline, every item runs several times and I report pass-hat-k — the chance that all k runs are right. In production, items that match risk rules run three times, and any disagreement goes to a human.

Where rules can't judge, an LLM judge checks whether the quoted evidence supports the verdict. It never sees the agent's self-assessment, and I calibrate it against expert labels.

To ship a new model, I compare both versions on the same items, contract by contract, and look at where they disagree.

Offline scores are a gate, not the truth. If the online override rate rises while offline stays flat, the data has drifted, so I sample production cases, label them, and grow the set.

Follow-ups 追问

一层一层往下问

  1. 为何不用备选为什么不直接报整体准确率?为什么不干脆让 LLM 当评委,全自动?
    先口答,再展开要点
    • 正类只占 10%:全部判「满足」的系统准确率也有 90%,却一个漏报都抓不到。所以主指标必须以正类为中心。
    • 全自动 LLM 评委便宜,但它本身需要被评估:没和专家标签对过一致率的评委,给出的分数没有根据。
    • 评委能用的地方是规则写不出来的维度,而且只看证据;结论对错这类有专家标签的维度,直接用标签。
  2. 需求变化业务方改口了:「漏报要低,但现在误报太多,审核人被淹没了,也不行。」
    先口答,再展开要点
    • 从「recall 越高越好」变成两个约束:先把 recall 下限定死(比如不低于人工基线),再在这个下限上比较 precision。
    • 报告工作点,而不是一个数:不同阈值或不同规则下的 recall / precision 对照表,让业务方选。
    • 误报的代价要换成审核工时来说,和 A04 估算里的人审工时对上,业务方才能判断取舍。
  3. 失败反证上线三个月,线上人工推翻率涨了一倍,离线分数一点没变。怎么回事?
    先口答,再展开要点
    • 先查分布漂移:线上新出现的合同类型、部门、扫描件比例,是不是评测集里很少或没有。把线上样本按同样的层切开,和评测集逐层对比。
    • 再查过拟合:三个月里反复在同一套评测集上调 prompt,分数会越来越好看,却不代表泛化。要保留一份从不用于调参的隔离集。
    • 也可能是推翻本身变了:新来的审核人标准不同。所以推翻率也要抽样复核,不能直接当真值。
    • 修法:从线上按层抽样,交专家标注,补进评测集;隔离集定期换新。
  4. 一致性同一份合同跑两次,有个条目一次判「满足」、一次判「不满足」。temperature 设成 0 不就好了?
    先口答,再展开要点
    • temperature 0 也不保证每次输出相同,而且即使相同,也只是把随机性藏起来,并没有让答案更对。
    • 两个指标别混:pass@k 是 k 次里至少一次对,适合「能自动验证、可以多试几次」的场景;pass^k 是 k 次全部对,衡量的是可靠性。单次正确率 0.95 时,pass@5 约 0.9999997,pass^5 约 0.77。
    • 从 n 次试验、c 次正确估计时,pass^k 用 C(c,k)/C(n,k),再对任务取平均(τ-bench 论文的定义)。
    • 离线的翻转标签不能直接贴到新合同上,新合同只跑一次就看不到翻转。线上要么当场多跑:对命中风险规则的「满足」条目再跑两次,不一致就转人工;要么只用离线学到的风险规则直接转人工。
    • 当场多跑是有代价的。沿用 A04 的量:每月 11,520 个未被标出的普通「满足」条目(400 × 36 × 80%);再假设其中 20% 命中风险规则(这是线上重跑规则的命中率,和 A04 的「20% 被标出」无关,待实测),即 2,304 个条目。每个多跑两次,每月多 4,608 次调用、约 26.7M tokens;并行调用延迟约增加一次调用的时长,串行则是三倍。
    • 假设三次结论的分歧率为 5%(待实测),每月约 115.2 条分歧转人工。但 A04 本来就随机抽审普通「满足」项的 10%,若两者独立,其中约 10% 已在抽检里,真正新增的人审约 115.2 × 90% ≈ 103.7 条、约 2.6 小时(按每条 1.5 分钟)。重叠比例也要实测。
  5. 评委校准你用 LLM 当评委判「理由是否支持结论」,怎么知道评委靠谱?
    先口答,再展开要点
    • 拿一批专家已标注的样本让评委判,算一致率;类别不平衡时用 Cohen's kappa 这类校正过偶然一致的指标,不只看百分比。
    • 评委的任务要和它看到的材料一致:评「证据是否支持结论」,就只给条目要求、原页引用和结论;评「理由是否成立」,就把理由给它,但去掉执行者的自评和自证话术,隐去版本和来源。两类指标分开校准。
    • 评委和被测最好不是同一个模型;另外检查位置偏差、长度偏差这类已知偏差。
    • 一致率要定期复测:被测系统和评委任一方换版本,都要重新校准。
  6. 统计新版的 recall 从 90% 涨到 92%,能上线吗?
    先口答,再展开要点
    • 240 个正类时,单看 90% 这个数,iid 近似下的 95% 置信区间约 ±3.8 个百分点;同一份合同的条目彼此相关,真实区间更宽。两个孤立的数字说明不了什么。
    • 判断要基于配对差异:两版跑同一批条目,统计结论不同的那些条目里新版改对了多少、改错了多少,再按合同重抽样(bootstrap)求差值的区间。两个单独区间是否重叠,不能用来下结论。
    • 还要看分层:总 recall 涨了,高风险条目或扫描件那一层可能反而跌了。高风险层有任何退步就不上线。
  7. 版本清单 v2 把审计权条目的适用条件,从「所有合同」改成「仅限外包合同」。v1 的 2,400 个标签还能直接评 v2 吗?
    先口答,再展开要点
    • 不能整体沿用。标签按清单版本存:语义没变的条目,旧标签继续有效,两版可以在这些条目上配对比较。
    • 受影响的条目(这里是审计权在非外包合同上的那部分)要按 v2 重新盲审;原来的「不满足」可能变成「不适用」。新增条目没有历史标签,先全量人审建标注。
    • 报告里把「旧条目上的表现」和「新条目 / 受影响条目上的表现」分开写,各自给样本量;新部分样本不够时,门禁先靠人审兜底,不靠分数。
Failure Modes 失败模式

这些地方最容易栽

在同一套评测集上调到过拟合
  • 症状:离线分数一路上涨,线上推翻率不降反升;换一批新合同,分数明显回落。
  • 根因:每次改 prompt 都在同一套集合上看分数,集合本身变成了训练信号(Goodhart 定律)。
  • 防线:留一份从不参与调参的隔离集,只在发布前看;定期从线上抽样补标注、轮换隔离集。
评委和被测互相迁就
  • 症状:LLM 评委给出的分数很高,专家抽查却发现大量「理由不支持结论」的条目被判通过。
  • 根因:评委读到了执行者的自评和自证话术,被说服了;或者评委和被测是同一个模型,偏好一致。
  • 防线:评委的输入按任务裁剪——评证据只给证据,评理由则给去掉自评、隐去来源的理由;换不同来源的模型当评委;两类指标分别用专家标签校准,一致率低于阈值就退回人工。
正类太少,指标其实是噪声
  • 症状:recall 这周 91%、下周 87%,团队围着波动开会,却找不到原因。
  • 根因:正类样本只有几十条时,置信区间宽达十几个百分点,这些波动大多是抽样噪声。
  • 防线:每个指标旁边写样本量和置信区间;按估算补足正类;版本比较用配对分析,不看两个孤立的数字。
Estimate 估算

带着量纲算一遍

问:要把正类 recall 估到多准,需要标多少条目?一次发布评测能不能在一晚内跑完?

假设(练习设定,全部待实测):预期 recall 约 90%;正类占条目的 10%;每份合同 40 个条目,其中 4 个高风险条目;95% 置信水平(z = 1.96);每次条目调用约 5.5k 输入 + 0.3k 输出 tokens(沿用 A04 估算);一晚按 8 小时计。

样本量公式(二项分布正态近似)  n = z² × p(1 − p) / E²
  要求 ±5 个百分点   1.96² × 0.9 × 0.1 / 0.05² = 138.3 → 139 个正类
  要求 ±3 个百分点   1.96² × 0.9 × 0.1 / 0.03² = 384.2 → 385 个正类
  换算成要标的条目   139 / 10% = 1,390 条 ≈ 35 份合同
                    385 / 10% = 3,850 条 ≈ 97 份合同

现有标注的 iid 近似区间  240 个正类
  半宽 = 1.96 × √(0.9 × 0.1 / 240) ≈ 0.038   即 90% ± 3.8 个百分点

全量 k = 5 要多大吞吐   2,400 条目 × 5 次 = 12,000 次调用
  12,000 次 / 28,800 秒          ≈ 0.417 次/秒
  69.6M tokens / 28,800 秒       ≈ 2,417 tokens/秒

分层方案              全量 k = 1 + 240 个高风险条目再跑 4 次
  2,400 + 240 × 4 = 3,360 次调用 ≈ 19.5M tokens ≈ 0.117 次/秒

结论:35 份和 97 份是「正类独立同分布、阳性率稳定在 10%」时的算术下限,不是门禁能达到的精度。同一份合同里的条目彼此相关,按条目类型、扫描件、部门分层后每层正类更少,区间只会更宽。门禁精度要用合同级 bootstrap(或分层试测)实际算出来,报告里写每层的实际正类数和区间;现有标注能否做到 ±3.8 个百分点,也要这样验证,不能直接假定。

容量:全量跑 5 次需要持续约 0.417 次调用/秒、约 2,417 tokens/秒,这还没算 OCR、检索、重试和排队。能不能一晚跑完,取决于内部网关给评测的配额、并发上限和实测 p95 延迟,要先测。配额不够时,当晚的发布门禁只跑分层方案(全量 k = 1,高风险条目 k = 5),完整的一致性评估异步完成,报告里写明哪些结论还没跑完,不能声称全部已当晚过门禁。

敏感性:预期 recall 若只有 50%(方差最大的情形),±5 个百分点也要 385 个正类。正态近似要求漏报数不太少(这里 240 × 10% = 24 个,勉强够用);recall 接近 1 时改用 Wilson 区间。

怎么实测:用现有标注按合同 bootstrap 出每层的实际区间宽度,和上面的近似值对照;在评测环境里压测网关,拿到并发上限和 p95 延迟;记录各条目类型的实际翻转率,决定哪些类型需要重复运行。

Cross-references 回链

原理去哪里补

  • AI 4.5 结果与轨迹两层评估、pass^k 的推导和 τ-bench 案例,本卡不重讲 · AI 系统工程手册
  • AI 6.4 离线评测、线上 A/B 与回归测试的三层体系 · AI 系统工程手册
  • AI 3.5 检索指标与生成指标分开评,对应「缺失」类的归因 · AI 系统工程手册
  • AR ch14 可靠性工程:什么时候升级、交给人 · CCAR 备考手册
  • A01 改代码的 Agent:测试就是现成的外部检查器
  • A02 深度研究 Agent:没有标准答案时怎么评
  • A03 客服 Agent:规则遵守和多轮一致性
  • A04 受监管文档审查:本卡的场景来源
  • A06 长任务 goal Agent:检查器判完成、假完成率
Your Turn 本人填写

只写真实经历

只写真实经历,没有就空着,不编。公开版只有空表;填好的版本存在自己的私用练习记录里。

场景当时发生了什么我亲自做了什么(团队 / AI 做了什么)怎么发现的,结果和证据之后怎么防
一个看起来变好了的改动,后来发现其实没变好(或变差了)
评测结果和线上真实体验对不上

练习记录

日期口述用时脱稿?答不上的追问下一轮修正(≤2)