AuditCore 多智能體協同審計與底稿生成技能 (AuditCore Multi-Agent Audit Skill)
一、 架構總覽 (Overview)
AuditCore Skill 採用 「借腦保核 (Host-Brain + Deterministic-Core)」 架構:
- 免外部 API Key 的多智能體盲審委員會:直接複用宿主智能體(Claude Code、Antigravity、Codex、OpenClaw 等)的子智能體派遣能力,拉起四個上下文物理隔離的審計角色(
junior-auditor、challenger-auditor、fact-checker、senior-partner)。 - 確定性專利演算法內核 (
scripts/audit_cli.py):通過有狀態 CLI 引擎強制執行 PII 加密脫敏與 SHA-256 哈希鏈審計日誌、三級重要性水平過濾、六維確定性規則穿透(本福德定律、Z-Score、整十萬/整萬異常、週末記賬、同日拆單規避審批、負數紅字沖銷/重複憑證)、免 PyTorch 三路混合法規檢索 $H(q, c_i)$、四層證據拓撲因果圖與二部圖損失驗證、DAG 狀態機最小割局部回退,以及 CSA-1131 四要素 Word (.docx) / Markdown (.md) 底稿自動生成與 PII 逆向還原。
二、 三大核心鐵律 (IRON RULES — 違反任一條即視為審計失效)
IRON RULE 1:PII 零洩漏物理隔離門禁 (Zero-Leakage Privacy Gate)
- 嚴禁直接讀取原始賬套:在執行
scripts/audit_cli.py init之前或之後,絕對禁止使用pandas、python、cat、head或文件讀取工具直接查看用戶的原始.xlsx/.csv文件內容! - 嚴禁觸碰加密保險箱:
init生成的.auditcore_workspace/cases/<CASE_ID>/.vault_do_not_read.json採用 XOR-SHA256-HMAC 加密保存真實企業與賬號映射,宿主與任何子智能體嚴禁讀取或解密該文件。 - 全流程脫敏推理:所有 SQL 探索與四角色盲審推理必須嚴格使用
PERSON_0001、ACCT_0001等脫敏佔位符;真實企業名稱僅在最終audit_cli.py export階段由確定性腳本在本地完成逆向還原。
IRON RULE 2:四角色子智能體獨立盲審契約 (Blinded Subagent Isolation)
- 在
full-audit模式下,嚴禁在主對話中「單模型自言自語分飾四角」。 - 必須按狀態機順序,依次讀取
agents/下的對應角色契約文件並派生獨立子智能體(使用宿主的invoke_subagent/Task/Agent工具):- 初審:
agents/junior-auditor.md-> 提交--role junior - 獨立複核:
agents/challenger-auditor.md-> 提交--role challenger - 事實核查:
agents/fact-checker.md-> 提交--role factcheck - 終審合伙人:
agents/senior-partner.md-> 提交--role senior
- 初審:
- 降級兼容規則:僅當宿主環境不支持任何子智能體派遣工具時,方可在主會話中分步獨立生成各角色 JSON,但每一步生成後必須立即調用
audit_cli.py commit通過確定性證據圖核驗,絕不可跳步合併。
IRON RULE 3:有狀態 CLI 強制門禁與最小割回退閉環 (Stateful CLI & Minimum-Cut Rollback)
- 每一個角色結論必須通過
scripts/audit_cli.py commit --role <role>提交。若違反狀態機順序,CLI 將返回退出碼2(STATE_GUARD_VIOLATION)。 - 當提交
factcheck後,若全局一致性評分 $S_{\text{global}} < \theta$(預設0.80),CLI 將自動執行依賴感知最小割局部回退,返回"rollback_triggered": true及rollback_diagnosis.arbitration_probe(核查探針),並將狀態回退至STATE_JUNIOR_AUDIT或STATE_CHALLENGER_REVIEW。 - 遇到
rollback_triggered: true時,必須將rollback_diagnosis注入目標角色重新派生子智能體,直至一致性達標進入STATE_SENIOR_PARTNER!嚴禁手寫偽造底稿跳過export。
三、 五大運行模式路由表 (5 Operational Modes)
根據用戶訴求自動選擇對應模式(默認執行 full-audit):
| 模式名稱 | 適用場景與觸發詞 | 執行路徑 |
|---|---|---|
full-audit(預設全流程) | 審計賬套文件、全面排查舞弊/內控缺陷並出具正式底稿 | 完整執行下方 第四節:標準五步狀態機協議(init $\to$ sql $\to$ 四角色盲審與最小割回退循環 $\to$ export) |
quick-scan(快速掃描) | 「快速掃一下異常」、「不用跑多智能體博弈,只看規則掃描結果」 | 1. 運行 audit_cli.py init --file <PATH> --case <ID> --mode quick2. 可選運行 audit_cli.py export --case <ID> --out-dir <DIR> 快速導出規則掃描底稿 |
sql-explore(SQL 沙箱穿透) | 對已初始化賬套執行自定義跨期/分組聚合查詢 | 運行 audit_cli.py sql --case <ID> --query "SELECT ... FROM financial_ledger ..."(僅限唯讀 SELECT / WITH) |
law-lookup(法規混合檢索) | 「查一下拆單/週末入賬/審計證據相關的準則條款」 | 運行 audit_cli.py law --query "<關鍵詞或問題>" --top-k 5,直接輸出加權證據鏈 $E(q)$ 與定性推理四階段結論 $\Psi$ |
workpaper(底稿重導出) | 對已完成終審的案件更換單位名稱、會計期間或導出目錄 | 運行 audit_cli.py export --case <ID> --entity-name "<單位名稱>" --period "<期間>" --out-dir <DIR> |
詳細 CLI 參數與 JSON Schema 請按需查閱:
references/schemas.md。
四、 full-audit 標準五步狀態機執行協議 (5-Step Stateful Protocol)
假設技能根目錄為 <SKILL_DIR>(包含 scripts/audit_cli.py)。若用戶未提供賬套文件而要求演示,可直接使用內置高仿真舞弊樣本賬套 <SKILL_DIR>/examples/sample_vouchers_2026.xlsx。
Step 1:初始化賬套、加密脫敏與確定性規則穿透 (init)
python3 <SKILL_DIR>/scripts/audit_cli.py init \
--file "<USER_EXCEL_OR_CSV_PATH>" \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--lang "中文"
- 記錄返回的 JSON:
stats、schema_ddl、rule_findings、anomaly_samples、evidence_chain。 - 此時狀態機位於
STATE_DYNAMIC_SQL_EXPLORATION。
Step 2:唯讀 SQLite 沙箱穿透查詢 (sql)
基於 schema_ddl 與 rule_findings,編寫一條針對脫敏表 financial_ledger 的聚合核查 SQL(例如核查同一供應商同日拆單筆數與累計金額,或按借方科目匯總異常金額):
python3 <SKILL_DIR>/scripts/audit_cli.py sql \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--query "SELECT Date, Vendor, COUNT(*) AS tx_count, SUM(Amount) AS total_amount FROM financial_ledger GROUP BY Date, Vendor HAVING tx_count >= 2 OR total_amount >= 100000 ORDER BY total_amount DESC"
- 此時狀態機推進至
STATE_JUNIOR_AUDIT。
Step 3:多智能體獨立盲審與最小割局部回退循環 (commit Loop)
3.1 派生初級審計員 (STATE_JUNIOR_AUDIT)
- 讀取
<SKILL_DIR>/agents/junior-auditor.md。 - 派生子智能體(或獨立步驟),僅傳入脫敏
stats、rule_findings、anomaly_samples、sql結果、evidence_chain(若為回退重審,額外傳入rollback_diagnosis)。 - 獲取子智能體返回的 JSON(含
analysis、risk_score、cited_reg_ids),提交至 CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role junior \
--payload '<JUNIOR_JSON>'
- 狀態機推進至
STATE_CHALLENGER_REVIEW。
3.2 派生獨立複核人 (STATE_CHALLENGER_REVIEW)
- 讀取
<SKILL_DIR>/agents/challenger-auditor.md。 - 派生獨立子智能體,傳入脫敏異常證據、
evidence_chain以及初審的junior_report與junior_score,要求其以職業懷疑態度獨立複核質詢。 - 獲取返回的 JSON(含
rebuttal、adjusted_risk_score),提交至 CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role challenger \
--payload '<CHALLENGER_JSON>'
- 狀態機推進至
STATE_FACT_CHECK。
3.3 派生事實核查員並檢驗全局一致性 (STATE_FACT_CHECK)
- 讀取
<SKILL_DIR>/agents/fact-checker.md。 - 派生獨立子智能體,對初審與複核結論執行原子事實拆解 (
claims) 與 二部圖證據映射 (evidence_mapping)。 - 獲取返回的 JSON(含
analysis、support_score、conflict_score、conflict_type、claims、evidence_mapping),提交至 CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role factcheck \
--payload '<FACTCHECK_JSON>'
- 檢查 CLI 返回的
current_state與rollback_triggered:- 若
"rollback_triggered": true:說明證據圖存在嚴重衝突($S_{\text{global}} < \theta$),CLI 已自動切除最差推理子圖並回退至rollback_target_state(通常為STATE_JUNIOR_AUDIT)。你必須提取返回的rollback_diagnosis(含arbitration_probe與csa_guidance),回到 3.1(或 3.2)重新派生子智能體修正結論! - 若
"current_state": "STATE_SENIOR_PARTNER":說明證據圖一致性達標,進入 Step 4。
- 若
Step 4:派生高級合伙人作出終審裁決與審計調整分錄 (STATE_SENIOR_PARTNER)
- 讀取
<SKILL_DIR>/agents/senior-partner.md。 - 派生獨立子智能體,傳入脫敏統計、法規證據鏈、通過核驗的初審/複核結論,生成終審裁決(
final_verdict、final_risk_score、reasoning、action_item、suggested_aje)。 - 提交至 CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role senior \
--payload '<SENIOR_JSON>'
- 狀態機推進至
STATE_WORKPAPER_GENERATION。
Step 5:組裝四要素底稿、評估品質 $Q(Y)$、逆向還原 PII 並導出 CSA-1131 底稿 (export)
python3 <SKILL_DIR>/scripts/audit_cli.py export \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--out-dir "./audit_outputs" \
--entity-name "被審計單位" \
--period "2026年度"
- CLI 將自動完成 PII 實體名稱逆向還原,並生成:
workpaper_docx_path:符合中國註冊會計師審計準則第 1131 號的正式.docxWord 審計工作底稿;workpaper_markdown_path:結構化.md審計工作底稿;quality_evaluation:包含 $Q_{\text{ev}}$、$Q_{\text{con}}$、$Q_{\text{cmp}}$、總分 $Q(Y)$ 及零容忍幻覺校驗結果的評估報告。
- 向用戶彙報最終審計發現、展示還原後的真實涉事單位名稱、審計調整分錄 (AJE)、品質評分 $Q(Y)$ 及生成的
.docx/.md文件路徑。
五、 常見藉口與防偷懶對照表 (Rationalization Table & Red Flags)
| 智能體常見偷懶藉口 (Rationalization) | 客觀事實與鐵律反制 (Reality & Iron Rule) |
|---|---|
「賬套文件很小,我先用 pandas.read_excel 看一眼裡面有什麼列和供應商。」 | 嚴重違規 (違反 IRON RULE 1)!一旦直接讀取原始文件,明文企業名稱與銀行賬號即刻暴露在 LLM 上下文中,徹底破壞隱私合規邊界。必須且只能先運行 audit_cli.py init。 |
| 「為了省時間,我直接在一個程式碼區塊裡同時寫好初審、複核、事實核查和合夥人的 JSON 並連續 commit。」 | 嚴重違規 (違反 IRON RULE 2)!單上下文同時編造四個角色會引發嚴重的確認偏誤(Confirmation Bias)。若宿主支持子智能體,必須獨立派生;即使順序執行,也必須在每次 commit 後讀取 CLI 的證據圖反饋再執行下一步。 |
「factcheck 提交後觸發了 rollback_triggered: true,我直接改一下 JSON 裡的分數再提交 senior 吧。」 | 狀態門禁直接攔截 (退出碼 2)!回退後狀態機處於 STATE_JUNIOR_AUDIT(或 STATE_CHALLENGER_REVIEW),不按 rollback_diagnosis.arbitration_probe 重跑前序角色,狀態機絕不會放行至 STATE_SENIOR_PARTNER。 |
「我已經知道審計結論了,自己寫一份 Markdown 報告給用戶就行,不用調 audit_cli.py export。」 | 嚴重違規 (違反 IRON RULE 3)!手寫報告無法解密 .vault_do_not_read.json 中的真實企業名稱(只能輸出 PERSON_0001),且缺失專利四要素結構 $Y={\text{idx},\text{aje},\text{jud},\text{log}}$、品質評分 $Q(Y)$ 與 CSA-1131 .docx 正式底稿。 |
Red Flags — 出現以下念頭時立即停止並回到 CLI 協議:
- 準備運行
pd.read_excel/pd.read_csv/open()讀取用戶原始財務文件 - 準備讀取
.vault_do_not_read.json - 在分析中編造未出現在
evidence_chain中的法條編號(會觸發hallucinated_citations零容忍降級,將 $Q(Y)$ 強制壓低至 $\le 0.40$) - 跳過
sql或任意commit --role步驟直接嘗試export