AWS 在 8 月 20 日擴充 Amazon Bedrock AgentCore 的 Policy Authoring:企業可匯入自然語言規章,讓系統轉成 Dogwood 政策,在 Agent 呼叫退款、轉帳、傳送資料等工具之前即時准許或拒絕。
這不是「用提示告訴 Agent 不要亂做」。Dogwood 政策由 AgentCore Gateway 的監控層執行,模型提出工具呼叫後,規則在真正執行前檢查參數與歷史軌跡。即使模型被提示注入誘導,只要呼叫不符政策,執行層仍可擋下。
不過我的判斷是:自然語言產生政策降低了編寫門檻,也放大了規章歧義。 AWS 文件自己強調,Policy Authoring 是 translator,不是 summarizer,更不是替公司決定規則的人。原文寫得含糊,產出的正式規則只會更精確地執行那個含糊理解。
Dogwood 比單次權限多看了什麼?
傳統權限常只檢查「這個身分能不能呼叫退款工具」。Dogwood 的時間與軌跡政策還能問:這個帳戶是否在 15 分鐘內完成驗證、過去一小時是否已嘗試三次退款、12 小時內累計轉帳是否超過上限,以及工具是否按照必要順序執行。
AWS 的銀行範例把規則拆得很具體:退款只能在指定時段且金額不超過門檻;轉帳前必須對同一帳戶完成驗證;累計金額與呼叫次數可跨同一工作階段計算;自由文字欄位則可呼叫 Bedrock Guardrails 檢查敏感資訊。
若 Agent 會先上網找資料,再依搜尋結果採取動作,還需要限制資訊入口。AgentCore Web Search 的網域與日期過濾可縮小允許查詢的網站與期間,Dogwood 再決定取得資料後哪些工具呼叫能執行。兩層一起用,才能避免 Agent 從不合格來源得到指令後仍通過動作政策。
Dogwood 採 default-deny,forbid 會蓋過 permit。這有助於安全預設,但不能代替 Agent 身分、工具最小權限與後端交易控制。完整架構應把AgentCore 身分治理放在前面,再用 Dogwood 限制「已獲授權的身分,在這次任務中能怎麼做」。
自然語言最危險的是沒寫清楚的字
「每天最多退款三次」看似清楚,實際上還有很多問題:一天按 UTC、台灣時間還是客戶所在地?失敗或被拒的嘗試算不算?限制的是員工、客戶帳戶、Agent 工作階段還是整個組織?跨午夜如何計算?
AWS 範例也示範了這種風險。若規章只寫「過去 12 小時轉帳總額」,生成政策可能把所有 request 都計入,包括被拒或失敗的呼叫;這是較保守的解讀,但不一定符合原制度。把「成功交易」與「嘗試交易」寫清楚,才不會讓翻譯器自行選擇。
因此匯入前應先把規章去掉背景故事與理由,只保留可判定的規則,並明列主體、工具、欄位、單位、時區、時間窗口、例外與失敗狀態。不要把整份數十頁內規直接丟進去,期待系統替你整理政策。
它能防提示注入嗎?
它能降低提示注入造成的工具濫用,但不是完整防護。Dogwood 擋的是已描述的工具呼叫條件;若工具本身權限過大、參數設計不完整、敏感資料已出現在模型上下文,或攻擊發生在政策未涵蓋的工具上,規則仍可能放行危險結果。
例如政策限制「單次退款金額」,但工具允許修改收款帳戶,攻擊者可能不碰金額上限而改目的地。又或者規則只追蹤同一 session,攻擊者重新開工作階段就重置計數。這些邊界要靠威脅模型與測試找出,不能把生成成功的 Dogwood 程式碼視為安全完成。
上線前至少跑五類測試
第一類是應允許的正常流程,避免政策過嚴讓業務停擺。第二類是明確拒絕,包括超額、未驗證、順序錯誤與敏感內容。第三類測邊界值,例如剛好等於上限、時間窗口前後一秒與時區切換。
第四類測失敗事件:工具逾時、後端拒絕或重試,究竟算一次還是多次。第五類測跨 session、跨 Agent 與併發呼叫,確認累計控制不會被拆單繞過。每次政策或工具 schema 更新後,都應把這組案例重跑;可結合AgentCore Evals 資料管理保留回歸資料。
我不建議讓生成的政策直接從文件進正式環境。合理流程是法遵整理可判定規則、工程確認工具 schema、Policy Authoring 產生初稿、雙方審查,再由獨立測試驗證。自然語言可以加速抄寫,不能轉移決策責任。
常見問題
Dogwood 是什麼?
Dogwood 是開源的 Agent 治理政策語言,可表達工具呼叫的時間、順序、次數與累計條件。AgentCore Policy 可在 Gateway 執行工具前,以 Dogwood 監控器判定准許或拒絕。
Policy Authoring 會替公司設計規章嗎?
不會。AWS 將它定位為自然語言到正式政策的翻譯器,適合處理已經寫清楚的規則。政策目的、例外、法律解釋與風險承擔仍由組織決定。
Dogwood 可以完全防止 Agent 亂操作嗎?
不能。它只能執行已寫入的條件,仍需搭配最小權限、工具 schema、後端驗證、敏感資料控制、人工核准與稽核紀錄。
自然語言政策生成後需要人工審查嗎?
需要。法遵要確認規則語意,工程要確認欄位、單位、事件與工作階段邊界,測試人員則要用允許、拒絕與邊界案例驗證,不能只看語法正確。
參考來源
- AWS Machine Learning Blog:Authoring Dogwood policies from natural language in Amazon Bedrock AgentCore(2026-08-20)
- AWS Docs:Writing policies in natural language(2026-08-24 查核)
- AWS Docs:Authoring temporal policies(2026-08-24 查核)
- AWS Docs:Policy in Amazon Bedrock AgentCore(2026-08-24 查核)
- Dogwood GitHub:Reference parser and interpreter for the Dogwood policy language(2026-08-24 查核)
- AWS:Amazon Bedrock Guardrails(2026-08-24 查核)