---
order: 12
date: 2026-08-05
summary: ——有效的检索，预设一个已经读过的读者
---

# 第二次通读

**——有效的检索，预设一个已经读过的读者**

《读不完的文本》收在瓶颈的迁移上：机器是第一个读完了仓库的读者，此后要紧的不再是读得完读不完，而是报告可不可信。但那篇跳过了一个中间问题——**“机器读全量”到底是怎么个读法？** 行业有一个现成的默认答案，叫 RAG：检索增强生成。语料装不进上下文，就先用相似度从库里抓几段回来，让模型对着这几段作答。今天几乎所有“AI 法律检索”产品都是这个架构。

本文想说的是：这个默认答案是错的。不是工程细节错，是架构错——而看清它错在哪，恰好需要上一篇铺的那两千年历史。

## 旧架构的机器复刻

把 RAG 的逻辑翻译成《读不完的文本》的语言：语料装不进（这次是装不进上下文窗口），于是靠索引削出一个小工作集，对着工作集干活。似曾相识——**这就是“人读工作集”的老架构，只是把人换成了模型。** 而且比起古法，它还退了几步：布莱克斯通的摘要有损，但他签了名；West 的编目有偏，但类目是法律人按法律语义建的；RAG 的索引是 embedding 相似度——一个没有法律语义、无人负责、连“为什么召回这几段”都解释不清的排序函数。两千年里最粗糙的一代索引员，接管了最重要的一道工序。

至于另一个方向——把全库塞进越来越长的上下文——不必讨论。语料的增长永远快过窗口，“装得下”从来不是真问题；真问题下面会看到：装下之后，权威性怎么排、完备性怎么证明，一个都没解决。

## 四个致命伤

RAG 在通用问答里够用，进法律场景就接连触礁，而且四处伤口指向同一个病根。

**其一，相似不等于相关。** 法律相关性是结构性的：同一争点、同一要件配置、同一程序姿态。两个都讲“逾期交货”的案子可能毫不相干，一个讲船舶、一个讲软件的案子可能共享决定性的裁判规则。Embedding 度量的是表面语义的邻近，抓回来的是**长得像的，不是管得着的**。

**其二，切块摧毁结构。** 判决书的意思高度依赖位置：“原告主张”里的一句话和“本院认为”里的同一句话，字面全同，效力天差地别。按字数切块的检索器不认识这个边界，会把当事人的主张当成法院的认定喂给模型——这是 AI 法律检索最经典的翻车姿势，根源不在模型，在切块那一刀。

**其三，top-k 没有完备性保证。** 这条最要命。法律检索的成本函数是不对称的：多读十个无关案子是浪费，漏掉一个反向权威是灾难。RAG 交付的是 k 个最相似的段落，而“没有漏掉相反的”是它在原理上无法承诺的事——召回率不可测量，遗漏无声无息。斯坦福 2024 年实测过市面头部法律 AI 工具：接了检索增强，杜撰率仍在六分之一到三分之一之间。原因不难猜：抓回来的段落既不完备也不对口，模型只好拿分布里的想象填缝——《在裂缝上架桥》说过，流畅不是证据。

**其四，权威维度缺失。** 现行有效吗、被推翻了吗、哪个层级说的、什么审级——这些是法律检索的一等公民，在相似度空间里根本不存在。Shepard 引证表一百五十年前就在回答的问题，embedding 答不了。

四处伤口的病根是同一个：**RAG 试图用检索替代阅读。** 它检索的是生文本——没有人、也没有机器真正读过并消化过的文本——却指望在生成的一瞬间完成理解。理解没有捷径，于是每一个没被理解的维度（结构、完备性、权威性），都变成一处出血点。

## 先读后查

正确的架构把顺序倒过来：**检索的质量取决于检索之前的阅读。**

先看人是怎么做的。律师检索效率高，不是因为工具好，而是因为他先有体系——潘德克顿的概念树、请求权基础的检讨次序——检索只是在一张已有的地图上定位。法学教育的前几年不教检索，教通读：先长出树形，才配得上查询。**有效的检索预设一个已经读过的读者**——这条规律不因为读者换成机器而失效。

机器版的“先读”是这样的：在任何查询发生之前，**离线读完全量语料，把每份文本拆成带锚点的结构**——争点是什么、援引了哪条规范、认定了哪些要件、结论如何、原文在哪一段。读的成本付一次，此后的“检索”就不再是相似度赌博，而是数据库查询：按法条查、按争点查、按结果统计。三个立竿见影的变化：

- **精确键取代相似度。** 法条号、案号、法院层级、审级、裁判结果——这些是可枚举的封闭维度，精确匹配加引用关系遍历，给出的是**有边界的完备性**：“库内同争点共 N 件，其中反向 M 件”是一句说得出口的话；“top-10 最相似”永远说不出这句话。Embedding 退到它该在的位置：候选生成，兜住精确键覆盖不到的残余——而不是充当检索本身。
- **索引从类目变成分布。** 结构化之后，语料能回答的就不止“这类案子在哪”，而是“这类争点实际怎么判、支持率多少”。《法律的版本控制》的结论在这里获得工程形态：挖分布，不挖先例。
- **每个结果自带回源锚点。** 结构里的每一项都指向原文的具体位置，下游的核验不必重读语料，只需核对锚点——这正是《读不完的文本》末尾那个三段式的中间环节。

还有一条容易被漏掉：**检索是过程，不是查找。** 一次性检索假设你一开始就知道该问什么，但查询能力本身来自阅读——读了三个案子，才知道真正的争点词是什么，回头重新检索。这是《往返的目光》在检索层的形态：目光在问题与语料之间往返，一轮检索的产出是下一轮更好的查询。检索、阅读、改写、再检索的循环之所以远胜单发 RAG，原因并不神秘：它把解释学循环还给了检索。

## 两次通读，一次精读

把架构摊开，是两次通读加一次精读，各干各的活。

**第一次通读是预训练。** 模型把语料吞进参数，像法科生的通读：记不住出处，但留下形状——什么问题挨着什么问题、什么说法可疑、什么结构常见。这一层长出的是直觉，《AI 是一位普通法法官吗》写过它的价值，《平均数不是共识》写过它的边界：有法感，无引证，永远不许直接引用。

**第二次通读是离线结构化。** 机器再读一遍全量，这次不是压进参数，而是拆成带锚点的结构。第一次通读的产物是权重——那不是一件可查之物，是一个会读的主体，此后的一切阅读与判断都由它执行；第二次通读的产物才是**可查询的库**。一边长出读者，一边长出读者手边的资料室。本文标题指的就是这一次：它是 RAG 省掉的那道工序，也是“机器读全量”的真正含义——阅读不发生在查询的瞬间，发生在查询之前。

**临案的最后一步不再是通读，而是在检索中精读。** 有了前两次，检索带回来的不是 k 段来历不明的碎片，而是一个有边界的短名单：同争点几件、反向几件、基率如何，每件挂着锚点。对这份短名单要做的，恰恰是最传统的功课——回到判决原文，在上下文里读：分清主张与认定，看清要件是怎样被坐实或推翻的，把结构化时压掉的细节读回来。切块摧毁的东西，在这里被逐字修复。通读求全，精读求深；律师从来都擅长精读，难的从来是知道该精读哪几份——两次通读的全部意义，就是把这个“哪几份”从几百万份削成一张短名单，而且削的依据不再是有损的摘要与默默的遗忘，是读过全量之后的精确定位。

两次通读加一次精读，产出依次是直觉、结构、答案——顺序不可颠倒，跳过中间一环，直觉就会假扮答案。工具的历史里，检索一直被当作阅读的替代品：发明索引，本来就是为了少读。第二次通读把这个关系倒了过来——**机器把阅读做完，检索才第一次配得上“查询”这个词。** 少读的时代结束了，不是因为谁终于读得完，而是因为终于有东西替我们读完了；剩下的事，是查它读得对不对。
