Dogwood 建立在時間邏輯與度量一階時間邏輯(Metric First-Order Temporal Logic, MFOTL) 之上,這是形式數學的一個分支,允許對事件及其跨時間的關係進行推理 。MFOTL 透過一階量化與度量約束(例如「在過去 5 分鐘內」)擴展了命題時間邏輯,從而實現對事件序列的精確運行時監控 。
在 Dogwood 中,政策的決策取決於代理在一個會話內的行動歷史,而非僅當前的請求 。政策引擎會維護先前工具呼叫及其回應的記錄,然後在允許或拒絕呼叫之前,根據該歷史記錄評估當前請求 。
Dogwood 擴展了 Cedar 政策語言(AWS 自 2023 年起存在的授權語言),加入了包含會話感知條件的 temporal 區塊 。關鍵的時間運算子包括:
| 運算子 | 用途 |
|---|---|
formerly | 檢查在會話的較早時間點,某條件是否為真 |
count_within | 計算在指定時間視窗內,某條件發生的次數 |
count_distinct_within | 計算在時間視窗內出現的某欄位的不同值數量 |
sum_within | 對時間視窗內的事件中的某個數值欄位進行求和 |
since | 相對於某事件的最後一次發生來檢查條件 |
once | 檢查某條件是否曾經發生過 |
這些運算子允許政策定義如「除非 formerly 發生過發票動作,否則拒絕付款動作」,或「如果 sum_within(amount, 1h) 超過閾值則拒絕」的規則 。時間政策的編寫方式與標準的 permit 或 forbid Cedar 規則相同,但條件需放在 temporal { ... } 區塊內 。
時間政策是在 AgentCore 閘道層強制執行的,位於代理自身程式碼之外 。閘道會即時攔截每一個工具呼叫,在到達目標工具之前,根據會話的完整事件歷史評估政策,然後允許或拒絕該呼叫 。
由於授權決策發生在週邊——即代理無法修改的基礎設施中——因此無法透過提示操縱、越獄攻擊或代理控制的任何程式碼繞過 。AWS 明確指出,政策是在「AgentCore 閘道週邊,代理自身程式碼之外」運行的,這使得它們能夠抵抗代理重寫自身指令的行為 。政策引擎支援兩種模式:LOG_ONLY(僅審計,不阻斷)和 ENFORCE(主動拒絕) 。
Dogwood 已整合到 Amazon Bedrock AgentCore 中,作為時間政策,並於 2026 年 8 月 6 日與閘道速率限制一同宣布 。
Bedrock AgentCore 目前可用的功能:
sum_within 強制執行 $60,000 的每會話支出上限 。Dogwood 語言及其參考實作可在 GitHub 上依 Apache 2.0 許可證取得,與 Bedrock AgentCore 受管服務分開 。