亚马逊 2026 年 8 月开源 Dogwood 策略语言,给智能体工具调用加上时序规则。本文拆解其设计、与 MCP 的关系,并给出 Agent 平台工具网关落地的 checklist 与反面教训。
一个跨境支付团队让 Agent 并行发起三笔 2000 美元的转账,策略引擎全部放行——额度规则只统计"已完成"的转账,而三笔请求到达时没有一笔完成。这不是段子,是亚马逊云科技 2026 年 8 月开源 Dogwood 时亲自演示的并发绕过案例(InfoQ 报道)。给智能体工具调用立规矩,正在成为 AI Agent 平台搭建里最容易被低估的一环。
模型层是概率系统,无论 prompt 写得多细,都做不到"每次调用都符合预期"。工具调用层面的事故大致分三类。
这三类事故的共同点:靠模型自查压不住。亚马逊云科技的解法是把决策移出模型——AgentCore Policy 于 2025 年 re:Invent 推出,作为模型之外的确定性控制层:模型提出工具调用,策略引擎接受或拒绝,模型永远接触不到执行机制(InfoQ 报道)。
这正是 AI Agent 平台搭建的第一个决策点:工具调用决策,交给模型临场判断,还是交给一套可审计、可测试的规则引擎。模型与平台层的关系,我们在此前的文章里专门拆过2026 年为什么 harness 比模型更重要,本文不再重复整体护栏与 tracing,只聚焦工具调用规则层。
在这个项目之前,AWS 生态用 Cedar 写授权策略。Cedar 是纯函数式的:同一个请求输入两次,无论之前发生过什么,答案都一样。这个特性让审计和自动推理可行,代价是它只能约束单个操作,描述不了"操作序列"。
智能体把多个工具调用组合成工作流,真正的约束往往藏在序列里:采取行动前必须获得批准、累计金额不能超过上限、接触机密数据后必须停止联系外部人员。
新语言给 Cedar 增加了一种子句类型:when temporal。时序条件可以读取智能体的事件历史——每个工具调用请求及其结果,携带输入参数和发起主体。操作模式直接从 MCP 工具清单生成,底层翻译成 Cedar 上下文字段,由解释器在决策前填充。
四种操作符覆盖最常见的时序模式:
| 操作符 | 作用 | 典型场景 |
|---|---|---|
| formerly | 时间窗口内是否发生过 | 操作前必须经过审批 |
| count_within | 统计发生次数 | 一小时内最多 5 次外部调用 |
| count_distinct_within | 统计不同值数量 | 最多联系 2 个不同的外部主体 |
| sum_within | 累计总额 | 转账总额不超过 5000 美元 |
兼容性做得克制:任何有效的 Cedar 策略在这里都继续有效,无需重写;默认拒绝机制不变,forbid 仍然优先于 permit。现有投资不浪费,这是企业选型时最关心的点。
时序策略语言只是决策层。真正把它跑起来,AI Agent 平台搭建还缺三块基础设施。
工具网关:所有工具调用流经统一入口,策略引擎在这里做 accept/reject。网关与执行机制解耦,模型不直接握任何执行句柄。
schema 校验:工具描述与参数约束必须在调用前校验。MCP 工具清单天然提供了操作名与参数的契约,策略的操作模式直接来自这份清单,保证规则里写的名字和实际执行的名字一致。
审计日志:时序策略的有效性依赖事件历史本身。亚马逊云科技在公告里把话说得很直白:时间戳必须可信,事件必须经过身份验证,轨迹需要持久化存储,决策需要记录日志,绝不能让一个租户的历史流入另一个租户;工具调用历史里全是敏感数据,保留策略也必须做(AWS 官方公告英文版)。
换句话说,治理层的强度取决于事件日志的可信度。日志不可信,策略就是纸糊的。
这个项目发布同一周,MCP 2026-07-28 规范通过强制要求方法和工具名称标头,让 HTTP 基础设施能够识别智能体流量(InfoQ 报道)。标头让网关能看到智能体正在调用哪个工具;时序策略则用于表达一系列调用累计起来可以执行哪些操作。两者解决的是同一问题相邻的两段。
把三者的分工说清楚:
平台搭建时,先按这个分层确认自己缺哪一块,比追着新框架跑更有用。至于 A2A 与 MCP 在 2026 年生产环境谁更主流,我们单独写过一篇跨平台选型对比,这里只讨论它们与策略层怎么配合。
把时序治理的思路搬进自己的 Agent 平台,最省事的顺序是这样:
反面教训来自一个真实项目。某团队给 Agent 接了一套内部工具集,但没做工具白名单,所有工具都注册进 MCP 清单。Agent 在执行"查询订单状态"任务时,语义匹配把"取消订单"的 API 当成候选,直接对生产环境发起了写操作。事后排查发现,工具清单里有 40 多个工具,其中 6 个是写操作,全都对模型可见。如果当时只暴露读操作、写操作走单独审批通道,这起事故根本不会发生。Anthropic 的多智能体实验同样暴露过协作边界问题,我们整理过三个工程警示,可以对照看。
工具调用治理不是安全团队的独角戏,它是 AI Agent 平台搭建的核心架构决策。想让 Agent 真正进入生产环境跑业务,先回答一个问题:模型提的调用,谁有权拒绝?
我们在给企业搭 Agent 平台时,默认就把工具网关、schema 校验和审计日志做成标配,Dogwood 这类策略语言直接对接。如果你还在沙箱阶段,建议先读从沙箱到产线的 4 个工程门槛,再回来评估治理方案;也可以直接看我们的落地案例,或联系蓝曜炬辉拿一份工具治理的架构清单。
Apache 2.0。亚马逊云科技的 AgentCore Policy 已支持该语言,目前项目暂不接受外部贡献,官方计划先收集反馈、待语言稳定后再开放。
它是在 Cedar 之上增加了时序子句(when temporal)的策略语言。任何有效的 Cedar 策略都继续有效,无须重写。区别在于 Cedar 只看单个请求,它能回溯事件历史,约束操作序列。
不能。官方明确参考解释器用于探索和测试,不用于生产执行授权。生产部署必须自己构建可信事件日志:可信时间戳、事件认证、持久化轨迹、租户隔离与保留策略。
MCP 解决工具连接与调用协议,2026-07-28 规范新增了方法和工具名称标头;策略语言解决调用策略,即一系列调用累计起来能做什么。MCP 让网关看到"在调哪个工具",策略层决定"允不允许这么调"。
放在模型与执行机制之间,作为独立的确定性控制层。模型提出调用,策略引擎接受或拒绝,模型不直接接触执行句柄。这样事故可以定位到规则而不是模型概率,审计和责任边界都清晰。