14Sandbox 与执行
Agent 跑 untrusted code,必须 sandbox。常见方案:
Docker(最常见):容器隔离,启动 ~1s。适合 batch agent。Firecracker(AWS Lambda):microVM,启动 ~100ms,隔离强。gVisor:user-space kernel,Google 用,比 container 强,比 VM 轻。原生进程 + chroot:不推荐,逃逸面太大。
文件系统:挂载允许目录,其他 read-only 或不可见。Claude Code 在 macOS 上用 seatbelt 配置 sandbox profile,限制写到 cwd 之外。
超时:每个 tool 单独 timeout 配置。read 30s / bash 60s / network 10s 是合理的初值。命中 timeout 返回 is_error: true,模型决定要不要重试。
并发 vs 串行:read-only 工具默认并发安全。write 工具(edit_file, git_commit)按文件加锁或强制串行。网络白名单:防止 exfiltration——agent 不能把 sandbox 内的数据传到任意外部。
「Docker 就够」的说法已过时。2026 年的隔离梯度:本地 OS 级(macOS Seatbelt / Linux Landlock+seccomp-bpf / Windows AppContainer——Codex 2026 年补齐了原生 Windows 沙箱)→ 容器 → gVisor → microVM(Firecracker 启动约 125ms;E2B、Modal、Daytona 等云沙箱已商品化)→ 独占 VM。选型逻辑 = 信任度 × 启动延迟 × 成本。
Claude Code 侧的新原语:sandbox.network.strictAllowlist(网络白名单)、sandbox.credentials mask 模式(凭证永不进模型 context)。结论不变且更硬:沙箱不要自研——microVM 厂商比你做得好。