E2B Skill

E2B 让 AI Agent 在隔离的 Linux microVM 里运行代码、shell 命令和文件操作,几乎完全通过 SDK 使用(Python 用 e2b / e2b-code-interpreter,JS/TS 用 e2b / @e2b/code-interpreter)。最大的坑是新建沙箱默认只有 5 分钟超时,到期后默认动作是直接杀掉而不是暂停,文件系统和内存状态会不可恢复地消失;这份 skill 的每一条陈述目前都还没有用真实 API key 验证过,全部标注为未实测的文档原文,拿到 key 后应先按验证计划复核。

文档版 · 未实测e2bapi.e2b.appAPI Key(E2B_API_KEY,以 e2b_ 开头)Agent 工具更新 2026-09-21
5份 reference
6个易错点
0条无凭证探测
2026-09-21文档抓取
INSTALL · 安装

安装

选你用的 Agent,复制命令。

npx -y skills add fxp/skillify --skill e2b --agent claude-code --yes

装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。

或者让 Agent 自己装

读 https://github.com/fxp/skillify/blob/main/skills/e2b/prompt.md 并照它执行

装对了的标志:references/ 下有 5 份文档。

TRY ASKING · 装好后可以这样问

装好后,可以这样问你的 Agent

这份 Skill 覆盖的典型任务。点一下复制。

CAPABILITIES · 能力清单

5 类能力

每类能力对应一份 reference,Agent 按任务只打开需要的那份。

运行代码与命令

run_code/runCode 结构化代码执行、commands.run() shell 命令、流式输出与后台任务跨进程重连

references/run-code-and-commands.mdsandbox.runCode() / run_code() · sandbox.commands.run() · sandbox.createCodeContext() / create_code_context() · sandbox.commands.connect(pid)

文件系统

sandbox.files 下的读写、批量文件、本地上传下载、预签名 URL、stat 信息与目录监听

references/filesystem.mdsandbox.files.read() / write() · files.write_files() · files.getInfo() · files.watchDir() / watch_dir() · sandbox.uploadUrl() / downloadUrl()

生命周期与计费

状态机、超时与 lifecycle 配置、暂停/恢复、快照与 fork、连续运行时长上限、按秒计费公式

references/lifecycle-and-cost.mdSandbox.create() / connect() / kill() · sandbox.setTimeout() / set_timeout() · sandbox.pause() · sandbox.createSnapshot()

网络

getHost(port) 暴露公网 URL、沙箱内 HTTPS 服务、Host header 伪装、访问限制与出站互联网控制

references/networking.mdsandbox.getHost(port) · network.httpsPorts · network.allowPublicTraffic · network.allowOut / denyOut · allowInternetAccess

报错与限制

SandboxException/SandboxError 异常体系、HTTP 层报错、限流与套餐限制表、GPU 不支持、常见配置报错排查

references/errors-and-limits.mdRateLimitException / RateLimitError · SandboxNotFoundException · FileNotFoundException · ServiceBusyException
FACTS · 当前事实

当前事实

整理自官方文档(抓取于 2026-09-21),还没有用真实凭证验证。

项值
Base URLhttps://api.e2b.app,鉴权头 X-API-Key;大多数工作不需要直接碰它,SDK 会处理
鉴权E2B_API_KEY 环境变量(推荐)或构造函数选项 apiKey/api_key,key 以 e2b_ 开头;SDK 不会读取 .env 文件
最容易选错不存在 @e2b-dev/ 这个 npm scope(那只是 GitHub 组织名);核心沙箱是 pip install e2b / npm install e2b,Code Interpreter 是 pip install e2b-code-interpreter / npm install @e2b/code-interpreter
默认生命周期新建沙箱默认 5 分钟超时(Python timeout 单位秒,JS timeoutMs 单位毫秒),到期动作默认 onTimeout: "kill",不可恢复
计费(vCPU × $0.000014/秒 + RAM_GiB × $0.0000045/秒) × 运行秒数,只在 Running 状态计费,Paused/Killed 都不计费;默认规格 2 vCPU / 512 MiB RAM
GOTCHAS · 易错点

照通用经验写容易错的 6 件事

来自官方文档,还没有用真实凭证验证。

  1. 超时单位随语言而变,默认动作还是毁灭性的。JS/TS 用 timeoutMs(毫秒),Python 用 timeout(秒),不设置时都默认 5 分钟;到期后 onTimeout 默认是 "kill",沙箱和它的文件系统、内存状态会直接消失、无法恢复。
  2. Sandbox.connect() 只会延长超时,永远不会缩短它。新到期时间是 max(当前到期时间, now + 传入的 timeout);一个还剩 20 分钟的沙箱,用默认值 connect 依然停在 20 分钟不变,需要精确(更短)的超时必须显式调用 setTimeout()/set_timeout()。
  3. run_code/runCode 和 commands.run() 的状态持久性正好相反。前者跑在一个持久化的 code context 里,变量和 import 跨调用可见;后者每次调用都是全新进程,上一次 cd 或 export 的环境变量不会带到下一次调用,只有沙箱级别的 envs 和文件系统跨调用持久化。
  4. 后台命令的 stdout/stderr 流只推给发起它的那个进程。之后要用 Sandbox.connect() + commands.connect(pid) 从另一个进程重连收集结果,必须提前把输出重定向到文件(> /home/user/out.log 2>&1);重连后 handle.wait() 不会补发之前流式推送过的行。
  5. Paused 状态不计费,但也永远不会被自动清理。暂停的沙箱会被无限期保留、没有 TTL,真正删除必须显式调用 kill();反过来一个被遗忘、仍在 Running 的沙箱会持续按秒计费并占用并发限额,直到撞上连续运行时长上限或被手动 kill。
  6. 「最大连续运行时长」和沙箱超时是两个不同的限制,不要搞混。超时(默认 5 分钟)管的是空闲沙箱何时被杀/暂停,可随时用 setTimeout() 重置;连续运行时长(Hobby 1 小时、Pro 24 小时)是套餐级别、不可配置的硬上限,即使沙箱一直在活跃工作也无法突破,只有暂停再恢复才会重置这个计时器。
STATUS · 验证状态

验证状态

文档版:整理自官方文档(抓取于 2026-09-21),还没有用真实凭证调用验证。页面和 Skill 里标「文档原文,未实测」的报错与行为都来自文档本身。

有这个平台的沙箱或 API Key?联系我们——补测并做完装与不装的对照测试后,它会升级为「已实测」。