讓 AI 助手乖乖聽話的三層設計
用 AI 寫程式很方便,但它總是多做你沒要求的事。問題不在指令寫得不夠清楚,而在於你缺少一套讓它「不得不遵守」的機制。
讓 AI 助手乖乖聽話的三層設計
你請 AI 幫你修一個小 bug。它修好了,但順手幫你改了變數命名,重新排了 import 順序,還加了幾行你沒要的 type annotation。
你明明在設定檔裡寫了「不要動我沒叫你改的東西」。它讀了,也理解了,但還是忍不住「順便改善」一下。
這不是 AI 笨。這是它的本能 -- 大語言模型天生傾向「多做一點」,因為在它的訓練裡,多做通常等於更好的回答。但在寫程式的場景,多做等於你要多花時間 review 一堆你沒要求的改動。
🟡 問題有多嚴重?
我把自己日常開發中給 AI 的 15 條規則,逐一統計它實際遵守的比例。結果發現一個清楚的規律:
有些規則它幾乎 100% 遵守,有些只有一半的機率。差別不在規則寫得好不好,而在於這條規則有沒有外部機制幫忙 enforce。
舉幾個例子:
| 規則 | 遵守率 | 為什麼 |
|---|---|---|
| 不要自動上傳程式碼到 GitHub | ~100% | 系統直接擋掉,AI 連試都試不了 |
| 開始工作前先跟我確認方向 | ~85% | 寫在設定檔裡,AI 每次都看到 |
| 不要順手重構我沒叫你改的程式碼 | ~70% | 純粹靠 AI 自覺,沒有任何外部檢查 |
| 任務做到一半結束時,記錄做到哪了 | ~50% | 需要 AI 自己判斷「該不該記」 |
規律很明顯: 需要 AI 自己判斷的規則,遵守率就低;有外部機制強制的規則,遵守率就高。
🔵 三層設計: 從「建議」到「法律」
根據這個觀察,我把所有規則分成三層,每層用不同的機制來 enforce:
第一層: 設定檔裡的文字指令
就是你寫在 AI 設定檔(像 Claude Code 的 CLAUDE.md)裡的規則。比如「不要自己決定安裝新套件」「修 bug 時不要順便改別的東西」。
AI 每次啟動都會讀到這些規則。大部分時候會遵守,但壓力大的時候(任務複雜、context 很長)就可能忘記或無視。遵守率大概 50-90%。
第二層: 自動化腳本(Hooks)
這是性價比最高的一層。寫一個 30 行的小腳本,讓系統自動幫你做兩件事:
-
自動注入 context: 每次你跟 AI 對話時,腳本自動把「目前進度」和「重要決策」塞進 prompt。AI 不需要自己記得去讀,系統替它讀好了。
-
自動檢查一致性: 每次 AI 改了檔案,腳本自動檢查文件之間的狀態是否同步。比如任務全部完成了,但規格文件沒更新,腳本會跳出警告。
效果: 有兩個本來最難遵守的規則,靠一個小腳本就從 40% 拉到 99%。一個是「每次啟動都要知道目前在做什麼」,另一個是「壓縮記憶後不要忘記之前的決策」。
第三層: 權限系統直接擋掉
有些操作你絕對不想讓 AI 自己做 -- 上傳程式碼到 GitHub、刪除重要分支、部署到正式環境。這些不靠規則,直接在權限系統裡設為「禁止」。AI 連嘗試都會被系統攔截。遵守率 100%。
另一種是「需要確認」: AI 可以編輯規格文件,但每次都要你按確認才能執行。既不完全擋死,又確保你知情。
🟢 設計規則時的三個坑
坑一: 規則不能依賴 AI 不知道的東西
錯誤寫法: 「系統的 Hook 腳本會自動幫你載入進度,不需要手動讀檔案。」
AI 不知道 Hook 是什麼,也不知道它有沒有正常運作。如果腳本壞了,AI 就不會去讀檔案,因為規則告訴它「不需要」。
正確寫法: 「如果對話裡已經有進度標記,直接使用。如果沒有,自己去讀檔案。」
這樣不管外部系統正不正常,AI 都能做對的事。
坑二: 重複的機制是 bug,不是保護
我曾經同時用一個腳本擋 AI 改重要檔案,又在權限系統設了「需要確認」。看起來是雙重保護,實際上:
- 腳本說「完全禁止」,權限系統說「確認後可以」-- AI 收到矛盾訊號
- 兩套系統要同時維護,改了一個忘了另一個
刪掉一個,留語義更清楚的那個。
坑三: 模糊的規則有遵守率上限
「不要改動超出範圍的程式碼」-- 什麼算「超出範圍」?AI 需要自己判斷。這類規則的遵守率大概 50-60%,你用更長的 prompt 也很難再提高。
解法是把模糊規則改成具體規則: 「只修改跟當前任務直接相關的檔案」。不完美,但至少 AI 有明確的判斷標準。
實際應用
這套三層設計不只適用於 Claude Code。任何你在用 AI 助手寫程式的場景都適用:
1⃣ 個人開發: 設定檔寫好規則 + 幾個自動化腳本 + 權限擋住危險操作。一次設定,每個 session 都自動生效
2⃣ 團隊共用: 同樣的設定和腳本放進專案的版本控制裡,所有人的 AI 助手都吃同一套規則
3⃣ 多專案管理: 通用規則放全局設定,專案特有的規則放專案設定。跨專案的技術發現(比如某個平台的 API 有什麼限制)存在共享筆記裡,新專案的 AI 自動讀到
不要試圖讓 AI 變聰明。讓系統變嚴格。
AI 已經夠聰明了。問題是它太「熱心」-- 傾向多做, 傾向猜, 傾向幫你最佳化你沒叫它動的東西。三層設計不是限制 AI 的能力,是把它的能力導向你要的方向。
一個 30 行的自動化腳本,效果比在設定檔裡寫三段「請不要」強十倍。
