没有证据就没发生
读完这课你可以下的命令:“这个’成了’是哪一层成了?证据是谁出的?能重跑吗?”
- 五层证据
- 探针
- 消费者不是作者
怎么读:全文两千五百字,二十分钟。赶时间只看第一节的失败场景和那张五层图(5 分钟)。末尾三问先不给答案,下一课开头揭。
今天下午发生了什么?
你在手机上发了三条长消息,我这边一条没收到。我查了所有能查的:没有丢弃规则,没有冲突,没有第二个接收者。查到最后我只能说“不知道它们去了哪”。同一天我部署课程站,脚本“构建,然后上传”,构建失败了,上传照跑,旧版本上线,七个新页 404。我当时以为成功了。
两件事看着不相干,病根一样:动作发生了,痕迹没留下,或者留下的只是“我觉得”。观测与验证这一层就管这一件事:让每个动作留下机器能读的痕迹,让“成了”由消费者说,不由作者说。
出事时说不出“它去了哪”,问题不在那次事故,在平时没留痕迹。
上一课三问,先答再往下
Section titled “上一课三问,先答再往下”第 5 课末尾问的,答案在这。
- 看一份计划只问哪四个数?孤儿几个、违规几个、关键路径几天、哪条约束最紧。
- 什么动作该叫你?只有非幂等的外部效应;其余自动过,这叫门无声。
- 课程站迁 Astro 是哪一档接入?一档适配:管道全借、语义全留、钉版本、有替身、无常驻。
新旧对照:三种“证据”
Section titled “新旧对照:三种“证据””三种新做法有一个共同属性:都不是作者写的。文档和截图没有这个属性,所以克老师的探针脚本里写着“文档不算证据”。agent 时代这条更严,模型生成一段“测试全部通过”毫无成本。
证据要有“不是作者写的”这个属性。
五层证据:一件东西从“做出来”到“用上了”
Section titled “五层证据:一件东西从“做出来”到“用上了””“做完了”到底是哪一步完了?
你网购一件东西,从卖家打包到你用上有五步,每步的证据由不同的人出:卖家出打包照片,质检出检验单,快递出签收记录,你验货签字,最后你真用上了。agent 组织里每个任务也一样。
前几课的词本课的词或我们已有一半还没有
图里颜色是我们的现状。产出有:records 目录加校验和,作者出的,只证明存在不证明对。验证一半:克老师的探针骨架在,大多数任务没接。送达有:站内信的三级回执,集团最健康的一块。接受一半:靠人在站内信里回一句,没有统一对象;规矩已定,消费者不能是作者。结果没有:136 号那条偏航信号说的就是它,“家页面显示成功,但消费者续不上原任务”。
去掉这个分层会坏哪件事?所有人都会把第一层当第五层:作者说做完了,就当消费者用上了。今天下午我那次部署就是这样。
“成了”要说是哪一层成了;作者只能证明第一层。
核心词:探针
Section titled “核心词:探针”一个非作者出的证据,最便宜的形状是什么?
类比。烟雾报警器上有个测试按钮,按一下响了才算装好。你不会靠安装工说“装好了”,你按那个按钮。探针就是那个按钮。
例子。修 Telegram 那天,我没有说“修好了”,我让站内信发一条给自己再收回来,拿到编号 395 和 396 两条回执。这就是一次探针:问题是“回路通不通”,答案是两条机器写的行。克老师的八条判据探针更严:对空日志必须判零分,对绿色样本必须判满分,两个方向都测,防止探针写成“永远为真”。
白话。探针是一段脚本,对系统问一个是非题,只认退出码零或非零,随时能重跑。它不看文档,不读模型的话。
术语。probe;退出码 exit code;它填的是五层里的验证层;第 5 课的确定性门认的就是它的答案。前沿的补充是 pass^k:同一探针跑 k 次全过才算过,因为 agent 不稳定,跑一次可能是运气。集团核心流程建议 pass^3。
探针是烟雾报警器的测试按钮:不信安装工,按一下。
工作样例:一条坏命令改成好命令
Section titled “工作样例:一条坏命令改成好命令”三步之后,那条命令从一句问候变成了一个探针加一个门。今天下午的事故,就是因为第二步和第三步都没做。
开源:只讲三个,各一个数一条令
Section titled “开源:只讲三个,各一个数一条令”- promptfoo 与 inspect_ai:评测进 CI位置:现成商品,该用。抄:把评测当 CI 步骤、做题和判分分开两段代码。不抄:它们的 SaaS 面板。一个数:pass^3。一条令:“核心流程十条评测每夜跑,红了自动挂义务。”
- OpenTelemetry GenAI 语义约定:trace 的字段名位置:标准,该用名字不用平台。抄:字段名,一次埋点属性带票、成员、编队。不抄:Langfuse 那类托管平台,JSONL 仍是真源。一个数:一种格式。一条令:“records 目录统一成一种 JSONL,字段用它的名。”
- halo-record:证据不可篡改位置:偏自研的小件,参照。抄:每条记录带上一条的校验和,改一条后面全对不上;纯标准库五千行。不抄:它的报告界面。一个数:零依赖。一条令:“工具动作收据加哈希链,一个下午能审完。”
关键词卡(三张)
Section titled “关键词卡(三张)”本课其余的词(回执、评测集、pass^k、trace、哈希链、失败码)已进术语手册的“观测与验证”一节,不要求本课记住。
三问,先不看答案
Section titled “三问,先不看答案”- 站内信的 READ 回执证明了五层里的哪一层?
- 为什么“测试全部通过”这句话在 agent 时代比以前更不能信?
- 我今天部署出的错,缺的是哪一层证据?
忍不住要看答案?下一课开头会揭,现在点开也行。
送达层,不证明接受和结果。因为它是作者或模型生成的文字,成本为零,只有非作者产生的退出码、回执、分数才算验证。验证层,上传没绑在构建的退出码上。
只要记住三块:五层证据、探针、消费者不是作者。下一课第 7 课收口:指挥清单。把六课的“指挥官怎么下命令”合成一张手机里的卡,按派活、验收、出事、选型、迁席五个场景,每场景五问;出事那一格讲偏航五信号怎么对象级止损。
集团部分:aios-comm 回执表结构;克老师 46 号 v1.3(验收三级、八条判据探针)与 136 号 v2 §8;wemux 对照卡里五层证据的定义。前沿项目由 Grok 多轮经 GitHub API 核证(2026-08-27 至 09-11)。
- τ-bench,pass^k。arxiv.org
- promptfoo。github.com · inspect_ai。github.com
- OpenTelemetry GenAI semantic conventions。opentelemetry.io
- halo-record。github.com