Prompt 正向引導 vs 負向約束:從踩雷開始學
這篇文章是從 淺談主流 AI 服務體系與相關工具 拆分而來的。
老問題,常常筆記寫一寫,某個章節內容寫太多造成結構失衡,本來是不想要拆分,畢竟拆分後,我還要想辦法把這篇補完整,每次筆記寫到後來都只想趕快寫完交差,不過 Claude 說已經有足夠資訊可以拆分,我就讓它幫我拆成兩篇筆記(雖然它幫我拆完,我又花了一些時間調整 orz)。
為什麼要在意這件事
過去網路上曾流行過「零社交提示詞」(要求 AI 只給純粹答案、省略客套話)。我跟風用了一陣子,卻發現這有時會讓對話的上下文難以連貫,於是就移除了。
之後為了降低 Gemini 的幻覺,我又嘗試設定了幾項規則限制。結果幻覺不但沒降多少(常常要等我主動提醒,它才會發現自己出錯),反而衍生出其他副作用:只要有時我對話的語氣比較重,它就會在每次回覆時瘋狂重複某些話;追問原因,它才回覆是因為「太在意某條約束」所導致。所以現在我只保留最少量的必要約束了。
為什麼規則太多會讓 AI 跑偏?
這個現象在業界稱為 Over-prompting(提示詞過載)。當提示詞不夠精準、或全域規則過多時,會導致模型底層發生 Attention Dilution(注意力稀釋),造成注意力權重失衡,AI 為了強行滿足所有全域規則,會過度聚焦在當下其實不重要的細節,引發 Task Interference(任務干擾),最終讓回答邏輯變得奇怪或生硬。
Prompt 策略:正向引導 vs 負向約束
在 Prompt Engineering 的圈子裡,提示詞通常分為兩類:直接說你要什麼的正向引導(Positive Prompt),以及警告它絕對不能做什麼的負向約束(Negative Prompt)。
TIP
提示詞可以調整模型的行為傾向,但我覺得不用期望能根治幻覺問題(但多少還是有點作用),以及讓它們在自身訓練資料缺乏時,自動自發地去聯網查資料。這應該涉及到模型訓練的問題。
雖然看字面好像差不多,但在實際調教時,兩種寫法的「副作用」差異相當大。
核心判斷原則
| 類型 | 建議策略 | 邏輯 |
|---|---|---|
| 塑造型任務 | 正向為主 | 模型需要收斂目標,給「應該長什麼樣」比說「不要什麼樣」有效得多。 |
| 安全邊界 | 負向為紅線,正向補替代方案 | 禁區語義最直接,但搭配正向才能覆蓋漏網之魚。 |
| 行為開關 | 看預設偏向決定 | 想關掉預設行為用負向;想啟動預設沒有的行為用正向。 |
一、塑造型情境
要模型「長成某樣子」——正向提示幾乎全面佔優。
1. 角色與人設設定
要模型扮演特定專業身份,如資深工程師、法律顧問、教學助手。
| 提示方式 | 效果 | |
|---|---|---|
| ✅ 正向 | 「你是一位有十年經驗的資深後端工程師,熟悉高並發系統設計,回答時會考量效能瓶頸與維運成本。」 | 給模型明確的知識框架與思考視角,輸出會自然帶入該角色的判斷邏輯與專業語彙。 |
| ❌ 負向 | 「不要回答得像新手,不要太隨便。」 | 模型知道「不要什麼」,但不知道該成為什麼,輸出往往只是語氣稍微正式,缺乏真正的深度。 |
結論:正向較佳。 正向提示給的是「模仿對象」,負向只排除了一端,剩下的空間仍然太大。
2. 語氣與溝通風格
設定回答的語域,如親切口語、正式書面、教學引導式。
| 提示方式 | 效果 | |
|---|---|---|
| ✅ 正向 | 「請用親切口語的繁體中文回答,語氣像在對非技術背景的朋友解釋,避免過多縮寫,句子簡短。」 | 描述目標受眾與語感,模型可以全面調整詞彙選擇、句式結構與舉例方式。 |
| ❌ 負向 | 「不要太學術、不要用英文術語、不要太正式。」 | 排除了幾個方向,但語氣本身仍是模糊的,輸出可能介於幾種風格之間,難以收斂。 |
結論:正向較佳。 語氣是一個連續光譜,負向只能砍掉幾個端點,正向描述目標受眾才能讓模型找到精準定位。可以搭配少量負向排除特別容易踩的雷。
3. 輸出規格設定
控制格式與長度,如指定 JSON 結構、限制字數或段落數。
| 提示方式 | 效果 | |
|---|---|---|
| ✅ 正向(格式) | 「請嚴格以 JSON 格式輸出,結構為 { name: string, score: number, reason: string },不含任何額外說明文字。」 | 模型有明確模板可對齊,穩定性高,需要程式解析的情境幾乎必須這樣做。 |
| ✅ 正向(長度) | 「請在三句話以內完成摘要,每句不超過 25 個字。」 | 可量化的收斂目標,達成率高,在自動化流程中效果明顯。 |
| ❌ 負向 | 「不要給我純文字。」/「不要長篇大論。」 | 模型理解要改變,但不知道改成什麼,格式與長度依然不穩定。 |
結論:正向較佳。 規格是數值型、結構型的限制,正向直接給模板或數字是唯一確定的方式。
4. 推理過程引導(CoT)
希望模型逐步思考而非直接給答案,適用於複雜分析或推理任務。
| 提示方式 | 效果 | |
|---|---|---|
| ✅ 正向 | 「請先列出你的分析前提,再逐步推導結論,最後給出建議,每個步驟標明編號。」 | 明確定義思考的順序與結構,輸出品質與可驗證性提升,錯誤也更容易被追蹤。 |
| ❌ 負向 | 「不要直接給答案,不要跳過推理過程。」 | 模型知道不能省略過程,但不知道過程應該長什麼樣,容易形式化地加一兩句就帶過。 |
結論:正向較佳。 直接定義「步驟長什麼樣」遠比「不要省略步驟」有效。
二、防守型情境
要模型「不能碰某條線」——負向有其價值,但多數情況最好搭配正向一起用。
5. 硬性禁區劃定
涵蓋技術邊界(禁用套件、語法)與內容邊界(安全、隱私、敏感內容)兩類。
| 提示方式 | 效果 | |
|---|---|---|
| ⚠️ 正向 | 「請僅使用原生 JavaScript 實作,若需工具函式請自行撰寫。」 | 引導模型往安全方向走,但無法窮盡所有應避免的情況,有漏網之魚的風險。 |
| ✅ 負向 | 「絕對禁止引用任何第三方套件。」 | 直接劃定禁區,語義清晰,約束力強。 |
結論:兩者並用最佳。 負向劃紅線、正向補替代方案,兩者缺一都有漏洞。
6. 防止幻覺與過度自信
要求模型在不確定時明說,避免捏造數據。
| 提示方式 | 效果 | |
|---|---|---|
| ✅ 正向 | 「若你對某項資訊不確定,請明確標註『此處不確定』並說明限制,不要填補空白。」 | 建立「不確定時的標準動作」,有明確的替代行為可執行。 |
| ⚠️ 負向 | 「不要捏造數據,不要假裝有把握。」 | 對明顯的幻覺有一定抑制效果,但模型有時自我評估偏高,效果不穩定。 |
結論:兩者並用最佳。
7. 範疇限制(不得越界回答)
要求模型只回答特定主題,常見於客服或工具型 AI。
| 提示方式 | 效果 | |
|---|---|---|
| ✅ 正向 | 「你只負責回答關於本產品的退換貨政策與訂單問題,其餘問題請引導用戶聯繫客服。」 | 清楚定義職責範圍與越界時的處理方式。 |
| ❌ 負向 | 「不要回答與產品無關的問題,不要提供任何建議或意見。」 | 「無關」的判斷有模糊地帶,邊界案例的處理會不一致。 |
結論:正向較佳。 讓模型知道「職責是什麼」及「越界時該怎麼做」比列舉禁止項目更穩定。
三、行為開關型情境
8. 二元行為切換
模型對某個行為有預設偏向,你想改變它。
| 情況 | 建議方向 | 正向範例 | 負向範例 | 理由 |
|---|---|---|---|---|
| 預設會做,你想關掉(如:自動加註解) | ✅ 負向 | 「請只輸出程式碼本體,保持乾淨。」 | 「請不要產生任何程式碼註解。」✓ | 直接對準你想關掉的行為,語義最清楚。 |
| 預設不做,你想啟用(如:給出替代方案) | ✅ 正向 | 「請提供至少三個替代方案,並說明各自的取捨。」✓ | 「不要只給一個答案,不要忽略其他可能性。」 | 模型需要知道「新的標準動作是什麼」,負向只表達不滿意,給不了方向。 |
結論:看預設偏向決定方向。 想關掉預設有的行為 → 負向最直接;想啟用預設沒有的行為 → 正向給目標。
如何判斷 AI 被提示詞「弄壞」了
如果覺得 AI 最近的回話方式很奇怪,Gemini 可以這樣除錯:
- 先讓 AI 重做一次回答,觀察是否依然異常。
- 再次重做,這次選擇「不使用個人化設定」。
如果關閉設定後回答明顯正常,代表全域設定已干擾正常對話,建議重新檢視並簡化規則。
一般發現被玩壞,最好先重開一個乾淨的對話,但記得要把記住對話的功能關閉,否則看到它拿以前對話的資訊回覆,真的會令人傻眼。
小結
Prompt 策略的核心其實就一句話:讓模型知道「該做什麼」比告訴它「不能做什麼」更有效。
正向引導給的是明確的收斂目標,模型知道往哪走;負向約束劃的是紅線,適合當安全護欄。兩者不是互斥的,大部分情境下搭配使用效果最好——正向定方向、負向守底線。
至於「規則該寫幾條」這件事,我的經驗是不要追求數量,而是看每條規則是否真的在影響輸出品質。如果某條規則拿掉之後 AI 的回答沒有明顯變差,那它大概率只是在消耗注意力權重。
這個概念在個人化提示詞、Rule、Agent 指令、Skill 定義、Prompt 樣板等各種場合都適用,至於要怎麼設定比較好,只能慢慢嘗試,找到自己的平衡點,我自己也還在摸索中。
異動歷程
- 2026-03-07 初版文件建立。
