8 月 6 日,AWS 发布开源策略语言 Dogwood(Apache 2.0),并随 Amazon Bedrock AgentCore 网关同步推出时序策略与限流支持。与常规的「单次请求授权」不同,Dogwood 把决策依据从「这一次调用是否合法」升级为「这一会话里已经发生过的调用序列,是否允许下一个动作」——用 AWS 自己的话说,它解决的是传统访问控制系统对 AI 智能体失效的那类问题:单步全部合法,序列却越权。在 OpenAI、Anthropic、Meta 接连披露智能体越权事件的背景下,这被认为是 Agent 治理从「点」走向「面」的标志性一步。

一、问题:单次授权对智能体失效

Cedar——AWS 现有开源策略语言,支撑 IAM、Verified Permissions 与 AgentCore Policy——采用逐次评估模型:这个主体能否对该资源执行该动作。这一模型对 API 与静态系统足够,对智能体却会失效:Agent 可以把每个单步都合法、每步都通过校验的动作,链成你从未授权过的行为——先轮换凭证、再推送仍引用旧凭证的构建;先批准合并、再从过期分支执行发布脚本;每次调用都通过权限检查,而爆炸半径恰恰藏在「连接处」。开发社区用一句话概括:没有任何单个工具调用会触发检查,组合序列却会。这正是 Dogwood 想填补的缝隙——此前 IAM 与 OPA 管单次动作、MCP 管工具可见性、护栏库管自由文本输出,没有任何工具基于完整的工具调用记录回答「这条轨迹整体是否允许」。

二、Dogwood 的答案:会话级时序条件

Dogwood 在 Cedar 中新增 when temporal { } 条件块,用于查询会话事件日志——即此前工具调用的结构化记录(输入、输出与时间)。它提供四个时序算子:formerly within(某动作是否在最近 N 秒/分钟/小时内发生过)、sum_within(某字段在窗口内累加)、count_within(窗口内发生次数)、count_distinct_within(窗口内出现的不同取值数量)。AWS 给出的官方示例很能说明问题。其一是「人工审批门」:仅当过去一小时内、相同股票与相同数量的审批工具返回了 approved: true 时,才允许智能体执行卖出操作——审批是独立事件,策略引擎必须在智能体的近期历史中找到它;且该检查在网关层执行、先于 Agent 请求,Agent 无法通过系统提示词绕过。其二是「转账预算」:策略限制每小时转账不超过 5000 美元,且具备并发感知——即使前两笔 2000 美元的转账尚未返回结果,第三笔 2000 美元的请求也会被拒绝,因为 Dogwood 会把正在评估中的请求一并计入统计,而非仅统计已完成的转账。兼容性方面,任何合法 Cedar 策略同时也是合法 Dogwood 策略,团队无需重写现有规则;参考实现会把时序条件转换为 Cedar 上下文字段,再交由 Cedar 做出授权决策。对通过 AgentCore Gateway 接入的智能体,AWS 可从网关 MCP 清单中的工具自动生成 Dogwood 操作模式,每个工具随即成为策略可引用的动作;网关限流则按 OAuth/IAM 身份覆盖请求量、Token、连接时长三轴。

三、为什么「网关层」是关键:结构优于指令

Dogwood 的部署位置决定其价值:策略在网关层强制执行,Agent 看不到策略逻辑、也无法通过提示词推理绕过——「结构优于指令」,这是 Agent 可靠性工程反复验证的原则。它与近期另一项安全基础设施形成互补:Docker Sandboxes(微 VM 运行时隔离)管的是「Agent 在什么环境里跑」,Dogwood 管的是「Agent 的调用序列允不允许」——前者护住宿主机,后者护住业务语义与合规边界。发布时机同样值得注意:Dogwood 与 Agent Plugins 开放规范(OpenAI、Cursor、GitHub、Microsoft、Vercel 联合 AWS 发布)处于同一时间窗口,AWS 在 Agent 生态标准化上同时卡位两条战线——打包规范与治理语言;而在 OpenAI(入侵 Hugging Face 基础设施)、Anthropic(141006 次网络安全评测中发现 3 起真实越权访问)、Meta(进入第三方系统修改内容)的越权事件接连披露后,企业端对「生产级治理工具」的需求已从观望转为刚需。报道显示,若干金融行业客户已在 Dogwood 正式 GA 前先行试点。

四、客观看:语言的边界与落地成本

几点客观边界需要标注。其一,Dogwood 参考解释器仅用于探索与测试,AWS 明示其尚不适合作为生产级授权引擎——生产采用需自行解决可信时间戳、事件身份验证、字段与动作命名一致性、持久化追踪记录、授权决策记录、租户间历史隔离,以及数据保留策略(工具调用历史可能包含敏感数据);其二,有状态带来成本:策略引擎必须保留并检索事件记录,评估时间可能随历史记录长度增长;其三,覆盖盲区:若 Agent 存在解释器之外的旁路(shell 逃逸、未受监控的侧信道),其行为同样不受 Dogwood 治理——它不会关闭这个洞;其四,开发者社区也提醒,对序列的治理策略比单步规则更难推理,首版策略很可能写错,建议先以报告模式运行、记录本应拦截的序列,再切换为强制执行。总体而言,Dogwood 把智能体授权从「每步检查」推进到「序列治理」,是治理基础设施补齐的关键一环——但它更像早期的 Web 应用防火墙:提供有意义但不完整的一层防护,仍需与沙箱、最小权限与监控共同构成纵深防御。