# @bunny-agent/manager 中文文档

规范地址：https://npmcn.com/package/%40bunny-agent/manager/

版本：0\.10\.3-beta1
npm 元数据更新时间：2026-11-07T00:48:56.991Z
中文译文更新时间：2026-11-08T19:56:44.181Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bunny-agent/manager
原文对照：https://npmcn.com/package/%40bunny-agent/manager/?lang=original
项目主页：https://github.com/vikadata/bunny-agent#readme
源码仓库：https://github.com/vikadata/bunny-agent

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：483 kB，167 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.0\.0
- 运行依赖：0 个
- 首次发布：2026-04-14T06:44:03.455Z
- 最新版本发布：2026-11-07T00:48:56.782Z
- 近 30 天下载量：7870（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：115（近 12 个月 115 个）

## 中文简介

Bunny代理管理器 - 管理沙盒和跑道寿命周期,定义核心接口

## 安装

```sh
npm install @bunny-agent/manager
```

也可以使用：`pnpm add @bunny-agent/manager`、`yarn add @bunny-agent/manager`、`bun add @bunny-agent/manager`

## README

# @bunny-agent/管理员

> ⚠️ **折旧(基于执行的运输)**
> 
> `@bunny-agent/manager` 通过产卵工作 `bunny-agent run` 沙盒内的CLI通过 `exec()`。这一办法被下列因素所取代: **`@bunny-agent/daemon`** ——一个统一的HTTP网关,在沙盒内运行,并在干净的REST API上暴露出同样的能力.
> 
> **偏爱 `createBunnyAgent` 明确 `daemonUrl` 从 `@bunny-agent/sdk`** 当使用 HTTP 守护进程时.
> 
> 此套件仍然支持只提供 `exec()` (E2B,代顿a等),没有计划清除日期.

Bunny Agent的核心管理软件包 - 管理沙盒和跑道生命周期,定义了核心接口.

这个软件包是电线的核心运行时间 **沙盒适配器** +a 键 **运行光谱** 进入 AI SDK UI 流,您可以从您的服务器或 CLI 中消耗.

## 概览

`@bunny-agent/manager` 是一个基础软件包,提供:

-   **兔子探员**: 管理沙箱代理实例的主要类
-   **核心接口**数字 : `SandboxAdapter`, (中文(简体) ), `SandboxHandle`, (中文(简体) ), `RunnerSpec`等 (中文(简体) ).
-   **转写作家**: 记录代理执行的工具( JSONL, 内存, 控制台, 多功能)
-   **类型定义**: 消息、流和沙盒操作的共享类型

此软件包通常被更高层次的软件包用作依赖性,如 `@bunny-agent/sdk` 还有沙盒适配器.

## 安装

```bash
npm install @bunny-agent/manager
```

## 快速启动

### 基本用途

```typescript
import { Bunny Agent } from '@bunny-agent/manager';
import { E2BSandbox } from '@bunny-agent/sandbox-e2b';

const agent = new BunnyAgent({
  sandbox: new E2BSandbox({ apiKey: 'xxx' }),
  runner: {
    model: 'claude-sonnet-4-20250514',
    outputFormat: 'stream',
  },
  env: {
    ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY!,
  },
});

// Stream a task
const stream = await agent.stream({
  messages: [
    { role: 'user', content: 'Create a hello world program' }
  ],
  workspace: {
    path: '/workspace',
  },
});

// Read the stream
const reader = stream.getReader();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  process.stdout.write(value);
}

// Cleanup
await agent.destroy();
```

### 使用 Transcript 日志

```typescript
import { Bunny Agent, JsonlTranscriptWriter } from '@bunny-agent/manager';

const transcriptWriter = new JsonlTranscriptWriter('./transcript.jsonl');

const stream = await agent.stream({
  messages: [{ role: 'user', content: 'Do something' }],
  workspace: { path: '/workspace' },
  transcriptWriter,
});
```

### 上传文件

```typescript
await agent.uploadFiles([
  { path: 'hello.txt', content: 'Hello World!' },
  { path: 'data.json', content: JSON.stringify({ key: 'value' }) },
], '/workspace');
```

## 核心接口

### 沙盒绘图器

沙盒执行必须遵循的接口 :

```typescript
interface SandboxAdapter {
  attach(): Promise<SandboxHandle>;
  getHandle(): SandboxHandle | null;
  getEnv?(): Record<string, string>;
  getWorkdir?(): string;
}
```

### 沙盒手执

与所附沙盒互动的接口 :

```typescript
interface SandboxHandle {
  exec(command: string[], opts?: ExecOptions): AsyncIterable<Uint8Array>;
  upload(files: Array<{ path: string; content: Uint8Array | string }>, targetDir: string): Promise<void>;
  readFile?(filePath: string): Promise<string>;
  runCommand?(command: string): Promise<{ stdout: string; stderr: string; exitCode: number }>;
  destroy(): Promise<void>;
  getWorkdir?(): string;
}
```

### 运行器Spec

跑者在沙盒内执行的规格 :

```typescript
interface RunnerSpec {
  model: string;
  systemPrompt?: string;
  maxTurns?: number;
  allowedTools?: string[];
  outputFormat?: 'stream' | 'json';
}
```

## 转写作家

可用的笔录作者 :

-   **Jsonl TranscriptWriter 语录**: 写入 JSONL 文件
-   **内存标记符Writer**: 在内存中存储
-   **控制台TranscriptWriter**: 日志到控制台
-   **多写字机Writer**: 写给多个作者

```typescript
import { 
  JsonlTranscriptWriter,
  MemoryTranscriptWriter,
  MultiTranscriptWriter 
} from '@bunny-agent/manager';

const transcriptWriter = new MultiTranscriptWriter([
  new JsonlTranscriptWriter('./transcript.jsonl'),
  new ConsoleTranscriptWriter(),
]);
```

## API 参考

### 兔子探员

#### 构造器

```typescript
new BunnyAgent(options: BunnyAgentOptions)
```

**选项 :**

-   `sandbox` (需要): SandboxAdapter 实例
-   `runner` (需要):运行器Spec配置
-   `env`: 沙盒的环境变量

#### 方法

**流( 输入: 流出): 承诺 < 可读结构 >**

将任务通过代理。 返回 AI SDK UI 信件的可读结构.

**上传Files( 文件: ArrayQQ 路径: 字符串; 内容: Uint8Array QQ 字符串QQ, 目标Dir? : 字符串: 保证**

上传文件到代理工作区 .

**毁灭 (): 承诺**

摧毁沙盒并释放资源.

## 所需资源

-   节点.js 20+
-   沙盒适配器(@bunny-agent/sandbox-e2b,@bunny-agent/sandbox-local等) 出自"沙盒适配器"

## 许可证

阿帕奇 - 2.0

## 常见问题

### @bunny-agent/manager 是什么？

Bunny代理管理器 - 管理沙盒和跑道寿命周期,定义核心接口

### 如何安装 @bunny-agent/manager？

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

### @bunny-agent/manager 支持 TypeScript 吗？

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

### @bunny-agent/manager 支持 ESM 还是 CommonJS？

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

### @bunny-agent/manager 需要什么版本的 Node\.js？

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

### @bunny-agent/manager 可以商用吗？

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

### @bunny-agent/manager 的下载量有多少？

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

### @bunny-agent/manager 还在维护吗？

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

