首页 > 教程资讯 > 教程详情

AWS 开源本地 agent 沙箱 Strands Box:操作系统隔离加 Dogwood 语义策略

AI 与前沿 数码评测汪工 2026-10-09
文章分享

AWS 在 Strands Agents 博客宣布开源本地 AI agent 沙箱 Strands Box,目前为开发者预览版。Box 把操作系统隔离与用 Dogwood 语言编写的语义策略结合起来,让开发者既能限定 agent 可以访问什么,也能限定它在什么条件下可以行动。

语义策略:按工具粒度设规则

据 AWS 博客,Dogwood 是 AWS 今年发布的开源策略语言,上周又开源了本地执行引擎 Dogwood Local Engine。AWS 称,语义策略的价值在于可以按工具粒度设规则,并确定性地执行。博客举的例子有两个:允许 agent 执行 git push,但仅在测试通过时;允许使用支付 API,但每天总额不超过 100 美元。AWS 还称,这类策略与其云端的 AgentCore Policy 是同一套底层技术。

博客给出了两段 Dogwood 策略示例。一段要求 git push 之前必须有一次成功的 npm test(退出状态为 0),且该测试发生在上一次 git add 之后、执行 git push 前的最近 15 分钟内。另一段把 agent 对 AWS MCP 服务器的 tools/call 限制为每小时 60 次。AWS 说明,前一段并不是完整策略,例如 git switch 就可能破坏「只有测过的代码才会提交」的保证。博客也承认这类策略不易读写,并表示未来几个月会重点投入,让策略更容易编写、维护和理解。

工作方式

据 GitHub README,开发者在 box.toml 中配置 agent 的直接访问权限,由宿主操作系统强制执行;在 policy.dw 中编写 Dogwood 规则。Strands Shell、Python 解释器 Monty、出站网关和 MCP 代理会把各自处理的操作交给内嵌的 Dogwood Local Engine 评估。被引擎检查的操作默认拒绝,需要有匹配的 permit 规则才能放行,匹配的 forbid 规则则会覆盖 permit。

这些组件共享事件历史,规则因此可以引用此前的动作和经过的时间。README 举的例子是:通过 Shell 或 Python 读取某个文件之后,网关可以拒绝之后的外发 HTTP 请求。

网关还可以用配置好的 API 凭据或 AWS SigV4 签名认证放行的请求,agent 本身拿不到底层密钥。策略决定以 OTLP JSON 格式记录,默认写入 <box_dir>/private/telemetry/records.jsonl。

README 特别说明,box.toml 里的直接文件系统授权由操作系统强制执行,不产生单独的 Dogwood 决策。如果要对文件操作应用策略,需要通过解释器,并让这些文件不在 agent 的直接授权范围内。

适用范围与限制

AWS 称 Box 不绑定任何模型或 agent 框架,工具直接调用、经 MCP 调用、生成 shell 或 Python 代码的场景都能覆盖,也不绑定 Strands Harness SDK。

预览版目前只支持在 Apple silicon 的 macOS 上本地运行。按 README 的入门指南操作,需要 macOS 15 或更高版本、Node.js 22.21 或更高版本,以及 us-west-2 区域 Amazon Bedrock 上的 Claude Opus 5 访问权限。项目采用 Apache License 2.0。

AWS 自述的取舍

AWS 在博客中承认,Box 需要信任的代码更多,其中包括解释器和协议拦截器这类复杂代码。这些代码用 Rust 编写,并做了测试、模糊测试和验证。但 AWS 同时指出,代码越多,出现漏洞的可能越大,而在这个领域,漏洞可能意味着策略被绕过。对于云端多租户部署,AWS 建议搭配每会话独立的 MicroVM,最简单的方式是在 AgentCore Runtime 中运行 Box。

来源