# @contentrain/decide 中文文档

规范地址：https://npmcn.com/package/%40contentrain/decide/

版本：0\.2\.64
npm 元数据更新时间：2026-11-04T10:17:31.105Z
中文译文更新时间：2026-11-10T17:23:01.193Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40contentrain/decide
原文对照：https://npmcn.com/package/%40contentrain/decide/?lang=original
项目主页：https://ai.contentrain.io/packages/decide
源码仓库：https://github.com/Contentrain/ai

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

- 包体积（解压后）：223 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-09-21T11:31:58.973Z
- 最新版本发布：2026-11-04T10:17:30.732Z
- 近 30 天下载量：4430（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：70（近 12 个月 70 个）

## 中文简介

关于移徙和治理管道的小规模决定——规则首先是Jev,然后是Claude Haiku,缓存、预算和审计

## 安装

```sh
npm install @contentrain/decide
```

也可以使用：`pnpm add @contentrain/decide`、`yarn add @contentrain/decide`、`bun add @contentrain/decide`

## README

# @ contentrain/ 决定

关于移徙和治理管道的小规模决定。 决定是 从闭合集中选择(a) _选择_或固定标题(a)上的位置 _分数_(b) —— 从未生成文本 。 要求有一个链条:

```
rule  →  cache  →  Jev (typesafe.ai)  →  LLM (Claude Haiku, opt-in)  →  the rule's tentative answer
```

定相法则先答. 只有规则未定的事情 a 提供者,每个答案以其形状输入为缓存,支出上限为每 每天租户,一个断路器停止 呼叫一个失败的供应商,和每一个 (c) 将决定纳入审计记录。 任何提供者失败都无法拨打: 裁决回到规则的答案,标记 `unreviewed`。 。 。 .

```bash
pnpm add @contentrain/decide
```

## 使用量

```ts
import { createDecider, JsonlAuditLog, JsonlDecisionCache, MemoryDailyBudget } from '@contentrain/decide'

const decider = createDecider({
  cache: new JsonlDecisionCache('.run/decision-cache.jsonl'),
  audit: new JsonlAuditLog('.run/decisions.jsonl'),
  budget: new MemoryDailyBudget(500),
})

const decision = await decider.decide('punch_item', {
  label: '(aile: post)',
  reason: 'en kötü sayfa 43.2 < 80 (5 sayfa ölçüldü)',
})

decision.choice      // 'measurement'
decision.score       // 2.03 — severity on the kind's 0–3 rubric
decision.confidence  // 0–1
decision.source      // 'rule' | 'jev' | 'llm' | 'cache'
decision.unreviewed  // true when no provider answered
```

`decideMany(kind, inputs)` 批次:一种物品共享请求,和 a 类型可将它们进一步分类(`punch_item` 每个请求最多发送一个网站 25项,如PoC-1所做的那样)。 否则,请求最多持有32件物品并停留 保守估计的~32克令牌下(`batch` 选项; 类型本身 限制胜出)。 除非 `fold: false`。 。 。 . `decide(kind, input)` 没有决定者使用 默认 1: 内置类型, Jev 当设置符号时, 一个内存缓存 .

## 杰维

Jev只有在 `CONTENTRAIN_JEW_API_TOKEN` 设置在环境中. 符号在每次请求时读取,直接进入 `Authorization` 页眉; 从未被存储在对象上、 记录或放入 错误消息 。 请求到一个固定终点, `https://api.typesafe.ai/v1/systemone` ——没有基于URL的选项. 没有 表示链条从规则中解答, 带内决定会回来 `unreviewed`。 。 。 .

## 输入形状

每一种都有一个形状器, 形状输入是唯一离开 处理或到达缓存键。 它能维持决定需要的东西 并放弃 剩余 : `punch_item` 放弃页面链接并翻转 URL、电子邮件地址和 文本中的路径进入占位符; `eligibility_band` 保留发现数 并自取样本记录。 审计日志保持输入的散列, 绝不是输入.

这个 _请求形状_ 是构成提供者请求的一切的散列: 模式、批量限制、标题、行格式、问题及其 标准`requestShapeHash(kind)`) (中文(简体) ). 它是每个缓存键的一部分 每一个 审计记录,所以改变的提示 从来没有为旧的答案.

## 类型

| 仁爱 | 答复 | 规则 | 提供者 |
| --- | --- | --- | --- |
| `punch_item` | 类(`product_defect` • 妇女 `source_limit` • 妇女 `cosmetic` • 妇女 `measurement`\+ 严重性 0-3 | 运行报告措辞的暂定类别,它承认;从未确定,因为规则不能规定严重程度 | Jev, 有 PoC-1 的逐字请求( 站点占位符放在一边); **咨询** |
| `eligibility_band` | `eligible` • 妇女 `access_blocked` • 妇女 `page_only` • 妇女 `custom_type`,或 `needs_human` | 镜像 Migrate 的 `judgeEligibility`; 未决定的带外最后 | Jev,只在乐队里 |
| `field_type` | `string` • 妇女 `text` • 妇女 `markdown` • 妇女 `richtext` • 妇女 `relation` • 妇女 `url` • 妇女 `select`,每个项目仅限于事实包提供的选项 | 明确长度的最后决定(100个字符) `string`页:1 `text`),而且许多情况下具有 3 个值(`select`(b) 暂定其他办法 | Jev,每个选项集一个请求 |
| `region_name` | `hero` • 妇女 `card-grid` • 妇女 `faq` • 妇女 `cta` • .(18个科) | 从课堂、建筑工和儿童提示中试取; `content` 当没有匹配时, 0 | 杰维 |
| `unmapped_element` | 天体-基特元件 id, `prose`,或 `site-specific` | 当元素名称表示时, 最终( 0. 9)`*-carousel` → `slider`, (中文(简体) ), `*toggle` → `faq`, (中文(简体) ), `*heading` → `prose`; 暂定 `site-specific` 否则 | Jev,每个建筑商一个请求;在0.5置信度下 = `site-specific` |

后面三个是Migrate v3的"事实包"所剩的: 关于a的其他一切 工地的结构在他们面前是确定的。 他们的投入来了 这些形状器再次刷: 四舍五入,文本被剪去并被擦除,元素和类名称被缩小为 slug.

这个 `eligibility_band` 带是两种情况: 以及一个有样本的站点 一个捷夫 0.5以下的回答变成 `needs_human`将Jev的选作 `proposed`。 。 。 . `needs_human` 它只是衍生出来的——它从未提供给Jev.

过 `options.rule` 用你自己的规则(移民通过判决功能), 或者说 `null` 跳过规则.

## 缓存、预算、断层器、审计

| 块 | 内建 | 带上你自己的 |
| --- | --- | --- |
| 缓存 — 密钥 `sha256(kind, schema version, request shape, canonical shaped input)` | `MemoryDecisionCache`, (中文(简体) ), `JsonlDecisionCache` | 执行 `DecisionCache` (数据库库属于主机) |
| 预算——每个租户/协调世界时日的提供者决定 | `MemoryDailyBudget` | 执行 `DecisionBudget` |
| 断路器——每个提供者,在3个60s的请求失败后打开 | `CircuitBreaker` | 通过 `breakers` |
| 审计——每个决定一份记录:投入散列、回答、信心、来源、时间、象征 | `JsonlAuditLog` (单位:千美元)`decisions.jsonl`, (中文(简体) ), `MemoryAuditLog` | 执行 `AuditSink` |

只有提供者的答案被缓存 。 一条规则的答案并不花费什么 重算,和 退缩不是任何人被审查的答案。 缓存命中和最终规则答案 不使用预算.

预算和断路器覆盖两个供应商。 共享一个每日上限: 请求中的每件东西 实际都花在它身上 所以一件Jev 失败了,海口回答两次。 打开的断开器后面的物件 在Jev外出期间, 只有Haiku的要求才收费。 每个供应商都有自己的断路器,而且 捷夫的公开断路器后面的一个东西 继续去海库.

两个供应商都报告象征性使用. `cost` 每项决定的份额 其批次的代币,以及 `usd` 只有在你给供应商定价时: `pricing: { jev: {…}, llm: { inputPerMTok, outputPerMTok } }`Jev的供应商 发布无价.

## LLM链接:克洛德·海库

Haiku回答Jev没有的问题:Jev关闭,它的断路器打开,暂停,暂停 错误。 它是选入的:除非你用电线,否则任何模型都不会被调用.

```ts
import { createAnthropicProvider, createDecider } from '@contentrain/decide'

const decider = createDecider({
  llm: createAnthropicProvider(), // claude-haiku-4-5-20251001, temperature 0
  pricing: { llm: { inputPerMTok: 1, outputPerMTok: 5 } },
})
```

密钥读取自 `ANTHROPIC_API_KEY` 在每次请求时 与Jev的符号相同:从未存储,登录或放入出错消息. 请求只到 `https://api.anthropic.com/v1/messages`海库得到 和Jev一样的状态和问题 通过一个 强制工具在温度 0 调用, 所以答案是一个结构化的记录, 而不是 解说出流言. A Claude 4.7或以后的型号`model` 选项)不使用 在Opus和Sonnet 5.5上,也没有强制调用工具 通过结构化产出、同样迅速和等同的JSON查询 计划. `punch_item` 发送按字数计量的提示 AO- 9; 其他类型得到一个 从他们的问题中创建的通用提示.

它的答案被缓存在 Jev 的同名密钥下: 一个输入一次回答, by 或提供方,然后从缓存中获取,以及 `model` 说 一个回答。 模特儿没有自信 所以海口的回答 携带 `confidence: 0` ("未测出"). 对于 `eligibility_band` 这意味着 每个 海库选手去 `needs_human`,选择保留为 `proposed`。 。 。 .

一个主机可以连接另一个模型:执行 `DecisionProvider` 与 `name: 'llm'` 传为 `llm`默认为 `noopLlmProvider`,这是 永远无法使用.

## 校正

**`punch_item` 是一种建议。 Jev没有以同样的方式回答同样的要求 每次,这些答案都不稳定: 显示在项目旁边 人来确认, 从来没有作为一个门.**

`pnpm calibration:live` 将 PoC-1 套装送去 Jev 三次, 确切地说是 包裹寄出: 22份运行报告中的272个出击物品,其中40个被标记为 手给我 写着 `calibration/<date>.json` jev模型报告后 请求- 形状散列, 只计数 。 城门就定在捷夫的地上 已经 中位数运行必须达到至少85%的班级协议和严重程度 在至少90%的级别内,至少85%的标签物品必须 在三跑中保持同样的班级.

最新档案, `calibration/2026-09-18.json`在jev-1.13.0上测量 有请求形状 `32da2187d1dc37d5`它通过:

-   班级协议:全行40分中34分/35分/33分,中位数85.0%. 没错 门槛.
-   在一个级别内严重性:40分之37/37/37,中位数92.5%.
-   稳定:36/40个标有标签的物品和237/272个所有物品.

请求会发送站点名称、其URL和项目链接的占位符 。 那个 在请求中保留现场身份,费用约为2至3项 严重协议。 测试将运出的请求形状保存到文件形状 hash,并需要文件通过.

`pnpm calibration:live --provider haiku` 对海库运行相同的设定 (单位:千美元)`--provider both` 运行两者。 这需要 `ANTHROPIC_API_KEY`时 同一大门,写着 `calibration/haiku/<date>.json` 由海口自己请求 形状( e)`anthropicRequestShapeHash`按清单价格计算的费用。 海库是 倒置,所以它的门结果 被记录为信息 和屏蔽什么. `calibration/haiku/2026-09-19.json` (Claude-haiku-4-5-20251001, LLM 请求) 形状 `96aa1feb04caef9a`,"三跑"0.33美元) **失败** 大门:

-   班级协议:37 / 36 / 37分40分,中位数92.5%.
-   在一个级别内的严重程度:33/34/33/40,中位数82.5%。 这是 在90%的门下。 Haiku回答严重性的整体水平,而Jev 回答关卡之间的分数.
-   稳定: 39/40 有标签的物项和259/272的所有物项.

PC-1设定了真实站点的名称,所以它留在了这个寄存器之外. `CONTENTRAIN_DECIDE_POC1_DIR` 将脚本和测试指向它.

测试的重放通过完整的决定者录制答案 (单位:千美元)`createReplayFetch`) (中文(简体) ). 检查代码路径: 塑造、组合、, 分批、阅读和评分。 它不能测量模型. `measurePunchCalibration(labels, decisions)` 分数 `punch_item` 路边 PoC -1确实有.

## Contentrain生态系统的一部分

Contentrain是团队和人工智能代理商的一个内容治理生态系统;代理商通过 [MCP 服务器](https://ai.contentrain.io/packages/mcp)。这个包是 [开源工具](https://github.com/Contentrain/ai) (单位:千美元)[文档](https://ai.contentrain.io/)) (中文(简体) ). 其他部分: [工作室](https://github.com/Contentrain/studio) 团队审查和作用, [迁移](https://migrate.contentrain.io/) 用于将 WordPress 站点移动到 Astro,以及 [桥](https://github.com/Contentrain/wordpress-bridge),作为Contentrain商店输出一个站点的免费WordPress插件.

## 许可证

麻省理工学院

## 常见问题

### @contentrain/decide 是什么？

关于移徙和治理管道的小规模决定——规则首先是Jev,然后是Claude Haiku,缓存、预算和审计

### 如何安装 @contentrain/decide？

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

### @contentrain/decide 支持 TypeScript 吗？

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

### @contentrain/decide 支持 ESM 还是 CommonJS？

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

### @contentrain/decide 可以商用吗？

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

### @contentrain/decide 的下载量有多少？

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

### @contentrain/decide 还在维护吗？

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

