Fact-Check-X 統一入口
本技能只做編排,不內嵌三個業務層。它按以下順序調用兄弟技能:
llm-answer-reference-compare:多平台回答、引用與現場存證採集。fact-check-x-knowledge-compare:本地知識點結構化比對,可選。fact-check-x-authoritative-verify:逐知識點併發權威核驗與平台表現報告。
所有語義拆解和證據裁決由當前承載技能的智能體完成。腳本不調用任何模型 API。
依賴定位
四個技能放在同一目錄時可直接運行。也可設定:
export FACTCHECK_SKILLS_DIR="<四個技能的父目錄>"
檢查依賴:
python3 scripts/fact_check_x.py locate
完整流程
先採集 results.json,然後準備知識點比對:
python3 scripts/fact_check_x.py prepare-comparison \
--results <results.json> \
--run-dir <run>
命令會同步生成原始答案與引用報告,在運行目錄頂層生成 01-capture-report.html,並透過 deliverables 返回用戶可見路徑。調用方必須先用該路徑發送真正的 Markdown 文件鏈接,再繼續知識點比對;禁止只顯示反引號路徑。
默認交互模式下,調用方發送本階段產物後必須詢問用戶選擇「繼續下一步」「修正當前結果」或「到此結束並保留產物」,收到繼續指令後才能進入下一階段。只有用戶在最初請求中明確要求完整自動跑完時才可連續執行,但各階段產物仍須逐步展示。
當前智能體讀取 <run>/comparison-task.json,寫入 <run>/comparison-analysis.json,再執行:
拆解時,原子性同時約束知識點和各平台 claim。一個原句包含多個獨立義務、條件、對象、數值或後果時必須拆點,每個 claim 只保留當前事實;平台獨有的實質新增事實也要另起無錨點知識點,不能併入寬泛知識點後復用深知曉錨點免查。
python3 scripts/fact_check_x.py complete-comparison \
--results <results.json> \
--run-dir <run>
命令會在運行目錄頂層生成 02-comparison-report.html,並透過 deliverables 返回路徑;調用方必須把它作為獨立可點擊文件展示給用戶。報告必須包含明確標為「未核驗」的綜合草案。默認交互模式下,用戶確認繼續後才能進入權威核驗。
生成每個知識點的獨立雲端請求並併發取證:
python3 scripts/fact_check_x.py prepare-authority --run-dir <run>
python3 scripts/fact_check_x.py search-authority --run-dir <run> --max-workers 12
若存在非免查知識點但本機尚無可信搜索配置,prepare-authority 和 search-authority 會返回 status=configuration_required、userPrompt 與 configuration.command 並以非零狀態退出。調用方先展示登錄提示,再前台執行該命令。用戶只需在自動打開的深知 MaaS 頁面完成登錄;組件會自動複用已有完整 Key,沒有時建立 Fact-Check-X 專用 Key,驗證後保存到 ~/.fact-check-x/credentials/trusted-search-key。Codex、Claude Code、WorkBuddy 等載體共享該配置,檢測到已有 Key 時直接跳過登錄。配置成功後調用方自動重跑 prepare-authority,不得要求用戶複製 Key、編輯 shell 配置、回覆「已配置」,也不得改用深知曉來源或普通搜索繞過。
只有可信搜索返回 401/403 時才把現有 Key 視為失效並進入自動配置。超時、斷網或服務異常保留現有配置並自動重試;重試後仍失敗則停留在搜索階段返回技術錯誤,不要求用戶重新登錄,也不轉成人工事實複核。
prepare-authority 會寫入 authority-gate.json。只有可信搜索批次正常完成、門禁狀態變為 searched 後,finalize-authority 才允許運行;手工寫 evidence 或 result 不能繞過。
當前智能體逐個讀取 authority/requests 與 authority/evidence,把裁決寫入 authority/assessments/<知識點ID>.json,然後:
免查模式下,trustedAnchor.officialAnswer 是當前知識點的權威結論;錨點證據列表用於來源追溯,不要求標題或截斷摘錄逐字複述該結論。平台主張與 officialAnswer 語義一致或可由其直接推出時,裁決為 supported 並引用有效錨點證據 ID。僅當平台主張增加了權威結論不能支持的實質事實,或確實無法判定時,才使用 insufficient。知識點比對階段的引用忠實性與本階段的事實正確性分別保留,不能因平台自身引用不足而拒絕判斷已經被權威結論證實的主張。
{
"authoritativeFinding": "由權威證據支援的知識點結論",
"verdicts": {
"<平台ID>": {
"verdict": "supported",
"reason": "主張與 E1 一致",
"evidenceIds": ["E1"]
}
}
}
verdict 只能使用 supported、contradicted 或 insufficient,證據 ID 必須存在於當前 evidence 文件中。舊式頂層 verdict、officialAnswer、platformAssessment 會被拒絕。
python3 scripts/fact_check_x.py finalize-authority --run-dir <run>
finalize-authority 生成權威核驗後的最終答案,將證據充分的知識點納入確定答案,將證據不足的知識點寫入 evidenceGaps 並排除在確定答案和準確率分母之外;只要技術鏈路成功,命令返回 status=completed,調用方繼續生成第四步。只有技術命令返回非零狀態時才停止並重試當前階段。
finalize-authority 完成裁決後會獨立生成 03-authority-report.html,並透過
deliverables 返回路徑。調用方必須先展示這份權威報告;默認交互模式下,
只有狀態為 completed 且用戶確認繼續後才執行:
python3 scripts/fact_check_x.py deliver --results <results.json> --run-dir <run>
可信搜索返回 no_evidence 時記錄為 insufficient_evidence:空結果只表示本次沒有取得可裁決材料,不能直接判成「編造」;證據邊界記錄完成後繼續生成後續報告。
deliver 必須在運行目錄頂層生成並返回四份獨立可讀報告:
01-capture-report.html:原始答案、參考文獻與引用存證;02-comparison-report.html:知識點結構化比對;03-authority-report.html:逐知識點權威結論、官方證據和各平台裁決;04-final-report.html:平台表現、綜合指標、關鍵發現與完整證據。
缺少任一報告都不得生成或交付 05-complete-report-package.zip。
最終保留:
capture/results.json、capture/report.html、capture/report.md;comparison-task.json、comparison-analysis.json、comparison.json、comparison.html;- 每個知識點獨立的 request、evidence、assessment、result;
authority/batch.json、verification.json、report.html、pipeline.json;- 四份階段報告和
05-complete-report-package.zip。
跳過知識點比對
知識點比對是可選能力。已有結構化知識點時,可按權威證據核驗模組的數據契約直接建立單知識點請求,獨立調用 fact-check-x-authoritative-verify。統一入口不會強迫用戶先採集多個 AI 回答。
執行邊界
- 原始答案階段只採集,不核驗;可用可信搜索全文參數補全平台已給出的同一來源正文,但不得新增或替換引用。
- 知識點比對只比較原答案與所附來源,不聯網找真相。
- 雲端層只接收當前知識點;各家主張相同則不上傳主張,不同才上傳差異。
- 深知曉已有合格官方錨點時不重複搜索。
- 最終報告必須使用權威證據核驗模組內的穩定報告渲染器。
交付門禁
python3 tests/smoke_test.py
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .
完整標準請參閱 驗收標準。