@e2b/convex

中文文档
0.1.1发布于 2026/09/14MITTypeScriptES Module构建来源已验证近 30 天下载 1.6万

Convex 代理应用的 E2B 沙盒

中文使用文档
文档目录5 节
  1. 安装
  2. 运行命令
  3. 一体化
  4. 默认和限制
  5. 状态

@ e2b/ convex

持久性 E2B 软件 用于Convex应用程序和AI代理的沙盒.

@e2b/convex 是一个有小V8兼容的 E2B 客户端的无表 Convex 组件。 它赋予了Convex动作沙盒生命周期,命令,被捆绑的文件操作,预览主机,Convex Agent工具,以及平版AI SDK工具而无需将全节点导向的E2B SDK运入Convex运行时间.

前1.0:在生产使用前根据您的 E2B 模板和网络政策验证软件包.

安装

npm install @e2b/convex
npx convex env set E2B_API_KEY e2b_your_key

在您的 Convex 应用程序中注册组件并绑定该秘密 :

// convex/convex.config.ts
import e2b from "@e2b/convex/convex.config.js";
import { defineApp } from "convex/server";
import { v } from "convex/values";

const app = defineApp({ env: { E2B_API_KEY: v.string() } });
app.use(e2b, { env: { E2B_API_KEY: app.env.E2B_API_KEY } });

export default app;

运行命令

在 Convex 动作中创建客户端, 并用应用程序拥有的识别沙盒 scope 财务报告和审定财务报表 key数字 :

// convex/sandbox.ts
import { E2B } from "@e2b/convex";
import { v } from "convex/values";
import { components } from "./_generated/api";
import { action } from "./_generated/server";

const sandboxes = new E2B(components.e2b, {
  template: "base",
  timeoutMs: 10 * 60_000,
});

export const run = action({
  args: { userId: v.string(), sessionId: v.string(), command: v.string() },
  handler: async (ctx, args) => {
    const identity = { scope: args.userId, key: args.sessionId };
    const sandbox = await sandboxes.getOrCreate(ctx, identity);

    return sandboxes.runCommand(ctx, {
      ...identity,
      sandboxId: sandbox.sandboxId,
      command: args.command,
    });
  },
});

使用相同的范围与密钥重复使用相同的运行或暂停的沙盒。 在平行工作之前解决一次,然后通过 sandboxId 之后的行动.

一体化

  • 最小 API : 生命周期、 shell 命令、文件、目录和预览主机.
  • 顶层代理 : createAgentTools(sandboxes, ...) 从 @e2b/convex/agent 创建有可选审批规则的线性意识工具。 要求数 @convex-dev/agent 财务报告和审定财务报表 ai。 。 。 .
  • AI SDK: (英语) createAiSdkTools(sandboxes, ctx, ...) 从 @e2b/convex/ai 在任何 Convex 动作中创建标准的 AI SDK 工具. 要求数 ai。 。 。 .

核心软件包对两者都没有运行时间依赖性;只为您使用的集成安装.

开始于 正在启动指南,然后使用复制页 烹饪本。完整的本地应用程序 example 包括一个xterm.js终端和一个带有可见工具呼叫的实时代理聊天.

默认和限制

  • 沙盒在超时暂停,通过命名空间的 E2B 元数据被重新发现. 暂停的沙盒上的任何操作都会恢复它,从而重新开始计费.
  • 每个操作先解决沙盒(getInfo + 键 connect,或元数据列表 sandboxId 大约每通电话增加一次.
  • 范围和关键值在输入E2B元数据之前被散列.
  • 指令输出默认为每流32 KiB.
  • 命令输出和单个文件读取被封为 1 MiB.
  • 文件读取默认为64 KiB;写作被封为4 MiB.
  • 文件工具仅限 /home/user 财务报告和审定财务报表 /tmp 除非另有配置.
  • getHost 除非明确允许,否则不接触代理人.
  • 每个E2B请求都有标记 e2b-convex/<version> 用于整合归属.

见 警卫, (中文(简体) ), 业务,以及 结构 在部署执行不可信指令的代理人之前.

状态

该套件使用E2B的公用API,并仅包括组件需要的Process和Filesystem协议描述符. 被钉住 e2b 软件包是一个只开发的协议源。 CI 拒绝在已发射的 Convex 运行时间中输入节点内置或全SDK 和用于协议漂移的预定实时测试表 .

麻省理工学院

版本与发布记录

@e2b/convex 共发布 2 个版本,首次发布于 2026/09/14;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.1latest2026/09/141 个月前
0.1.02026/09/141 个月前

关于 @e2b/convex 的常见问题

@e2b/convex 是什么?

Convex 代理应用的 E2B 沙盒

如何安装 @e2b/convex?

在项目目录运行 npm install @e2b/convex,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:convex(^1.45.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@e2b/convex 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@e2b/convex 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@e2b/convex 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@e2b/convex 可以商用吗?

@e2b/convex 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@e2b/convex 的下载量有多少?

根据 npm 官方下载统计,@e2b/convex 在 2026/10/13 – 2026/11/11 这 30 天内被下载 16,406 次,日均约 547 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@e2b/convex 还在维护吗?

最新版本 0.1.1 发布于 2026/09/14(1 个月前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/09/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。