# @anvia/client 中文文档

规范地址：https://npmcn.com/package/%40anvia/client/

版本：1\.8\.0
npm 元数据更新时间：2026-11-06T04:18:47.303Z
中文译文更新时间：2026-11-06T15:15:46.489Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：487 kB，27 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@anvia/core ^1\.18\.0，@anvia/durable ^0\.8\.0 \|\| ^0\.9\.0 \|\| ^0\.10\.0 \|\| ^0\.11\.0 \|\| ^0\.12\.0 \|\| ^0\.13\.0 \|\| ^0\.14\.0
- 首次发布：2026-08-16T15:27:14.226Z
- 最新版本发布：2026-11-06T04:18:46.979Z
- 近 30 天下载量：2931（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：39（近 12 个月 39 个）

## 中文简介

框架中立客户端协议,传输,以及安维亚的UI消息状态.

## 安装

```sh
npm install @anvia/client
```

也可以使用：`pnpm add @anvia/client`、`yarn add @anvia/client`、`bun add @anvia/client`

## README

# @anvia/客户端

用框架中性流线协议连接任何前端到安维亚. 此软件包提供 HTTP和直接传输,运行时间验证,以及用于文本,工具和交互的UI消息状态.

## 安装

```sh
pnpm add @anvia/client @anvia/core
```

## 快速启动

设定一个返回 Anvia 客户端流的聊天端点, 如创建的 `@anvia/server`数字 :

```ts
import {
  applyClientStreamEvent,
  createHttpClientTransport,
  messagesToUIMessages,
  type UIMessage,
} from "@anvia/client";
import type { Message } from "@anvia/core/completion";

const transport = createHttpClientTransport({ endpoint: "/api/chat" });
const messages: Message[] = [{ role: "user", content: "Hello!" }];
let uiMessages: readonly UIMessage[] = messagesToUIMessages(messages);

for await (const frame of transport.send({ request: { type: "messages", messages } })) {
  if (frame.type === "stream_event") {
    uiMessages = applyClientStreamEvent(uiMessages, frame.event);
    console.log(uiMessages);
  }
}
```

传输验证了框架、事件顺序和流特性。 发送核心 `Message[]` 页:1 服务器; 保存 `UIMessage[]` 作为应用程序中的演示文稿状态.

## 能力

-   用于JSONL或SSE的HTTP运输,外加用于过程内集成的直接运输.
-   服务器边界上的本地补全和代理事件的适应器 .
-   经验证的请求,事件,帧,以及坚持UI消息.
-   消息转换和减少,包括流化工具参数和生成用法.
-   已键入自定义流数据, Agent 交互,和 HTTP 恢复光标 .

对于反应, `@anvia/react` 通过 `useChat` 财务报告和审定财务报表 `useCompletion`通用JSONL/SSE 阅读器也可从下列网站获取: `@anvia/client/transport` 其他活动合同。 错误 框被跳过并报告到 `onParseError` (或与 `strict: true`),以及 `readSseFrames` 曝光 SSE 事件名称, 最后事件 ID, 并重试提示 .

## 学多点

-   [客户协议指南](https://github.com/anvia-hq/anvia/blob/main/docs/packages/client.md)
-   [服务器响应助手](https://github.com/anvia-hq/anvia/tree/main/packages/server#readme)
-   [反应钩](https://github.com/anvia-hq/anvia/tree/main/packages/react#readme)

## 持久 HTTP 客户端

可选 `@anvia/client/durable` 进口 `DurableClient` 财务报告和审定财务报表 `DurableHttpError`。安装 `@anvia/durable` 用来使用它。 它支持提交、列表、快照、, SSE观察,排队引导,批准响应,再试,取消,以及工具调节. 使用 `client.steer(runId, { prompt: "Focus on recovery" }, { requestId: "correction-123" })` (d) 继续收到收据。 重新使用可选请求ID来复制交付; 观察 `steering_applied` 以确认输入的对话。 指导要求 匹配持久发布(在支持的对等区域内为0.8或更新).

用绝对的构造它 `endpoint`选项 `fetch`, (中文(简体) ), `credentials`静态或 按请求数 `headers`从中恢复 UI 状态 `snapshot(runId)`,然后观察 `stream(runId, { after: snapshot.cursor })`输入记录和事件命令 验证。 重新连接是明确的;中止观察不会取消执行. 这些承诺的进展活动与sid-delta聊天流是分开的.

见 [耐用 HTTP 指南](https://npmcn.com/package/docs/packages/durable.md#http-server-and-client)。 。 。 .

### 聊天UI 传输

可选 `@anvia/client/durable-chat` 进口 `createDurableChatTransport`,哪个 将持久终点调整到 `ClientTransport` 使用的合同 `useChat` 从 `@anvia/react` 编辑 `@anvia/react-ui` 原始的 原始的 原始的 每个聊天会话创建一个传送;代理、会话和 请求身份是住在那里,而不是在单个信息请求中.

```ts
const transport = createDurableChatTransport({ client, agentId, sessionId });
const chat = useChat({ transport });
```

适配器以 `enqueue: true` 默认情况下, 绘制持久日记 事件改为 `anvia.client.v3` 框架、路径对生成它们的运行的交互响应,以及 使用可持久运行的 id 和 顺序 `{ streamId, after }` 简历。 中止订阅 仅解析; 使用 `transport.controller.cancel()`, (中文(简体) ), `retry()`, (中文(简体) ), `resolveTool()` 或者说 `reattach(runId, after)` 明确运行控制。 繁忙的会议被报告为 `DurableBusyError` {\\fn黑体\\fs20\\shad2\\2aH82\\3aH20\\4aH33\\fscx95\\3cH592001\\be1}然后重新行动起来 {\\fn黑体\\fs20\\shad2\\2aH82\\3aH20\\4aH33\\fscx95\\3cH592001\\be1}然后重新行动 客户端历史被丢弃,有利于 耐用记录,所以 `regenerate()` 财务报告和审定财务报表 `reset()` 粗略; 不包含线程列表.

`DurableClient` 还揭露 `submitGraph`, (中文(简体) ), `listGraphs`, (中文(简体) ), `graphSnapshot`, (中文(简体) ), `streamGraph`,以及 `cancelGraph`. 图示载有可变节点/网格和明确的等待理由. 使用每个节点 `runId` 使用现有的反应/重试/和解方法。 图表流 携带 `graphId` 财务报告和审定财务报表 `taskId`; 刷新快照以获取最新的全图状态 .

## 重新开始的世代

重复 `generation_start` 对于未完成的转弯 `message_reset` 在此之前 新内容。 简化器可以清除信件的部件、元数据和生成状态 在维护身份和作用的同时 已完成的转会和其他代理范围不受影响. 更新服务器和前端副本 `@anvia/client` 一起来,所以前端 校验器确认此事件 .

## 常见问题

### @anvia/client 是什么？

框架中立客户端协议,传输,以及安维亚的UI消息状态\.

### 如何安装 @anvia/client？

在项目目录运行 npm install @anvia/client，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@anvia/core（^1\.18\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @anvia/client 支持 TypeScript 吗？

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

### @anvia/client 支持 ESM 还是 CommonJS？

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

### @anvia/client 可以商用吗？

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

### @anvia/client 的下载量有多少？

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

### @anvia/client 还在维护吗？

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

