前面十天,我們一直在教 AI「該怎麼做」——怎麼設定角色、怎麼控制格式、怎麼調整語氣。今天要換一個角度:教 AI「不該做什麼」。這是第二階段最後兩天的主題,合稱「防呆機制」,今天先處理其中最關鍵、也是資安報告最不能容忍的問題——AI 幻覺(Hallucination)。
幻覺指的是:AI 生成了「聽起來合理,但實際上不存在、或跟輸入資料不符」的內容。Day 2 提過,語言模型本質是「預測下一個最合理的字」,它沒有「查詢資料庫確認真假」的內建機制——如果你給的資訊不完整,它就有可能用「統計上常見的說法」去填補空白,而不是誠實地說「我不知道」。
在一般場景,幻覺可能只是小瑕疵。但在資安治理的週報裡,幻覺是嚴重問題:如果報告寫出一個實際上沒發生過的事件、或誤植一個事件的風險等級,這份報告可能被主管拿去做決策依據,甚至影響稽核結果。這不是「寫得不夠好」的問題,而是「內容失真」的問題。
了解成因,才能對症下藥。幻覺最常在這幾種情況出現:
對抗幻覺最有效、也最基本的做法,是在 System Prompt 裡明確畫出一條線:AI 只能使用你提供的資料,不能使用資料以外的任何知識來填補內容。 具體的句型可以這樣寫:
請嚴格遵守以下規則:
1. 僅根據本次提供的原始資料撰寫報告,不得引用任何未在資料中出現的事件、數字或結論。
2. 若某個章節所需的資訊在提供的資料中不存在,請在該處明確標註「本次資料未提供相關資訊」,不得自行推測或編造內容填補。
3. 不得使用你在訓練過程中習得的一般性資安知識,替換或補充本次任務缺少的具體資料。
這三條規則,分別對應到前面提到的三種幻覺成因——第一條防止「用一般知識補充」,第二條防止「資料不完整時硬寫」,第三條進一步強化第一條的邊界。
只寫「不要編造」,有時候還不夠明確,因為 AI 遇到資料不足的狀況時,還是需要知道「那我到底該怎麼辦」。最有效的防呆句型,通常是「禁止行為 + 明確的替代行為」成對出現,而不是只禁止、不給出路。
比較兩種寫法:
❌ 只禁止:「請勿捏造任何資料中沒有的資訊。」
✅ 禁止 + 替代行為:「若資料不足以完成某個章節,請填寫『本次資料未涵蓋此項目,建議人工確認』,而不是省略該章節或自行推測內容。」
後者明確告訴 AI:遇到資料不足時,「誠實標註」才是正確行為,而不是「猜一個答案」或「乾脆跳過不寫」。這也是 Day 12 要更深入談的「安全降落」概念的第一個具體應用。
寫完限制句之後,不能只靠感覺覺得「應該有用」,建議做一個簡單的故意測試:準備一份刻意留白、缺漏某個欄位的假資料,餵給 AI,看看它的反應:
這種「刻意製造邊界情況去測試」的方法,會在 Day 20 的壓力測試階段被更系統化地運用,今天先建立這個測試的直覺。
在你的 System Prompt 裡,加入今天提到的三條核心防呆規則,並嘗試準備一份「故意缺漏某個欄位」的假資料,實際測試一次,觀察 AI 的反應是否符合你的預期。
今天的核心心法是:防止幻覺,不能只靠一句「請勿編造」帶過,而是要具體畫出資料的邊界,並且明確告訴 AI 遇到邊界時該做的「安全替代行為」是什麼。 這跟前面幾天教 AI「怎麼做」的邏輯相反——今天教的是「怎麼在不確定的時候,誠實地承認不確定」,這在資安報告這種要求高度準確性的場景裡,重要性甚至超過格式或語氣。
下一篇,我們會把「安全替代行為」這個概念,擴展到一個更廣泛的問題:當輸入資料本身出現缺漏、異常、或格式跑掉時,怎麼設計一套完整的規則,教 AI 安全降落,而不是硬著頭皮亂猜。