@bunny-agent/sandbox-sandock

中文文档
0.10.3-beta1发布于 2026/11/07Apache-2.0TypeScriptES Module近 30 天下载 6156

Bunny Agent 的 Sandock 沙盒适配器

中文使用文档
文档目录14 节
  1. 先决条件
  2. 安装
  3. 快速启动
  4. 密钥选项
  5. 用法图案
  6. 1. 最小 (预建图像)
  7. 2. 持久性量
  8. 3. 重新使用现有的沙盒
  9. 与 @ bunny- agent/ sdk 联系
  10. API 密码
  11. 桑多克桑德克( Adapter )
  12. 沙盒手提箱( 返回于 attach() (中文(简体) )
  13. 关于跳过Bootstrap
  14. 许可证

@bunny-agent/ sandbox-sandock (英语)

桑多克沙盒适配器 给邦尼特工 运行 AI 代理 山多克 沙发 远程沙盒(而不是当地或通过E2B/Daytona),有持久性的卷,种子文件上传和快速启动的图像.

先决条件

  • 节点.js 20+
  • Sandock API 密钥 (env:) (中文(简体) ) SANDOCK_API_KEY(中文(简体) )

安装

npm install @bunny-agent/sandbox-sandock

快速启动

import { SandockSandbox } from "@bunny-agent/sandbox-sandock";

const sandbox = new SandockSandbox({
  apiKey: process.env.SANDOCK_API_KEY,
  workdir: "/workspace",
  image: "ghcr.io/vikadata/bunny-agent:latest",
  skipBootstrap: true,
});

密钥选项

选项类型默认说明
apiKey字符串SANDOCK_API_KEYSandock API 密钥
image字符串sandockai/sandock-code:latest容器图像
workdir字符串/workspace沙盒内的工作目录
templatesPath字符串- 说吧本地文件目录以种子工作空间; 内容被上传到附件上的工作目录( 例如工程骨架, 配置)
volumes{ volumeName, volumeMountPath }[][]持久性量; 名称创建或再利用
skipBootstrap布尔虚假如果为真, 跳过运行器安装; 图像必须包含运行器
env记录<字符串,字符串>{}注入沙盒的环境变量
timeout编号30万个运行超时( 毫秒)
sandboxId字符串- 说吧现有沙盒 ID 以重接; 回到失败时创建新文件
name字符串- 说吧沙盒显示名( 如用于 Sandock 仪表板)
keep布尔真实执行后保持沙盒运行

用法图案

1. 最小 (预建图像)

new SandockSandbox({
  apiKey: process.env.SANDOCK_API_KEY,
  image: "ghcr.io/vikadata/bunny-agent:latest",
  skipBootstrap: true,
  workdir: "/workspace",
});

2. 持久性量

new SandockSandbox({
  apiKey: process.env.SANDOCK_API_KEY,
  image: "ghcr.io/vikadata/bunny-agent:latest",
  skipBootstrap: true,
  workdir: "/workspace",
  volumes: [
    { volumeName: "my-workspace", volumeMountPath: "/workspace" },
    { volumeName: "my-session", volumeMountPath: "/root/.claude" },
  ],
});

3. 重新使用现有的沙盒

过 sandboxId 重新连接到一个先前创建的沙盒。 适配器只有在沙盒目前安装时才会重新装入 RUNNING 状态。 如果沙盒被停止、暂停或不复存在, attach() 返回到自动创建新的.

const sandbox = new SandockSandbox({
  apiKey: process.env.SANDOCK_API_KEY,
  image: "ghcr.io/vikadata/bunny-agent:latest",
  skipBootstrap: true,
  workdir: "/workspace",
  sandboxId: "cached-sandbox-id", // from your cache
});

const handle = await sandbox.attach();
// Store handle.getSandboxId() for next request

说明: 适配器不尝试启动被停止的沙盒. 仅 RUNNING 沙盒被重新使用。 这避免出乎意料的冷启动延迟,并确保了连贯的附加经验.

对于web app,缓存 sandboxId 服务器侧(例如有 30-min TTL 的 immerry Map),所以之后请求在没有客户端侧状态的情况下再用同个沙盒. 使用 keep: true (默认)使沙盒在请求之间运行.

与 @ bunny- agent/ sdk 联系

import { createBunnyAgent } from "@bunny-agent/sdk";
import { SandockSandbox } from "@bunny-agent/sandbox-sandock";
import { generateText } from "ai";

const bunnyAgent = createBunnyAgent({
  sandbox: new SandockSandbox({
    apiKey: process.env.SANDOCK_API_KEY,
    workdir: "/workspace",
    image: "ghcr.io/vikadata/bunny-agent:latest",
    skipBootstrap: true,
  }),
  env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },
});

const { text } = await generateText({
  model: bunnyAgent("sonnet"),
  prompt: "Create a hello world program",
});

安装 : npm install @bunny-agent/sandbox-sandock @bunny-agent/sdk ai

API 密码

桑多克桑德克( Adapter )

  • attach() — 创建或再使用沙盒;返回 a SandboxHandle
  • getHandle() —— 如果附加, 返回当前控件, 否则 null

沙盒手提箱( 返回于 attach()(中文(简体) )

  • getSandboxId() 返回沙盒实例 ID
  • getVolumes() - 返回挂载量清单(或 null(中文(简体) )
  • getWorkdir() ——返回工作目录
  • exec(command, opts) 执行命令和流输出
  • upload(files, targetDir) 上传文件到沙盒
  • readFile(filePath) 从沙盒读取文件
  • destroy() - 停止并删除沙盒

关于跳过Bootstrap

  • skipBootstrap: true: 图像已包含 bunny-agent run; 只上传种子文件( 从 templatesPath),无跑道安装. 使用预建的图像 ghcr.io/vikadata/bunny-agent:latest。 。 。 .
  • skipBootstrap: false: 在附件上, 运行 npm install @bunny-agent/runner-cli@latest 内 workdir,然后使用 ${workdir}/node_modules/.bin/bunny-agent run 用于执行.

许可证

阿帕奇 - 2.0

版本与发布记录

@bunny-agent/sandbox-sandock 共发布 115 个版本,首次发布于 2026/04/14;过去 12 个月发布了 115 个版本。

版本发布日期距今
0.10.3-beta1latest2026/11/071 天前
0.10.22026/10/2811 天前
0.10.1-beta.22026/10/2811 天前
0.10.1-beta.12026/10/2712 天前
0.10.0-release.62026/10/2613 天前
0.10.0-release.52026/10/2316 天前

关于 @bunny-agent/sandbox-sandock 的常见问题

@bunny-agent/sandbox-sandock 是什么?

Bunny Agent 的 Sandock 沙盒适配器

如何安装 @bunny-agent/sandbox-sandock?

在项目目录运行 npm install @bunny-agent/sandbox-sandock,或使用 pnpm add / yarn add / bun add。

@bunny-agent/sandbox-sandock 支持 TypeScript 吗?

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

@bunny-agent/sandbox-sandock 支持 ESM 还是 CommonJS?

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

@bunny-agent/sandbox-sandock 可以商用吗?

@bunny-agent/sandbox-sandock 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@bunny-agent/sandbox-sandock 的下载量有多少?

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

@bunny-agent/sandbox-sandock 还在维护吗?

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