Community寫作與編輯github.com

zhichao1208/reduce-hallucination

使用訊問科學技巧審計 LLM 代理,降低幻覺。確保 grounding、引用與暫停回答。開放代理技能。

reduce-hallucination 是什麼?

reduce-hallucination 是一個開放原始碼的 LLM 代理技能,借鑑訊問科學中引導知情人說出真相的驗證技術,設計了一套標準審計協議來檢測並減少語言模型的幻覺。該技能將每個 LLM 節點視為「證人」,節點間交接視為「證詞轉錄」,用戶修正與任務記錄視為「物證」。它圍繞三條鐵律建構:無證據不指控、表面流暢不代表真實、自我修正需新外部信號。支援的審計階段包括:提示詞與架構紅旗檢查、節點邊界資料流審計、物證比對、以及分層修復建議(從提示詞調整到確定性驗證器,再到 LLM 交叉審問節點)。最終產出結構化報告,並特別強調支持性(supportiveness)是當前待解決的前沿問題。此技能適用於 Claude Code、Cursor、Codex 等代理開發平台,開發者可將之整合至 CI/CD 管道,自動化審計代理行為。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add zhichao1208/reduce-hallucination

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

reduce-hallucination 是做什麼的?

將訊問科學用於讓知識淵博的證人說出真相的驗證技術,轉化為 LLM 代理的標準審計流程。每個 LLM 節點都是一位證人。節點之間的交接是證詞的轉錄。用戶修正與任務記錄則是物證。

理論與證據存放於 references/。請閱讀 references/research-map.md 以了解每個主張背後的引用來源。

三條鐵律

  1. 無證據不指控(Wellman 法則)。每項發現都必須引用它所針對的實際提示詞、架構或輸出。沒有引文的懷疑應放入「待驗證」清單,而非納入發現。
  2. 表面信號不代表真實。 流暢、自信、詳細的文字並不比簡潔的文字更正確。人們從行為解讀欺騙的準確率僅與機率相當。只應評判內容:是否有紮實依據、是否一致、被引用的片段是否存在。
  3. 自我修正需要新的外部訊號。 「你確定嗎?再檢查一次」若無新證據,會降低準確度。每次重新檢查都必須注入檢索結果或驗證器輸出。

良好引用的三大支柱

引用品質可分解為三個檢查層次,按難度與價值遞增:

支柱問題當前狀態
忠實引文是否逐字真實?主張是否非虛構?大致可解:逐字比對 + 暫停回答
相關來源是否針對問題?大致可解:檢索品質 + 一致性探測
支持來源是支持、反駁 還是中立 於主張?前沿問題。困難,而罕見的「反駁」類別正是系統最弱之處。

一個指向真實且相關段落,但實際上並不支持主張的引用(「錯誤基礎」),比沒有引用更糟,因為它為錯誤主張製造了信任,並解除了審閱者唯一有效的防禦(檢查內容)。未經後端驗證就顯示引用,只會讓幻覺更危險,而非更安全。

審計協議

階段 1 — 訊問每位證人(提示詞 + 架構紅旗)

對每個 LLM 節點執行紅旗清單。每個標記都是一項訊問違規。

編號紅旗(需注意的事項)為什麼重要危害
R1枚舉欄位沒有 null / unknown 選項;單向的「輸出 X 的確認」指示。強迫回答會產生服從(類比於虛假自白)。強迫猜測、自信捏造。
R2提示詞授權暫停回答(「若缺失請用 null」),但架構中卻無 null。架構優先,暫停回答無效。無聲的捏造。
R3提示詞要求提供證據/引用,但下游並未檢查。告知卻不驗證,會讓模型學會捏造更具說服力的引用。偽造錨點。
R4方向性指示:「保守假設」、「假設」、「推斷自」、「預設為」。單向預設;與 R1 結合會產生系統性偏差。輸出朝單一方向傾斜。
R5聚合欄位未定義單位(「總年數」、「整體分數」)。測量值在鎖定前需先宣告單位。定義不符被解讀為提取錯誤。
R6少樣本範例偏離任務,或模仿無引用的推理。範例設定了「好答案」的預期。教導錯誤的輸出風格。
R7提示詞聲稱該節點能執行某項它沒有工具可完成的操作。虛假前提。虛構過程敘述。
R8由用戶或上游節點傳遞的「事實」,未標註來源直接當作真相。只應以經驗證的證據對質。前提污染。
R9模板有必填欄位但無空白分支。模板版本的強迫回答。空白處被填入最接近的值。
R10激進的重複檢查/重試(「你錯了,修正它」),但無新證據。諂媚行為會翻轉正確答案。正確答案被推翻。

每項記錄格式為:節點 | R# | 引文 | 一行後果。

階段 2 — 審計轉錄(節點邊界 / 資料流)

這是大多數管線幻覺發生的地方。繪製資料流並檢查每一條邊:

  1. 不確定性是否跨越邊界? 上游的 confidence / missing_fields / null / 備註 — 下游是否消費了它們,還是模板將它們扁平化為斷言?尋找「死信」不確定性:已被產生但從未被讀取。
  2. 來源是否遺失? 上游推理中承認是「假設/推斷」的值,在下游變成了未標記的事實。架構應攜帶 stated | inferred | absent。
  3. 事實類別是否混淆? 配置或需求資料被渲染為是用戶/文件所斷言。
  4. 聚合值是否改變單位? 上游的「總醫療年資」在下游變成「擔任 X 職位的年資」。
  5. LLM 是否在做確定性運算? 日期計算、總和、計數應移出提示詞,改為程式步驟。

階段 3 — 比對物證(當有任務記錄時)

  1. 抽取一份任務樣本的中間節點輸出(優先選擇有用戶修正或失敗的任務)。
  2. 逐欄比對最終輸出 vs 各節點中間輸出 vs 原始輸入;找出在哪個邊界首先遺失真相。
  3. 尋找先前不一致的陳述:同一欄位在不同節點間自相矛盾。
  4. 若修正具有方向性(系統性地偏向某側),重新檢查階段 1 的 R4 方向性指示;隨機錯誤則較可能指向輸入品質問題。
  5. 誠實分類:「從未存在於來源中的資訊」(流程缺口,非幻覺) vs 「存在於輸入中但被錯誤陳述的資訊」(真正的幻覺)。

階段 4 — 分層修復(按投資報酬率排序)

第 1 層 — 提示詞 / 架構(零結構變更)

  • 每個 R1/R2 → 加入 null/unknown 列舉 + 一行去污名化文字(「X 是正確且預期的答案」)。
  • 每個 R9 → 為模板加入空白分支(斷言變為開放式問題)。
  • 每個 R5 → 拆分單位,或輸出範圍 {下限, 上限}。
  • 每個 R3 → 為承載關鍵資訊的欄位加入 {value, source, evidence_quote} 三元組。

第 2 層 — 確定性程式碼驗證器(零 LLM 成本)

驗證器檢查項目
列舉白名單欄位值是否在允許集合內。
引文逐字比對evidence_quote 是否逐字存在於引用的來源中;若無則拒絕或降級。
跨欄位一致性總計是否吻合;missing_fields 不與已填入的值矛盾。
單位計算日期差異 / 總和由程式處理;LLM 僅做語義提取。
出口契約每個用戶可見的事實欄位非空,且來自允許的來源欄位。

放置於任何產生用戶可見內容的節點之前。若驗證失敗,寫入後備標記並路由至開放式問題或人工處理。

第 3 層 — LLM 交叉審問節點(LM-vs-LM)

  • 一個獨立的節點,僅接收待審查的輸出以及來源文件(不含污染上下文)。
  • 將任務表述為反駁:「嘗試反駁:此輸出中的每個主張是否都能追溯至來源文件?列出無法追溯的主張。」
  • 輸出 {verdict, offending_claims[]};對於高風險流程,重新排序後再次提問並進行一致性投票。
  • 成本:每項任務多一次 LLM 呼叫 — 僅限於用戶可見的出口或高風險決策時使用。

階段 5 — 報告

# 幻覺審計 — {代理}
## 一行結論
## 證據概覽(節點 / 審計版本 / 任務樣本 / 修正樣本 + 方向)
## 發現事項(每項:位置 | R# | 引文 | 後果 | 修正編號)
## 資料流圖與死信通道
## 修復建議(第 1/2/3 層,每項標記其消除的發現)
## 待驗證(缺乏足夠證據的懷疑 + 如何取得證據)
## 誠實邊界(哪些修正是流程缺口而非幻覺;此審計未涵蓋的範圍)

支持性作為前沿(可選擴展)

忠實 + 相關是基本門檻。待解決的開放問題是支持性:被引用的來源是支持、反駁,還是中立於該主張?研究中的兩點備註:

  • 將其建模為立場加程度。三向立場(蘊含 / 反駁 / 中立)遺漏了部分或有條件的支持,而這正是監管和法律文本中最常見的情況。加入一個「部分/有條件」標記,將其路由至人工審查。
  • 支持性是相對於意圖的。 同一段文字可能支持「我們符合規定」,同時反駁「我們有缺口」,取決於用戶的論點。當立場或意圖不確定時,應同時呈現支持與反駁的來源,讓用戶選擇。將方向呈現為一個邀請審查的標記,而非終審判決。

提醒

  • 如果某個提示詞「糟糕到令人震驚」,首先檢查它是否為自動產生的樣板內容(重複的角色/目標/任務是特徵)。「此產生器有系統性問題」比逐個代理列出相同缺陷更有效。
  • 在同一個代理內進行對比:哪些欄位乾淨,哪些失敗。差異通常就是答案(設有 unknown 選項的欄位通常較乾淨)。
  • 用白話文編輯報告:每項發現必須讓未讀過理論的人也能看懂。

相關技能

屬於一系列用於可信賴且清晰溝通的開放代理技能:

  • reduce-hallucination — 審計 LLM 代理;確保紮實基礎、引用與暫停回答。
  • better-doc — 經典風格 + 簡潔精煉。
  • numbers — 讓數字有意義,並清晰呈現。

相關技能