# @corbits/system-one 中文文档

规范地址：https://npmcn.com/package/%40corbits/system-one/

版本：0\.4\.0
npm 元数据更新时间：2026-10-27T04:35:52.240Z
中文译文更新时间：2026-11-10T18:42:52.828Z
软件包许可：LGPL-2\.1-only

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

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

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

- 包体积（解压后）：159 kB，25 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：1 个
- peer 依赖：@intx/types ^0\.5\.0，@intx/inference ^0\.5\.0
- 首次发布：2026-09-25T05:08:31.873Z
- 最新版本发布：2026-10-27T04:35:51.998Z
- 近 30 天下载量：4950（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

System One(Jev-class)型号的打入决定评价客户端:arktype问答计划,有网关覆盖的端点配置,以及出站/倒站语义.

## 安装

```sh
npm install @corbits/system-one
```

也可以使用：`pnpm add @corbits/system-one`、`yarn add @corbits/system-one`、`bun add @corbits/system-one`

## README

# @c轨道/系统一

从TypeSafe的Jev模型中对JSON状态进行打出选择,分数和是/否决定,作为验证结果或打出倒数返回. 轨道和交流剂的推论提供者:登记为 `@intx/inference` 适配器,也可以独立操作 `evaluate()`。 。 。 .

## 为什么 @c轨道/系统一?

1.  **输入决定,而不是自由文本.** 你用ID发送问题;你得到每个ID一个经过验证的决定,有概率和信心. 没有快速解析 .
2.  **失败是数据.** 缺少密钥、 超时、 HTTP 出错或坏身体返回 a `FallbackResult` 带有 `reason`,所以一个门可以失败 关闭没有 `try`。只有无效的调用输入.
3.  **一个电话,很多问题.** 列表中的每个问题都会在一个POST中出场,以1.5的默认超时为界.

它对照问题评价结构状态。 对于开放式聊天完成,请使用一般推论提供者,例如 [`@corbits/openai-responses`](https://github.com/corbitsdev/corbits-openai-responses)。 。 。 .

## 安装

```bash
bun add @corbits/system-one @intx/inference@^0.4.0 @intx/types@^0.4.0
```

运行在 Bun QQ 1.2 或 Node QQ 24.

在发布前消耗一个精确的 Git 承诺, 启用包的 源条件, 因为 Git 依赖性不运行 `prepack`数字 :

```bash
bun add github:corbitsdev/corbits-system-one#<commit>
bun --conditions=corbits-system-one-src your-script.ts
```

已出版的消费者继续使用 `dist` 默认输入.

## 快速启动

需求 `TYPESAFE_API_KEY` 设置.

```ts
import { evaluate } from "@corbits/system-one";

const result = await evaluate({
  state: { action: "deploy", env: "production" },
  questions: [
    {
      id: "escalate",
      type: "boolean",
      instructions: "Must this request be escalated for human approval?",
    },
  ],
});

console.log(result.fallback ? result.reason : result.decisions);
```

如果成功,每个问题都有一个决定,或者失败的后退原因:

```ts
[{ id: "escalate", type: "noul", noul: 0.91 }];
```

布尔问题回答如下: `noul`,从0到1的概率,答案是肯定的.

## 合适的话

[互换](https://github.com/faremeter/interchange) 管理AI代理作为主要负责人(持有自己身份、授权和证书的账户)。 轨道包增加了一个代理产品需要的周围.

-   **运行于 :** 或任何过程. `evaluate()` 不需要交换运行时间.
-   **插入到 :** 页:1 [`@intx/inference`](https://github.com/faremeter/interchange/tree/main/packages/inference) 适配器登记册,作为 `corbits-system-one` 提供方编号.
-   **与 :** [`@corbits/openai-responses`](https://github.com/corbitsdev/corbits-openai-responses) 财务报告和审定财务报表 [`@corbits/ollama-adapter`](https://github.com/corbitsdev/corbits-ollama-adapter)其他的轨道推论提供者.

## 参考文献

| 导出 | 说明 |
| --- | --- |
| `evaluate(input, options?)` | 运行一个评价。 回返 `EvaluateResult`:决定或决定 `FallbackResult`。 。 。 . |
| `systemOne(input, options?)` | 关键决定。 回返 `answers` 由问名,或同倒回. |
| `choice`, (中文(简体) ), `noul`, (中文(简体) ), `score`, (中文(简体) ), `box` | 构建一个按键问题 . `box` 定位一个区域并需要模型 `jev-preview`。 。 。 . |
| `image`, (中文(简体) ), `Image.fromBase64` | PNG 或 JPEG 字节, a `Blob`,或基数64. 其他格式在发送前被拒绝. |
| `withAssets` | 标记这样插出图像的模板。 还有 `withAssets.join`。 。 。 . |
| `createSystemOneAdapter(config?)` | 回返a `ProviderAdapter` 页:1 `runInference`。 。 。 . `config` 是一个 `EvaluateConfig`。 。 。 . |
| `createSystemOneAdapterFactory` | 互换 `AdapterFactory` 页:1 `SIDECAR_ADAPTER_MANIFEST`{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}用点夸张的语气. |
| `SYSTEM_ONE_PROVIDER` | 这个 `"corbits-system-one"` 提供方编号. |
| `DEFAULT_TIMEOUT_MS` | `1500`默认值 `timeoutMs`。 。 。 . |
| `SystemOneError` | 丢入无效输入或 a `custom` 无终点 `url`。 。 。 . |
| `SystemOneTelemetryEvent` | 传递到的事件的图表和类型 `onTelemetry`。 。 。 . |
| `EvaluateOptions`, (中文(简体) ), `EvaluateDeps` | 类型 `options`数字 : `onTelemetry`,以及 `deps: { fetch, scheduler }`。 。 。 . |

`Question`, (中文(简体) ), `QuestionList`, (中文(简体) ), `Decision`, (中文(简体) ), `EvaluateInput`, (中文(简体) ), `EvaluateConfig`, (中文(简体) ), `EndpointConfig`, (中文(简体) ), `EvaluateResult` 财务报告和审定财务报表 `FallbackResult` 导出为方舟型计划和类型.

### 问 题

| `type` | 字段 | 决策领域 |
| --- | --- | --- |
| `choice` | `instructions`, (中文(简体) ), `criteria` (可选名称 ) `null`, 1–255 选项) | `choice`, (中文(简体) ), `probabilities`, (中文(简体) ), `confidence` |
| `score` | `instructions`, (中文(简体) ), `criteria` (2至10个说明) | `score`, (中文(简体) ), `legend`, (中文(简体) ), `probabilities`, (中文(简体) ), `confidence` |
| `boolean` | `instructions`选项 `criteria: { true?, false? }` | `noul` |
| `noul` | 与 `boolean` | `noul` |
| `box` | `instructions` 说明要找到什么。 使用模式 `jev-preview`。 。 。 . | `box` (单位:千美元)`top`, (中文(简体) ), `bottom`, (中文(简体) ), `left`, (中文(简体) ), `right` 作为分数, `confidence` |

每个问题都有 `id`在列表中独一无二. `box` 外缘 `[0, 1]` 拒绝.

### 密钥问题

`systemOne` 使用相同的状态和记录 问题建立与 `choice`, (中文(简体) ), `noul`, (中文(简体) ), `score`,以及 `box`。名称是答案键。 这些帮助者汇编到列表中 `evaluate` 已经发送。 同样的倒计时理由也适用,这些失败是不会发生的。 帮助者也从 `@corbits/system-one/decisions`。 。 。 .

```ts
import { choice, noul, score, systemOne } from "@corbits/system-one";

const result = await systemOne({
  state: { document: "I was charged twice." },
  questions: {
    category: choice("What is this?", { billing: null, technical: null }),
    escalate: noul("Must this be escalated?"),
    severity: score("How severe?", ["none", "cosmetic", "unusable"]),
  },
});
```

关于成功,请阅读 `result.answers.category.choice` (单位:千美元) `probabilities` 财务报告和审定财务报表 `confidence`, (中文(简体) ), `result.answers.escalate.noul`,以及 `result.answers.severity.score`。 。 。 .

`image()` 接受一个 `Blob` 或者说 `Uint8Array`。 。 。 . `Image.fromBase64()` 接受 base64 文件字节。 只有PNG和JPEG被发送. 将图像放入 `state`,指示,或标准,或插入 `withAssets` (和 `withAssets.join` 名单。 普通模板字符串中的图像在请求前被拒绝. `assets` 将名称映射到图像中, 用于平整字符串; 每个名称必须在请求中显示为自己的符号 。 任何图像的请求是 `multipart/form-data` 发送 `TypeSafe-Danger-Zone-Images: true`否则尸体就留下JSON.

```ts
import { box, image, systemOne, withAssets } from "@corbits/system-one";

const photo = image(pngBytes);
const result = await systemOne({
  state: withAssets`Returned item: ${photo}`,
  questions: { damage: box("The damaged area") },
  model: "jev-preview",
});
```

`providerOptions.systemOne.questions` 接受此按键记录以及提问列表.

### 配置

`input.config` 页:1 `evaluate`,或参数为 `createSystemOneAdapter`数字 :

| 外地 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `endpoint` | `EndpointConfig` | `{ kind: "official" }` | `official`, (中文(简体) ), `gateway`,或 `custom` 带有 `url`。每个选择 `model`。 。 。 . `custom` 可能设定 `auth: "none"`。 。 。 . |
| `timeoutMs` | `number` | `1500` | 整个来回的路程都要开着. |
| `apiKey` | `string` | 环境状况 | 覆盖环境密钥. |

### 端点和密钥

| `kind` | 網址 | 默认模式 | 环境钥匙 |
| --- | --- | --- | --- |
| `official` | `https://api.typesafe.ai/v1/systemone` | `jev-latest` | `TYPESAFE_API_KEY` |
| `gateway` | `https://ai-gateway.vercel.sh/typesafe/v1/systemone` | `typesafe-ai/jev` | `AI_GATEWAY_API_KEY`,则 `VERCEL_OIDC_TOKEN` |
| `custom` | `url` | `typesafe-ai/jev` | `SYSTEM_ONE_API_KEY`,除非 `auth: "none"` |

`SYSTEM_ONE_API_KEY` 也是每个端点上支持的别名,在端点自己的密钥后读取. 自定义终点 `auth: "none"` 不需要密钥,也不发送 `Authorization`官方和网关总是需要钥匙。 任何其他 `auth` 值是无效的输入并丢出.

### 退缩原因

| `reason` | 何时 |
| --- | --- |
| `no-key` | 无密钥 `apiKey` 或环境,终点不是习惯的 `auth: "none"`未发出请求. |
| `timeout` | 包括尸体在内的往返旅行超过 `timeoutMs`。 。 。 . |
| `network` | 请求在答复前失败. |
| `http-error` | 非-2xx回应. `httpStatus` 保持状态. |
| `parse-error` | 尸体不是JSON或未验证. |

`detail` 带有基本信息.

## 使用互换

将适配器注册到 `SYSTEM_ONE_PROVIDER` 并传递每个呼叫中的问题 `providerOptions.systemOne` (单位:千美元)`{ state?, questions? }`) (中文(简体) ). 无 `state`,适配器将记录文本作为状态发送。 无 `questions`,它问一个布尔问题 与id `response`。 。 。 .

```ts
import { createDependencies, runInference } from "@intx/inference";
import {
  createSystemOneAdapter,
  SYSTEM_ONE_PROVIDER,
  type QuestionList,
} from "@corbits/system-one";

const deps = createDependencies({
  has: (provider) => provider === SYSTEM_ONE_PROVIDER,
  resolve: () => createSystemOneAdapter(),
});

const questions = [
  {
    id: "escalate",
    type: "boolean",
    instructions: "Must this request be escalated for human approval?",
  },
] satisfies QuestionList;

let seq = 0;
for await (const event of runInference({
  deps,
  source: {
    id: "system-one",
    provider: SYSTEM_ONE_PROVIDER,
    baseURL: "https://api.typesafe.ai/v1/systemone",
    credentialId: "TYPESAFE_API_KEY",
    model: "jev-latest",
  },
  turns: [
    {
      role: "user",
      timestamp: Date.now(),
      content: [{ type: "text", text: "Deploy to production?" }],
    },
  ],
  inferenceOptions: { providerOptions: { systemOne: { questions } } },
  nextSeq: () => seq++,
  readMaterial: (id) => {
    const secret = process.env[id];
    if (secret === undefined) throw new Error(`${id} is not set`);
    return { secret };
  },
})) {
  if (event.type === "inference.text.delta")
    console.log(JSON.parse(event.data.token));
}
```

适配器发出一个 `inference.text.delta` 每一决定 `token` 作为JSON的决定,然后 `inference.usage` 活动。 绳子能提供证书 `readMaterial` 并拥有复试。 一个畸形的反应机构是 `ProtocolMismatchError`而不是一个后退.

### 工厂

`createSystemOneAdapterFactory(source, quirks?)` 是互换 `AdapterFactory`,所以一个股票侧车装入它从 `SIDECAR_ADAPTER_MANIFEST` 没有自定义代码 :

```json
[
  {
    "provider": "corbits-system-one",
    "specifier": "@corbits/system-one",
    "export": "createSystemOneAdapterFactory"
  }
]
```

中心供货 `quirks` 验证并全部可选 :

```json
{
  "endpoint": {
    "kind": "custom",
    "url": "https://opencode.ai/zen/v1/systemone"
  },
  "model": "jev-1.13",
  "questions": [{ "type": "boolean", "id": "gate", "instructions": "Allow?" }],
  "state": {}
}
```

无 `endpoint`,适配器贴出目录提供者的 `baseURL` + 键 `/systemone`主办方的证书是发给的 A 类 `model` 奇克( 顶级 ) `endpoint`)是电线上发送的模型,因此一个目录模型可以由不同名称的提供者服务. `questions` 财务报告和审定财务报表 `state` (a) 按需要计算的缺省; `providerOptions.systemOne` 在呼叫中逐一获胜。 未知密钥丢出 。 适配器发送无记名信使,被接通的绳子注入祭品的证书,除了一个自定义的终点 `auth: "none"`,省略 `Authorization` 因此,主机不附加密钥.

| 提供者 | 提供者 `baseURL` | `model` 诡异 |
| --- | --- | --- |
| 类型安全 | `https://api.typesafe.ai/v1` | `jev-latest` |
| Vercel AI 网关 | `https://ai-gateway.vercel.sh/typesafe/v1` | `typesafe-ai/jev` |
| 打开路透社 | `https://openrouter.ai/api/v1` | `typesafe/jev-1.13` |
| 打开代码禅 | `https://opencode.ai/zen/v1` | `jev-1.13` 或者说 `jev-1.13-free` |

## 升级至0.3.1

-   `createSystemOneAdapterFactory` 无 `endpoint` 怪怪的现在贴到目录提供者的 `baseURL` + 键 `/systemone` 代替正式的 TypeSafe URL 。 设置提供者 `baseURL` 转到 API 根(例如 `https://api.typesafe.ai/v1`),或保持旧行为 `{"endpoint":{"kind":"official"}}`带子向适配器返回的 URL 发送送礼证书,所以只设置一个明确的 `endpoint` 在证书所属的宿主上.
-   A 类 `model` 现在奇特地推翻了被绑住的模型(编目犬科名称).
-   `createSystemOneAdapter` 财务报告和审定财务报表 `evaluate` 接受 `auth: "none"` 自定义终点并省略 `Authorization`。任何其他 `auth` 值抛出 `SystemOneError` 在请求建立之前.

## 从0.1升级

-   `HttpError`, (中文(简体) ), `NetworkError` 财务报告和审定财务报表 `TimeoutError` 被删除。 运输故障返回a `FallbackResult`。 。 。 .
-   一个不是JSON的2xx尸体 `parse-error` (曾经是) `network`) (中文(简体) ). 身体读取时的暂停是 `timeout`。 。 。 .
-   `recordTelemetryEvent` 财务报告和审定财务报表 `drainTelemetryEvents` 被删除。 过 `evaluate(input, { onTelemetry })`。 。 。 .
-   电线帮手 怪胎预设, `JsonRecord`, (中文(简体) ), `Confidence` 而env-var名称常数不再被导出.
-   A 类 `custom` 无终点 `model` 发送 `typesafe-ai/jev`。 。 。 .
-   同行是 `@intx/inference` 财务报告和审定财务报表 `@intx/types` `^0.4.0`。 。 。 .
-   环境变量不变,包括: `SYSTEM_ONE_API_KEY`。 。 。 .

## 许可证

[LGPL - 2.1- 仅限](https://github.com/corbitsdev/corbits-system-one/blob/main/LICENSE)

## 常见问题

### @corbits/system-one 是什么？

System One\(Jev-class\)型号的打入决定评价客户端:arktype问答计划,有网关覆盖的端点配置,以及出站/倒站语义\.

### 如何安装 @corbits/system-one？

在项目目录运行 npm install @corbits/system-one，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@intx/types（^0\.5\.0）、@intx/inference（^0\.5\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @corbits/system-one 支持 TypeScript 吗？

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

### @corbits/system-one 支持 ESM 还是 CommonJS？

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

### @corbits/system-one 需要什么版本的 Node\.js？

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

### @corbits/system-one 可以商用吗？

@corbits/system-one 使用 LGPL-2\.1-only 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @corbits/system-one 的下载量有多少？

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

### @corbits/system-one 还在维护吗？

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

