---
title: "决策模型是什么？System One 模型、Jev 与 OpenAI Decisions API 对比"
description: "决策模型只返回选项、评分和概率，不生成文本。本文讲清 System One 模型、Jev 与 OpenAI Decisions API 的区别，以及如何用 TypeScript 接入 Agent。"
canonical: "https://system-one.dev/zh-CN/blog/what-is-a-decision-model"
language: "zh-CN"
---

# 决策模型是什么？System One 模型、Jev 与 OpenAI Decisions API 对比

决策模型是一类专门给软件做快速、结构化判断的 AI 模型：你传入一段状态（文本或 JSON），并给出类型明确的问题，模型返回从预设选项里选出的答案（Choice）、按量表给出的分数（Score），或“是”的概率（Noul），而不是生成一段文字。它适合 Agent 里的工具路由、结果排序和完成判断；生成内容和复杂推理仍然交给大模型。

## system-one.dev 提供什么

system-one.dev 提供一个**开源 TypeScript SDK**（npm 包 `@system-one-ai/core`）和一个**托管的 AI 决策 API**。SDK 可以连接 System One API，也可以直接配置其他支持的模型服务。system-one.dev 提供的模型服务包括 Jev、Clef Flash 和 Clef。

## 决策模型和大模型有什么不同

按 TypeSafe 文档的说法，决策模型评估一段状态，返回类型化的答案和概率。它能像 LLM 一样读懂自然语言，但输出是决策和概率，不是生成的文本。它不写回复，不写代码，也不解释自己的推理过程。

这个名字来自丹尼尔·卡尼曼在《思考，快与慢》里推广的概念：System 1 快而直觉，System 2 慢而审慎。放到 Agent 里，就是一种分工：

- **大模型（System 2）**：生成、总结、改写、解释，以及答案空间无法预先列出的开放式推理。
- **决策模型（System 1）**：答案空间可以预先列出的判断，比如选哪个、打几分、是不是。

Microsoft 的 Microsoft-Decision-1 文档也是这样划分的：需要创作、总结、改写或解释内容时用生成式 LLM；也可以组合使用，先用决策模型做路由或门禁，再把通过的请求交给生成式模型。按难度把请求分给小模型或大模型的做法，本文不展开。

## 三种决策原语：Choice、Score、Noul

system-one.dev 提供 Choice / Score / Noul 三种原语：

- **Choice**（选哪一个？）：从你给的选项里选一个，并给出每个选项的概率。Agent 场景：工具与任务路由，即从预设选项中选择工具或处理路径。
- **Score**（打几分？）：按有序量表加权得出的分数，可以落在两档之间。Agent 场景：排序与优先级，即评价相关性、紧急程度或内容质量。
- **Noul**（是不是？）：“是”的概率 P(true)，取值 0 到 1。Agent 场景：条件与结果检查，即判断意图、规则条件是否满足、任务是否完成。

站内对应入口：[用 TypeScript 实现工具路由](https://docs.system-one.dev/zh-CN/docs/agent-integration#定义工具路由边界)、[选择合适的评分标准](https://docs.system-one.dev/zh-CN/docs/primitives#score使用有序评分标准)、[理解是非问题的概率](https://docs.system-one.dev/zh-CN/docs/primitives#booleannoul估计-ptrue)。

OpenAI 的叫法略有不同：是非判断叫 `predicate`，另外两种叫 `choice` 和 `score`，思路相同。

**在线试一下**：[钓鱼邮件判断](https://system-one.dev/zh-CN/demo/phishing-email)（示例结果，登录后可跑真实数据）

## Jev 与 OpenAI Decisions API 各是什么

**Jev（TypeSafe）**：TypeSafe 的旗舰模型。通过 `POST /v1/systemone` 调用，支持 Choice、Score、Noul。按官方文档，Jev 目前只接受文本输入（字符串、JSON 对象、文本数组），不支持图片、音频或视频。文档还提到：英语是主要训练语言，准确率也最好；包括中日韩文字在内的其他语言可以处理，但效果不一定一样好，建议先用自己的内容测试。这一点对中文开发者很重要。

**OpenAI Decisions API**：OpenAI 于 2026 年 10 月 6 日在[开发者社区](https://community.openai.com/t/decisions-api-is-now-available-in-public-beta/1403877)宣布向所有开发者开放公测。官方文档写明它目前处于公测阶段，预计未来几周内正式发布（GA）；目前只支持 `gpt-6-luna` 一个模型，使用专门的 `POST /v1/decisions` 端点；可以评估文本、图片或两者组合（图片必须是内联 base64）。OpenAI 称它返回类型化答案的速度“约为 Responses API 的 10 倍”，这是厂商宣称，本文没有实测。

**同类产品**：Microsoft-Decision-1 可以在 Microsoft Foundry 中部署，同样接受文本或 JSON 状态，并支持 noul / choice / score 三种问题。RouterPlus 是一个模型网关，自己提供 Decider 2B 和 Kev 4B 两个决策模型，问题格式与 Jev 相同。

五者的逐项对比见文末对比表，每一格都标注了来源和核验日期。

## System One 在其中的位置

System One 不和上面这些模型比快慢、比价格。它解决的是另一个问题：**把问题定义留在你自己的代码里**。

- 用 SDK 定义问题、处理类型明确的结果；连接 System One API 使用托管服务，也可以直接配置支持的模型服务。后续流程由你的代码控制。
- 托管 API 按积分计费：按所选模型、问题数量与字节计费块扣积分。推理前预留积分，记录为失败的推理会返还；相同 Idempotency-Key 和相同请求正文的成功重放不会再次扣费。
- 请求限制（引自 /docs）：最多 32 个问题、255 个 Choice 选项、10 个 Score 层级，嵌套深度不超过 32；纯文本请求上限 65536 字节；所选模型的限制可能更严格，以 `GET /v1/models` 为准。
- **托管模型：system-one.dev 提供的模型服务：Jev（`typesafe/jev`）、Clef Flash（`cloudflare/clef-flash`）和 Clef（`cloudflare/clef`）。** 以上据 System One API 页面的“决策模型对比”（2026-10-11）；实际可用模型、价格与限制以 `GET /v1/models` 为准。

## 什么时候该用决策模型，什么时候不该用

适合用：

- 答案空间可以预先列出：工具清单、队列、评分档位、是或否。
- 调用频繁，对延迟或成本敏感。
- 需要按阈值分流：高置信时自动执行，低置信时交给人工或推理模型。

不适合用：

- 开放式生成，比如写回复、写代码、写总结。
- 需要模型给出推理过程或解释。
- 答案空间本身不确定。

System One 文档的建议是：先定义允许的答案空间，业务动作留在应用代码里；不确定的决策交给人工或推理模型；依赖阈值之前，先用有代表性的输入验证效果。

## 概率能信吗？和 logprobs 有什么区别

常见的质疑是：“这不就是 logprobs 吗？置信度从哪来？”从官方文档能确认的是以下几点：

- TypeSafe 说 System One 模型以校准决策为训练目标，概率针对结果做了优化，用来反映不确定性。但**校准是对一组预测而言的，不保证单个答案正确**。
- TypeSafe 的 `confidence` 是从概率分布推导出来的统计量，不是“答对的概率”。Choice 用最高概率相对于平均分布的距离来算；Score 还会考虑概率离最可能档位有多远；Noul 不单独返回 confidence。
- 不同模型的 confidence 算法不一定相同，所以在 Jev 上调好的阈值不能直接搬到别的模型上用。OpenAI 和 Microsoft 的文档都建议用你自己应用里带标注的样例来设定阈值，并按误报和漏报的代价来取舍。

概率和 logprobs 的严格对比，本文不展开，也不作结论。

## TypeScript 快速上手

下面这段代码来自开发团队提供的示例（`examples/decision-articles/01-what-is-a-decision-model.ts`）。它用 `@system-one-ai/core` 同时提出一个 Choice、一个 Score 和一个 Noul（`booleanQuestion`），对一条客服消息做分类和打分。分配工作仍由应用代码负责。

```ts
/**
 * Article 1 — What is a decision model?
 *
 * A decision model here is application-owned: shared `state` plus named
 * questions built with the published SDK. System One returns a choice, a
 * score on your rubric, and P(true). It does not classify tickets, assign
 * owners, or call tools.
 *
 * Packages used: @system-one-ai/core, adapter-system-one, transport-fetch.
 * Hosted endpoint: POST /v1/systemone (SDK path `{baseURL}/systemone`).
 * There is no separate "classify" or "score" URL.
 */
import { createSystemOne, choice, score, booleanQuestion } from '@system-one-ai/core';
import type { EvaluationClient } from '@system-one-ai/core';
import { systemOneAdapter } from '@system-one-ai/adapter-system-one';
import { createFetchTransport } from '@system-one-ai/transport-fetch';

export const classifyAndScoreQuestions = {
  team: choice('Choose the team that should review this message.', {
    billing: 'Payments, invoices, and refunds',
    support: 'Technical issues with the product',
    review: 'Needs a person; the request is incomplete or consequential',
  }),
  urgency: score('Rate urgency using this ordered rubric.', [
    'Routine review',
    'Timely response',
    'Immediate human attention',
  ]),
  refundRequested: booleanQuestion('Does the message report a request for a refund?'),
};

export function createHostedClient() {
  const apiKey = process.env.SYSTEM_ONE_API_KEY;
  const baseURL = process.env.SYSTEM_ONE_BASE_URL;
  const model = process.env.SYSTEM_ONE_MODEL;
  if (!apiKey || !baseURL || !model) {
    throw new Error('Set SYSTEM_ONE_API_KEY, SYSTEM_ONE_BASE_URL (…/v1), and SYSTEM_ONE_MODEL from GET /v1/models.');
  }
  return createSystemOne({
    apiKey,
    baseURL,
    model,
    adapter: systemOneAdapter,
    transport: createFetchTransport(),
    timeoutMs: 30_000,
    maxRetries: 0,
  });
}

/** Classify a support message and score urgency. Application code still assigns work. */
export async function classifyAndScore(client: EvaluationClient, message: string) {
  const result = await client.evaluate({
    state: { message },
    questions: classifyAndScoreQuestions,
  });
  return {
    team: result.answers.team.choice,
    urgency: result.answers.urgency.score,
    refundRequested: result.answers.refundRequested.probability,
    model: result.model,
    requestId: result.response.requestId,
  };
}

async function main() {
  const message = process.env.EXAMPLE_MESSAGE ?? 'I was charged twice. Please refund the duplicate.';
  const decision = await classifyAndScore(createHostedClient(), message);
  console.log(JSON.stringify(decision, null, 2));
}

if (process.argv[1] && import.meta.url.endsWith(process.argv[1].split(/[\\/]/).pop() ?? '')) {
  main().catch((error: unknown) => {
    console.error(error instanceof Error ? error.message : error);
    process.exitCode = 1;
  });
}
```

运行方式（同样来自示例 README；实际调用会产生费用，需要已有密钥和目录中的模型）：

```bash
export SYSTEM_ONE_API_KEY=...
export SYSTEM_ONE_BASE_URL=https://system-one.dev/v1
export SYSTEM_ONE_MODEL=...   # exact ID from GET /v1/models
node --experimental-strip-types examples/decision-articles/01-what-is-a-decision-model.ts
```

几点说明：

- 托管端只有一个评估端点，`POST /v1/systemone`，没有单独的 classify 或 score URL。
- 模型 ID 请从 `GET /v1/models` 获取，不要自己编别名。system-one.dev 提供的模型服务：Jev（`typesafe/jev`）、Clef Flash（`cloudflare/clef-flash`）和 Clef（`cloudflare/clef`）。
- 没有配置凭据时，示例会直接抛出配置错误（fail closed）。

下一步：[开发文档](https://docs.system-one.dev/zh-CN/docs)、[TypeScript SDK](https://docs.system-one.dev/zh-CN/docs/sdk)、[API 参考](https://docs.system-one.dev/zh-CN/docs/api)、[定价](https://system-one.dev/zh-CN/pricing)、npm [`@system-one-ai/core`](https://www.npmjs.com/package/@system-one-ai/core)。

> 表中不收录延迟数字。各家的速度说法（例如 OpenAI 称“约为 Responses API 的 10 倍”）都是厂商宣称，本文没有实测。

## 决策模型对比（核验日期 2026-10-11）

| 维度 | System One | Jev（TypeSafe） | OpenAI Decisions API | Microsoft-Decision-1 | RouterPlus |
| --- | --- | --- | --- | --- | --- |
| 形态 | 开源 TypeScript SDK（@system-one-ai/core）+ 托管 AI 决策 API<br><small>[System One 首页](https://system-one.dev/zh-CN) · 2026-10-11</small> | TypeSafe 的旗舰模型<br><small>[TypeSafe: System One](https://docs.typesafe.ai/concepts/system-one) · 2026-10-11</small> | OpenAI 的专用决策接口，模型为 gpt-6-luna<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | Microsoft 的决策模型，在 Microsoft Foundry 中部署<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | 模型网关；自有决策模型 Decider 2B、Kev 4B，也转发 Jev、GPT-6 Luna Decisions 等<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 托管模型可用性 | system-one.dev 提供的模型服务：Jev（typesafe/jev）、Clef Flash（cloudflare/clef-flash）、Clef（cloudflare/clef）<br><small>[System One API 页](https://system-one.dev/zh-CN/api) · 2026-10-11</small> | 当前模型 Jev 1.13（jev-1.13.0），别名 jev-latest<br><small>[TypeSafe: Models](https://docs.typesafe.ai/models.md) · 2026-10-11</small> | 公测中，目前只提供 gpt-6-luna；预计未来几周 GA<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | 版本 1；部署类型 GlobalStandard，部分区域支持 DataZoneStandard<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | Decider 2B、Kev 4B 运行在 RouterPlus 自有的美国 GPU 上<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 输入类型 | 文本、JSON、图片能力由实时目录逐模型声明<br><small>[System One 开发文档](https://docs.system-one.dev/zh-CN/docs) · 2026-10-11</small> | 仅文本：字符串、JSON 对象、文本数组；不支持图片、音视频<br><small>[TypeSafe: Models](https://docs.typesafe.ai/models.md) · 2026-10-11</small> | 文本、图片或两者组合；图片须为内联 base64<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | 文本或 JSON 状态<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | 字符串或 JSON 对象、数组<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 问题类型 | Choice / Score / Noul<br><small>[System One 首页](https://system-one.dev/zh-CN) · 2026-10-11</small> | Choice / Score / Noul<br><small>[TypeSafe: System One](https://docs.typesafe.ai/concepts/system-one) · 2026-10-11</small> | predicate / choice / score<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | noul / choice / score<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | choice / score / noul（与 Jev 格式相同）<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 是否返回概率 | 返回 choice、score 和 noul（P(true)）。原生 HTTP 中 Choice／Score 含 probabilities 与 confidence，Noul 无独立 confidence 字段<br><small>[System One 决策原语](https://docs.system-one.dev/zh-CN/docs/primitives) · 2026-10-11</small> | 是：Choice、Score 返回 probabilities 和 confidence；Noul 返回“是”的概率<br><small>[TypeSafe: Confidence](https://docs.typesafe.ai/confidence.md) · 2026-10-11</small> | 是：predicate 返回 probability；choice、score 返回 probabilities 和 confidence<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | 是：noul 返回概率；choice 返回每个选项的概率；score 返回每档概率<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | 是：choice、score 返回 probabilities 和 confidence；noul 返回概率<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 接口 | POST /v1/systemone；模型目录 GET /v1/models<br><small>[System One API 页](https://system-one.dev/zh-CN/api) · 2026-10-11</small> | POST /v1/systemone<br><small>[TypeSafe: Models](https://docs.typesafe.ai/models.md) · 2026-10-11</small> | POST /v1/decisions<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | {Foundry 资源端点}/providers/microsoft/v1/systemone；model 字段填部署名<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | POST /v1/decisions<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 价格 | 积分计费：问题数 × 计费块数 × 所选模型单价；当前价格见定价页与模型目录<br><small>[System One 积分与计费](https://docs.system-one.dev/zh-CN/docs/billing) · 2026-10-11</small> | 每百万输入 token $0.042，输出免费（jev-1.13.0）<br><small>[TypeSafe: Models](https://docs.typesafe.ai/models.md) · 2026-10-11</small> | 每百万输入 token $0.10，无输出费用；区域处理与长上下文另有加价<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | 每百万输入 token $0.042，输出免费<br><small>[Microsoft 发布博客](https://commandline.microsoft.com/microsoft-decision-1-model-foundry/) · 2026-10-11</small> | Decider 2B、Kev 4B：输入、输出均为 $0（需组织账户有余额）<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
| 自托管 / 微调 | SDK 可直接配置其他支持的模型服务；自托管模型：未公布<br><small>[System One 首页](https://system-one.dev/zh-CN) · 2026-10-11</small> | 不用客户数据做微调或 LoRA，所有账户共用同一套权重；自托管：未公布<br><small>[TypeSafe: Models](https://docs.typesafe.ai/models.md) · 2026-10-11</small> | 未公布<br><small>[OpenAI: Decisions](https://developers.openai.com/api/docs/guides/decisions) · 2026-10-11</small> | 在你自己的 Foundry 资源中部署；微调：未公布<br><small>[Microsoft Learn](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) · 2026-10-11</small> | 未公布<br><small>[RouterPlus: POST /v1/decisions](https://app.routerplus.com/docs/api-decisions) · 2026-10-11</small> |
## 常见问题

### 决策模型会取代大模型吗？

不会。决策模型只回答答案空间有限的问题，不生成文本，也不解释推理。常见做法是两者配合：用决策模型做路由、门禁和排序，把需要生成或深度推理的请求交给大模型。

### 决策模型支持图片吗？

要看具体模型。按官方文档，Jev 目前只接受文本；OpenAI Decisions API 支持内联 base64 图片；Microsoft-Decision-1 的文档写的是文本或 JSON 状态。System One 托管端的输入能力由实时模型目录逐模型声明，请以 `GET /v1/models` 为准（API 页面写明 Clef／Clef Flash 支持文本、JSON 与图片，Jev 仅支持文本与 JSON）。

### 返回的概率能直接当作“答对的概率”吗？

不能。TypeSafe 文档写明，校准是对一组预测而言的，不保证单个答案正确；confidence 也不是答对的概率。上线前请用你自己的人工标注样本核对阈值，并按误报和漏报的代价来设定。

### 能自托管吗？

本站 SDK 是开源的，可以直接配置支持的模型服务。TypeSafe 文档说明 Jev 不做客户数据微调；Microsoft-Decision-1 部署在你自己的 Foundry 资源中。各家是否提供可自托管的模型权重，所核来源均未公布。

### System One 怎么收费？

System One 托管 API 按积分计费，按所选模型、问题数量和字节计费块扣除；记录为失败的推理会返还预留积分。具体价格以 https://system-one.dev/zh-CN/pricing 为准。如果通过 SDK 直接连接第三方服务，由该服务按自己的账户计费，不消耗 System One 积分。
