# SDK

用 Beeuni Computer 为你的产品提供 Agent 后端。

Canonical page: https://beeuni.ai/docs/zh/sdk

通过 `@beeuni/sdk` 管理项目、运行 Agent 会话并连接工具。

## 安装

```bash
npm install @beeuni/sdk
```

## 创建客户端

在 **Account → Tokens** 中创建 API 密钥。服务端 API 密钥应保存在服务端。

```ts
import { createBeeuni } from '@beeuni/sdk';

const beeuni = createBeeuni({
  backendUrl: 'https://api.beeuni.ai/v1',
  getToken: async () => process.env.BEEUNI_API_KEY ?? null,
});

const projects = await beeuni.projects.list();
```

SDK 每次请求都会调用 `getToken`。令牌存储与刷新由你的应用管理，详见 [身份认证](/docs/zh/sdk/auth)。

## 调用 Connector

查找项目中可用的工具，再查看工具的输入参数结构。连接凭据由 Beeuni 管理。

将 `BEEUNI_PROJECT_ID` 设置为 API key 有权访问的已有项目 ID。

```ts
const projectId = process.env.BEEUNI_PROJECT_ID!;
const connectors = beeuni.project(projectId).connectors;

console.log(await connectors.catalog());
console.log(await connectors.search('search email'));
```

将 `toolName` 替换为搜索返回的工具名，并按其输入参数结构填写 `args`。调用需要已授权的连接及对应工具权限。

```ts
const toolName = 'your_connector.your_action';
console.log(await connectors.describe(toolName));

const args = {};
const result = await connectors.call(toolName, args);
console.log(result);
```

## 启动第一个会话

```ts
const created = await beeuni.project(projectId).sessions.create({
  name: 'My first SDK session',
});
const session = beeuni.session(projectId, created.session_id);

await session.ensureReady();
await session.send('Describe your capabilities in one paragraph.');
```

`ensureReady()` 启动或恢复会话，并等待就绪。未指定覆盖参数时，`send()` 使用项目已配置的模型和 Agent。运行会话会消耗额度。

接收事件并读取回复见 [完整示例](/docs/zh/sdk/example)。React 界面可使用 [React hooks](/docs/zh/sdk/react)。

## 指南

- [使用 Beeuni 登录](/docs/zh/sdk/sign-in)
- [完整示例](/docs/zh/sdk/example)
- [身份认证](/docs/zh/sdk/auth)
- [会话](/docs/zh/sdk/sessions)
- [Apps](/docs/zh/sdk/apps)
- [React Hooks](/docs/zh/sdk/react)
- [API 参考](/docs/zh/sdk/reference)
