服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- 11 月 6 日的 0.2.1 更新加入 Linux ARM64 支持;10 月 7 日的首发公告将 Box 定义为开发者预览,当前所读资料没有宣布 GA。
- 当前入门页支持 Apple silicon macOS 与 Linux ARM64;macOS 演练要求 macOS 15+,Linux 指向 Amazon Linux 2023 ARM64、glibc 2.34+ 与 libgcc。
- box.toml 定义启动程序及可接触范围,policy.dw 决定受中介操作是否允许;配置中直接授予的文件访问需另外审查。
- 官方 Strands CLI 示例需要 Node 预加载适配,并将 Bedrock HTTP/2 请求改走 HTTP/1.1;网络连通、策略允许和云服务资格仍是不同条件。
先确认系统:新增 Linux 支持不等于任意主机可用
Strands Box 是用于本地 AI 代理的开源沙箱,将操作系统隔离与 Dogwood 策略结合。官方 10 月 7 日公告称其处于开发者预览;11 月 6 日发布的 0.2.1 加入 Linux ARM64 支持。本次核对截至 11 月 11 日,不能把这两条日期合并成今天才首发,也不能据此称它已正式 GA。
当前入门页列出 Apple silicon Mac 和 Linux ARM64。Mac 演练要求 macOS 15 或更新版本;Linux 要使用 Amazon Linux 2023 ARM64,并具备 glibc 2.34 或更新版本及 libgcc。发布包中的主程序和两个辅助程序应来自同一构建、保留在同一目录。
这些资料未给出 Windows、WSL、Intel Mac 或 Linux x86_64 的受支持安装路径,也没有覆盖所有 ARM64 发行版。先确认真正执行代理的主机,不要把另一款代理工具的沙箱支持表套给 Box。
两个文件各管什么:可接触范围与操作许可分开看
box.toml 描述运行哪个程序、工作目录、环境变量、文件范围与出站目标;policy.dw 使用 Dogwood 描述请求规则。操作系统隔离将相关交互引向策略层,让规则能理解 shell、Python、MCP、文件和网络操作。MCP 是代理调用外部工具的连接协议。
入门示例明确指出:设定 workspace 本身不会授予文件权限。另一方面,agent.filesystem 中直接开放给代理自身进程的路径,不会逐次经过相同的策略判断;应连同 policy.dw 一起审查,不能只看到一条拒绝规则就认定所有路径都受它约束。
“语义策略”指根据具体动作及其条件作判断,而不只是放行一个进程或域名。例如,官方展示了要求先通过测试再 git push 的规则,但同时说明该片段并不完整,切换分支等动作仍可能破坏原假设。不要把演示片段当作已覆盖整个开发流程的策略。
出站请求失败:先查客户端有没有真正使用网关
Box 通过出站网关处理智能体的网络流量,并设置 HTTPS_PROXY。当前官方 Strands CLI 教程说明,AWS SDK for JavaScript 会自行建立连接、忽略这个变量;其 Bedrock 调用还使用 HTTP/2。因此,只导出代理环境变量,不能证明模型请求已经按预期经过网关。
教程为这个特定 Node.js 示例提供 proxy-preload.mjs,再通过 node --import 预加载:一方面让连接使用环境代理设置,另一方面将相应 Bedrock HTTP/2 处理器换成 HTTP/1.1 处理器。应按当前完整示例适配,不把这项 Node 示例变更推广成所有 SDK 或所有模型的通用要求。
随后分别核对 net:connect 的目标主机与端口,以及 http:request 的请求规则。示例只开放 bedrock-runtime.us-west-2.amazonaws.com 的 443 连接及对应请求;能连接主机,并不自动代表文件操作、模型调用权限或账号额度也获准。换一个网络出口不会授予模型或账号权益,也不会改变额度、计费或组织政策。
用拒绝记录定位问题,再补最小权限
在自己的无敏感测试项目中,可按官方演练先允许读取 README.md,并尝试追加一行。预期是读取成功、写入被策略拒绝;这是文档中的演示流程,本文没有安装或运行它,也不构成对你的环境的验收。
查看 stderr 中的启动错误,以及 my-box/state/private/telemetry/records.jsonl 中的决策记录。区分 shell:exec、启动外部程序的 shell:spawn、fs:read、fs:write 与网络动作:允许执行一段 shell,不代表其接触的每个文件都已放行。
确认用途后,再为所需项目路径增加写入许可并重新启动 Box;入门页说明策略在每次启动时重新读取。日志中的遥测目标连接或外部程序被拒绝,也可能只是当前策略没有允许它,不能一概归因于代理 IP、服务故障或账号封禁。保留必要拒绝,不为消除错误而整体放开。
移到云端:架构与外层限制也要重新核对
Linux 云部署资料要求 ARM64 运行环境,并要求外层服务允许创建所需命名空间和挂载。补装依赖不能消除云服务对这些操作的限制;容器镜像相同,也不代表本地和目标服务的执行条件相同。
文档明确说原生文件系统策略是 macOS 专用功能,Linux 构建会拒绝启用它的配置。示例中的 Linux capabilities 只解释特定初始化需要,不是可通用于容器的提权清单;不要直接用 root 或全部 capabilities 代替适配。
首发说明承认解释器及协议中介增加了需要信任的代码,缺陷仍可能导致策略被绕过。对云端多租户部署,官方建议再配合每会话独立 MicroVM。成功启动或正常结束,也不能证明取消、超时、强制终止和恢复后都已清理进程及目录;这些结果应在实际服务环境分别验证。
开始前,把模型、区域与费用条件单独列出
Box 的总体设计不绑定某个模型、云或代理框架,但当前 macOS 入门演练具体使用 Homebrew Node.js 22.21+、Strands CLI,以及有权在 Amazon Bedrock us-west-2 使用 Claude Opus 5 的 AWS 账号。框架兼容不等于这些示例资格已对所有账号和地区开放。
教程将真实 Bedrock 凭据留给出站网关注入,代理及盒内工具得到占位值。按来源要求由凭据所有者在自己的终端配置;不要把真实密钥、代理凭据或完整决策日志提交到文章、聊天或公开问题中。
所读 Box 资料未给出一张覆盖模型调用、云计算、存储及流量的统一费用表。开源并不证明整套工作负载免费;在选择模型和运行服务后,另核对应价格与账号条件。先在符合条件的隔离测试环境验证,再决定是否扩大使用范围。
资料来源
常见问题
0.2.1 移除启动 opt-in,是否表示 Box 已经 GA?
不能这样推断。0.2.1 更新列出了移除启动 opt-in 要求,但首发公告明确是开发者预览;本次所读资料没有宣布转为 GA。启动条件变化和产品成熟度是两件事。
可以照着 macOS 教程在 Linux 上完成全部步骤吗?
入门页仅说明第 1 步安装覆盖两种平台,第 2–8 步是 macOS 的 Strands CLI 演练。Linux 应转看官方 EKS、AgentCore 及云部署资料,并核对 ARM64 与实际服务限制。
HTTPS_PROXY 是否说明模型调用全程留在本机?
不说明。这个变量用于把相应出站连接交给网关;演练仍会请求 us-west-2 的 Bedrock 服务。执行隔离、请求路由、模型数据处理地点与保留规则需要分别核对。