SYSTEM ONE MODEL · JEV

不是聊天,是判断。

让软件直接使用的概率模型。

Jev 接收一份状态和一组问题,返回预先定义好的类型化答案、概率与置信度。它不生成一段话,而是把 agent 和业务流程中的小判断变成可以直接进入代码的结果。

一个请求 · 并行回答

jev-latest

state

用户连续三次部署失败,生产环境出现 500。

noul

现在要不要升级给人工?

置信度

0.97

需要人工

state

in

questions

parallel

output

typed

70–500ms

公开报告的端到端延迟

3

Choice · Score · Noul

Typed

先定义结构,再返回结果

JEV 到底是什么

把最难维护的 if,交给一个会表达不确定性的模型。

传统 LLM 擅长生成文字,也可以被要求输出 JSON。但在真正的自动化链路中,模型每次生成 token、解析结果、校验 schema,都会增加延迟和出错的可能。

Jev 的目标不同:它把状态作为输入,把问题作为程序接口,直接返回在允许范围内的答案。每个答案都带概率与置信度,让代码知道什么时候可以继续自动化,什么时候应该停下来找人。

机器原生智能

为软件优化的模型,不是为聊天窗口优化的模型。

TypeSafe 将 Jev 描述为第一个 System One 模型:一种围绕机器与机器交互设计的模型。目标不是让每个答案都读起来舒服,而是让边界清晰的判断在更大的系统里可观察、可测试、可使用。

优化人类偏好

以聊天为中心的模型

  • 生成有用、自然的文字回答
  • 一串消息和逐 token 生成
  • 几乎可以表达任何内容的灵活字符串
  • 偏好、帮助程度和可验证结果

优化经过校准的判断

System One 模型

  • 一次只做一个边界清楚的判断
  • 一份状态加上类型化问题
  • 受约束的值和概率分布
  • 准确率、校准度、速度和一致性

两种模型,两个工作方式

Jev 放在 LLM 旁边,而不是取代 LLM。

开放式思考和生成仍然交给 LLM;路由、护栏、评分和分流这些边界清晰的判断,可以交给一个更快、更适合软件消费的模型。

为人生成答案

传统 LLM

  • 01逐 token 生成,顺序采样
  • 02字符串或需要解析的 JSON
  • 03通常需要额外提示置信度
  • 04聊天、写作、开放式推理

为软件做决定

System One · Jev

  • 一次请求,并行回答多个问题
  • 预先定义的类型化值
  • 每个结果带概率与置信度
  • 路由、护栏、评分、分流

三个原语

把问题写成代码能理解的形状。

同一份 state 可以一次承载多个问题。你定义答案的边界,Jev 负责在边界里给出判断。

Choice

从选项里选一个

适合意图分类、模型路由、工单分流。返回每个选项的概率和整体置信度。

route = [fast, powerful]

Score

在等级上评分

适合风险、紧急程度、质量等有序判断。返回分数、等级分布和置信度。

urgency = [low, medium, high]

Noul

回答一个真假问题

适合安全检查和是否升级。返回某个陈述为真的概率,简单但可以直接驱动分支。

needs_human = true?

先问一个好问题

好的 Jev 问题,像一位专家快速做出的直觉判断。

边界窄的问题更容易形成清楚的接口。比如“分析这张工单并决定怎么处理”其实混合了多个判断,应该先拆开,再在代码里组合。

范围太宽

给这个创业项目打分。

这句话隐藏了市场规模、技术可行性、差异化和执行风险等独立因素。只返回一个分数,既难检查,也难调整权重。

原子化问题

分别问清楚每一部分。

分别评估市场规模、技术可行性和差异化。代码可以给这些信号设置不同权重、阈值,并明确最终路由由哪个信号驱动。

当优先级改变时,修改代码里的系数或分支,而不是重写一个巨大的 prompt。

放回你的系统

从状态到动作,中间只保留真正需要的判断。

Jev 不接管你的业务逻辑。它只回答一组边界清楚的问题,队列、权限、重试和最终动作仍由你的代码掌控。

01

输入状态

工单、消息、JSON,或 agent 当前看到的结构化上下文。

02

定义问题

用 choice、score 或 noul 写出你真正要自动化的判断。

03

拿到概率

多个问题并行返回,结构和概率都可以直接进入代码。

04

执行动作

路由、拦截、排队,或在不确定时请求人工确认。

把置信度当作控制信号

答案只是判断的一半,另一半是你有多信任它。

Choice 和 Score 会返回完整的概率分布以及 confidence。分布集中说明结果更明确,分布平坦说明状态、问题或选项还需要重新审视。Noul 直接返回 yes 概率,不带单独的 confidence 字段。

HIGH

自动执行

信号明确,而且动作可撤销或风险较低。

路由 · 展示 · 继续

MEDIUM

带检查地继续

继续推进流程,但增加确认、补充上下文,或把案例标记给人复核。

确认 · 补充 · 复核

LOW

不要猜

让模型的不确定性改变系统行为:请求人工、要求澄清,或切换到另一条路径。

升级 · 澄清 · 回退

不存在通用阈值。只读操作可以接受比转账、删除等高风险动作更低的阈值。先用保守阈值,再用自己的标注数据持续校准。

适合放在哪里

软件里每秒发生很多次的小决定。

模型路由

简单任务用轻量模型,复杂任务再升级,把昂贵推理留给真正需要它的请求。

工具护栏

工具真正执行前检查危险动作,遇到删除、付款或高风险操作先暂停。

工单分流

同时判断意图、紧急程度和是否需要人工,把队列交给信号而不是关键词堆叠。

实时应用

当体验不能等待一段长回答时,用快速、可预测的判断驱动下一步界面。

可组合的模式

模型保持小而专注,系统因此变得更强。

TypeSafe 文档把 Jev 看成一组可组合的判断。下面这些模式能把原语变成可复用的架构,同时把最终策略留在清晰可改的代码里。

01

Speculative fan-out

一次请求询问代码可能需要的判断,包括只对部分输入有用的问题。忽略暂时用不到的答案,避免第二次网络往返。

02

置信度门控路由

把选中的选项和置信度当成两个独立信号。低置信度的路由可以回退到更强的模型或人工处理。

03

复合评分

用明确的权重组合严重程度、用户情绪、信息完整度等独立 Score,让权重归应用本身所有。

04

意图路由

先把请求分类到已知处理器,再调用后面更昂贵或更专业的工作流。

一个请求,多项判断

把 schema 写在请求里,把结果留给你的系统。

Jev 的接口从 state 和 questions 开始。问题可以并行回答,返回值的形状由你提前定义。

REQUEST01
{
  "model": "jev-latest",
  "state": "Deploy failed twice; prod is returning 500s.",
  "questions": {
    "urgent": {
      "type": "noul",
      "instructions": "Needs attention now?"
    },
    "route": {
      "type": "choice",
      "options": ["fast", "powerful"]
    }
  }
}
RESPONSE02
{
  "urgent": {
    "noul": 0.999
  },
  "route": {
    "choice": "powerful",
    "probabilities": {
      "fast": 0.08,
      "powerful": 0.92
    }
  }
}

放进 Agent 循环

给负责生成的模型,外面再加一层快速判断。

LangChain 通过 TypeSafeClassifier 暴露 Jev,因此 Jev 可以放进节点、middleware hook 或工具包装器里。在主 Agent 消耗 token 之前,先判断请求适合快速模型、更强模型,还是需要人工复核。

阅读 LangChain 集成说明
LANGCHAIN
from langchain_typesafe import Noul, TypeSafeClassifier

classifier = TypeSafeClassifier()
response = classifier.invoke({
    "state": "The deploy failed twice and prod is returning 500s.",
    "questions": {
        "urgent": Noul(
            instructions="Does this need attention now?"
        ),
    },
})

urgency = response.nouls["urgent"].noul

同样的模式也可以保护工具调用:执行前检查即将发生的动作,对高风险调用进行拦截或暂停。

为什么是 System One

给自动化一个更合适的接口。

校准,而不是表演自信

TypeSafe 将训练方向称为 RLCD:Reinforcement Learning for Calibrated Decisions,重点是让概率能够表达不确定性。

并行,而不是排队生成

同一请求里的多个问题可以并行评估,不必为每个小判断启动一轮完整的对话。

类型安全,而不是事后猜测

答案的可能范围提前定义,结果可以直接交给程序消费,不需要从一段文字里猜模型想表达什么。

知道它的边界

决策模型的价值,正来自它主动少做一些事。

Jev 应该和生成模型、确定性代码配合使用。当输出空间已知、问题可以写得具体时,它最有价值。

  • 需要段落、代码、解释或开放式计划?使用生成模型。

  • 需要长链路、多步骤推理?先拆出原子信号,再让应用或推理模型组合它们。

  • 无法定义可能的选项,或说不清每个等级的含义?先把接口契约写清楚。

  • 要做高影响决策?先用自己的数据验证准确率和校准度,并保留人工或确定性策略。

从 Playground 到生产

一个 endpoint、一个服务端 key、一组小而清楚的接口。

公开 Quick Start 使用一个 System One endpoint。先在 Playground 里验证问题,再把请求放到自己的后端,最后在契约稳定后使用官方 SDK 或普通 HTTP。

ENDPOINT

POST https://api.typesafe.ai/v1/systemone

KEY 管理

把 API key 放在环境变量中,浏览器请求必须经过你自己的服务端代理。

PYTHON SDK

pip install typesafe-sdk

从一个真实问题开始

让你的 agent 少猜一次。

用一份真实状态定义一个 choice、score 或 noul,先在 Playground 里查看结果,再决定它应该进入哪里。