# @aui-x/prism 中文文档

规范地址：https://npmcn.com/package/%40aui-x/prism/

版本：0\.0\.5
npm 元数据更新时间：2026-03-10T00:57:25.596Z
中文译文更新时间：2026-11-07T04:48:24.650Z
软件包许可：SEE LICENSE IN LICENSE

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

原始 npm 页面：https://www.npmjs.com/package/%40aui-x/prism
原文对照：https://npmcn.com/package/%40aui-x/prism/?lang=original
项目主页：https://auix.dev/

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

- 包体积（解压后）：171 kB，51 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@ai-sdk/provider \>=2\.0\.0，ai \>=6\.0\.0，openai \>=4\.0\.0，@anthropic-ai/sdk \>=0\.30\.0
- 首次发布：2026-02-20T09:26:33.021Z
- 最新版本发布：2026-03-10T00:57:25.467Z
- 近 30 天下载量：15637（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 5 个）

## 中文简介

LLM tracking SDK for auix — AI SDK 中间软件 + 手动追踪

## 安装

```sh
npm install @aui-x/prism
```

也可以使用：`pnpm add @aui-x/prism`、`yarn add @aui-x/prism`、`bun add @aui-x/prism`

## README

# @aix/棱镜

LLM 跟踪 SDK 用于 [亚历克斯](https://auix.dev/) ——用零摩擦来收集LLM痕迹.

支助 [维塞尔 AI SDK](https://sdk.vercel.ai/), (中文(简体) ), [开放AI](https://github.com/openai/openai-node), (中文(简体) ), [安东尼](https://github.com/anthropics/anthropic-sdk-typescript)和人工追踪.

## 安装

```bash
npm install @auix/prism
```

同伴依赖关系( 仅安装您使用的) :

-   `ai` (>= 6.0.0) + `@ai-sdk/provider` (>=2.0.0)-为AI SDK集成
-   `openai` (>=4.0.0)-为OpenAI集成
-   `@anthropic-ai/sdk` (>=0.30.0) – 为人类融合

## 快速启动

### AI SDK(建议)

`prismAISDK` 包住任何AI SDK模型,并自动捕捉到痕迹,符号用法,耐久性,以及工具调用. 它在内部创建了根追踪和返回 `{ model, end }`数字 :

```ts
import { AuixPrism, prismAISDK } from "@auix/prism";
import { openai } from "@ai-sdk/openai";
import { generateText } from "ai";

const tracer = new AuixPrism({ apiKey: "your-api-key" });

const traced = prismAISDK(tracer, openai("gpt-4o"), {
  name: "my-chat",
  tags: ["production"],
  endUserId: "user@example.com",
  metadata: { threadId: "t_123" },
});

const { text, usage } = await generateText({
  model: traced.model,
  prompt: "Hello!",
});

// Token usage is captured automatically from spans — just call end():
await traced.end();

// Or pass explicit values to override:
await traced.end({
  output: text,
  totalTokens: usage.totalTokens,
  inputTokens: usage.inputTokens,
  outputTokens: usage.outputTokens,
});
```

多步工具使用被正确处理——每个LLM调用在根痕下会变成一个子跨,而符号使用会自动相加:

```ts
import { streamText, stepCountIs } from "ai";

const traced = prismAISDK(tracer, openai("gpt-4o"), {
  name: "agent",
  tags: ["chat"],
});

const result = streamText({
  model: traced.model,
  prompt: "What's the weather?",
  tools: { /* ... */ },
  stopWhen: stepCountIs(6),
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}

await traced.end();
```

### 开放AI

`prismOpenAI` 返回跟踪的代理客户端 `chat.completions.create` 电话:

```ts
import { AuixPrism, prismOpenAI } from "@auix/prism";
import OpenAI from "openai";

const tracer = new AuixPrism({ apiKey: "your-api-key" });
const client = prismOpenAI(tracer, new OpenAI(), {
  name: "my-chat",
  tags: ["production"],
});

const response = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
});
```

### 安东尼

`prismAnthropic` 返回跟踪的代理客户端 `messages.create` 电话:

```ts
import { AuixPrism, prismAnthropic } from "@auix/prism";
import Anthropic from "@anthropic-ai/sdk";

const tracer = new AuixPrism({ apiKey: "your-api-key" });
const client = prismAnthropic(tracer, new Anthropic(), {
  name: "my-chat",
  tags: ["production"],
});

const response = await client.messages.create({
  model: "claude-sonnet-4-20250514",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello!" }],
});
```

### 手动追踪

为了充分控制微量结构:

```ts
import { AuixPrism } from "@auix/prism";

const tracer = new AuixPrism({ apiKey: "your-api-key" });

const trace = tracer.startTrace({
  name: "rag-pipeline",
  metadata: { userId: "u_123" },
});

const span = trace.startSpan({
  name: "vector-search",
  type: "retrieval",
  input: { query: "How do I reset my password?" },
});

span.end({ output: { results: 5 }, status: "completed" });

trace.end({ output: "Here's how to reset...", status: "completed" });

await tracer.destroy();
```

## API 密码

### `new AuixPrism(config)`

| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `apiKey` | `string` | _所需经费_ | 您的 auix API 密钥 |
| `baseUrl` | `string` | `"https://api.auix.dev"` | API 终点 |
| `sessionId` | `string` | —— 说 | 在会话下组追踪 |
| `transport` | `(events) => Promise<void>` | —— 说 | 自定义运输( 通过 HTTP) |
| `onFlushError` | `(error) => void` | —— 说 | 重试失败时调用 |

### `prismAISDK(tracer, model, options?)`

回返 `{ model, end }`编辑 `model` 是一个包裹的AI SDK模型。 打电话 `end(opts?)` 在一代完成最终确定根痕后.

| 选项 | 类型 | 说明 |
| --- | --- | --- |
| `name` | `string` | 追踪名称( 模式ID 的默认值) |
| `tags` | `string[]` | 过滤标记 |
| `metadata` | `Record<string, unknown>` | 任意元数据 |
| `endUserId` | `string` | 终端用户标识符 |

### `prismOpenAI(tracer, client, options?)`

返回代理的 OpenAI 客户端 。 与 `prismAISDK` 加号 `parentTraceId` 为了在已有的痕迹下筑巢.

### `prismAnthropic(tracer, client, options?)`

返回代理的 Anthropic 客户端。 与 `prismOpenAI`。 。 。 .

### `tracer.startTrace(options)`

回返a `TraceHandle` 手动追踪.

### `trace.startSpan(options)`

创建一个孩子跨度. `type` 可能会是 `"llm"`, (中文(简体) ), `"tool"`, (中文(简体) ), `"retrieval"`,或 `"custom"`。 。 。 .

### `tracer.destroy()`

Flushes 等待事件,并停止背景计时器. 追踪完毕就叫这个.

## 许可证

专有——见 [自由主义](https://npmcn.com/package/%40aui-x/prism/LICENSE)。 。 。 .

## 常见问题

### @aui-x/prism 是什么？

LLM tracking SDK for auix — AI SDK 中间软件 \+ 手动追踪

### 如何安装 @aui-x/prism？

在项目目录运行 npm install @aui-x/prism，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：ai（\>=6\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aui-x/prism 支持 TypeScript 吗？

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

### @aui-x/prism 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @aui-x/prism 可以商用吗？

@aui-x/prism 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中，请阅读该文件确认可否商用。以上为概括，不构成法律意见，请以许可原文为准。

### @aui-x/prism 的下载量有多少？

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

### @aui-x/prism 还在维护吗？

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

