E2B 是什么:给 AI 智能体用的代码沙箱,安装与第一段代码

E2B 沙箱是什么、为什么智能体需要它?按 E2B 官方文档讲清沙箱、模板、暂停与恢复三个概念,JavaScript 和 Python SDK 的安装命令,创建沙箱并在里面执行命令的最小示例,以及让模型生成的代码在沙箱里跑的基本思路和注意事项。

NNathaniel bigo··原创首发·AI 辅助撰写
6 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 其他 账号
本文根据 E2B 官方文档首页整理,资料核对于 2026-10-11。文中代码取自官方页面,没有在本机运行验证。

适用于谁

  • 搜「e2b 是什么」「e2b 沙箱」「e2b sandbox」「e2b sdk」的人;
  • 在做能写代码、跑代码的智能体,发愁「模型生成的代码到底在哪执行」的人;
  • 看到别人的智能体项目依赖里有 e2b,想知道它是干什么的人。

结论先说

  1. E2B 提供隔离的沙箱,让智能体可以安全地执行代码、处理数据、运行工具。
  2. 一个沙箱就是一台按需创建的 Linux 虚拟机,官方的描述是快速、安全,并且可以暂停和恢复。
  3. 用起来就三步:拿到 API Key 并设成环境变量 E2B_API_KEY → 装 SDK(npm i e2b 或 pip install e2b)→ Sandbox.create() 之后在里面执行命令。
  4. 它解决的问题是隔离:模型写的代码不在你的服务器或电脑上跑,出了问题影响不到你的环境。

一、为什么智能体需要沙箱

让模型「写一段代码分析这个 CSV 并画图」,写出来的代码总得有地方执行。几种做法的差别:

在哪执行问题
你的应用服务器上模型生成的代码能读到服务器上的密钥、文件,能访问内网,一段有问题的代码就可能造成事故
用户的电脑上同样的风险落到用户头上,而且环境各不相同
一次性的隔离环境里代码能碰到的只有沙箱里的东西,用完销毁

模型生成的代码应当被当作不可信的代码对待:它可能写错,也可能因为读到了恶意内容而被带偏。沙箱就是第三种做法的现成实现。不少智能体框架的示例里,执行命令的工具背后都是某种沙箱,例如《Vercel AI SDK 是什么》里引用的官方示例。

二、三个核心概念

官方文档首页列的概念:

概念官方的说明
Sandbox(沙箱)为你的智能体按需创建的、快速且安全的 Linux 虚拟机,可以按需暂停和恢复
Template(模板)定义沙箱启动时的环境
Persistence(持久化)暂停沙箱会保存它的文件系统和内存;暂停的沙箱会一直保留,直到你把它终止

模板的用途:你的任务总是需要某些软件包时,把它们做进模板,新沙箱启动时就已经装好,不必每次现装。

暂停与恢复的用途:一个要持续很久、中间有等待的任务(比如等用户确认),可以先把沙箱暂停,回来再接着用,文件和内存状态都在。

三、安装 SDK

JavaScript / TypeScript:

bash
npm i e2b

Python:

bash
pip install e2b

创建沙箱需要 API Key,SDK 从环境变量 E2B_API_KEY 读取。在 E2B 的控制台拿到 Key 后设置环境变量(macOS / Linux 用 export E2B_API_KEY=...,Windows PowerShell 用 $env:E2B_API_KEY = "...")。

四、第一段代码

官方的最小示例,创建一个沙箱并在里面执行一条命令。

Python:

python
from e2b import Sandbox

sandbox = Sandbox.create()  # Needs E2B_API_KEY environment variable
result = sandbox.commands.run('echo "Hello from E2B Sandbox!"')
print(result.stdout)

JavaScript / TypeScript:

javascript
import { Sandbox } from 'e2b'

const sandbox = await Sandbox.create() // Needs E2B_API_KEY environment variable
const result = await sandbox.commands.run('echo "Hello from E2B Sandbox!"')
console.log(result.stdout)
  • Sandbox.create():创建一台新的沙箱虚拟机;
  • sandbox.commands.run(...):在沙箱里执行一条终端命令;
  • result.stdout:命令的标准输出。

这条 echo 是在远端的沙箱里执行的,不是在你的电脑上。

五、接到智能体里:基本思路

把沙箱做成智能体的一个工具:

  1. 定义一个「执行命令」或「运行代码」的工具,参数是模型给出的命令或代码;
  2. 工具的实现里,把这段内容交给沙箱执行;
  3. 把标准输出和报错原样返回给模型;
  4. 模型根据结果决定下一步:修正代码重试,或者给出最终答案。

官方文档里有专门的章节讲怎么把大模型接到沙箱上、让它运行 AI 生成的代码。工具调用的机制见《Claude 工具调用入门》;用框架来组织这个循环,可以看《OpenAI Agents SDK 教程》或《Pydantic AI 是什么》。

六、还能做什么

官方文档首页提到的其他能力:

  • 向沙箱上传文件、从沙箱下载文件,比如把用户的数据文件传进去、把生成的图表取出来;
  • 安装自定义的第三方软件包;
  • 桌面沙箱:给「电脑操作」类智能体用的虚拟 Linux 桌面,智能体可以看到并控制它;
  • 在 GitHub Actions 的 CI/CD 里使用,用于测试、校验和 AI 代码审查。

每一项的具体接口见官方文档的对应章节。

七、注意事项

  • 沙箱隔离的是执行环境,不是你传进去的数据。传进沙箱的文件和密钥,沙箱里的代码都能读到。只传任务需要的东西,不要把生产环境的凭据放进去;
  • 用完要清理。按官方说明,暂停的沙箱会一直保留到你终止它。长期不用的沙箱及时终止,避免不必要的占用;
  • API Key 只放在服务端,不要写进前端代码或提交进仓库;
  • 费用:按官方定价页为准,本文不列数字。

常见问题

Q:和 Docker 容器有什么区别?

按官方的说法,E2B 的沙箱是虚拟机,并且是托管服务:你通过 SDK 按需创建,不用自己维护宿主机。自己用 Docker 搭隔离环境也是常见做法,隔离强度和运维工作由你自己负责。

Q:只能跑 Python 吗?

沙箱是一台 Linux 虚拟机,上面的最小示例执行的是终端命令。能运行什么取决于沙箱环境里装了什么,可以通过模板定制。

Q:ChatGPT、Claude 自带的代码执行和它是一回事吗?

思路相同,都是把模型写的代码放到隔离环境里跑。区别在于那些是产品内置的功能,而 E2B 是给开发者在自己的应用里用的基础设施。

Q:必须用 E2B 才能做会跑代码的智能体吗?

不是。它是这类沙箱服务中的一个,一些模型厂商的 API 也自带代码执行工具。关键是原则:模型生成的代码不要直接在有权限、有数据的环境里执行。

参考资料

  • E2B Documentation(官方文档):https://docs.e2b.dev/

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    MinerU 是什么、怎么用:把 PDF 等文档解析成 Markdown(4.0 的安装、四档解析与命令)

    MinerU 是什么、怎么安装使用?按官方中文 README 讲清 4.0 版本的定位、支持的输入与输出格式、flash / basic / standard / advanced 四档解析各适合什么、pip 安装命令、mineru-kit 与 mineru 两个命令的分工和常用写法,以及从旧版升级要注意什么。

    其他 AI 工具0
  2. 02

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  3. 03

    即梦首尾帧怎么用:两张图生成过渡视频(在哪里、提示词、不能用怎么办)

    即梦首尾帧在哪里、怎么用?本文讲清首尾帧入口、哪些模型支持、两张图的比例要求、过渡提示词怎么写,以及「首尾帧不见了 / 不能用了」「画面跳变」的原因和解决办法。

    其他 AI 工具0
  4. 04

    DeepSeek怎么用:网页版与手机App入门(深度思考、智能搜索、上传文件)

    DeepSeek怎么用?本文从官方入口和登录方式讲起,说清输入框里的「深度思考」「智能搜索」和上传附件各管什么,历史对话怎么改名、置顶、分享和导出,以及手机上使用的注意点。

    其他 AI 工具0
  5. 05

    文心一言网页版怎么用:改名「文心」后的入口、对话与工作任务、PPT生成

    文心一言现在叫什么、网页版入口在哪、怎么用?本文按百度文心官网和 App Store 官方页面讲清「文心」的新入口、对话与工作两种模式、图片生成和帮我写作、任务托管与 AIPPT、知识库和定时任务从哪开始。

    其他 AI 工具0
  6. 06

    Trae 规则与 MCP 配置教程:.trae/rules 四种生效方式、导入 AGENTS.md、添加 MCP Server

    Trae rules 怎么配置、Trae 怎么用 MCP?按 TRAE 官方中文文档讲清全局规则与项目规则的位置、四种生效方式、子目录与多层嵌套、导入 AGENTS.md / CLAUDE.md、提交信息规则,以及从市场添加和手动配置 MCP Server、项目级 mcp.json。

    其他 AI 工具0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~