Dogwood 建立在时序逻辑和Metric First-Order Temporal Logic (MFOTL) 之上,后者是形式数学的一个分支,能够推理事件及其在时间上的关系。MFOTL 在命题时序逻辑的基础上增加了一阶量化和度量约束(例如“在过去5分钟内”),从而能够对事件序列进行精确的运行时监控。
在 Dogwood 中,策略的决策取决于Agent在会话中操作的历史记录,而非仅取决于当前请求。策略引擎会维护一个先前工具调用及其响应的记录,然后在允许或拒绝当前调用之前,将其与该历史记录进行比对。
Dogwood 扩展了 Cedar 策略语言(AWS于2023年发布的现有授权语言),通过添加一个包含会话感知条件的 temporal 块来实现。关键的时序运算符包括:
| 运算符 | 用途 |
|---|---|
formerly | 检查某个条件在会话中之前是否曾经为真 |
count_within | 统计在指定时间窗口内某个条件发生的次数 |
count_distinct_within | 统计在某个时间窗口内出现的不同字段值的数量 |
sum_within | 对某个时间窗口内事件中的数字字段求和 |
since | 相对于某个事件的最后发生时间来检查条件 |
once | 检查某个条件是否曾经发生过 |
这些运算符让策略能够定义诸如“除非发票操作曾经发生过,否则禁止付款操作”,或“如果 sum_within(amount, 1h) 超过阈值则禁止”等规则。一个时序策略被编写为标准的 permit 或 forbid Cedar 规则,但其条件被放置在 temporal { ... } 块内。
时序策略在 AgentCore 网关层进行强制,这位于Agent自身代码之外。该网关会实时拦截每一次工具调用,在到达目标工具之前,根据会话的完整事件历史评估策略,然后决定允许或拒绝该调用。
由于授权决策发生在边界——即Agent无法修改的基础设施中——因此无法通过提示操纵、越狱或Agent能控制的任何代码来绕过。AWS 明确声明,策略运行在“AgentCore 网关边界,代理自身代码之外”,使其能够抵抗Agent重写自身指令的行为。策略引擎支持两种模式:LOG_ONLY(审计而不拦截)和 ENFORCE(主动拒绝)。
Dogwood 已作为时序策略集成到 Amazon Bedrock AgentCore 中,与网关速率限制功能一道于2026年8月6日发布。
Bedrock AgentCore 中目前已可用的功能:
sum_within 实施每会话 60,000 美元的开支上限。Dogwood 语言及其参考实现现已在 GitHub 上以 Apache 2.0 许可证发布,与 Bedrock AgentCore 托管服务分开。