# @dialt/sdk 中文文档

规范地址：https://npmcn.com/package/%40dialt/sdk/

版本：0\.66\.0
npm 元数据更新时间：2026-11-04T15:57:02.311Z
中文译文更新时间：2026-11-12T06:40:09.590Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dialt/sdk
原文对照：https://npmcn.com/package/%40dialt/sdk/?lang=original
项目主页：https://dialt.com/docs/api/browser/
源码仓库：https://github.com/Dialt-AI/dialt

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

- 包体积（解压后）：1.3 MB，43 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：2 个
- 首次发布：2026-09-01T21:56:29.238Z
- 最新版本发布：2026-11-04T15:57:02.135Z
- 近 30 天下载量：3155（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：46（近 12 个月 46 个）

## 中文简介

用于 Dialt 实时和 HTTP API 的 TypeScript 和 JavaScript SDK

## 安装

```sh
npm install @dialt/sdk
```

也可以使用：`pnpm add @dialt/sdk`、`yarn add @dialt/sdk`、`bun add @dialt/sdk`

## README

# @ 拨号/ sdk

预算选择语音会话;文本会话使用快或智能.

公共级别是预算、快速(默认)和智能。 设定 `mode: { kind: 'dialt', instructions: 'Help callers.', brain: 'budget' }` 在浏览器或预算节点中以3.33分/分(2分/小时)进行快速推理. 它唯一的分级限制是6个符合条件的股票声音,由服务器执行. 见 [预算](https://dialt.com/docs/api/websocket/#budget). 遗产 `capacity: 'spot'` 财务报告和审定财务报表 `spot_fallback` 的兼容性字段; 新呼叫从不使用已付回扣.

0.50.0版本增加了一等的TypeScript声明,一个无头的Node.js实时进入点和一个生成的HTTP客户端. 0.49.0版本制作 `mode.instructions` 需要:代理的角色只来自您的指示。 读取 [移徙指南](https://dialt.com/docs/api/migration/) 升级前.

用于Dialt的TypeScript和JavaScript SDK. 一个软件包提供浏览器实时,无头节点.js实时和生成的HTTP API客户端.

## 安装

```sh
npm install @dialt/sdk
```

通过您的应用程序构建使用已安装软件包 。 不要在其中显示一个持续的 API 密钥 浏览器 JavaScript.

峡谷 [脚本 SDK 指南](https://dialt.com/docs/api/browser/) 覆盖后端证书 路由, AudioWorklet 资产, 麦克风寿命周期, 输入选择, 事件, 工具, 再连接, 文本模式,节点.js和HTTP操作. 这个 [WebSocket 指南](https://dialt.com/docs/api/websocket/) 记录电线协议.

## 实时浏览器

根导出和 `@dialt/sdk/browser` 等同起来。 他们拥有浏览器麦克风捕获,回声取消和回放.

实验助理中断使用 `mode.assistant_interruptions: 'off' | 'pauses' | 'speech'`,默认为 `'off'`。在新的单语语音会话上启用一个模式,并提供说明助手应何时中断的指示。 见 [助理中断](https://dialt.com/docs/api/websocket/#assistant-interruptions) 用于同口生后继限制,声学驳船保护和恢复行为. Node.js使用相同的模式字段.

每届会议 `mode.instructions`:客户授权的开发者关于应用角色,目标,知识,政策和任务行为的指示. Dialt的平台迅速结合了平台规则,选择了语音指导,并调用事实. `new DialtClient()` 当指令缺失或空白时丢出, 服务器拒绝这样开始 `missing_instructions`。 。 。 .

`mode.voice` 选择带有默认发音/发音和相接语音指导的合成身份; 3; `mode.multilingual` 选择试验性多语言指导。 既不选择应用程序角色 。 今天没有独立的客户风格,口音,交付或微调控制. 通过生成的文本,快速引导措辞和交付;综合接收该文本和语音/设置,而不是集合的系统即时发送。 开发者指令与平台内容共享已组装的系统信息,因此意向性所有权并不能保证模型服从. 见 [即时所有权和控制权限制](https://dialt.com/docs/api/websocket/#instructions)。 。 。 .

```js
const client = new DialtClient({
  apiKey: credential.api_key,
  sessionId: credential.session_id,
  mode: {
    kind: 'dialt',
    instructions: 'You are a helpful voice assistant on a phone call. If a request is missing a key detail, ask one concise clarifying question.',
  },
});
```

## 实时节点.js

Node.js会话是无头的: 您的应用程序发送 16 kHz 单声道并消耗助理 PCM `audio` 事件。 设定 `outputSampleRate` 至 8000, 16,000( 默认值) 或 24000; 每个音频事件报告速度为 `detail.sr`。它只支持WebSocket的实时操作,不主张麦克风、扬声器、回声取消器或WebRTC的执行.

```ts
import { DialtSession } from '@dialt/sdk/node';

const session = new DialtSession({
  apiKey: credential.api_key,
  sessionId: credential.session_id,
  outputSampleRate: 24000,
  mode: { kind: 'dialt', instructions: 'Help callers with their orders.' },
});

session.addEventListener('audio', ({ detail }) => {
  if (detail.samples) play(detail.samples);
});
await session.connect();
await session.streamAudio(inputPcm, { chunkMs: 20 });
```

`session.nowMs()` 返回会话的单音节时钟。 对于客户拥有的回合边界,设置 `mode.turn_detection` 改为 `client`发送声音,然后呼叫 `session.finishInputTurn()`。 。 。 . `session.sendClientEvent()` 发送其他文件 `client_event` 控制系统.

## HTTP API 密码

`@dialt/sdk/http` 由 Dialt 的 OpenAPI 合同生成。 仅在信任的后端使用持续的 API 密钥 .

```ts
import { createClient, listSessions } from '@dialt/sdk/http';

const http = createClient({ auth: process.env.DIALT_API_KEY });
const { data, error } = await listSessions({ client: http, query: { limit: 50 } });
```

对于确认的同期代理互换,呼叫 `await client.handoffAgent({instructions, tools, voice?, context?, operationId?})`. SDK 软件 生成 `operationId` 省略时; 它只与此活请求相关, 而不是重试 符号 。 它解决最终应用或拒绝的确认(可选队列保存) ),并仅在应用程序之后更新再连接重播状态。 在别人面前等待 模式设置器。 在超时或断开时,结果不确定,SDK不重试.

对于主机更新, `await client.injectContext(text, { role: 'context', reply: true })` 忙碌时立即附加上下文 。 致谢 `accepted: true`, (中文(简体) ), `reply_started: false`,以及 `queued: true` 表示回复等待下一个闲置边界. 等待更新将合并为一个回复 。 保持不变 `messageId` 重试时的有效载荷 丢失的确认; 重放的收据描述原始接受。 重置、 转移 拆分和会话结束取消等待的答复 。 用户角色输入保留其繁忙的拒绝.

`client.setMicEnabled(false)` 打开当前和未来SDK拥有的麦克风音轨而不重启设备. 设置默认启用并持续到 `startMic()` 财务报告和审定财务报表 `stopMic()`,输入-设备倒置,获取已经在进行中的获取并重新连接到 `setMicEnabled(true)` 名为.

在Apache -2.0的许可.

### 政策指导

定义每条规则一次 `mode.policy` 与 `id`, (中文(简体) ), `when`,以及 `do`数字 :

```json
{"include_instructions": true, "background_guidance": true,
 "rules": [{"id": "supervisor", "when": "The caller requests a supervisor.",
            "do": "Call request_supervisor and explain the tool result to the caller."}]}
```

两种开关都默认为真并独立工作. 通常申报和处理该工具; 现有许可检查仍然适用。 背景检查悄悄地输入关于 被审查的呼叫者或助理转身时没有要求其他答复或执行工具. 源码修订、旗帜更新/检索、出错和完成事件均通过 普通事件界面。 交货不是代理人遵守规定的证据.

政策规则的使用 `id`, (中文(简体) ), `when` 财务报告和审定财务报表 `do`; 遗留动作配置被拒绝. 见 [政策合同](https://github.com/dialt-ai/dialt/blob/main/docs/policy-agent.md)。 。 。 .

语音选择是可选的,并使用来自 `GET /v1/voices`明确的声音优先于节省下来的偏好,然后是美国女性(`us_female`)是共享默认值。 语音线路独立于Dialt Fast或Dialt Smart. 爱尔兰男性保持稳定的钥匙 `classic`,和电路(`circuit`仍可选择. 区域关键是 `us_female`, (中文(简体) ), `us_male`, (中文(简体) ), `british_male`, (中文(简体) ), `british_female`, (中文(简体) ), `mexican_female` 财务报告和审定财务报表 `brazilian_female`英国女性和墨西哥女性西班牙女性保留了带有新语言身份的钥匙. `southern_us_female` 被接受的别名是: `us_female`将口音从美国南部改为美国通用英语. `brazilian_male` 被接受的别名是: `brazilian_female`包括女性自我参考。 异名作为重复的拾取选项不存在;在新集成中使用犬形键. 客户语音调节和语音创建/删除被移除. 以 stock 键替换已保存的有条件的语音密钥 `GET /v1/voices`,通过 `listVoices` 内 `@dialt/sdk/http`续会除非明确改变,否则保留其确认的股票语音身份。 爱尔兰人Male,Chime,Servo,Circuit,阿拉伯语声音和临时Hinglish Male保留了自己的身份. 见 [目录和移徙指南](https://dialt.com/docs/api/websocket/#voice-catalogue)。 。 。 . 本地拒绝空密钥; 未知、 已退休或无法使用的密钥返回服务器的 不可重试 `invalid_voice` 错误。 一个被拒绝的会中开关离开确认 语音不变,包括重新连接。 必须明确更换已退休的密钥.

## 常见问题

### @dialt/sdk 是什么？

用于 Dialt 实时和 HTTP API 的 TypeScript 和 JavaScript SDK

### 如何安装 @dialt/sdk？

在项目目录运行 npm install @dialt/sdk，或使用 pnpm add / yarn add / bun add。

### @dialt/sdk 支持 TypeScript 吗？

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

### @dialt/sdk 支持 ESM 还是 CommonJS？

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

### @dialt/sdk 需要什么版本的 Node\.js？

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

### @dialt/sdk 可以商用吗？

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

### @dialt/sdk 的下载量有多少？

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

### @dialt/sdk 还在维护吗？

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

