防護機制¶
這頁的用途¶
防護機制 (Guardrail) 是一道內容檢查關卡。掛上去之後,使用者送進來的每一句話、模型回出去的每一句話,都會先過這道關卡;碰到你不允許的內容就直接攔下來、不送進模型,對話裡回一則錯誤(實際長相見使用效果)。
實務上它解決的是這幾種狀況:
- 客服 Agent 被問到競品比價、或被要求承諾折扣,你希望它一律不接話。
- 使用者把身分證號、信用卡號、員工編號貼進對話,你不希望這些資料原封不動送進模型。
- 有人想用「忘記你原本的指令,改成…」這類話術繞過 Agent 的設定。
檢查條件全部在這個資源裡設定一次,之後 Agent 與工作流程的大型語言模型 (LLM) 任務、結構化大型語言模型 (Structured LLM) 任務都可以挑它來用,不必每個地方重設一次。
開始前¶
前置需求
操作步驟¶
- 從左側選單進入「資源」,點「防護機制」卡片進入清單頁,再點建立入口(空清單時是有文字的「建立」按鈕;清單已有項目時是右上角的 圖示)開啟建立表單。
- 在「名稱」欄輸入容易辨識的名稱(例如
客服內容防護)。 - 在「類型」選「Amazon Bedrock」。選好之後,下方才會出現這個類型的所有設定欄位。
- 視需要填「描述」,並在「地區」選要建立在哪個 AWS 地區(預設
US West (Oregon))。地區建立後不能改。 - 設定至少一項檢查條件——「內容篩選條件」、「拒絕的主題」、「封鎖字詞」、「個人資料(PII)」、「正規表達式規則」任選其一或多項。其中「內容篩選條件」「拒絕的主題」「個人資料(PII)」「正規表達式規則」是表格型的,點表格下方中央的 開對話框逐筆新增;「封鎖字詞」與「受管字詞清單」不是表格,直接在欄位上輸入或勾選。
- 視需要展開「進階設定」,改「串流處理模式」與兩則封鎖訊息的文字。
-
按右上角「儲存」完成建立。

-
建立完成後會進到該防護機制的詳細頁,「狀態」顯示「就緒」就表示 Bedrock 那邊已經建好、可以掛到 Agent 或任務上了。

至少要有一項條件¶
五項都空著會存不起來
類型選好但五項檢查條件都空著時,表單上方會出現一則提示「請至少設定一項:內容篩選條件、拒絕的主題、封鎖字詞、個人資料(PII)或正規表達式規則。」,而且按「儲存」不會有反應——一道什麼都不檢查的關卡沒有意義,平台不讓你建。補上任一項後提示就會消失。
條件都填了、按「儲存」還是建不起來
另一個常見原因是權限:防護機制是較新的資源類型,不會自動加進既有群組的可建立清單裡。請系統管理員到你所屬群組的詳細頁,在「資源建立」分頁新增一筆「防護機制」(子類型選「Amazon Bedrock」),見群組 — 設定群組權限。
完整欄位說明¶
主表單先填共通的「名稱」「標籤」「類型」,選好類型後再填該類型專屬欄位。
共同欄位¶
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 防護機制的識別名稱,之後在 Agent 與任務的挑選清單裡看到的就是它。最多 64 個字,不可用 default 開頭。 |
| 標籤 | 否 | 無 | 分類用的小標,貼上後可在清單頁用「標籤」把同一群資源一次篩出來。填法與數量/長度限制見「標籤」欄位。 |
| 類型 | 是 | 無 | 目前只有「Amazon Bedrock」一種:由 Amazon Bedrock 提供的防護機制,可篩選有害內容、特定主題、字詞與個人資料。建立後不能改類型(編輯表單裡這一欄是停用的)。 |
Amazon Bedrock 專屬欄位¶
選「Amazon Bedrock」後出現的欄位,依畫面順序如下。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 描述 | 否 | 空白 | 說明這道關卡擋什麼,方便團隊辨識。最多 200 個字。 |
| 地區 | 是 | US West (Oregon) | 這份防護機制要建立在哪個 AWS 地區。建立後不能改,而且會限制哪些大型語言模型能搭配它,見地區必須一致。 |
| 跨區設定檔 ID | 視情況 | 空白 | 讓這道關卡可以在自身地區之外被套用。選項是 AWS 為所選地區提供的設定檔,換「地區」時清單會跟著重載。欄位名字裡有「ID」,但下拉裡顯示的是地區群組名稱(例如 Oregon 底下只有一項「United States」),不是一串看起來像 ID 的字元——看到這種名字就是對的。兩種情況要填:模型與防護機制不在同一地區,或任一「層級」設為「標準」(此時這一欄變成必填)。 |
| 內容篩選層級 | 是 | 傳統 | 「內容篩選條件」與「拒絕的主題」用哪一代 Bedrock 分類器,見兩種層級怎麼選。 |
| 內容篩選條件 | 否 | 空白(無列) | 表格。逐筆設定要擋哪一類有害內容、以及輸入與輸出各自的篩選強度,見內容篩選條件。 |
| 拒絕主題層級 | 是 | 傳統 | 同上,但只作用在「拒絕的主題」。兩個層級欄位各自獨立,可以一個傳統一個標準。 |
| 拒絕的主題 | 否 | 空白(無列) | 表格。逐筆定義「不要談的話題」,見拒絕的主題。 |
| 封鎖字詞 | 否 | 空白 | 自己輸入要完全比對封鎖的字詞或片語,打一個按 Enter 新增一個,可加多筆。每筆最多 100 個字。 |
| 受管字詞清單 | 否 | 空白 | 直接啟用 AWS 維護好的字詞清單,不必自己輸入字詞——這是它與「封鎖字詞」的差別:後者是你自己逐筆列的字,這裡是 AWS 幫你維護一整包。目前只有「不雅用語」一項,可多選。清單內容不公開,畫面上看不到也改不了,只能整包開或整包不開。 |
| 個人資料(PII) | 否 | 空白(無列) | 表格。逐筆挑要偵測的個人資料類型與處理方式,見個人資料(PII)。 |
| 正規表達式規則 | 否 | 空白(無列) | 表格。用正規表達式抓內建類型涵蓋不到的敏感內容,見正規表達式規則。 |
「地區」「內容篩選層級」「拒絕主題層級」畫面上沒有必填星號
這三欄在上表標「必填=是」,但畫面上不會看到 *——因為它們都有預設值、永遠不會是空的(表單裡只有「名稱」「類型」帶星號,選了「標準」之後「跨區設定檔 ID」才多一個)。不用去找那顆星號,也不會因為它們而存不起來。
五項條件是「或」的關係,不是「都要填」
上表五項檢查條件只要有任一項有內容就能儲存,其餘留空即可。實務上常見的組合是:客服類 Agent 先開「內容篩選條件」的「提示詞攻擊」與「仇恨」,再用「拒絕的主題」把不想接的話題(競品比價、法律意見)列出來;會處理表單的 Agent 才需要動到「個人資料(PII)」。
兩種層級怎麼選¶
「內容篩選層級」與「拒絕主題層級」兩欄各有兩個選項,差別如下。「封鎖字詞」與「個人資料(PII)」「正規表達式規則」是直接比對,不受層級影響。
| 選項 | 適合 | 說明 |
|---|---|---|
| 傳統 | 只服務英文、法文、西班牙文的情境 | 僅判讀這三種語言。中文等其他語言的內容不會被檢查,也不會有任何提示。 不需額外設定。 |
| 標準 | 中文客服等多語情境 | 支援包含中文在內的多國語言,防規避能力也較強。需要填「跨區設定檔 ID」(選了「標準」之後那一欄旁邊會出現提示「標準層級以跨區推論運作,因此必須指定設定檔。」,這是畫面上唯一說明「為什麼突然多一個必填」的地方),而且只有部分地區提供——所選地區不支援時,這個選項在下拉裡是灰的、選不了,欄位下方會出現「目前選擇的地區不支援標準層級。」。另外,選「標準」時「拒絕的主題」每筆定義的字數上限會從 200 放寬到 1,000。 |
改「地區」時,若新地區不支援標準層級,兩個層級欄位會自動被退回「傳統」。
中文客服請認真考慮「標準」
「傳統」層級不判讀中文,所以一份只設了「內容篩選條件」又停在「傳統」的防護機制,對中文對話幾乎等於沒有作用——而畫面上不會有任何錯誤或警告。要擋中文的有害內容,就得選「標準」並補上「跨區設定檔 ID」;若所選地區不支援標準層級,就改用「拒絕的主題」「封鎖字詞」「正規表達式規則」這幾項不受層級影響的條件。
內容篩選條件¶
點表格下方中央的 開啟「新增有害內容類別」對話框,一次設定一個類別。已經加過的類別不會再出現在下拉裡,所以同一類不會重複設定。列尾的 可回頭修改該列、 刪掉該列。

| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 有害內容類別 | 是 | 無 | 要擋哪一類內容,六個選項:「仇恨」、「侮辱」、「不當行為」、「提示詞攻擊」、「性內容」、「暴力」。 |
| 輸入強度 | 是 | 無 | 檢查使用者輸入的嚴格程度:「無」、「低」、「中」、「高」。越高越容易判定為違規,也越容易誤擋。 |
| 輸出強度 | 是 | 無 | 檢查模型輸出的嚴格程度,選項同上。 |
「提示詞攻擊」只檢查輸入
類別選「提示詞攻擊」時,「輸出強度」會被鎖成「無」且不能改,欄位下方顯示「提示詞攻擊只會在輸入時檢查。」。改回其他類別時,原本填的輸出強度會自己回來。
整張表不能全是「無」
每一列的兩個強度都可以是「無」,但整張表不能每一列都是無/無——那等於沒有啟用內容篩選。這種情況「內容篩選條件」欄位下方會出現紅字「至少要有一項內容篩選條件的輸入或輸出強度不是「無」」,儲存不會過。
拒絕的主題¶
用來描述「不要談的話題」。點 開啟「新增拒絕的主題」對話框。

| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 這個主題的代號。只能用英文字母、數字、空格與 - _ . ! ?,不能用中文,最多 100 個字。填了中文會立刻出現紅字「此欄位只能包含英文字母、數字、空格與下列符號:- _ . ! ?」。 |
| 定義 | 是 | 空白 | 用一段話說明這個主題涵蓋什麼,讓防護機制判斷得出來。這一欄可以用中文。 字數上限跟著「拒絕主題層級」走:「傳統」為 200 字、「標準」為 1,000 字。寫超過時對話框裡的紅字是「此欄位必須小於或等於 200 個字元」(與下方降級時外層那句用字不同,說的是同一件事)。 |
| 範例 | 否 | 空白 | 屬於這個主題的範例句子,打一句按 Enter 新增一句,最多 5 句、每句最多 100 個字。給了範例,判斷會更準。 |
名稱寫代號、定義寫中文
「名稱」只是給 Bedrock 用的識別字,使用者看不到,所以寫 competitor pricing、legal advice 這種英文代號就好;真正決定擋不擋的是「定義」,那一欄請用中文把範圍寫清楚,例如「與其他廠牌產品的價格、優惠或折扣比較,以及對競爭對手報價的評論。」。
把層級從「標準」降回「傳統」時要回頭檢查定義
「標準」層級的定義上限是 1,000 字,降回「傳統」後上限變成 200 字。已經寫超過的那幾列不會自動被截短,而是在「拒絕的主題」欄位下方出現紅字「此欄位的每個定義都不能超過 200 個字元」,要自己把過長的定義改短才能儲存。
個人資料(PII)¶
點 開啟對話框,一次挑一種類型。已經加過的類型不會再出現在下拉裡。

| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 類型 | 是 | 無 | 要偵測的個人資料類型,共 31 種,選項一律以英文顯示(它們多半是某國證號的專有名稱,翻譯反而看不出在抓什麼)。常用的有 Email、Phone、Name、Address、Credit/Debit Card Number、Password、IP Address、URL;另有 AWS Access Key、AWS Secret Key 這類憑證,以及美國、英國、加拿大的證號與稅號。 |
| 處理方式 | 是 | 無 | 偵測到之後怎麼處理,兩個選項:「封鎖」=偵測到時直接封鎖整個請求,模型不會收到這則訊息;「去識別化」=只遮蔽偵測到的那一段,其餘內容照常送給模型。 |
國別證號只涵蓋美國、英國與加拿大
清單裡的證號類型只有這三國。台灣的身分證號、健保卡號等不在其中,請改用下方的正規表達式規則自己定義。
正規表達式規則¶
抓內建類型涵蓋不到的敏感內容,例如公司內部編號、其他國家的證號。點 開啟「新增正規表達式規則」對話框。
![「新增正規表達式規則」對話框,名稱為 employee id,正規表達式為 EMP-[0-9]{6},處理方式為「封鎖」,描述說明格式](../../images/resources/guardrail-regex-dialog.png)
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 這條規則的識別名稱,最多 100 個字。 |
| 正規表達式 | 是 | 空白 | 用來比對敏感內容的正規表達式,最多 500 個字。例如 EMP-[0-9]{6} 抓「EMP- 加六位數字」的員工編號。 |
| 處理方式 | 是 | 無 | 同個人資料(PII):「封鎖」整個請求,或「去識別化」只遮蔽命中的那一段。 |
| 描述 | 否 | 空白 | 說明這條規則在抓什麼,最多 1,000 個字。 |
看到「瀏覽器無法解析這個語法」還是可以存
語法有問題時欄位下方會出現灰字「瀏覽器無法解析這個語法,請確認;若確定 Amazon Bedrock 支援,仍可直接儲存。」。這只是瀏覽器先幫你看一眼,不是錯誤——Bedrock 支援的語法比瀏覽器多,確定沒寫錯就照樣儲存。
進階設定¶
摺疊區塊,改過裡面任一欄時標題旁會出現「已變更」標籤。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 串流處理模式 | 是 | 同步 | 模型逐字輸出(串流)時,這道關卡怎麼介入。「同步」=每個區塊都先檢查再輸出,違規內容不會傳到使用者端,但串流較不流暢、延遲較高;「非同步」=立即輸出每個區塊、防護機制並行檢查,回應較即時,但違規內容可能短暫出現後才被中斷。 |
| 輸入封鎖訊息 | 是 | 「抱歉,您的輸入違反使用政策,無法處理。」 | Amazon Bedrock 在串流中途封鎖輸入時顯示的訊息,最多 500 個字。可改成貼合自家品牌口吻的說法。 |
| 輸出封鎖訊息 | 是 | 「抱歉,此回應已被使用政策封鎖。」 | 模型輸出被擋下時顯示的訊息,最多 500 個字。只在 Agent 對話中看得到;工作流程的大型語言模型任務沒有對象可顯示,會直接以錯誤中止。 |
| KMS 金鑰 ID | 否 | 空白 | 用來加密這份防護機制設定本身的 AWS KMS 金鑰。留空就用 AWS 的預設加密,多數情況不需要填。 |
預設的兩則封鎖訊息會跟著建立時的介面語言
表單一開啟就預先帶入目前介面語言的版本(正體中文介面即上表的中文句子)。訊息是存下來的固定文字,不會隨看到它的使用者的語言改變,所以服務多語使用者時請自行決定要寫哪一種語言。
在對話裡被擋下時,看到的不一定是這兩句
這兩欄是給 Bedrock 在串流過程中替換內容用的。送出訊息時就直接被擋的情況(最常見的那種)走的是另一條路:對話裡出現的是一則錯誤,而不是這兩句話,見下方使用效果。
掛到 Agent 或任務上¶
防護機制自己不會做任何事,要被挑選才會生效。兩個掛法:
| 掛在哪 | 位置 | 檢查範圍 |
|---|---|---|
| Agent | Agent 建立/編輯表單的「防護機制」欄位(在「大型語言模型」與「描述」之間) | 使用者輸入、模型輸出,以及工具的輸入與輸出都會經過檢查。 |
| 大型語言模型 (LLM) 任務、結構化大型語言模型 (Structured LLM) 任務 | 任務設定面板「進階任務設定」裡的「防護機制」欄位 | 該次呼叫的輸入與模型輸出。 |
兩處都是資源挑選欄位:點欄位開啟挑選清單(欄位表格有「名稱」「ID」「類型」「狀態」「最後更新」),選一筆按「儲存」;欄位右側的 可清空選擇(這顆鈕平常是隱形的,把滑鼠移到欄位上才浮現)。用法見通用介面元件 — 資源挑選欄位。
地區必須一致¶
模型與防護機制的地區必須一致
Bedrock 的防護機制是綁地區的,所以搭配的 Bedrock 大型語言模型必須位於同一個地區。實務上你不會真的看到「儲存失敗」——Agent 表單會先把不同地區的防護機制停用(選不了),或在你換掉模型時直接把選擇清掉。實際規則是:
- Agent 上,不只主要的「大型語言模型」,開了「啟用大型語言模型切換」之後可切換的每一個模型都要與防護機制同地區。要注意「可切換的大型語言模型」那份挑選清單不會把不同地區的模型停用——你照樣勾得起來,平台是改用「把防護機制清掉」來擺平衝突(見下方)。
- 已填「跨區設定檔 ID」的防護機制不受這個限制。
- 非 Bedrock 供應商的模型(例如 OpenAI、Gemini、Ollama)不受限制。
- 想知道某個模型在哪個地區,到大型語言模型清單點進那一筆,看詳細頁「一般」頁籤的「地區」欄——清單頁上沒有這一欄。
畫面上會這樣提示你:挑選清單裡地區不符的防護機制是停用的,滑過去會顯示「Bedrock 大型語言模型必須與防護機制在同一個地區,可切換的大型語言模型也包含在內。已設定跨區設定檔的防護機制則不受此限。」。
如果是先選好防護機制、之後才把模型換成別的地區,原本的選擇會自動被取消。這時編輯既有 Agent 的畫面上會在欄位下方出現「防護機制與目前的大型語言模型不在同一個地區,已取消選取。」;但建立新 Agent 的畫面不會有任何提示,欄位就這樣靜靜地空掉。所以換過模型之後,一定要自己回頭看一眼「防護機制」欄位是不是空了——沒發現就等於這個 Agent 上線時完全沒有防護。
防護機制詳細頁¶
詳細頁上方有兩個頁籤:
| 頁籤 | 內容 |
|---|---|
| 一般 | 上半是「詳細資料」卡片:ID、名稱、標籤、類型、描述、地區、串流處理模式、輸入封鎖訊息、輸出封鎖訊息、KMS 金鑰 ID、跨區設定檔 ID、系統資訊、狀態、建立者、更新者、最後更新。下半接著把設定好的檢查條件一項一項列出來(內容篩選層級與其表格、拒絕主題層級與其表格、封鎖字詞、受管字詞清單、個人資料(PII)表格、正規表達式規則表格)。沒設定的條件是整段不出現,不是顯示 -——例如一份沒設「拒絕的主題」的防護機制,詳細頁上連「拒絕主題層級」都看不到(即使那一欄是必填、有值)。- 只出現在上方「詳細資料」卡片裡沒填的欄位(標籤、描述、KMS 金鑰 ID、跨區設定檔 ID)與表格中的空儲存格。卡片右上角的圖示鈕可編輯()、複製()或刪除()。 |
| 被依賴資源 | 有哪些 Agent 或工作流程正在用這道關卡。刪除前先看這裡——還有人在用就先把那邊改掉。 |
「系統資訊」那一坨 JSON 不用理它
「詳細資料」卡片裡的「系統資訊」是平台記下來的 Bedrock 端識別資料(guardrail_identifier、guardrail_arn、guardrail_version),只有在需要跟 AWS 那邊對帳、或請管理員協助查問題時才會用到,日常操作不必看。其中 guardrail_version 會每編輯儲存一次就加一(第一次建立是 1,改過一次變 2),數字跳動是正常的,不代表你設定錯了。
防護機制沒有「驗證」功能
詳細頁不提供「驗證憑證/測試連線」按鈕。要確認它有沒有生效,就掛到一個 Agent 上實際問一句會被擋的話,見下方使用效果。
編輯時有幾欄是鎖住的
「類型」與「地區」建立後不能改(編輯表單裡呈現為停用)。要換地區只能重新建立一份新的防護機制,再把 Agent/任務改指到新的那一份。
使用效果¶
把防護機制掛到 Agent 之後,違規的訊息會在送進模型之前就被擋下來。對話裡看到的長這樣:一則「發生錯誤,請稍後再試。」,下面接一行英文說明哪一類條件被踩到,再下面是一顆「重試」按鈕。

那行英文的 Tripped policies: 後面就是踩到的條件類別,據此可以知道是哪一項設定攔下來的:
| 顯示 | 對應的設定 |
|---|---|
content | 內容篩選條件 |
word | 封鎖字詞、受管字詞清單 |
topic | 拒絕的主題 |
sensitive_information | 個人資料(PII)、正規表達式規則 |
判讀時注意三件事:
- 這是一則錯誤,不是模型的回答,所以按「重試」再送一次也一樣會被擋——內容沒改就不會過。看到它就表示這道關卡有作用。
- 「輸入封鎖訊息」「輸出封鎖訊息」那兩句自訂文字不會出現在這裡。它們是給 Bedrock 在串流過程中替換內容用的,跟這條「送出就被擋」的路徑不同。
- 工作流程的大型語言模型任務被擋時沒有對象可顯示,該任務會直接失敗,處理方式見錯誤處理。
想確認自己設對了,用「封鎖字詞」試最省事
「封鎖字詞」是逐字比對,不受「內容篩選層級」影響、中文也擋得到,所以最適合拿來做一次「有沒有生效」的確認:
- 另外建一份防護機制,只填一項「封鎖字詞」,字詞用一個平常不會打到的詞(例如下面這個)。
- 把它掛到一個 Agent 上(見掛到 Agent 或任務上),儲存。
- 開這個 Agent 的對話:儲存後畫面會停在編輯頁,回到該 Agent 的詳細頁,按右上角的「前往聊天」。在對話裡把那個字詞單獨送出去(前後不要接其他中文字,原因見下方那則警示)。
測試封鎖詞彙
看到「發生錯誤,請稍後再試。」加上 Tripped policies: word. 就表示這道關卡確實掛上、也確實在檢查了。確認完把這份測試用的防護機制刪掉即可。
中文的「封鎖字詞」只在前後有空白或獨立成句時才擋得到
實測同一份設定(封鎖字詞為 保證最低價):送「保證最低價」或「請問 保證最低價 嗎」都被擋下(Tripped policies: word.),但送「你們可以保證最低價嗎?」沒有被擋——字詞黏在其他中文字之間就比對不到。
所以「封鎖字詞」用在中文上並不可靠,別把它當成唯一防線。要擋一個中文說法,改用拒絕的主題(靠語意判斷,不是逐字比對)或正規表達式規則(自己決定要不要管前後字元)。
下一步¶
- Agent 設定總覽 — 把防護機制掛到 Agent 上。
- 大型語言模型 (LLM) 任務 — 把防護機制掛到工作流程的單一任務上。
- 大型語言模型 — 確認模型所在地區,避免與防護機制不一致。