[AI/Agent/ToolExecution/沙箱] 概述:AI Agent工具执行环境之沙箱(sandbox)

1 AI Agent的工具执行环境: 沙箱/sandbox

综合对比

方案 隔离机制 特点 典型使用方
传统容器(Docker/runc/Podman) 命名空间+cgroup,共享宿主内核 启动快、兼容最好、生态最成熟,但内核逃逸面大 多数开源 Agent 框架、本地开发
gVisor 用户态内核 Sentry 拦截系统调用 隔离更强,性能降 2~10 倍 Google Cloud Run、Modal
MicroVM(Firecracker/Kata) 独立轻量虚拟机 隔离最强,冷启动约百毫秒级 E2B、云端托管 Agent 沙箱
系统级沙箱(seccomp/Landlock/bwrap/Seatbelt) 内核/OS 权限限制 毫秒级启动、开销极低、细粒度 本地运行的高频短任务 Agent

Docker 是"容器类"沙箱的主流,但主流沙箱不只有 Docker

  • Docker(容器,namespace+cgroup)目前是 Agent 生态里最主流的"代码执行沙箱",尤其开源 Agent 框架和云上 Agent 平台几乎默认容器化。但它只是隔离光谱上的一档,实际按安全强度分四类:

所以准确说:Docker 是"容器类"的主流,但不是唯一主流。云端/托管型 Agent 普遍用 Docker,安全要求高会升级到 gVisor 或 Firecracker;而面向本地高频、短生命周期任务执行的 Agent(如 Claude Code、DeepSeek Harness 这类),更偏好 OS 内核级轻量沙箱,避免 Docker 守护进程和镜像开销。

DeepSeek Harness vs Claude Code vs OpenClaw 沙箱实现对比

维度 DeepSeek Harness (dsh) Claude Code (Anthropic) OpenClaw
沙箱定位 核心能力,默认启用 可选模式(sandbox 模式 / --sandbox 标志),默认宿主机运行+权限审批 默认关闭,需配置 agents.defaults.sandbox 显式开启
核心隔离技术 内核级系统调用沙箱,不用容器:Linux 用 Landlock(自研 C11 landlock-run 启动器,优先),bwrap 降级;macOS 用 Seatbelt;Windows 用 ACL 受限令牌 OS 原语沙箱:Linux/WSL2 用 bubblewrap(namespaces + seccomp-bpf),macOS 用 Seatbelt;另可切换 Docker 沙箱(私有 daemon)跑不可信代码 Docker 容器(默认后端,network/ssh/openshell 可换):每个命令起一个临时容器、执行完即销毁,Gateway 留在宿主机
权限模型 三档:read-only / workspace-write / danger-full-access,fail-closed(加载失败即终止) 细粒度:按文件/域名审批,新域名弹窗确认;/sandbox 模式下可写文件与可达域名白名单 execMode: host/sandbox + execPolicy: allowlist/denylist/ask;默认拦截危险 bind 源(/etc、/proc、/sys、/dev、/root、/boot、Docker socket)
网络控制 随沙箱策略限制(本地沙箱以文件系统为主) 沙箱外 代理 控制出站,域名白名单 + 自定义代理规则 策略层控制出站(OpenShell/NemoClaw 里网络 egress 可热更新)
执行粒度 命令/进程级,毫秒级启动,适配高频短任务 命令级,对 spawn 出的所有子进程全覆盖 每命令一个临时容器,隔离最强、开销最大(镜像拉取+容器生命周期)
可插拔性 沙箱是能力接缝,Docker/MicroVM 可作远程后端插件接入 原生 vs Docker 双路径可选 多后端可配(docker/ssh/openshell),NVIDIA OpenShell 提供独立沙箱运行时
  • 结论
  • DeepSeek Harness:追求"毫秒级 + 零容器开销"的本地内核级沙箱(Landlock 是特色,别家没用),面向高频短任务。
  • Claude Code:同为 OS 原语沙箱(bwrap/Seatbelt),但网络用代理白名单,且保留 Docker 路径应对不可信代码。
  • OpenClaw:三者中唯一默认 Docker 容器化的,隔离最重,每个命令临时起容器即用即弃,默认关闭、需显式开启。

它们分别代表了"内核级轻量隔离"(Harness/Claude)与"容器级重隔离"(OpenClaw)两条路线;
OpenClaw 的 Docker 方案恰是前述所提及的"容器类主流"的典型代表。

案例分析: DeepSeek Harness 的沙箱

  • DeepSeek Harness(dsh,DeepSeek AI 官方开源,MIT,基于 Cordis 的全插件架构)的默认沙箱是 dsh-sandbox-local,按平台选内核级方案:

  • Linux:优先 Landlock(内核系统调用级隔离,通过 native/ 下约 300 行 C11 编写的 landlock-run 启动器实现,有 @deepseek-ai/node-addon-landlock-run 原生插件),bwrap(bubblewrap)作为降级备选

  • macOS:Seatbelt(sandbox-exec)

  • Windows:ACL 受限令牌运行器

  • 未命中时退回"本地默认运行模式"

  • 沙箱分三档权限:read-only / workspace-write / danger-full-access,且采用 fail-closed(失败即关闭)机制,内核不支持或规则加载失败就直接终止。

定位是匹配 Agent 高频短任务的毫秒级启动、极低开销。

  • Docker 并不在它的默认链路里——不过因为"一切皆插件",Docker/MicroVM 可作为远程沙箱能力提供者接入

已有社区实践如接 CubeSandbox、AgentKit 云沙箱。

Y 推荐文献

X 参考文献

posted @ 2026-09-02 18:55  数据知音  阅读(51)  评论(0)    收藏  举报