Agent 代码沙箱怎么选:差别不在「能跑」,在「隔离到哪一层」

选服务端代码执行工具,关键不是支持多少语言,而是三条边界:网络能否出站、状态能活多久、以及谁来为执行付费。
一、四家方案的定位
- OpenRouter 发文比较了 OpenAI、Anthropic、Google 与 OpenRouter 的服务端代码执行工具,语言、网络、持久化与计费各有取舍。
- 前三家的沙箱只服务自家模型;OpenRouter 的沙箱位于路由层,可为任意模型执行命令(
openrouter:shell、openrouter:bash,均为 beta)。
二、真正决定选型的三个维度
- 网络策略:Anthropic 完全禁用出站;OpenAI 与 OpenRouter 默认关闭但可配置 allowlist(OpenRouter 限 80/443 端口、上限 50 个主机名,且容器启动后策略固定);Google 文档未记载。要
pip install,就得放行pypi.org与files.pythonhosted.org。 - 状态生命周期:Anthropic 容器 30 天过期、约 5 分钟空闲 checkpoint,新版本工具支持跨请求保留解释器状态;OpenRouter 文件存于
/workspace/home,可用session_id或container_reference复用容器,空闲 5 分钟休眠(进程与环境变量不还原,文件保留 30 天);OpenAI 通过container_reference复用;Google 仅 30 秒单次执行,无跨请求持久化记载。 - 计费口径:Google 无额外费用(只计 token);Anthropic 每组织每月 1,550 免费小时,超出后 $0.05/容器·小时,每次执行最少计 5 分钟;OpenRouter 按 $0.0001/秒计时,新建或唤醒容器最少 30 秒。同一任务的成本可能差出一个量级。
三、一个可执行的判断顺序
- 先问「要不要联网」:需要装依赖,就只能在可放行 allowlist 的方案里选,Anthropic 直接出局。
- 再问「状态活多久」:一次性计算选 Google 最省;需要多轮复用同一容器,就选支持
container_reference、session_id的方案。 - 最后问「谁来付钱」:高频短任务注意最低计费时长,长会话注意空闲是否计费。
- 补充边界:需要自定义镜像、GPU 或数小时长会话时,四家托管沙箱都不合适,应转向 Modal、Daytona、E2B 这类可自建方案。
四、提醒
- 沙箱只解决「代码在哪跑」,不解决「代码能不能信」。权限最小化与产物审计仍要自己做。
- 该对比来自 OpenRouter 官方文章,包含其自家 beta 工具,选型时应交叉验证。
参考来源
- OpenRouter:《Server-side code execution tools for AI agents, compared》 https://openrouter.ai/blog/insights/server-side-code-execution-tools-for-ai-agents-compared/
延伸阅读:没逐行读过代码就把 TypeScript 搬进 Rust:重点是「验收」而非「能跑」 · 竞购 TDK 磁头业务:AI 数据中心的钱,正一层层压到硬盘最上游