E2B让AI Agent安全执行代码

摘要
E2B 是一个开源的安全沙箱基础设施,专门解决一个 AI Agent 绕不开的问题:让大模型生成的代码、操作真实工具的指令,能在一个完全隔离、随时可销毁的环境里跑,而不会碰到宿主机和其他任务的数据。它已经开源三年多,2026 年 6 月累计沙箱启动次数突破 10 亿次,重新成为关注焦点;按官方公开的数据,财富 100 强企业里已经有 94 家注册使用了它的平台。
是什么
给大模型一个“能执行代码、能操作电脑”的能力,最大的风险从来不是模型本身,而是执行环境——AI 生成的代码可能是错的、恶意的,或者只是单纯地失控,一旦直接跑在服务器上,后果很难预料。E2B 的做法是把每一次代码执行都装进一个独立的微虚拟机(microVM)里,用硬件级别的隔离取代“共享容器”这种较弱的隔离方式。
它底层基于 AWS 开源的 Firecracker microVM 运行时做了自研改造,每个沙箱都拥有自己独立的 Linux 内核,两个沙箱之间不共享任何内核代码路径,从根本上避免了内核漏洞横向扩散到其他任务的可能性。为了解决“隔离越强、启动越慢”这个老问题,E2B 采用了预热快照机制:提前启动好一批虚拟机、跑到就绪状态并打一份内存快照,新请求进来时直接从快照恢复,而不是每次都重新走一遍内核启动流程,冷启动时间因此被压缩到大约 150 毫秒左右;再加上 Firecracker microVM 本身每个实例的内存开销只有几 MiB 量级,这也是这套方案能支撑高密度多租户部署的关键。
E2B 由 Vasek Mlejnsky(CEO)和 Tomas Valenta(CTO)创立,两人此前做过一款开发者工具 DevBook,支撑 DevBook 的那套沙箱技术正是后来 E2B 的底座。公司 2025 年 7 月完成了由 Insight Partners 领投的 2100 万美元 A 轮融资,Decibel Partners、Sunflower Capital、KAYA VC 跟投,天使投资人里还有 Docker 前 CEO Scott Johnston。那次融资公告发布时,财富 100 强企业里已经有 88 家注册使用了 E2B;到 2026 年,这个数字涨到了 94 家。2026 年 6 月 3 日,官方宣布累计沙箱启动次数突破 10 亿次,同期 SDK 累计下载量在 33 天里从 5000 万涨到 6000 万,单日峰值接近 43.5 万次。官方公开列出的用户包括 Hugging Face、Perplexity、Manus、Groq、Lindy、LMArena 等。
核心优势
真正的硬件级隔离,而不是“容器级信任”。 传统容器共享宿主机内核,一旦出现内核逃逸漏洞,攻击面会波及同一台机器上的所有容器;E2B 每个沙箱都有独立内核,天然规避了这类风险,这对“要跑不可信、甚至可能是恶意代码”的 AI Agent 场景尤其重要。
冷启动快到可以塞进正常的请求-响应链路里。 大多数微虚拟机方案为了追求隔离性,牺牲的是启动速度;E2B 用预热快照把冷启动做到 150 毫秒量级,意味着可以把“起一个全新沙箱”当成请求处理的一部分,而不需要额外维护一个常驻实例池来规避启动延迟。
三条产品线覆盖了 Agent 最常见的三类执行需求。 基础 Sandbox 解决“跑命令、跑代码”,Code Interpreter 提供类似 Jupyter 单元格式的结构化代码执行结果,Desktop 则更进一步,给 Agent 一个带鼠标、键盘、截图、应用启动能力的真实桌面环境,三者可以按需单独安装,不用为了一个简单的命令执行场景引入整套桌面能力。
开源、可自托管,不锁定单一云。 核心运行时是 Apache 2.0 协议开源,官方也提供基于 Terraform 的自托管方案(e2b-dev/infra 仓库),文档里列出的部署目标包括 AWS、Google Cloud(这两家官方标注为完整支持)、Azure 和普通 Linux 机器,不想用官方云服务的团队可以把整套基础设施搬到自己的账号下。
和容器、Kubernetes 是什么关系
不少人第一反应是拿 E2B 跟容器比、或者好奇能不能用 k8s 管它,这两个问题要分开看。
能不能替代容器? 不是通用替代,而是针对“跑不可信代码”这个特定场景的更强隔离层,跟容器其实是叠加关系,不是二选一。Docker 和 E2B 最近官宣了合作:Docker MCP Gateway 接入 E2B 沙箱后,每个 MCP 工具都以 Docker 容器的形式跑在 E2B 沙箱内部——容器在 E2B 提供的硬件级隔离边界里面继续做它擅长的事,E2B 负责外层隔离,容器负责工具本身的打包和运行。技术上有个限制:Firecracker 不会把虚拟化扩展(/dev/kvm)暴露给自己的 guest,所以没法在 E2B 沙箱里再嵌套一层硬件虚拟化;但普通容器不需要 /dev/kvm,跑 Docker 完全没问题,这正是这次合作用的模式。
有没有类似 k8s 的调度系统?k8s 能不能管 E2B? E2B 自己的生产级调度并不是构建在 Kubernetes 之上的。官方开源的自托管方案用 Terraform 部署在 GCP 上,编排层是 Nomad(调度 API 之类的常规服务,角色类似 k8s 但更轻量)加 Consul(负责服务发现和健康检查);但“在哪台物理机上起哪个 microVM”这种更细粒度的调度,E2B 是自己写了一套专门的调度器来做,托管云服务据称进一步换成了自研调度器。仓库里也带了一份 Kubernetes manifest,但更多是评估用途,官方推荐的生产自托管路径始终是 Nomad + Consul,不是 k8s。换句话说,k8s 可以拿来跑 E2B 控制面那些常规服务,但真正核心的 microVM 调度是自研的,市面上目前没有一个“E2B 专用的 k8s”。
面向人群
- 在做 AI Agent / Code Interpreter 类产品的团队:任何需要“让大模型执行代码”的产品——AI 编程助手、数据分析 Agent、自动化测试 Agent——都需要一个能兜底安全风险的执行环境,E2B 把这块基础设施能力直接封装成了 SDK。
- 需要“计算机使用”(Computer Use)能力的团队:想让 Agent 操作真实的浏览器、桌面应用,而不只是执行命令行,Desktop SDK 提供了现成的鼠标/键盘/截图 API。
- 对数据安全和合规有硬性要求的企业:金融、医疗等对代码执行环境隔离性要求高的行业,独立内核 + 可自托管的组合能满足比普通容器方案更严格的安全审计要求。
- 不想被单一云厂商锁定的团队:自托管方案支持多云和自建机房部署,适合已经有云基础设施、只想接入沙箱能力这一层的团队。
如何使用
第一步:安装 SDK。 按需选择三条产品线里的一个或多个:
# JavaScript / TypeScript
npm i e2b
# Python
pip install e2b
第二步:获取 API Key,并设置环境变量:
E2B_API_KEY=e2b_***
第三步:创建沙箱并执行命令。
from e2b import Sandbox
with Sandbox.create() as sandbox:
result = sandbox.commands.run('echo "Hello from E2B!"')
print(result.stdout) # Hello from E2B!
import Sandbox from 'e2b'
const sandbox = await Sandbox.create()
const result = await sandbox.commands.run('echo "Hello from E2B!"')
console.log(result.stdout) // Hello from E2B!
如果需要结构化的代码执行结果,安装 Code Interpreter SDK(npm i @e2b/code-interpreter / pip install e2b-code-interpreter),用 runCode() / run_code() 直接拿到执行结果:
import { Sandbox } from '@e2b/code-interpreter'
const sandbox = await Sandbox.create()
const execution = await sandbox.runCode('x = 1; x += 1; x')
console.log(execution.text) // 输出 2
如果需要操作真实桌面,安装 Desktop SDK(npm i @e2b/desktop / pip install e2b-desktop):
import { Sandbox } from '@e2b/desktop'
const desktop = await Sandbox.create()
await desktop.launch('google-chrome')
const screenshot = await desktop.screenshot()
如果不想用官方云服务,可以参考 e2b-dev/infra 仓库里的自托管指南,用 Terraform 把整套基础设施部署到自己的 AWS、GCP 账号或者普通 Linux 机器上;官方还维护了一个 Cookbook 仓库,收录了跟不同 LLM、Agent 框架搭配使用的示例代码,遇到具体框架的接入问题可以先去里面找。
项目地址
- 官网:e2b.dev,文档:docs.e2b.dev
- 源码仓库:github.com/e2b-dev/e2b