一、断案如神的人栽了跟头

沈渐是顺天府最年轻的推官。

二十二岁及第,二十五岁外放知县,三十岁调回京城做了推官——专审刑部的疑难案子。同僚们都说他"断案如神":原告说完他就在心里判了,被告还没开口,惊堂木已经举起来了。

而且他大部分时候是对的。

当了三年推官,审了三百多件案子,翻案率不到半成。吏部的考评年年写上上。顺天府的匾额,他一个人扛了一半。

直到那桩案子找上了他。

案子本身不复杂。城东米铺的掌柜赵大,五十出头,前年娶了个比他小十五岁的继室。成亲不到一年,赵大暴毙。仵作验出砒霜。继室在赵大死前半个时辰给他端过一碗参汤——参汤碗沿上验出了砒霜的残留。

不止物证。继室的陪嫁丫鬟亲口作证:案发前三天,亲眼看见继室从一个走方郎中手里买了一包"灭鼠药"。动机也站得住——赵大死前一个月,刚把米铺的房契过户给了前妻的儿子。继室为这事大闹过一场。

人证、物证、动机,三样齐了。

沈渐升堂审了不到半个时辰。继室从头哭到尾,一句完整话都说不出来。丫鬟的证词滴水不漏——哪天买的、在哪个街角、花了几文钱,问什么答什么。参汤碗沿上的砒霜,铁证如山。

"押入大牢,秋后问斩。"

惊堂木落下去的时候,沈渐心里想的是这个月审得真快。

他在结案簿上写了三行字。合上卷宗,去后堂泡了一壶新茶。

三天以后,老推官陆慎言敲开了他的门。

陆慎言六十五岁,审了将近四十年的案子。顺天府里所有人都在背后叫他"慢判官"——他审一桩案子能磨上三个月。证人问完了放回去,过十天又传回来重新问。年轻的时候同僚嫌他慢。现在他老了,没人敢嫌了。因为他审过的案子——四十年,零翻案。

"小沈。"陆慎言把一沓纸放在他的案上,"赵大那个案子,你再看看。"

"看过了。铁案。"

"你真觉得是铁案?"

沈渐愣了一下。陆慎言从来不这样说话——他要是说"你再看看",那案子一定有问题。

"老推官觉得哪里不对?"

"你先告诉我——你是怎么判的。"

"这有什么好说的。人证——丫鬟亲眼看见她买砒霜。物证——参汤碗沿有砒霜残留。动机——房契被过户,她闹过——"

"停。"陆慎言伸出一只手,五指张开,"你刚才判了三步。人证一步,物证一步,动机一步——然后直接跳到了结论。中间呢?"

沈渐张了张嘴。"什么中间?"

"从'丫鬟看见买砒霜'到'继室就是凶手'——这中间有一段很长很长的路。你一步都没走。"

沈渐想反驳。但他忽然发现——陆慎言说的是对的。他从来没走过那段路。他看到证据A和结论B,脑子里有一根无形的线把两点连起来了。那根线长什么样、经过哪里——他自己也说不清楚。

"你审案最大的本事,"陆慎言拉过一把椅子坐下来,把沈渐桌上的惊堂木翻了个面,啪的一声放回原处,"也是你最大的毛病。"

"什么毛病?"

"你跳得太快了。"

二、从证据到结论之间的路

陆慎言没有让沈渐重审那个案子。他只是把他带到了自己的审案房。

推开门的那一瞬,沈渐以为自己走错了——墙上没有挂"明镜高悬"的匾额,案上没有惊堂木。屋里最显眼的是纸。卷起来的纸,铺开的纸,叠成半截的纸。最长的一卷从案面一直垂到地上,盘了两圈。每张纸上都密密麻麻写满了字,每行前面标着数字:一、二、三、四……像一本摊开来的流水账。

"这是什么?"

"我在走的路。"陆慎言的手指沿着纸面往下划,"你看这一行——第一步:仵作验出砒霜,死因确认中毒。第二步:砒霜致死量成年男子约六十钱,碗沿上残留量约多少?仵作没记,所以我派人去查。第三步:碗沿残留呈什么分布——是均匀的还是一块一块的?第四步:赵大死前最后吃的什么、喝的什么?厨房灶台上找到一碟桂花糕,桂花糕有没有验过毒?第五步——"

沈渐顺着纸上的数字往下看。第一步到第二百三十七步。死者吃过的每样东西、见过的每个人、签过的每一份契书——全部被拆成了单步。

"你审一桩案子,"沈渐的声音有点干,"写了两百多步。"

"这是少的。"陆慎言从架子上抽出另一卷——更厚,从案面垂到地上,在脚边盘了三圈,"去年那桩江南盐引私卖案,两千一百零三步。我审了四个月。"

"你不累吗?"

"累。但每一步都写在纸上以后——你不会漏。"

陆慎言的指头钉在了第一百四十三步上。那一行写的是:参汤碗沿的砒霜残留呈点状分布——非均匀涂抹。疑为事后有人用手指涂抹,非服用时的自然残留。

沈渐盯着那行字看了很久,久到陆慎言以为他睡着了。

"这一行,"他终于开口,声音有点哑,"我脑子里也闪过。"

"闪过不是走过。"陆慎言的声音不大,但每个字都落得很重,"你脑子里闪了一下,然后被'丫鬟看见买砒霜'那个更响的声音盖过去了。你跳过去的那一步——刚好是整个案子里最关键的一步。"

审案房的烛火跳了两下。沈渐额头上一层薄汗。

"从今天起,"陆慎言递给他一支笔,一摞空白的纸,"你审案子的规矩改一改。不管你心里多确定——在写下结论之前,把推理的每一步都说出来。说给自己听,说给纸听,怎么说都行。就一条:不许跳步。"

"要写多少步?"

"最少十步。从证据到结论之间,你拆不出十步,结论就不许写进卷宗。"

"十步?"沈渐看了看那卷垂到地上的长纸,"那桩小偷偷东西当场被抓的案子呢?目击证人就在三丈之内亲眼看见的——也要十步?"

"你自己算算:目击者站在什么位置?距离几丈几尺?当时什么时辰、天光够亮吗?他跟小偷有没有旧怨?他的眼睛有没有毛病?他当时在干什么、注意力集中在哪?小偷的动作是哪个手、从哪个方向掏的——光是'亲眼看见'四个字,十步根本打不住。"

沈渐低下头,看着面前那摞白纸。

"那句话本身不是证据。"陆慎言一字一顿地说。"那句话到证据之间的路,才是你的活儿。"

三、自己骗不了写在纸上的自己

沈渐花了三个月学会让自己变慢。

第一周痛苦极了。他脑子里已经判了,嘴还在第二步磨蹭。写下来的东西跟他心里想的完全对不上——写比想慢了十倍。更难受的是写着写着忽然发现:第三步的推理其实依赖了一个他根本没有证据的假设。第四步的因果关系是倒过来的。第七步跳过了最关键的一个疑问——而他以前审案的时候,这七步全是"一闪而过"。

第一个月结束的时候,他翻出了自己两年前审过的一桩旧案。按新办法重新拆了一遍——拆到第四十七步的时候,笔掉了。

两年前他判的那个人,有可能真的是冤枉的。

"知道为什么让你把每一步都说出来吗?"陆慎言翻着他新写的卷宗。沈渐的字迹比以前密了一倍——每桩案子都写满了几十页纸。

"因为写下来以后,别人可以检查每一步对不对。"

"对了一半。"陆慎言拿起沈渐新写的一卷纸,从头到尾看了两遍,"还因为——写下来以后,你自己可以检查每一步对不对。脑子里的东西不写出来,你会自己骗自己。自己骗不了写在纸上的自己。"

第二个月,沈渐开始感觉到一种奇怪的东西——以前他断案靠的是"直觉",一个说不清楚的感觉告诉他谁在说谎。这个感觉大部分时候是对的,但偶尔错的那几次,后果是致命的。现在他把直觉拆成了步骤——每一层直觉底下原来都有至少三四个他可以明确说出来的逻辑判断。

直觉没有消失。直觉变慢了——但它被拆成了能复查、能辩论、能推翻的东西。

四、三条路走到同一个地方

赵大案重审那天,陆慎言做了一件所有人都没想到的事。

他把案子分给了三个推官:沈渐、一个姓方的中年推官、一个姓顾的年轻推官。三个人各领一份全套卷宗,各审各的、各写各的推理链,三天之内不许交流。每个人写出来的链条,第四天放在一起比对。

"一桩案子为什么要三个人审?"沈渐不解。

"同一条河,三个人从三座不同的山上往下走。如果三条路都通到了同一个河口——那这个河口就八九不离十。如果有一条路走岔了——"

"另外两条路会告诉它岔在哪。"

三个人分了三条巷子去查。

沈渐从参汤碗沿的砒霜分布形态入手,往下拆了一百一十六步。砒霜呈点状分布——事后涂抹的特征。赵大胃中砒霜含量远低于致死量——他不是被毒死的。胃中有大量未消化的附子——心疾患者误食附子的典型反应。死因不是砒霜中毒,是心疾发作。

沈渐的第四十三步写着:凶手若要毒杀赵大,为何选择一种事后极易被仵作识破的手法?砒霜毒杀查验成熟——任何一个稍有经验的仵作都能验出。真凶若是有意投毒,不会选砒霜。

方推官从房契过户的时间线和受益人入手,拆了八十九步。他的第三十二步指向了一个沈渐没注意到的人物——赵大的前妻之子赵琏。房契过户的经手人是赵琏的母舅。赵大死后,米铺归赵琏所有。赵琏在赵大死前三天去了城西——不是去进货,是去见了一个走方郎中。

顾推官从丫鬟的背景查起,拆了一百四十二步。他的第二十七步翻出了一个事实:这个丫鬟两年前在城南一户姓孙的人家做过使女。那家的男主人也是"暴毙"。那桩案子当年以"病故"结了。顾推官派人去城南,找到了当年给孙家男主人看诊的老郎中——老郎中还记得那个脉象:"跟中毒一模一样,但我没证据。"

四条线索在三个人的推理链条里汇到了一处。

第四天,三份卷宗拼在了一张大案上。沈渐的一百一十六步、方推官的八十九步、顾推官的一百四十二步——从三条不同的路线出发,全部收束到了同一个人:赵琏。

他在参汤碗沿上抹了砒霜,收买了丫鬟作伪证。赵大死于心疾——跟砒霜无关。赵琏知道父亲有心疾,也认识那个走方郎中——郎中卖给他的不是砒霜,是附子。致心疾猝发的附子。

真凶伏法那天傍晚,沈渐坐在自己的审案房里,把三份卷宗并排摊在案上。阳光从西窗斜照进来,纸上三种不同的笔迹——他的瘦硬、方推官的工整、顾推官的潦草——全部停在了同一个终点。

"老推官,"他问陆慎言,"您让三个人各审各的——是不是因为您知道,一个人拆出来的链条再长,也可能在某一步走岔?"

"对。一条链子走岔了,你自己很难察觉——因为每一步在你自己看来都是对的。但如果三条链子从不同方向往上盘,最后咬在了同一颗钉子上——那你心里就有底了。"

沈渐站起来,把墙上挂了多年的"明镜高悬"匾额取了下来。

换上了陆慎言送他的四个字:步步为营

那句话到证据之间的路,才是你的活儿。每一步都经得起看,最后的结论才经得起翻。

技术解读

思维链推理(Chain-of-Thought,CoT)是提升大语言模型复杂推理能力的一项关键技术。传统的 prompting 方式直接要求模型从问题跳转到答案——中间过程完全压缩在模型的黑箱之中。而 CoT 要求模型将推理过程外化为自然语言步骤:每一步是一个中间结论,下一步基于前一步继续推进,最终从问题一步步走到答案。

这一方法的突破性论文来自 Google Research 的 Wei et al.(2022)《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》。论文发现,只需在 prompt 中提供几个"展示完整推理过程"的示例(few-shot CoT),就能显著提升大模型在算术、常识和符号推理任务上的表现——甚至不需要任何微调,仅靠提示词的引导即可触发。后来 Wang et al.(2022)进一步提出了 Self-Consistency(自洽性):生成多条不同的推理路径,取多数投票的结果作为最终答案,进一步提高了 CoT 的可靠性和鲁棒性。

核心概念回顾

概念 通俗解释
思维链 将推理过程拆解为一系列明确的中间步骤,每一步都用自然语言表达
标准 Prompting 直接给问题、要求答案,不展示推理过程
Few-shot CoT 在 prompt 中给出几个"演示完整推理过程"的示例,引导模型模仿
Zero-shot CoT 不给出示例,仅用"Let's think step by step"等提示触发模型自己拆解
中间推理步骤 CoT 链条中的每一个节点:一个明确的、可检查的逻辑判断
自洽性 让模型生成多条不同的推理链,取多数投票的结论——多条路线验证同一个答案
贪心解码 vs 采样 贪心解码只取概率最高的下一步,路径单一;采样可以生成多条不同路径
推理时计算 CoT 增加了模型在推理阶段的计算量(更多 token),但带来了推理质量的跃升
涌现能力 CoT 只在模型规模达到一定阈值后才显著起效——小模型上效果不明显
符号推理 / 常识推理 / 算术推理 CoT 起效最显著的三大任务类型

故事中的隐喻对照

故事元素 映射的技术概念 解释
沈渐从证据直接跳到结论,中间一步不写 标准 Prompting 模型直接从问题映射到答案,中间没有显式推理
陆慎言要求"每一步都写下来,不许跳步" 思维链推理 CoT 要求模型将推理过程显式化为一系列自然语言步骤
纸上每行前面标的数字(一、二、三……) 推理链中的顺序步骤 每个推理步骤有明确的逻辑顺序,后一步基于前一步
"从证据到结论最少拆成十步" CoT 的多步推理 有效的思维链通常包含多个中间步骤,越多步推理越深
"脑子里闪了一下——但闪过不是走过" 隐式推理 vs 显式推理 模型内部可能有隐式的推理表征,但只有显式写出才能被检查和纠正
"脑子里的东西不写出来,你会自己骗自己" 外化推理的自我纠错能力 将推理写出后,模型(和人)能够检查逻辑漏洞并自我修正
沈渐拆旧案到第四十七步时"笔掉了" CoT 暴露隐式推理中的错误 将推理显式化后,之前"凭直觉"跳过的错误步骤暴露出来
三个推官各审各的、各写各的推理链 自洽性:生成多条推理路径 多条独立的推理链条从不同角度逼近同一个问题
三个人的链条收束到同一结论 多数投票 不同路径都指向同一答案时置信度最高
"三条路走岔了一条——另外两条会告诉它岔在哪" 自洽性消解单链偏差 单条链的随机错误可以通过多条链的交叉验证来识别和纠正
陆慎言的四字匾额"步步为营" 逐步推理的核心原则 每一步都审慎、可检验,结论才可靠
沈渐以前的"直觉"变慢、被拆成了能复查的东西 CoT 将模型隐式能力转化为显式推理 大模型本身有推理潜力,CoT 将其外化为可解释、可验证的步骤

为什么这个故事对应思维链推理?

  1. 从"跳"到"走"的范式转变:沈渐的"直觉式断案"对应标准 prompting——模型内部确实在做某种推理,但过程不可见、不可控、不可纠错。陆慎言教他的"一步步写下来"正是 CoT 的核心:将隐式推理外化为显式的自然语言步骤。两者的输入和输出一样——中间有没有那卷写着"一、二、三……"的纸,结果天差地别。

  2. 思维链的涌现门槛:沈渐需要学三个月才能让"新的方式"生效——正如 CoT 提示技术只在模型参数达到一定规模后才显著起效。小模型上 CoT 几乎没有增益,甚至可能因为推理步骤中的错误累积而变差。

  3. 显式推理的自纠错能力:"自己骗不了写在纸上的自己"——当推理被显式化后,每一步都可以被独立检查和反思。这正是 CoT 提高准确率的核心机制之一:错误的推理步骤在显式链条中比在隐式推理中更容易被发现和修正。

  4. 自洽性的交叉验证机制:三个推官各审各的、最后比对结论,精确对应 Self-Consistency 的流程。生成多条不同的推理链(通过调整采样温度),取多数投票结果。单条链可能在某一步走岔(随机错误),但多条独立链同时走岔的概率极低。

  5. 推理步骤的可累积性:"从证据到结论之间最少十步"——CoT 将一个大跨度的推理分解为多个小跨度子推理。每个子推理的难度低,多个子推理串联起来却能解决原来一步跨不过去的难题。这就像把一道悬崖拆成一段一段的石阶。

  6. 隐性知识的外化利用:沈渐的"直觉"并没有消失——它被拆成了能够被复查的逻辑步骤。这反映了大模型的实际情况:模型从预训练中已经获得了大量隐性的推理能力,CoT 的工作不是注入新能力,而是用一个提示框架把这些能力"引导"出来。

  7. 推理即计算:陆慎言审案用四个月、写两千步——但四十年零翻案。CoT 的核心 trade-off 正是用更多推理时的 token(更慢、更贵)换取更高的准确率。推理时计算(inference-time compute)成为了除了模型规模之外的第二个 scaling 维度。

后记:一个推官最大的本事不是判得快——是每一步都经得起别人看、经得起自己翻、经得起另外两个推官从不同的巷子里走出来核对。CoT 做的事不是让模型"变聪明",是让它把聪明摊开在纸上——一、二、三、四,每一步都写得清清楚楚。脑子里的闪电不是推理,写在纸上的石阶才是。三条路汇到同一个地方的那份底气,比一条路走到黑的自信可靠得多。那句话到证据之间的路,才是你的活儿。每一步都经得起看,最后的结论才经得起翻。