标注是 ground truth——「换个大半码」这一句,两个客服能标出三个答案

《Agent 上线之后》系列第三篇。 前两篇讲了抽哪些、每格标多少。这一篇往下挖一层,动的是那两篇的地基——你标出来的「对 / 错」,本身可不可靠。English version: Your Labels Are Your Ceiling。
前两篇教你把评估集抽对、把每格标够。但这一切有个前提:你标出来的那些「对 / 错」,本身是可靠的。
如果不可靠呢?
这一年我带一个零售鞋服的客服 Agent 项目,做过一次很朴素的实验:从一个意图里挑 50 条已经标好「对 / 错」的会话,让另一个同样熟练的客服背对背重标一遍。两个人只在 35 条上标得一样——另外 15 条,一个说对、一个说错。而且这 15 条几乎全堆在同一类会话上:退货类标得挺齐,一碰到换货、补差价,两个人立刻分道扬镳。
给你看最典型的一条。客户说:「我上周买的那双跑鞋,想换大半码。」 Agent 回得干净利落:「可以帮您换,请提供订单号。」
就这一来一回,标注员给出了三个答案:
- A 打「对」——客户要换码,agent 接住了,流程对。
- B 打「错」——客户上周是 599 活动价买的,现在这个尺码活动结束了、799 原价,这一换客户要补 200 块。agent 一个字没提差价,等客户收到补款链接,直接投诉。
- C 打「存疑」——得先知道发货了没:发了该走退货重拍,没发该走物流拦截 + 取消,客户嘴里那个「换」,可能从路径上就是错的。
一句话,三个答案,没有一个是标注员的错。 错的是这条会话的「标准答案」,本身依赖三样标注员在会话里根本看不到的东西:发货状态、客户实付价、这个渠道有没有价保。
标注,是你整个评估体系的 ground truth。它一旦不可靠,上面的一切——准确率、满意度、自动化率、上一篇辛苦算的置信区间下界——全部塌掉。而这块地基,恰恰是整个流程里最被当脏活、最容易外包给「谁有空谁标」的一环。
两人不一致 30%,你根本没有标准答案
先测标注一致率,再谈准确率——标注一致率是你所有指标的天花板。
agent 的「准确率」是拿标注当标准答案量出来的。上面那条「换大半码」,两个熟练的人都对不齐,说明「标准答案」里有一整块是模糊的——agent 在这些 case 上无论答什么,你都判不了对错。所以你测出的准确率,可信度上限就是标注一致率本身。拿一把刻度会晃的尺子量出「180」,这数字没意义——不是人没量,是尺子不配。
三个判断都不是标注员的错——错的是「标准答案」依赖发货状态、实付价、渠道价保,这些标注员手里根本没有。当周就能做的动作:任何准确率报上来前,先让两个人背对背标同一批 50 条,算一致率。低于约 85%,这个数还没资格进上线决策——先修尺子。 大多数团队从没做过这步——默认「标注 = 客观事实」,抓一个人标的就当 ground truth。
那 15 条不一致,一半是 rubric 债,一半是真难 case
30% 不一致不是噪声,是诊断——它在告诉你分歧从哪来,两个来源要用完全不同的方式处理。
「换大半码」里,「补差价按哪个价」是 rubric 债——不是玄学,是规则该写死而没写。实付价、当前价、吊牌价、会员价,到底哪个算基准?该不该补、补多少?把这条写死,B 那类分歧当场消失。
而**「这句话是接住了还是把客户支走了」是真的在边界上**——它同时踩着「接住率」和「解决率」(本系列第五篇吵过的架构问题)。这类要的是裁决流程,不是继续磨 rubric。
补一句 rubric 能解决的,是 rubric 债,还清;补了还分歧的,是真难 case,进裁决。两笔账分开记。最常见的反模式,是把两个人的答案一平均、或「少数服从多数」糊过去。那是用统计手段掩盖「你还没定义清楚什么算对」。分歧要么消灭在 rubric 里,要么消灭在裁决里,就是不能消灭在平均里。
rubric 是代码:把「补差价按哪个价」写死
标准答案不是「明摆着的」,是一份写下来、能版本化的 rubric——凭感觉标,等于每个人脑子里揣着一把不同的尺子。
拿补差价来说,一条能用的 rubric 规则长这样:
补差价基准 = 客户订单实付价,对比同货号当前可购价,差额为正才退。 换货涉及不同货号时,以新货号当前价与原实付价之差计算,客户补 / 退该差额。私域会员在价保期内按实付价保护;公域平台无价保政策的,以当前价成交,不适用差价退还。
写死这一条,B 那类分歧当场归零。「大家都懂什么算对」是最贵的错觉——三个人标,脑子里三把尺子,一致率永远上不去,你连它上不去的原因都定位不到。rubric 就是把「什么算对、边界怎么判、评判单元是什么」写成明文,像代码一样能读、能 review、能改。
连评判单元都得写死:一整通会话算一个决策,还是单条消息(Andrew Ng 那条——评判单元要等于你真正关心的决策单元;客户一通对话就是一个业务决策,中途「我拍张照给你看」不产生新判断点)。
rubric 会演进:踩到新 case 就补规则。但——rubric 一改,旧标注可能就失效了。 你把「换货按新货号当前价算差额」这条加进去的那一刻,之前一批按老规则标「对」的换货会话,得按新版重判。所以 rubric 必须版本化,改一次就标清楚:哪批旧标注要重标(正是上一篇「逐场景版本切点」的另一面——改过标准的场景,旧数据不能再算进分母)。
检测动作:问一句「我们标注 rubric 在哪个文档、第几版?」答「没写、老客服都懂」的,你的 ground truth 全靠个人记忆,人一走标准就散。
「补多少」这条,标注员根本没资格定「对」
不是所有意图的「对」都能交给标注员定义——资损、合规这类,rubric 的作者必须是业务方。
那次项目复盘会我印象很深:业务方扫了一眼那条「换大半码」的会话,第一句话是——「这单发货没?活动价买的换原价尺码,得补 200,agent 一个字没提,客户收到补款链接不炸才怪。」 全场才反应过来:标注员从头到尾,既不知道这单发货状态,也不知道客户实付多少,更不知道这个渠道有没有价保。他们不是标错了,是我们让他们去判一件他们手里根本没有牌的事。
「补多少才算对」的答案,藏在一张标注员看不到的表里:客户实付价、货号当前价、价保窗口、渠道政策。让通用标注员去定义补差价的对错,等于把最贵的判断权,交给最不该拿它的人——错了你还看不出来,因为尺子和被量的东西一样不懂。补差价、换货保不保优惠、物流拦截该在哪个状态触发、这句合规话术能不能说——标准答案都在业务政策里。这也正是数据标注岗整体往高阶走(「AI 出题专家」「垂域数据专家」)的原因:定义 ground truth 需要领域权威,不是流水线。
裁决也一样:换货 / 差价类两人标不一致,裁决权在业务方,拍完写回 rubric 成判例。裁决不是「这一条谁对」,是「以后这一类都这么判」。
检测动作:资损意图的 rubric,让业务方签字。没有业务方签字的资损「标准答案」,不作数。
这周能做的三件事
- 背对背标 50 条,测一致率。 专挑换货 / 补差价这类最容易吵的意图,两个人独立标同一批 50 条,算一致率;低于约 85%,先修尺子再谈 agent。
- 把最容易吵的写进 rubric。 至少写死:补差价按哪个价、换货走退货重拍还是物流拦截(按发货状态)、甩自助链接算不算接住。改了记版本,标记哪批旧标注要重标。
- 资损意图的 rubric,让业务方签字。 差价、换货、物流拦截、合规话术,「对」由业务方定义;分歧由业务方裁决,写回 rubric 成判例。
回到开头那 96%。它不可信,不是因为 agent 差,是因为量它的尺子从没被校准过。模型决定 agent 能做多好,标注决定你能不能知道它做得多好。 一个没有可信 ground truth 的评估体系,再漂亮的准确率、再严谨的置信区间,都是在流沙上盖楼。
抽哪些、标多少、标得准不准——这三篇合起来,才是能诚实测量一个 agent 的地基。下一篇回到上一篇埋的钩子:有了可信标注之后,上线到底该卡哪条线——为什么看的是置信区间下界,不是那个漂亮的点估计。
这一篇如果让你决定回去先测一次标注一致率,回复关键词「标注一致率」,我把背对背一致率的测法 + 那份「补差价 / 换货 / 物流拦截」rubric 模板发给你。
Subscribe for updates
Get the latest AI engineering posts delivered to your inbox.

