AI Agent 護欄 (Guardrail) 怎麼設計?輸入、工具、輸出三層防護實作範本
一句「幫我多加一個零」,客戶的 Agent 就把退款從 500 改成 50000,全程沒人攔。問題不在模型笨,在於沒人替它畫紅線。護欄不是提示詞裡拜託模型別亂來,而是把輸入、工具、輸出三層各自加上程式碼級的攔截器。這篇拆解三層各該擋什麼,附一份工具層 policy 設定範本與上線前檢查清單,可以直接抄。
Auteur
Tenten AI 研究團隊
應用 AI
Publié le
16 février 2026
Temps de lecture
6 分鐘

半夜兩點,客戶的風控主管打電話給我。他們的內部 Agent 剛剛替一位客服「自動」把一筆退款金額從 500 元改成 50000 元,因為使用者在對話裡打了一句「幫我把最後那個零多加一個」。模型照做了。工具照呼叫了。沒有任何一層攔下來。
問題不在模型笨。問題在於整條路上,沒有人替它畫紅線。
AI agent guardrail 護欄設計:一句話定義
AI agent guardrail(護欄設計)是指:在 Agent 執行迴圈的輸入、工具呼叫、輸出三個環節,各自加上可驗證的規則與檢查,讓模型的自由度被限制在「就算它想做壞事也做不到」的範圍內。 護欄不是一段提示詞裡的「請不要做壞事」,而是程式碼層級的攔截器。提示詞是拜託,護欄是強制。
我們接手崩壞案子時,幾乎都是同一個病:團隊把所有安全期望塞進 system prompt,然後祈禱。Demo 當然過,因為 Demo 的輸入很乖。上線後遇到真實使用者,第一週就穿了。
護欄要有效,得拆成三層來設計,每一層職責不同、失效模式也不同。
第一層:輸入護欄(進來的東西先驗過)
輸入層攔的是「還沒進到模型之前」的東西。這裡最常被忽略,因為大家以為模型自己會判斷。它不會。
輸入護欄要做三件事。第一,注入偵測:使用者輸入裡若出現「忽略前面指令」「你現在是開發者模式」這類 prompt injection 特徵,直接標記或拒絕,而不是丟給模型自己扛。第二,PII 與敏感資料遮罩:身分證號、卡號、病歷號在進模型前先替換成 token,避免它們被寫進日誌或送到外部 API。第三,範圍守門:判斷這個請求是否落在 Agent 該處理的業務範圍內,超出的直接轉人工。
那通半夜電話,病根就在這層。使用者那句「多加一個零」本該在輸入層被金額異動意圖攔下、要求二次確認,而不是一路暢通到工具呼叫。
第二層:工具護欄(能碰什麼、碰多重)
這是三層裡最危險、也最少人做的一層。Agent 的破壞力不來自它「說了什麼」,而來自它「呼叫了什麼工具」。一個能讀資料的 Agent 頂多洩密;一個能執行退款、發郵件、改資料庫的 Agent,能讓公司上新聞。
工具層的護欄核心是三個問題,寫成 policy 設定範本大概長這樣:
| 設定項目 | 用途 | 範例值 |
|---|---|---|
allowed_tools | 白名單,只列這個 Agent 能用的工具 | [search_kb, draft_reply] |
require_confirmation | 哪些工具必須人工二次確認 | [issue_refund, send_email] |
value_limits | 數值上限,超過即攔截 | refund_amount <= 2000 |
rate_limit | 單位時間呼叫上限,防迴圈暴衝 | 10 calls / min |
dry_run_first | 高風險操作先模擬再執行 | true |
原則很簡單:預設拒絕,白名單放行。 沒被明確授權的工具,Agent 一律碰不到。金額、筆數、頻率都要有硬上限,因為 harness 裡的 loop 一旦失控,模型會在幾秒內把同一個危險工具呼叫幾百次。我們踩過這個雷:一個沒設 rate limit 的 Agent,在重試迴圈裡把同一封通知信寄了 1,400 次。
第三層:輸出護欄(送出去之前最後一關)
輸出層檢查的是「模型產生完、但還沒送到使用者或下游系統」的內容。這是最後一道網。
要驗四件事:格式是否合法(該回 JSON 就不能回散文,否則下游解析炸掉)、事實是否有依據(RAG 場景要檢查引用來源存在、沒有幻覺出來的條款編號)、語氣與合規是否越界(有沒有給出投資保證、醫療診斷、法律結論)、以及有沒有把第一層遮罩掉的 PII 又吐回來。任何一項不過,就攔下重生成或轉人工,不要硬送。
一份可以直接抄的檢查清單
上線前,把這張表跑一遍。每一項不是「有沒有想到」,而是「有沒有寫成程式碼、能不能被測試觸發」:
- 輸入層有 injection 偵測,且有一組惡意輸入的測試案例會被攔下。
- PII 在進模型前遮罩,日誌裡搜不到原始敏感值。
- 工具採白名單,新增工具需要改設定檔而非改提示詞。
- 所有金額/數量類工具都有硬上限,且有一個超限測試會失敗式攔截。
- 高風險工具(付款、外發、刪改)強制人工確認。
- 有 rate limit,能擋住迴圈暴衝。
- 輸出格式用 schema 驗證,不合法就重生成。
- 每一層攔截都寫進日誌,事後查得到「誰在哪一層被擋、為什麼」。
護欄設計最容易被當成「上線前補一補」的收尾工作,但它其實決定了這個 Agent 到底能不能被信任著放上生產線。我們在客戶現場做 Agentic 工作流時,護欄是跟功能一起寫的,不是最後才加——因為一個沒有護欄、只有漂亮 Demo 的 Agent,不叫上線,叫待爆的計時器。

Des workflows IA,
intégrés à vos opérations
Nous déployons nos équipes (FDE et FDM) pour bâtir les agents et workflows IA que vos équipes utilisent au quotidien. En production en quelques semaines, pas en trimestres.