Agentic 工作流

AI Agent 護欄 (Guardrail) 怎麼設計?輸入、工具、輸出三層防護實作範本

一句「幫我多加一個零」,客戶的 Agent 就把退款從 500 改成 50000,全程沒人攔。問題不在模型笨,在於沒人替它畫紅線。護欄不是提示詞裡拜託模型別亂來,而是把輸入、工具、輸出三層各自加上程式碼級的攔截器。這篇拆解三層各該擋什麼,附一份工具層 policy 設定範本與上線前檢查清單,可以直接抄。

작성자

Tenten AI 研究團隊

應用 AI

게시일

2026년 2월 16일

읽는 시간

6 分鐘

AI Agent護欄設計Agentic 工作流AI 安全Guardrail生產部署

半夜兩點,客戶的風控主管打電話給我。他們的內部 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,不叫上線,叫待爆的計時器。

AI 워크플로를,
당신의 업무 안으로

FDE·FDM으로 팀에 상주하며 현업이 매일 운영하는 AI 에이전트와 워크플로를 구축합니다. 분기가 아닌 몇 주 만에 가동.