LLM 无法监管自己的税务立场。我建了一层确定性层,对照已编码法规验证 AI 起草的立场,而不是依赖模型。
Tax TechnologyArtificial IntelligenceCompliance

我试图让 LLM 抓住自己的税务错误。它做不到——而这恰恰成了整个业务。

Ashutosh SinghalAshutosh Singhal2026年6月19日13 min

那条主张在语法上无懈可击。而这恰恰就是问题所在。

我至今还记得第一个让我停下手里咖啡的立场。AI 起草了一条关于新的 OBBBA 车贷利息扣除的表述,读起来是:「新的 OBBBA 车贷利息扣除是一项线上扣除,会降低客户的 AGI。」句子干净。语气自信。格式像极了我读过的每一条可辩护立场。而它错的方式,正是会让真实的人损失真实金钱的那种。

合格乘用车贷款利息扣除(QPVLI)是一项§63(b)(7)项下的线下扣除。它不会降低调整后总收入。把它放到线上,并不是你重读时就能发现的拼写错误。它会悄然改变 AGI,而AGI 是报税表上半数关键项所依据的数字。让我吃惊的不是模型把某条法规稍微弄错了,而是那个错误答案看起来有多像样

一条幻觉出来的引注很容易被抓住。而一条用完美税务英语写成、自信满满的错误归类,才是会被提交出去的那种。

对我来说,真正的问题正是在那一刻变得清晰起来。这个行业花了三年时间自动化税务工作的起草,而且确实做得很好。Thomson Reuters 自动编制 1040。CCH Axcess 在成千上万家事务所起草咨询洞见。Blue J 用自然语言回答研究问题。准备工作正在被解决。但准备之后的那一步——有人必须判定该立场在法规下是否真正站得住脚——却交给了起草它的同一个概率模型。而根据 IRC §6662,20% 的准确性相关罚金落在签署报税表的人身上,而不是写它的算法上。

我花了一周时间,试图让模型给自己的作业打分。

我的第一直觉是那个显而易见的答案,我也想诚实地说,我追逐它的时间比我本该花的更长。如果模型能起草立场,那一个足够好的提示词想必也能让它检查立场。于是我试了。我把法规给了它。我把 QPVLI 规则写清楚给了它。我要求它审计自己的输出,并标出任何把扣除放错行的地方。

它抓住了一些。也漏掉了一些。而那些漏掉的才是吓人的那种,因为它在审计上出错时,带着与起草时同样流畅的自信。自我检查跑的是当初产生错误的同一套权重。要求模型自我监管,就是要求那个犯错的东西,用制造错误的同一套推理,同时也成为发现错误的东西。

我记得向一位同事解释这些时,听见自己大声说出:「我们不能信任一个 LLM 去监管另一个 LLM。」那句话就是设计对我翻转的时刻。我一直在试图让模型更准确。真正的答案是:彻底停止信任模型来当裁判。

你无法靠好言相劝,把一个概率系统变成确定性系统。你要把裁决移到它之外。

我花了太久才内化的那个区分是:起草与验证并不是同一项任务变得更容易或更难。它们是不同的问题。起草奖励流畅、覆盖与貌似合理——而这正是语言模型的用武之地。验证奖励的是对某一条具体规则可证明地正确,并且能够展示你的推导过程给当时不在场的审查员看。那些是截然相反的性情。我不再试图让一个系统同时做这两件事。

「智能体建议,代码做决定」究竟是什么意思?

我想把我落地的架构说精确,因为这句话听起来像营销,直到你看清那条线画在哪里。在我构建的演示 StatuteGuard 里,语言模型只做一件事:读取杂乱的自然语言税务表述,并提出一个结构化、带类型的主张。那是唯一的神经步骤。它在这件事上确实出色;当它不确定时,它会弃权,立场会升级给人类,而不是得到一个猜出来的裁决。

那之后的一切都是代码。裁决由一个确定性策略引擎做出——真正的 OPA/Rego,外加一套完全相同的纯 Python 孪生实现,对照原始法律运行我写好的规则。神经提取,符号验证。模型提供建议。代码做决定。而这个差别绝非纸上谈兵,因为一段写得好的段落无法说服代码改变它的答案。

我没料到自己会如此在意的部分,是可读性。这些策略不是一个我要你信任的黑箱。它们是决策表和 Rego 源码,你可以打开,自己对照法规核对。

策略规则面板展示 §280A 与 §30D 的可读决策表,旁边是真实的 OPA/Rego 源码
§30D 清洁车辆规则编码为可读表格(MSRP 上限:轿车 55,000 美元,SUV/皮卡/厢式车 80,000 美元;修正 AGI 上限:单身 150,000 美元,户主 225,000 美元,夫妻合并申报 300,000 美元),下方是真实的 OPA/Rego 源码。你可以阅读该策略并确认它与法规一致。

那张截图就是整篇论点浓缩在一个面板里。一位税务负责人应当能与合规伙伴坐在一起,打开规则,在信任任何一条裁决之前对照 §30D 确认它。当逻辑是一段模型推理时,你做不到这一点。当它是一条你能读懂的规则时,你就能。

那么,当代码说不时会发生什么?

我第一次把那个 OBBBA 车贷立场跑过完成的闸门时,我居然笑了。模型起草的「线上、降低 AGI」主张与之前一模一样。但这一次,确定性引擎查看提取出的主张,对照已编码的 §63(b)(7) 规则匹配,并返回硬裁决:BLOCK。不要申报。

StatuteGuard 对 OBBBA 车贷立场返回 BLOCK 裁决,带有「禁止申报」横幅,五路下游级联标红
OBBBA QPVLI 立场返回 BLOCK(「已阻断。所起草的陈述与已编码法规冲突;请勿按原文申报。」),五路下游级联(AGI、与 AGI 挂钩的州税、Medicare IRMAA、7.5% 医疗费用扣除门槛、学生贷款 IDR)全部被标出。

我觉得这个视图有说服力——也希望税务读者觉得有说服力——的地方在于级联。引擎不只是说「错行了」。它向你展示错误的 AGI 削减会污染的五个下游位置:调整后总收入本身、与 AGI 挂钩的州所得税、Medicare IRMAA 保费附加、7.5% 医疗费用扣除门槛,以及学生贷款收入驱动还款。一笔归类错误的扣除不是一个错误。它是一个小小的爆炸半径,而面板让这个半径可见。

然后它会动画化理由——这是我最看重的那一块。它沿着 IRC 交叉引用图,逐个节点走完引注链,因此「不」从来不是一句光秃秃的断言。

动画化的法定引注链,沿 IRC 图从 §163(h)(1) 遍历到 §63(b)(7),并显示线下归位规则
实时引注链:§163(h)(1) → §163(h)(4)(A) → §163(h)(4)(B) → §63(b)(7) → §62/§63。选中 §63(b)(7) 节点会显示归位规则:QPVLI 允许在从 AGI 计算应税收入时使用,属于线下扣除,并经《联邦公报》车贷利息规则确认(2026 年 1 月)。

我不断回到的这个细节,恰恰证明这不是一个玩具问题。按演示自己的 README,那个「线上」的错标并不是我为了找一个反派而编出来的。它是一个有据可查的共识错误,主流报税指导——包括 H&R Block 的网站——都曾发布过。一个貌似合理、写得很好、被广泛重复的错误答案,正是确定性闸门要对付的失败模式。人群再自信,也不会让这笔扣除挪到 AGI。法规决定这一点,而现在代码也决定这一点。

最危险的税务错误不是看起来错的那种。而是看起来对、听起来对、还出现在三家供应商指导里的那种。

如果你想亲自坐下来看这些,正在运行的演示在veriprajna.com/zh-Hans/demos/tax-compliance-ai。你可以粘贴自己的立场,看着闸门做决定。

我差点做错的那个功能:知道何时说「我不知道」

我必须承认那个差点被我写进产品的错误,因为这是每个做验证工具的工程师都想犯的那种。我早期的本能是让机器回答一切。覆盖率感觉像目标。一个对每个立场都返回裁决的工具,看起来比有时耸耸肩的工具更完整。

那个本能是错的,而一个具体立场教会了我为什么。想想 §280A 家庭办公室扣除。一间闲置卧室是否「经常且专属」地用作主要经营场所,是一项事实与情况检验。没有干净的规则可编码,因为答案取决于一个真实的人如何实际使用一个真实的房间。如果我强迫确定性引擎对此裁决,我就在做我建这套东西本要防止的事:在诚实答案是「需要人来看」的地方,制造一个自信的裁决。

StatuteGuard 将 §280A 家庭办公室立场路由到 NEEDS HUMAN REVIEW,因为经常且专属使用属于事实与情况检验
§280A 家庭办公室立场(一间用于咨询工作的闲置卧室,专属性未确立)被路由到 NEEDS HUMAN REVIEW。灰色地带被升级而非强行解决,因为经常且专属使用是确定性覆盖范围之外的事实与情况检验。

所以这道闸门有四种裁决,而不是两种。当立场站得住脚时给出 PASS。当它与已编码法规冲突时给出 BLOCK。当它是真正的灰色地带时给出 NEEDS-REVIEW。当该条款在本版本中根本未编码时给出 OUT-OF-COVERAGE。后两种都意味着同一件诚实的事:这一次由人来决定,而不是机器。把升级路径建出来,感觉像是在承认局限。它实际上是产品里最重要的功能,因为一个永远不说「我不知道」的验证层,不过是第二个带着额外步骤在虚张声势的模型。

那些数字,以及它们恰恰不声称什么

我对基准很谨慎——比营销人员希望我有的更谨慎——因为这些数字通常被陈述的方式是谎言。我用确定性引擎对照一个已标注的黄金集跑了 42 个预分类立场(14 个干净、16 个错误、12 个升级),并衡量这个实际做了什么。

黄金集基准记分板显示:71.4% 确定性覆盖、100% 闸门精度、100% 错误捕捉、100% 正确升级,覆盖 42 个立场
黄金集基准:71.4% 确定性覆盖、100% 闸门精度(0 次错误阻断)、100% 错误捕捉完整性、100% 灰色地带正确升级,在 42 个已标注立场上验证,于本地评估。

在那 42 例黄金集上:71.4% 确定性覆盖,意味着引擎自行把那一部分裁决为 PASS 或 BLOCK,并将其余正确升级。100% 闸门精度,意味着零个正确立场被错误阻断。在已编码条款上 100% 错误捕捉完整性。100% 灰色地带正确升级。吞吐量达到每秒数万个立场(我截图那次约 58,000,不过这取决于机器),因为验证是基础设施,而不是一次模型调用。

现在是我坚持要说清楚的部分。这些数字在该黄金集上为真,而不是开放世界的保证。我不会告诉你 StatuteGuard「100% 准确」,因为一旦离开标注集,这句话就不诚实。我会告诉你的更微妙,也我认为更经得起时间考验:因为裁决是确定性代码,它在已编码条款上的行为是可复现、可证明的,而不是会漂移的概率。我甚至把 42 条裁决逐一对照 OPA 1.17.1 与纯 Python 孪生实现交叉核对,结果完全一致。那才是我能站得住的主张。它描述的是层,而不是模型。

「100% 准确」是一个营销数字。「在已编码条款上可复现,其余地方诚实升级」是一个工程数字。我宁愿交付后者。

而这正是它不会过时的原因。明年更好的基座模型仍然无法证明给审查员看哪条法定条款支撑了哪个立场。覆盖率、闸门精度和可提交的审计轨迹是验证层的属性。它们不是随着模型改进而缩小的模型错误率。

直到审查员开口要,我才知道自己其实在建的那个工件

我起初并没打算做一份合规文件,但跟越多税务人士交谈,对话就越落在同一个地方:「好吧,它抓住了错误,但我拿什么交给 IRS?」所以每一项裁决现在都会写出一份可提交的 §6662 尽职调查记录——一份可打印的工作底稿,记录该立场在申报前已对照法规完成验证。来源工作底稿、条款、一手来源、提取出的主张、判定叙述、完整引注链。它是「合理原因、尽职注意」立场确实被采取过的证据,而这在 2024 年 1 月生效的 AICPA SSTS 修订下直接相关。

我还在意它运行在哪里,还有一个原因;在 Heppner 裁决(纽约南区,2026 年 2 月)之后,这一点变得具体起来——该裁决就向公共 AI 工具输入客户研究提出了特权放弃问题。StatuteGuard 默认完全本地运行,无需 API 密钥。没有任何立场、也没有任何客户数据离开边界。Heppner 之后,封闭、本地、可审计的架构不再只是安全审查上的加分项。它具有法律实质意义。我并不是为那项裁决而设计本地优先姿态的。但正是那项裁决,让我现在把它放在最前面讲。

就利害关系而言,美国企业税务合规成本每年超过 1,260 亿美元(WP1 解决方案研究,2026),而 IRC §6662 罚金是少缴税款的 20%,§6663 欺诈敞口可达 75%。当起草被自动化、罚金却落在个人身上时,验证这一步才是该让税务负责人夜不能寐的。

我现在真正相信的

我开始时以为自己在建一个更好的税务 AI,而我想在结尾坦率地说:我对问题是什么判断错了。你的税务 AI 没有准确度问题。它有的是验证问题,而更好的模型解决不了它,因为那 20% 的罚金落在你的签名上,而不是落在它的权重上。把税务工作的起草个性化和自动化是真正的进步。它也绝不等于证明一个立场站得住脚,而这个行业一直在悄悄把二者当作一回事。

演示在veriprajna.com/zh-Hans/demos/tax-compliance-ai,如果你想试着把闸门弄垮。我真心希望你去试。

如果你更想看着闸门做决定,而不是读我描述它,这里是整套东西端到端运行的过程。

所以这是我不断追问税务领导者的问题,而我还没有一个舒服的答案。当 AI 起草一个立场而你签署报税表时,什么工件能证明是验证了它,而不是信任了它?如果诚实的答案是「什么都没有,我信任了模型」,那么模型就不是你的助手。它是你的共同签署人——而它无法被传唤到审计现场。

相关研究

同步发布于

满怀信心地构建您的 AI。

与一支在打造新一代企业级 AI 方面拥有深厚经验的团队携手合作。让我们助您设计、构建并部署一套值得信赖的 AI 战略。

Veriprajna 深度科技咨询公司 专注于为医疗健康、金融和监管等领域构建安全攸关的 AI 系统。我们的架构均依据成熟的规范进行验证,并配有完善的合规文档。