Jev 是一款 AI 模型,输入文本后,它会返回“选择项、评估值,或 Yes/No 的概率”。它不生成文章,适合在应用中反复进行咨询分流之类的判断。价格为每 100 万输入 token 0.042 美元,输出免费。

JEV / SYSTEM ONE

把文本变成应用可用的判断。

输入的是文本,收到的是按既定类型返回的值。

输入:state + questions

“点击发票的下载按钮
也没有任何反应。”

同时传入候选项与标准

账单 / 技术 / 待确认

Jev

根据文本含义做出判断

↓

输出:类型固定的判断

Choice

一个候选项

Score

尺度上的数值

Noul

Yes 的概率

后续处理由应用决定

显示候选项 / 转交人工确认

工作原理示意图。执行权限与条件由应用端管理。

1. Jev 是什么

TypeSafe 于 2026 年 9 月 15 日宣布 Jev 开放早期访问。它并非用于返回长篇解释的聊天工具,而是面向在应用中判断“应转交给哪个负责人”“与条件的符合程度如何”之类问题的场景。

其特点是返回值的形式是固定的。但是,形式正确的回答,判断仍可能出错。若把公告中“没有幻觉”的说法理解为对任何内容都能给出正确答案,就会用错。

TypeSafe 将 Jev 称为“System One model”。根据公告,这一名称是该公司借用心理学家丹尼尔·卡尼曼《思考,快与慢》中快速、直觉的“系统 1”与缓慢、深思熟虑的“系统 2”之分而取的,并非整个 AI 领域统一的性能等级。官方 System One 说明将其描述为:能够理解自然语言,并返回软件可直接处理的带类型判断的模型。

Jev 这一名称取自经济学家威廉·斯坦利·杰文斯,表达的是这样一种看法:随着智能成本下降,其用途会呈数量级增长,类似于“杰文斯悖论”——效率提升反而使需求增加(白领会被AI消灭吗)。

state
用于判断的材料。文本或 JSON 格式的数据。可放入咨询正文、用户选择的项目、用于分类的背景信息等。
questions
要判断什么。放入“应转交给哪个负责人”之类的问题,以及候选项与判定标准。

由于输出选项事先已确定,无需从“大概是技术负责人吧”之类的文字中提取分类名称。另一方面,它不适合撰写回复文、代码或较长的判断理由。若与生成式 AI 配合使用,分工是:由 Jev 判定处理去向,只有在需要文本的场合才交给生成模型。

让 LLM 用 JSON 回答,有什么不同?

以 JSON 形式接收结果本身并非 Jev 独有的特点。例如 Claude 也提供结构化输出,可按照 JSON Schema 约束输出。若你已用生成模型实现了分类,仅仅因为“格式固定”,并不需要替换。

Jev 专门返回选择、分级评估、二元判断及其对应的概率。若在判断之后还需生成说明或回复,就用生成模型;若需要从文本中反复选择候选项,Jev 也可作为比较对象;若需要严格计算金额或日期,则用普通代码。也就是这样划分工作。实际中较为可行的做法是:用相同的输入与判定标准,先比较准确性、等待时间和费用,再做选择。

2. Choice、Score 与 Noul 的区别

官方 Primitives 说明将问题类型分为以下三种。即使是相似的问题,也应根据所需的输出来选择。

Choice:选择候选项

准备无顺序的候选项,例如“账单”“技术”“其他”,并从中选出一个。

账单 ✓ 技术 其他 / 判断材料不足

本文中的选择、概率、数量等数值仅为说明用的示例。

在候选项中设置“兜底”选项

为应对不符合任何选项的输入,应包含“其他”或“判断材料不足”。候选项设得过窄,形式上虽然有效,但分类会与实际情况不符。

单个 Choice 最多可指定的候选项

最多 255 个

API 规范

Score:按等级衡量

用于描述有顺序的 2 至 10 个等级。返回的值是按各等级概率计算的加权平均,因此可能是小数。

3 个等级的计算示例:假设概率分别为 10%、40%、50%

0

没有信息

0 × 0.1 = 0

1

部分可以判断

1 × 0.4 = 0.4

2

复现步骤已齐全

2 × 0.5 = 1.0

0 + 0.4 + 1.0

= 1.4

介于“部分可以判断”与“复现步骤已齐全”之间。应将其理解为所定义的 0 至 2 尺度上的数值,而非正确率。

计算方法来源:TypeSafe 的“Primitives”和“API reference”。

使用 Score 的值来判断是否超过阈值是没有问题的。但官方提醒,不要在等级之间插值,据此反推“1.4 意味着实际量大约是这些”之类的数值,因为 Jev 1.13 的等级作为数值的校准较弱(Jev 1.13 的已知弱点)。

Noul:Yes 的概率

提问时应明确条件,例如“正文中是否写明当前服务无法使用”。

0.5 时,Yes 与 No 的可能性相当

Yes:50%No:50%

这并不表示“严重程度为中等”。要衡量严重程度,应使用已定义等级的 Score。

写明条件的位置
在 instructions 中明确写出。用于标识问题的键不会传递给模型进行推理,因此不要只靠问题名称来传达意图。
confidence 字段
Choice 和 Score 有该字段,Noul 没有单独的字段。

3. 类型保证与判断准确性是两回事

TypeSafe 公告中强调的类型保证,是指将输出约束在所定义的候选项或数值范围内。若设置为把咨询分给账单负责人还是技术负责人,就不会用自由文本生成一个未指定的部门名称。但是,能否选对正确的部门,则是另一回事。

根据官方说明,Choice 与 Score 的 confidence 是将概率分布的集中程度概括为 0 至 1 之间单个数字的统计量。这只是默认指标,若不适合你的用途,可以根据同时返回的 probabilities 自行计算其他指标。

候选项势均力敌
confidence 会变低。
集中于一个候选项
confidence 会变高。

不要把它理解为“0.9,所以这一条有 90% 的概率正确”。概率校准是对大量预测整体进行评估的特性,并不能说明每一条的正误。

TYPE ≠ ACCURACY

“类型正确”与“判断正确”是两回事。

格式检查

✓

属于候选项之一

代码可以处理“账单”“技术”“待确认”中的任一项。

内容检查

?

是否是正确的团队?

与人工确定的正确标签对照核实。

用法上,可以编写根据 confidence 分支的代码。官方 Confidence 页面给出了让用户从“查看余额”“批准待处理的提款”“支持”中选择请求之后的分支示例如下(摘录。注释由作者翻译)。

if confidence < 0.5:
    # 模型确实拿不准。不要猜测
    route_to_human(user_message)

elif action.choice == "check_balance":
    # 影响小。显示其他画面也可以撤销
    show_balance(account_id)

elif action.choice == "approve_transfer":
    if confidence > 0.9:
        # 影响大,且确信度高。确认后执行
        confirm_then_execute(account_id)
    else:
        # 影响大,确信度中等。先确认
        ask_user_to_confirm(account_id)

0.5 这一下限用于拦截模型明确表示拿不准的情况。在此基础上,对于批准提款这类难以撤销的操作,要求比只读操作更高的阈值。注意即使超过 0.9,代码也不会立即执行,而是先进行确认。高 confidence 并不能代替执行权限。

0.5 和 0.9 只是示例,并非统一推荐值。官方也指出,合适的值取决于领域以及模型在你的用途中的表现,并建议从保守的阈值开始,用自己的数据进行调整。

4. 用于咨询分流的示例

例如考虑这样一条咨询:“点击发票的下载按钮也没有反应”。如果因为有“发票”一词就分给账单负责人,就会漏掉界面故障。若让 Jev 判断,则先说明各团队的职责边界,再让其选择候选项。

按照官方 Quick start 和 API 规范编写,请求格式如下。准备好 API 密钥,然后将 JSON 发送到 POST https://api.typesafe.ai/v1/systemone。

{
  "model": "jev-1.13.0",
  "state": "点击发票的下载按钮也没有任何反应。",
  "questions": {
    "team": {
      "type": "choice",
      "instructions": "请选择与正文主要请求对应的负责人候选项。",
      "criteria": {
        "billing": "关于账单金额、支付方式或重复扣款的咨询。",
        "technical": "界面操作、错误或功能无法使用的问题。",
        "review": "多个请求混在一起,或决定由谁处理的信息不足。"
      }
    },
    "service_unavailable": {
      "type": "noul",
      "instructions": "正文中是否报告某个界面或功能目前无法使用?"
    }
  }
}

发送请求与收到响应后的处理

在控制台获取 API 密钥,并在 HTTP 请求头中指定 Authorization: Bearer <API_KEY> 和 Content-Type: application/json。密钥应通过服务器端环境变量等方式管理,不要嵌入到公开的 HTML 或代码仓库中。

若要先确认连通性,可以直接粘贴官方 Quick start 中的 curl 示例进行测试。先把密钥放入环境变量 TYPESAFE_API_KEY 再执行。这是用 Noul 询问一条英文咨询是否“表示紧急”的示例。

curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF'
  {
    "state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
    "model": "jev-latest",
    "questions": {
      "urgency": {
        "type": "noul",
        "instructions": "Does this message express urgency?"
      }
    }
  }
EOF

若要发送前面的中文示例,请将 <<'EOF' 与 EOF 之间的内容替换为该 JSON。若从代码中调用,或让辅助开发的智能体阅读规范,官方提供了以下入口。

  • 从 Python 调用:pip install typesafe-sdk(需要 Python 3.10 或更高版本)。SDK 客户端会读取环境变量 TYPESAFE_API_KEY,默认调用 jev-latest。
  • 用 Claude Code 开发:claude plugin marketplace add typesafe-ai/skills,然后执行 claude plugin install typesafe@typesafe-ai。会安装一个官方技能,把问题的三种类型和设计模式交给编码智能体(Agent skill)。

回到前面的中文示例,需要读取的字段和用途见下面的图和表。Choice 用于查看负责人候选项,Noul 用于查看是否有无法使用的报告。

从分布中读取候选项之间的差异

technical(技术)

0.80

billing(账单)

0.15

review(待确认)

0.05

所选候选项:technical(技术负责人)

读取响应的哪些部分,并决定什么
需读取的字段示例值 / 含义在应用中的用法
team.choicetechnical(技术负责人)显示负责人候选项
team.probabilities{"technical": 0.80, "billing": 0.15, "review": 0.05}查看各候选项之间的判断是否存在分歧
team.confidence由概率分布计算出的集中度与根据自己的评估数据设定的条件对照
service_unavailable.noul0.85(评估为存在无法使用的报告)不要与严重程度混淆,作为确认项使用

各字段位于 answers 之下。还应准备好在候选项势均力敌、材料不足或无法获取回答时的待确认去向。类型依据:TypeSafe 的“API reference”。

401 与 422:修正设置或输入
401 表示密钥缺失或无效,422 表示输入格式校验失败。修正设置或正文后再重新发送。
429 与 529:等待后再重试
不要在短时间内反复重试,应逐步延长等待时间。官方 SDK 默认会自动进行此类重试。

HTTP 错误与低 confidence 是两回事。请不要将其当作回答值处理。依据为前文的 API 规范。

刚开始引入时,不必改变现有的分配方式,只需把人工确定的负责人与 Jev 的候选项并列对照即可。需要检查:即使出现“账单”一词,是否仍能判断为技术问题;多个请求混杂时能否转入 review;信息不足时是否没有武断下结论。发现错误后,添加到失败案例中,并检查候选项的说明是否有重叠。

在将其嵌入 AI智能体时,也要区分“负责判断的模型”“负责执行的工具”“允许执行的条件”,并将金额计算与权限确认保留在代码中。发生误判时,更容易查明错误出在哪一环。

TypeSafe 的官方文档中还提供了其他实现示例:LLM 应用的护栏、用 RAG 检索到的文档筛选、搜索结果重新排序、引用验证。即使用于护栏或文档筛选,下一节“诱导答案的输入”这一弱点依然存在(在输入和输出两端进行拦截的思路,请参阅什么是AI护栏)。

5. 不适合的工作与已知弱点

TypeSafe 公开了 Jev 1.13 的已知弱点。不要因为它“只做判断所以准确”,而应按如下方式划分工作。

被认为不擅长的条件可能出现的问题设计上的应对
计数、计算混淆字数、件数或精确数值用解析器或普通代码进行计算
比较日期先后关系或是否在期限内的判断变得不稳定提取所需要素,用日期类型进行比较
双重否定、迂回式提问容易被字面而非意图牵着走直接写明条件,并将多个判断分开
无关信息较多的输入不必要的信息干扰判断先检索、提取,只传入所需项目
诱导答案的输入受正文中的指令,或主张“自己应如何分类”的句子影响用包含诱导内容的失败案例进行评估,并单独管理执行权限
instructions 与 criteria 不一致问题文本与判定标准要求的内容不同时,可能导致混乱(例如:将 Noul 的 true 赋予“否”的含义会降低准确率)将 criteria 写成问题文本的延伸,并使两者的方向保持一致
自由文本生成不适合回复、说明或代码生成使用模板或生成模型

另外,分别询问的 Yes/No 概率未必满足数学上的关系。即使用两个 Noul 分别询问同一条件及其否定,合计也不一定为 1;Choice 的概率与 Noul 的概率也不能用同一阈值处理。改变问题的形式后,应重新评估,而不是直接沿用之前的调整值。

使用中文时的确认要点

6. 如何看懂价格、输入限制与速度

截至 2026 年 9 月 21 日确认时,TypeSafe 的 Models 页面列出的当前模型为 jev-1.13.0。2026 年 10 月 14 日,jev-1.14.0 也已发布(价格和上下文长度相同)。10 月 19 日确认时,别名 jev-latest(稳定版)指向 1.13,jev-preview 指向 1.14。别名会在新版本发布时切换,因此如果希望结果保持稳定,请指定带版本号的 ID。价格为每 100 万输入 token 0.042 美元,输出 token 免费。这不是按每次咨询收取的固定费用,而是根据包含 state 和 questions 的输入 token 数量而变化。作为规模参考,官方 Quick start 的响应示例(一条三句英语咨询,附三个问题)中,usage.input_tokens 显示为数百 token 左右。另外,TypeSafe 在发布公告中写道,目前无法证明这一价格并非依靠补贴,能否持续只能长期观察(其预计价格更可能下降而非上涨)。

COST / INPUT TOKENS

将单价与处理量分开考虑。

官方输入单价

$0.042

每 100 万输入 token

输出免费

假设每条 1,000 token

1 万条 → $0.42

1,000 × 10,000 = 1,000 万 token

↓ × $0.042 / 100 万 token

仅为输入的 API 费用估算

来源:TypeSafe 的“Models”,单价为 2026 年 9 月 21 日确认的数值。计费对象为包含 state 和 questions 的输入。实际输入量请通过 usage.input_tokens 确认。每条 1,000 token 为假设值,不包括预处理、重试和人工确认的费用。

64k 与 32k 的双重限制

条件 1:整个请求

最多 64k token

条件 2:state + 最长的问题

最多 32k token

两个条件都必须满足。这并不意味着可以把 64k 的正文原样放入 state。这是默认值;若在请求中添加 TypeSafe-Danger-Zone-Long-Context: true 请求头,两者都会提高到 262k token(价格相同,但官方说明会变慢且精度下降)。

输入仅限文本。图像、音频、视频无法直接传入,需先经其他处理转换为文字或结构化数据。

速率限制可能会变化

速率限制按组织设定,请在开发者控制台确认自己组织的上限(以 2026 年 10 月 19 日时的 Models 页面为准。此前页面上列出过固定数值)。单位为每秒 token 数和每秒请求数,超过任一项都会返回 429 Too Many Requests。官方 SDK 默认会以退避方式等待后重试,若响应中有 retry-after 请求头,则遵循该头的指示。若直接调用 HTTP API,则需自行编写重试逻辑,如前文所述,逐步延长等待时间后再重试。

官方注明,由于需求非常大,上限会被动态调整,可能在不另行通知的情况下变化。更高的上限可通过定制合同或企业合同获得。如果设计是一次性处理大量文本,请在着手时确认当时的数值,并预先决定遇到上限时的等待方式。

速度与成本,应在相同任务上比较

TypeSafe 在发布公告中称,从请求到返回结果的时间为 70ms 至 500ms。但该公司公开的评估主要是从位于美国西海岸(服务所在地)的公司笔记本电脑上运行的。

在与生成模型的比较中,它列出了“快 193.6 倍,便宜 444.6 倍”的数字。这来自该公司自行设计的工作流评估,TypeSafe 本身也认为这在实际可获得的改进中属于偏高的一端。它表示评估用的工作流并非为了对自己有利而挑选,也未纳入训练数据,但同时写明这些工作流由自家模型能力团队成员设计,因此可能存在偏差。请将两者都视为供应商自身的数字,并注意以下几点,在自己的工作中进行比较。

  • 条件变化,结果也会变化:对比时应统一网络距离、输入长度、问题数量以及对比模型的设置。
  • 不能用于与平时聊天的倍数比较:官方的比较中包含了从生成模型中提取概率分布的处理。

实际需要比较的项目

成本:API 单价 + 运营工作量
应包括预处理、重试和待确认的比例。即使分类便宜,若人工确认增加,整体工作量也不会减少。
速度:平均值 + 慢请求
确认在拥堵或响应缓慢时,工作是否会停滞。

7. 试用时需确认的事项

首先在 Playground 中测试问题的标准能否准确传达。官方 Quick start 中包含 Playground 以及获取 API 密钥并调用的步骤。由于目前处于早期访问阶段,请先登录后确认使用权限。

① 输入正文

若能够访问,将咨询文本输入到 Playground 中。

② 设置候选项

用 Choice 设定负责人候选项及其边界。

③ 变换表达方式进行比较

查看候选项与概率的变化。可在准备执行环境之前先行测试。

评估时需把握的四个要点

  1. 准备正确答案与边界。

    除了人工确定负责人的示例,还应包括多个请求、过短的文本、否定句和诱导性文本。使用真实数据时,需确认相关内容是否允许发送到外部。

  2. 固定问题的判断标准。

    写明各候选项的判定依据,并确定转入“其他”的条件。同时用与调整标准时所用示例不同的示例进行验证。

  3. 同时查看正确率与待确认的比例。

    按每个阈值统计自动处理的条数以及其中的误判条数。同时标注待确认的数量,避免只展示较高的精度。

  4. 记录模型与问题。

    保留模型 ID、输入类型、问题版本、响应以及处理时间,并比较变更前后的结果。

100 条中,交给系统处理了多少,错了多少条

1 格 = 1 条。

■ 自动处理·正确 76 条■ 自动处理·误分类 4 条■ 交由人工确认 20 条

自动处理率

80%

80 条 ÷ 全部 100 条

自动处理部分中的错误率

5%

误分类 4 条 ÷ 自动处理 80 条

交由人工确认

20 条

全部 100 条 − 自动处理 80 条

请三项一起看。仅凭 100 条并不能证明正式运行时的精度。

若要应用到自己的工作中

对大量文本重复做出候选项已确定的判断
将 Jev 作为比较候选。用自己的输入、标准和语言评估其准确性。
撰写回复、说明或代码等文本
使用生成模型或模板。
严格计算金额或日期
用普通代码处理。

本文基于 TypeSafe 的发布公告与官方文档(2026 年 9 月 21 日确认,10 月 19 日确认更新)。作者未实际运行 API,也未测量中文环境下的精度或实际等待时间。

FAQ

Q. Jev 能像 ChatGPT 一样对话吗?
A. 它并不是生成自由回复文本的模型。用途是输入文本,并获得按 Choice、Score、Noul 所定形式给出的判断。若需要回复或说明文本,可与生成模型或模板结合使用。

Q. 如果“没有幻觉”,那就不会出错吗?
A. 将输出约束在某种类型或候选项之内,与正确判断内容是两回事。官方也列出了计算、日期、无关信息较多的输入、诱导性文本等弱点。需要用自己的数据来衡量准确性。

Q. Noul 的 0.5 表示“中等”吗?
A. 它表示 Yes 与 No 的概率被评估为大致相当。这并不是表示严重程度或质量中间值的数值。若要衡量程度,可以考虑使用定义了带说明等级的 Score。

Q. 也能用中文吗?
A. 官方表示可以处理包含 CJK 字符的语言输入,但说明英语是主要训练语言,目前精度也以英语最佳。在用于业务之前,请先用中文评估数据进行验证。

Q. 也能用于图像或音频的判定吗?
A. 当前模型的输入仅为文本,无法直接传入图像或音频。若设计为传入其他处理所得的文字或结构化数据,则应连同该预处理的错误一并进行评估。