2026 年 8 月 · 7 分钟阅读

关键定义
时序策略(Temporal Policy) 一种有状态的授权规则,通过评估Agent会话中的历史事件序列(轨迹)来决定当前请求是否被允许,而不仅仅检查单次工具调用本身。
Dogwood AWS在Cedar策略语言基础上扩展的开源授权语言(Apache 2.0),可表达审批、执行顺序、运行限额等时序约束,并内置对Amazon Bedrock AgentCore的支持。
AI Agent与传统应用的行为方式截然不同:它们在运行时自行决定调用哪个工具、以什么参数、按什么顺序。这种灵活性让Agent既强大又难以控制——单独看安全的一次工具调用,在先前调用的上下文中可能有害,例如在读取了不受信数据源之后。AWS开源Dogwood,把授权从无状态升级为轨迹感知的状态化判断。
在AI Agent出现之前,访问控制把每个动作视为独立事件通常是足够的,应用依靠确定性业务逻辑来强制执行动作顺序和数据时效。Agent打破了这一假设。它们运行时的灵活性意味着:一个Agent调用lookup_customer工具后,幻觉出一个与返回结果不同的账号并传给transfer_funds,资金可能被转给错误客户;一个失控Agent在循环中执行数十笔交易,因为没有任何机制追踪累计敞口已超限额;一个Agent能在几秒内既批准又拒绝同一笔保险理赔。
这些场景里的每一个单独工具调用都能通过无状态策略检查。问题只有在你查看Agent的轨迹——会话中按顺序排列的动作序列——时才会显现。这正是现有静态控制的核心缺口。
Dogwood构建在Cedar之上。Cedar是AWS贡献给CNCF(2025年底进入沙箱项目)的开源授权语言,已经在AgentCore Policy中承担无状态判断:决定用户或Agent能否以给定参数调用退款工具。Dogwood把这一能力向前推进了一步——它还能把更早的事件纳入考量:是否有人批准了这次退款、Agent在过去一小时内已退款多少、或者之前是否已经调用过某个工具。
重要的是,Dogwood不是要取代Cedar,而是扩展它。任何现有Cedar策略都是合法的Dogwood策略,团队无需重写已有规则。对于时序策略,Dogwood把依赖历史的条件翻译成Cedar的上下文字段,在Cedar做出授权决定之前,参考实现用事件历史填充该字段。
时序策略运行在AgentCore网关的外围,位于Agent自身代码之外。因为Agent无法拦截或操纵网关上的策略逻辑,这些保护无论模型如何行为、如何被提示、或者Agent代码里有什么bug都无法被绕过。AgentCore Gateway统一路由Agent的MCP工具调用、Agent到Agent调用以及模型推理调用,因此时序策略能覆盖全部三类调用——这是在一个一致的位置推理Agent随时间的全部行为。
策略引擎的工作方式:当网关收到一个工具调用,它查询轨迹状态中与待评估策略相关的动作、输入和输出;在历史作用域(客户定义的轨迹内先前事件)的上下文中评估每个时序策略;然后返回确定的ALLOW或DENY决定,并记录决策的完整上下文。时序策略默认拒绝,forbid优先于permit——保持与现有AgentCore Policy特性一致的安全默认。
AWS在私有银行组合Agent示例中演示了七个时序策略模式:
工作流排序——要求先调用某个工具再调用另一个,以验证标准操作流程(SOP)遵循。输出到输入的完整性——要求当前调用的参数与先前工具的输出完全一致,防止Agent在步骤间幻觉或替换值。数据新鲜度——要求数据查找在指定时间窗内完成,防止基于过期信息做决策。
累计预算上限——追踪会话内累计财务敞口,超过风险限额即拒绝。需要人工审批的特权操作——在轨迹中记录明确的人工审批事件之前,阻止破坏性或敏感的工具调用。互斥——防止Agent在短时间内既批准又拒绝同一事项。渐进式信任衰减——当Agent在无人参与下运行时自动收紧权限。
Dogwood比Cedar运行成本更高,因为它是有状态的:必须保留并检索事件记录,评估时间可能随历史长度增加。当前开源参考解释器用于探索和测试语言,而非作为生产授权引擎。
对于想立即采用开源项目的团队,AWS指出需要自行解决一系列工程问题:提供可信时间戳、对事件进行认证、保持一致字段与动作命名、持久化存储轨迹、记录授权决策、在租户间隔离历史,并为可能含敏感数据的工具调用历史建立保留策略。对于开源发布版本,更根本的问题是:事件历史是否完整、可信到足以用作授权依据。
参考来源:
Dogwood是AWS在Cedar基础上扩展的开源策略语言,以Apache 2.0许可发布。它保留Cedar的全部语法,现有Cedar策略天然也是合法Dogwood策略,因此团队无需重写已有规则。Dogwood的增量在于能结合Agent的历史事件轨迹做授权决策,而Cedar本身只做无状态、逐请求的判断。AWS已把Dogwood支持加入Amazon Bedrock AgentCore Policy托管服务。
现有AgentCore Policy实施无状态、确定性的规则:谁能调用哪个工具、在什么条件下。但这无法捕捉许多关键问题——例如Agent调用lookup_customer工具后,幻觉出一个与返回结果不同的账号并传给transfer_funds;或一个失控Agent在循环中执行数十笔交易,因为没人追踪累计敞口已超过风险限额。每个单独的工具调用都能通过无状态检查,只有查看Agent在会话中的轨迹序列时问题才显现。
时序策略运行在AgentCore网关(Gateway)的外围,位于Agent自身代码之外。因为Agent无法拦截或操纵网关上的策略逻辑,这些保护无论模型如何行为、如何被提示、存在什么bug都无法被绕过。AgentCore Gateway把Agent的MCP工具调用、Agent到Agent调用、以及模型推理调用统一路由到单一端点,因此时序策略可以覆盖全部三类调用。
AWS的示例覆盖了七个模式:工作流排序(要求先调用某工具再调用另一工具以验证SOP遵循)、输出完整性(要求当前调用的参数与先前工具输出完全一致,防止Agent在步骤间幻觉或替换值)、数据新鲜度(要求数据查找在指定时间窗内完成)、累计预算上限、需要人工审批的特权操作、互斥,以及渐进式信任衰减(Agent无人参与时自动收紧权限)。
Dogwood是有状态的,因此比Cedar运行成本更高——它必须保留并检索事件记录,评估时间可能随历史长度增加。当前开源参考解释器用于探索和测试语言,而非作为生产授权引擎。采用开源项目的团队需要自行提供可信时间戳、对事件认证、保持一致字段与动作命名、持久化存储轨迹、记录授权决策、并在租户间隔离历史,同时还要为可能含敏感数据的工具调用历史建立保留策略。