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,戶長 HoH $225,000,夫妻合併申報 MFJ $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% 醫療費用扣除門檻,以及學生貸款所得驅動還款(IDR)。一項錯分類的扣除不是一個錯誤。它是一小片爆炸半徑,而面板把這個半徑變得可見。

接著它會動畫化理由,這是我最執著的部分。它沿著 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-Hant/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% 準確」,因為一旦離開標註集,那句話就不誠實。我會告訴你的更細緻,而且我認為也更耐久:因為裁決是確定性程式碼,它在已編碼條款上的行為可重現、可證明,而不是會漂移的機率。我甚至用 OPA 1.17.1 與純 Python 孿生實作交叉核對全部 42 筆裁決,結果完全吻合。這才是我願意站台的主張。它描述的是這一層,不是模型。

「100% 準確」是行銷數字。「在已編碼條款上可重現,其餘地方誠實升級」才是工程數字。我寧願交付後者。

而這也是為什麼它不會過時。明年更好的基礎模型仍然無法向審查員證明哪一條法定條款支撐了哪一個立場。覆蓋率、閘門精確率,以及可歸檔的稽核軌跡,是核實層的屬性。它們不是隨著模型變好而縮小的模型錯誤率。

直到審查員開口要,我才知道自己在打造的那份產物

我起初並不是要打造合規文件,但跟愈多稅務人士談,對話愈常停在同一個地方:「好,它抓到了錯誤,但我要交給 IRS 什麼?」因此現在每一次裁決都會寫出一份可歸檔的 §6662 盡職調查紀錄,一份可列印的工作底稿,記錄該立場在送件前已對照法條核實。來源工作底稿、條款、原始法源、擷取的主張、判定敘事、完整引註鏈。這就是合理原因、盡職注意立場確實被採取的證據,而這在 2024 年 1 月生效的 AICPA SSTS 修訂下直接相關。

還有一個理由讓我在意它跑在哪裡,而在 Heppner 裁決(SDNY,2026 年 2 月)之後變得具體——該案對把客戶研究餵進公開 AI 工具提出了特權拋棄問題。StatuteGuard 預設完全在本機執行,不需要 API 金鑰。沒有立場、也沒有客戶資料離開邊界。Heppner 之後,封閉、本機、可稽核的架構,不再只是安全審查上的加分項。它具有法律實質性。我並不是為了那項裁決才設計本機優先姿態。但那項裁決正是我現在把它放在前面的原因。

就利害而言,美國企業稅務合規成本每年超過 1,260 億美元(WP1 解決方案研究,2026 年),而 IRC §6662 罰則是少繳稅額的 20%,§6663 詐欺曝險更高達 75%。當起草被自動化、罰則卻落在個人身上時,核實步驟才是該讓稅務主管夜不成眠的那一步。

我現在真正相信的事

我開始時以為自己在打造更好的稅務 AI,而我想明白地結束:我當時對問題是什麼判斷錯了。你的稅務 AI 沒有準確度問題。它有的是核實問題,而更好的模型修不好它,因為那 20% 的罰則落在你的簽名上,而不是它的權重上。把稅務工作的起草加以個人化與自動化,是真正的進展。它也不是證明立場站得住腳的同一件事,而產業一直悄悄把它們當成同一件事。

示範在veriprajna.com/zh-Hant/demos/tax-compliance-ai,若你想試試能不能打垮這道閘門。我真心希望你去試。

若你寧願看閘門裁決,而不是聽我描述,這裡是整套端到端執行的過程。

所以這是我不斷問稅務領導者的問題,而我自己也還沒有舒服的答案。當 AI 草擬一個立場、而你簽署報稅表時,能證明是核實過它、而不是信任它的那份產物是什麼?若誠實的答案是「沒有,我信任了模型」,那麼模型就不是你的助理。它是你的共同簽署人,而且它無法被傳喚到稽核現場。

相關研究

同步發佈於

自信打造您的 AI。

與一支在打造新世代企業級 AI 方面擁有深厚經驗的團隊攜手合作。讓我們協助您設計、建置並部署值得信賴的 AI 策略。

Veriprajna 深度科技顧問公司 專精於為醫療、金融及法規監管領域打造攸關安全的 AI 系統。我們的架構均依循既定規範進行驗證,並備有完整的合規文件。