AWS近日发布了Dogwood——一种开源策略语言及参考解释器,帮助开发者对AI智能体的工具调用序列进行整体治理,而非仅对单次操作进行孤立评估。

AWS同步将Dogwood支持集成至Amazon Bedrock AgentCore Policy,这是一项用于管控智能体可调用工具及调用条件的托管服务。该语言及其参考实现现已以Apache 2.0许可证开源发布。

Dogwood基于Cedar构建。Cedar是已为AgentCore Policy提供支持的开源授权语言,AWS于2025年底将其作为沙箱项目贡献给CNCF。Cedar可判断某用户或智能体是否有权以特定参数调用退款工具。Dogwood在此基础上更进一步,能够将历史事件纳入决策考量——例如某笔退款是否已获审批、智能体在过去一小时内的退款总额,或其此前是否访问过某些信息(这些信息可能限制其联系外部服务)。

AWS团队指出:"单点时刻的决策适用于许多访问控制场景,但当智能体将多个操作组合成较长的工作流时,序列本身就成为团队需要治理的对象。Dogwood为他们提供了一种语言,用于表达针对操作序列的策略,以捕捉前置条件、速率限制和执行顺序等约束。"

在去年的re:Invent大会上,AWS将AgentCore Policy作为大语言模型之外的确定性控制层引入。模型提出工具调用请求,策略引擎随后决定接受或拒绝,从而将模型本身排除在执行环节之外。

AgentCore Gateway位于智能体与工具之间。对于每个请求,服务的策略引擎会评估Cedar规则,这些规则描述了发起请求的主体、请求的操作、目标资源以及工具的输入参数。默认情况下拒绝所有请求,且任何明确的禁止规则始终优先于授权规则。

然而,这些规则只能看到当前请求。对于相同的请求,Cedar始终返回相同的决策,不受历史活动或策略执行顺序的影响。这使Cedar策略更易于分析,但也意味着它无法表达依赖操作序列的策略。

Dogwood新增的能力之一,是能够检查历史工具请求与响应的时序条件。时序条件可以查看某个请求发生之前的情况,以及距今的时间间隔。

AWS以一个股票交易智能体为例说明其工作原理:策略可以规定,智能体只有在过去一小时内、针对相同股票和相同数量的审批工具返回了肯定结果时,才允许执行卖出操作——而该审批是一个独立事件,策略引擎必须在智能体的近期历史记录中找到它。

开发者可以检查某个事件是否发生、统计某时间窗口内的调用次数、统计不同值的数量(如收款方数量),或对数值进行累加(如转账总额)。这些操作基于度量一阶时序逻辑的一个子集——一种用于描述事件随时间变化属性的形式化系统。

并发工具调用会使情况更加复杂。以AWS的示例为例,假设智能体被限制每小时转账不超过5000美元。如果策略仅统计已完成的转账,智能体可能在第一笔转账完成之前连续提交多笔2000美元的请求,从而突破限额——因为在每笔请求被检查时,已完成的转账总额可能仍为零。

Dogwood能够感知上下文,并将所有转账请求(包括正在评估中的请求)纳入统计。在AWS的示例中,即使前两笔转账尚未返回结果,第三笔2000美元的请求也会被拒绝。

对于通过AgentCore Gateway接入的智能体,AWS可以从网关MCP清单中的工具自动生成Dogwood的操作模式,每个工具随即成为策略可引用的操作。

值得注意的是,Dogwood并非取代Cedar,而是对其进行扩展。据AWS介绍,任何现有的Cedar策略同时也是有效的Dogwood策略,团队无需重写现有规则。对于时序策略,Dogwood会将依赖历史的条件转换为Cedar上下文字段;在参考实现中,Dogwood在Cedar做出授权决策之前,先从事件历史中填充该字段。

Dogwood的运行成本高于Cedar,因为它是有状态的——必须保留并检索事件记录,且AWS指出评估时间可能随历史记录的长度而增加。

目前,随附的开源参考解释器仅用于探索和测试该语言,尚不适合作为生产级授权引擎使用。

对于希望立即采用该开源项目的团队,仍有若干注意事项:用户需要提供可信时间戳、对事件进行身份验证、保持字段和操作名称的一致性、持久化存储追踪记录、记录授权决策,并在租户之间隔离历史记录。此外,团队还需制定数据保留策略,因为工具调用历史可能包含敏感数据。

对于使用开源版本的团队,更深层的问题在于:事件历史是否足够完整且可信,能够用于授权决策。

在未来规划方面,AWS计划新增与绝对时间挂钩的规则(例如在午夜重置的配额),以及用于检查预期操作是否最终发生的"活性"属性。AWS还希望将Dogwood的适用范围从单个智能体扩展至多智能体系统,以便在需要时治理智能体间的任务移交和共享锁等场景。

目前,AWS暂不接受直接代码贡献,但表示欢迎"社区就语言设计和未来方向提供反馈"。

Q&A

Q1:Dogwood和Cedar有什么区别?

A:Cedar是一种开源授权语言,只能对单次请求做出决策,相同请求始终返回相同结果,无法感知历史操作。Dogwood在Cedar基础上扩展,增加了时序条件能力,可以检查历史工具调用记录,从而实现基于操作序列的策略治理。现有Cedar策略无需修改,可直接作为Dogwood策略使用。

Q2:Dogwood如何处理AI智能体并发工具调用的限额问题?

A:Dogwood能够将所有正在评估中的请求一并纳入统计,而不仅仅是已完成的请求。例如,当智能体被限制每小时转账不超过5000美元时,即使前两笔2000美元的转账尚未完成,Dogwood也会在第三笔请求提交时将其拒绝,有效防止并发请求绕过限额。

Q3:Dogwood目前的开源版本能直接用于生产环境吗?

A:目前不建议直接用于生产环境。AWS明确指出,当前随附的开源参考解释器仅用于探索和测试语言特性。若要在生产环境中使用,团队还需自行解决可信时间戳、事件身份验证、持久化存储、租户历史隔离、授权决策日志记录以及数据保留策略等问题。

The New Stack