SYSTEM ONE MODEL · JEV
不是聊天,是判断。
让软件直接使用的概率模型。
Jev 接收一份状态和一组问题,返回预先定义好的类型化答案、概率与置信度。它不生成一段话,而是把 agent 和业务流程中的小判断变成可以直接进入代码的结果。
一个请求 · 并行回答
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 字段。
自动执行
信号明确,而且动作可撤销或风险较低。
路由 · 展示 · 继续
带检查地继续
继续推进流程,但增加确认、补充上下文,或把案例标记给人复核。
确认 · 补充 · 复核
不要猜
让模型的不确定性改变系统行为:请求人工、要求澄清,或切换到另一条路径。
升级 · 澄清 · 回退
不存在通用阈值。只读操作可以接受比转账、删除等高风险动作更低的阈值。先用保守阈值,再用自己的标注数据持续校准。
适合放在哪里
软件里每秒发生很多次的小决定。
模型路由
简单任务用轻量模型,复杂任务再升级,把昂贵推理留给真正需要它的请求。
工具护栏
工具真正执行前检查危险动作,遇到删除、付款或高风险操作先暂停。
工单分流
同时判断意图、紧急程度和是否需要人工,把队列交给信号而不是关键词堆叠。
实时应用
当体验不能等待一段长回答时,用快速、可预测的判断驱动下一步界面。
可组合的模式
模型保持小而专注,系统因此变得更强。
TypeSafe 文档把 Jev 看成一组可组合的判断。下面这些模式能把原语变成可复用的架构,同时把最终策略留在清晰可改的代码里。
Speculative fan-out
一次请求询问代码可能需要的判断,包括只对部分输入有用的问题。忽略暂时用不到的答案,避免第二次网络往返。
置信度门控路由
把选中的选项和置信度当成两个独立信号。低置信度的路由可以回退到更强的模型或人工处理。
复合评分
用明确的权重组合严重程度、用户情绪、信息完整度等独立 Score,让权重归应用本身所有。
意图路由
先把请求分类到已知处理器,再调用后面更昂贵或更专业的工作流。
一个请求,多项判断
把 schema 写在请求里,把结果留给你的系统。
Jev 的接口从 state 和 questions 开始。问题可以并行回答,返回值的形状由你提前定义。
{
"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"]
}
}
}{
"urgent": {
"noul": 0.999
},
"route": {
"choice": "powerful",
"probabilities": {
"fast": 0.08,
"powerful": 0.92
}
}
}放进 Agent 循环
给负责生成的模型,外面再加一层快速判断。
LangChain 通过 TypeSafeClassifier 暴露 Jev,因此 Jev 可以放进节点、middleware hook 或工具包装器里。在主 Agent 消耗 token 之前,先判断请求适合快速模型、更强模型,还是需要人工复核。
阅读 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 里查看结果,再决定它应该进入哪里。