程序员点开任意一行代码,用 Git blame 就能在一秒内看清它的作者、修改日期和任意历史时刻的文件快照;但一名美国律师想搞清某条联邦法律在三年前的某一天究竟长什么样,往往要花整个下午泡在法条底部的散文式注释里。法律科技公司 Lexifina 的 Alan Yahya 近期发布了一项实验,把 2017 年以来的《美国法典》(US Code)发布节点与期间颁布的公法修改指令按时间顺序逐一“编译”比对,在跨越 9 个法典编目的 365 项变更中精确复现了 361 项。这项实验戳中了当前法律大语言模型最隐蔽的死穴,但也暴露出一个反直觉的事实:给法律做 Git,哪怕文本复现率逼近完美,依然救不了法律 AI 的时间幻觉。

把法条当代码管,听起来像是软件工程对古老法学体系的降维打击。在开源社区里,GitHub 上的 nickvido/us-code 等项目早就尝试过把美国众议院法律修订顾问办公室(OLRC)发布的法典转成 Markdown 快照,塞进 2013 年至 2025 年间的 13 个版本节点里跑 git diff。但这类文本快照工具始终没能成为律所的核心基建,原因在于代码的运行时间是单向线性的,而法律的时间是折叠的。

大模型的时间盲区:相似度 99% 也是一纸错判

今天大多数律所和企业法务都在用大模型做初步检索,但模型在面对“某起发生在两年前的纠纷该适用哪条法律”时,表现得像个没有时间观念的实习生。

慕尼黑工业大学(TUM)的 Max Prior 与 Matthias Grabmair 团队在今年的一项研究中量化了这个盲区。当大模型回答德国成文法问题时,会本能地套用训练截止日之前的旧规则,或者在需要适用旧法条的案件里强行优先使用新规定。在没有外部检索支持的情况下,模型对训练截止日之后法律问题的回答准确率只有 24%;一旦把对应时间点真正有效的法条文本检索出来喂给它,准确率立刻跃升至 87%。

慕尼黑工业大学实测:大模型处理成文法的时间盲区 24% 裸跑问答准确率 无检索支持下回答 训练截止日后法律问题 87% 挂载有效文本准确率 把时间有效性当硬约束 直接提供对应时期法条 20% 连续修正完全匹配率 让模型自行拼接修正案 单项修正仅 50% 全对

指望大模型自己去读修正案、在脑子里拼出历史法条,同样是一条死路。同一支慕尼黑团队在 ACL 2025 的自然法律语言处理研讨会上展示过另一组实验:让大模型把德国修正案指令应用到早期法条版本上,生成的文本与官方正式文本看起来有 93% 到 99% 的相似度,但单项修正只有一半能完全匹配,连续修正的完全匹配率更是跌到 五分之一。法学专家在这些差之毫厘的文本里找出了具有实质法律意义的错误。

这就解释了 Lexifina 为什么要退回用确定性的程序指令去“编译”法典。除国会通过成文法编纂直接立法的编目(例如 2025 年 9 月刚提交国会审议的第 41 编法案)外,《美国法典》本身只具有表面证据效力,一旦有出入,必须以按时间顺序汇编的《美国法规大全》为准。

Lexifina 团队提取了 2017 年以来的法典发布节点,把期间颁布的公法修改指令按日期顺序写进旧文本,再与下一个官方发布节点做比对。在 365 项变更里,261 项按默认规则在法案颁布当天生效,72 项依据底部的生效日期注释生效,29 项由修正案条文自带的日期决定生效,还有 1 项因为依赖某个可能永远不会出台的行政机构认定而被系统主动剔除。做成这套底账后,律师选定一个日期就能看到当天生效的文本,每个词句按立法来源标上不同颜色,点开一个核心定义就能列出所有引用它的关联条款。

  • 结论.大模型不具备可靠的成文法时间推理能力,把结构化的历史版本作为检索层的硬约束,是将法律问答准确率从 24% 拉升至 87% 的唯一工程路径。

破产法里的时空穿越:Git 快照为何会在 2022 年 5 月判错案

如果法律只是按部就班地打补丁,Lexifina 的这套系统已经可以直接商业化了。但在真实的司法实践里,“某一天印在法典上的字”和“某一天立案时该用的法”,经常是两回事。

最典型的例子是《美国法典》第 11 编第 1182(1) 节关于“小企业债务人”的破产债务上限定义。在短短六年里,这个数字经历了一场连资深破产律师都要掰着手指算的时空折叠:

11 USC § 1182(1) 破产债务上限的时间折叠与溯及盲区 2019 创立 初始低额度 2020.03 CARES 提至 750 万 2022.03.27 失效 3个月空窗期退回低额 (Git 快照显示低额度) 2022.06.21 恢复 重回 750 万并事后溯及 改写 5 月立案适用规则 Pub. L. 117-151 溯及既往 2024.06 日落 退回依赖 § 101(51D) 2025.04.01 调至 342.4 万美元 明确不具溯及力

这条法案在 2019 年创立时沿用了原有的低债务上限;2020 年 3 月《CARES 法案》作为临时措施把上限猛提至 750 万美元,并延期至 2022 年 3 月 27 日。到期那天,高额度准时失效,法律退回低额度。然而到了 2022 年 6 月 21 日,国会通过第 117-151 号公法,不仅把 750 万美元的上限恢复了两年,还在第 2(h)(2) 节里写下一条具有溯及既往效力的规则:凡是在 2020 年 3 月 27 日及之后启动、且在 2022 年 6 月 21 日仍在审理中的案件,一律适用 750 万美元的高额度。随后在 2024 年 6 月 21 日,750 万美元再次触发法定日落条款而失效,资格标准退回依赖第 101(51D) 节;到了 2025 年 4 月 1 日,经每三年一次的通胀调整,这个数字从 3,024,725 美元上调至 3,424,000 美元,且根据第 104(c) 节明确规定不具有溯及力,不适用于此前已立案的债务人。

现在假设一名破产律师在代理一起 2022 年 5 月提交的破产案。如果他用 Git 式的版本控制系统把时间拨回 2022 年 5 月,当时的官方发布节点和 Lexifina 的系统都会冷冰冰地告诉他,当时的法定上限是低额度——因为那正好处于 3 月底失效与 6 月下旬恢复之间的三个月空窗期。只有到了 2022 年 6 月 21 日,国会才像拨动时间机器一样,用一部新法案改写了 5 月份已立案案件的适用规则。

代码里的 commit 永远不会改变三个月前的运行结果,但国会的法案可以重写过去。

这也是 OLRC 在官方《美国立法标记语言》(USLM)指南里专门发出警告的原因:法条文本的“版本周期”不等于法律的“生效或废止日期”。Lexifina 的作者在博客末尾也坦承了这个死角,目前系统在展示早期日期的法条视图时,根本无法显示后续法律跨越时间线伸回来的触手,也不会向查询 2022 年 5 月法条的用户发出任何预警。对于措辞不按常理出牌的生效日期注释,系统的正则模式匹配也会失灵,只能强行回退到默认的法案颁布日。

商业概念验证与下一代法律 AI 基建的差距

如果把视角拉回商业现实,Lexifina 的这篇技术博客更像是一次聪明的产品概念验证(PoC),而非真正准备开源给行业的公共基础设施。

仔细审视现有的公开材料就会发现,Lexifina 既没有公布任何 GitHub 代码库或测试数据集,也没有交代那 365 项变更究竟选自《美国法典》全部 54 个编目中的哪 9 个编目。在联邦法典里,不同编目的结构化程度天差地别,避开历史遗留包袱最重、跨条款动态引用最混乱的编目,很容易跑出 98.9%(361/365)的漂亮复现率。而查看 Lexifina 现有的官网文档,其核心商业产品其实是面向微软 Word 的法律合同版本控制、分支管理与编辑回放插件,并非一套完整的联邦法典历史效力引擎。

法律 AI 时间感知基建的三层架构演进 第三层:法律适用与生效元数据层(行业待攻坚核心) 处理事后溯及既往(Retroactivity)、法定日落条款、跨条款通胀动态调整与或有生效事件 第二层:修正案指令编译与溯源层(Lexifina 实验位置) 按公法颁布顺序执行文本修改指令,实现词句级立法溯源与常规生效日标注(361/365 复现) 第一层:静态文本快照比对层(开源社区 nickvido/us-code 等) 将官方历史发布节点转成 Markdown 跑 git diff,仅能展示特定发布日的静态字面差异

但这并不妨碍这项实验给 Harvey、LexisNexis、Westlaw 等法律 AI 厂商敲响警钟。在处理跨周期的税务稽查、破产清算和合规审查时,单纯靠向量检索把法条切片喂给大模型的 RAG(检索增强生成)路线已经见顶了。

  • 风险.律所和企业法务若直接使用缺乏时间效力图谱的法律大模型审查跨年度案件,极易在日落条款空窗期与溯及既往规则上踩中执业合规红线。

真正能消除时间幻觉的法律底座,必须跳出代码版本控制的思维定式,在静态文本快照和修正案溯源之上,单独建起第三层生效与适用条件元数据层。接下来最值得盯紧的变量有两个:一是以上游 OLRC 为代表的立法机构能否加速成文法编纂与 USLM 结构化标记的普及,从源头消灭散文式的生效期注释;二是下游法律科技公司谁能率先把“溯及力、日落条款、跨条款动态引用”建成可计算的知识图谱。谁先把这张时间网织好,谁才真正拿到了下一代法律大模型的入场券。