亚马逊云科技开源Dogwood:给AI智能体的工具调用立规矩——引入时序策略语言,解决操作序列约束问题
基于Cedar扩展的时序策略语言 · 四种操作符覆盖序列约束
Dogwood 是一门基于Cedar扩展的时序策略语言,通过引入「when temporal」子句和四种时序操作符,使智能体工具调用策略能够跨操作序列施加约束,从而解决Cedar只能检查单个请求的局限性。
◆ Cedar
状态
无状态,每次只查看一个请求
推理
支持自动推理
请求
单次请求检查
事件历史
不支持读取
◇ Dogwood
状态
有状态,可读取事件历史
推理
不支持自动推理
请求
支持时序条件
事件历史
支持跨操作序列回溯
从Cedar到Dogwood:为什么需要时序策略?
亚马逊云科技开源Dogwood,这是一门用于智能体工具调用的策略语言,与Cedar的不同之处在于其规则可以回溯查看智能体已经执行过的操作。
智能体会将多个操作组合成工作流,而团队需要的约束通常存在于操作序列之中:在采取行动前获得批准、确保累计总额不超过限制,以及在接触机密数据后停止联系外部人员。
—— 亚马逊云科技团队 · 原文
Dogwood的工作原理:时序条件与事件历史
Dogwood在Cedar的「when」子句基础上增加了「when temporal」子句,可读取智能体的事件历史,事件对应工具调用请求及其结果,携带输入参数和发起请求的主体。
操作模式来源
MCP工具清单
— 每个工具对应一个操作,由Dogwood直接生成。
在底层,时序条件会被转换为Cedar上下文字段,解释器会在Cedar作出决策之前,根据事件历史填充该字段。
—— 亚马逊云科技 · 原文
四种时序操作符覆盖常见模式
formerly
判断某个时间窗口内是否发生过某件事
用于检查历史事件是否存在
count_within
计算发生次数
用于速率限制
count_distinct_within
计算不同值的数量
例如不同用户
sum_within
计算累计总额
例如转账总额
这些操作符基于核心度量一阶时序逻辑子集,以标准库宏的形式定义,而不是作为语言原语。bind 操作符可以为聚合结果命名,以便将当前请求与其进行比较。
⚠ 并发环境下的正确性陷阱
针对响应事件而不是请求事件编写的速率限制,可能会被并发操作绕过。
—— 亚马逊云科技 · 原文
▎示例
三笔并发的2000美元转账在完成前到达,对响应求和的策略看不到正在处理的金额,允许三笔全部越过5000美元上限;
对请求求和的相同策略拒绝第三笔。
两个策略仅相差一个词。
智能体会并行发起工具调用,多智能体环境中操作交错会让情况更加复杂,这是一个出现在新领域中的典型分布式系统问题。
Dogwood的代价:有状态追踪与失去自动推理
时序求值需要有状态地追踪事件,而且求值时间可能取决于事件日志的长度。更重要的是,时序条件不支持Cedar提供的自动推理分析工具,因此使用这些条件的策略集将失去接受形式化分析的能力。
—— 亚马逊云科技 · 原文
团队选择构建一门独立语言而不是扩展Cedar,正是因为这些代价。现有Cedar策略仍然有效,任何有效的Cedar策略也是有效的Dogwood策略。
如果做不到[构建一个值得信任的事件日志],策略便毫无意义。
—— 亚马逊云科技 · 原文
与MCP 2026-07-28规范的互补
MCP标头
让网关能够看到智能体正在调用哪个工具
Dogwood
用于表达一系列调用累计起来可以执行哪些操作
两者分别解决了同一个问题中彼此相邻的两个部分。
路线图与发布细节
路线图项目
绝对时间窗口、活性属性、多智能体编排策略
支持以现实时间边界为基准的规则、断言最终必须发生什么、面向多智能体系统的任务交接和锁
此次发布由亚马逊云科技副总裁兼杰出工程师Marc Brooker、自动推理团队的Joseph Tassarotti,以及亚马逊云科技Agentic AI的Jean-Baptiste Tristan共同撰写。
—— 原文
亚马逊云科技目前尚不接受贡献,计划先收集反馈,待语言趋于稳定后再开放贡献。
编辑判断
Dogwood的发布填补了Cedar在智能体时序场景下的空白,但代价是失去自动推理能力,且可靠性高度依赖事件日志的可信性与持久化基础设施。
这是一项针对实际工程痛点的重要开源贡献,尤其适用于需要跨操作序列实施约束的复杂智能体工作流。然而,团队需谨慎评估有状态追踪的运维成本和安全性要求。
综合公开信息整理