TypeSafe AI 的 System One 模型 Jev 是什么:LangChain 集成指南
What Is Jev? A Guide to TypeSafe AI’s System One Model
TypeSafe AI 发布新模型 Jev,它不是生成文本的传统 LLM,而是被称为 System One 的模型,评估状态并返回带类型的答案和概率,官方称在分类任务上推理速度最高快 200 倍、成本低 400 倍。
原文给出 Jev 在智能体循环中承担分类决策的接入方式,读者可据此判断它能否替代部分 LLM 调用。
Agent 在一个循环中运行:LLM 决定做什么,工具执行,模型评估结果,然后继续在该循环中运行,直到任务完成。
Agent 和 LLM 最初很难集成到依赖结构化数据和可预测接口的软件应用中。两个原语的出现在很大程度上简化了这一过程:
但即便有了这些,Agent 循环仍然缓慢且昂贵:每个决策都需要再一次模型调用。
于是,Jev 登场了。Jev 是 TypeSafe AI 发布的新模型。该公司报告称,在分类任务上,其推理速度最高可提升 200 倍,成本降低 400 倍,优于同类 LLM。
本文将介绍 Jev 的工作原理、它在 Agent 循环中的定位,以及如何将其与 LangChain 配合使用。
关于 Jev 的一切
Jev 实际上并不是传统的 LLM,它不生成文本。它是 TypeSafe AI 团队所称的 System One 模型:
📖 System One 模型是一类 AI 模型,旨在做出软件可以直接使用的快速、结构化决策。System One 模型评估一个状态,并返回带类型的答案和概率。
它使用用于校准决策的强化学习(RLCD)进行训练。你的代码利用这些结果来指导 Agent 下一步做什么,而无需为每个决策都进行一次完整的聊天 LLM 调用。
要调用 Jev 模型,你需要向它发送一个状态(上下文)以及关于该状态的问题。以下是其文档中支持工单示例的单问题版本:
{
"model": "jev-latest",
"state": "Hi, I've been trying to connect my Stripe account for 3 days and it keeps failing. I'm losing sales. Please help ASAP.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
}
}
}文档中的示例给出了这个紧急程度答案,此处省略了响应的其余部分:
{
"is_urgent": {
"type": "noul",
"noul": 0.999
}
}该消息为紧急的概率是 99.9%,你的应用可以用它来对工单进行优先级排序。
支持三种类型的问题:

- Choice:从一组选项中选择。为每个选项返回一个概率以及一个总体置信度分数。
- Score:按照有序级别(例如低、中、高)对输入进行评分。返回一个连续分数、底层分布以及一个置信度值。
- Noul:回答一个是非问题。返回某个陈述为真的概率。
这里的一个关键特性是,你可以在一次请求中针对同一状态提出多个问题。
💡 System One 模型会并行评估一次请求中的每个问题。增加问题几乎不会改变响应时间,且只消耗额外问题对应的 token,而这些 token 很便宜。
关于针对一个支持工单提出多个问题的示例,请参阅 TypeSafe 快速入门。
总之,与传统 LLM 不同,Jev 既不受文本生成的限制,也不受顺序决策的限制!
如何将 Jev 与 LangChain 配合使用
LangChain 的提供商无关模型非常适合在支持 Jev 的同时,兼容数千种其他集成和模型提供商。
LangChain 集成通过 TypeSafeClassifier 暴露 Jev。你将状态和问题传给 .invoke(),得到的是分类结果而非聊天响应。
安装 langchain-typesafe 并设置你的 TYPESAFE_API_KEY,然后发起调用:
from langchain_typesafe import Noul, TypeSafeClassifier
classifier = TypeSafeClassifier()
response = classifier.invoke({
"state": (
"The deploy failed twice and customers are seeing 500s. "
"Can someone look now?"
),
"questions": {
"urgent": Noul(
instructions="Does this need attention right now?"
),
},
})
urgency = response.nouls["urgent"].noul状态可以是文本、结构化数据或 LangChain 消息。这使得使用你的 agent 已有的上下文,从节点或中间件钩子中调用 Jev 变得非常简单。
你可以将其构建到自定义中间件或工具中!
用例
Jev 并不是 LLM 的直接替代品。它不生成文本,但它可以处理我们今天经常使用 LLM 完成的分类任务,而且没有同样的延迟和成本。这使它成为驱动你的 agent 的模型的有前景的补充:使用 LLM 进行开放式推理和生成,使用 Jev 进行沿途的快速、结构化决策。
模型路由
简单的查找不需要与困难的调试任务相同的模型。模型路由中间件让 Jev 评估请求并根据你定义的标准选择模型,因此简单任务快速且低成本,复杂任务使用更强大的模型。
from langchain.agents import create_agent
from langchain_typesafe.experimental.middleware import (
ModelChoice,
ModelRouterMiddleware,
)
router = ModelRouterMiddleware(
choices={
"fast": ModelChoice(
model="openai:luna",
criteria="Direct lookups, extraction, and localized changes.",
),
"powerful": ModelChoice(
model="openai:sol",
criteria="Architecture and high-stakes decisions.",
),
},
instructions="Choose the least costly model that can complete the task.",
)
agent = create_agent("openai:gpt-5.6-luna", middleware=[router])路由器从最新的用户消息中选择一个模型,并在整个运行过程中使用它。概率和置信度也仍然保留在 agent 状态中。
自动模式
Agent 本质上仍然不可信。Agent 可能收到不良指令(无论是自然产生的,还是来自足够有动机的攻击者),这些指令可能说服它采取我们不希望它采取的行动。
像 claude、codex、cursor 这样的编码工具已经推出了某种在危险操作被采取之前对其进行分类的方法,这慢慢帮助建立了对 agent 的信任。到目前为止,这个分类器步骤一直被锁在工具的开源部分之外。
现在既然有了一个廉价且高性能的分类器模型,我们可以采用同样的模式并将其应用到所有 agent 上!
from langchain.agents import create_agent
from langchain_typesafe.experimental.middleware import (
AutoModeMiddleware,
)
guardrail = AutoModeMiddleware(tools=["bash"])
agent = create_agent("openai:gpt-5.6-luna", middleware=[guardrail])AutoModeMiddleware 使用 Jev 检查工具调用中可能采取的风险决策,并在工具执行之前阻止调用。
开始使用!
我们对 Jev 以及随之而来的可能性感到非常兴奋。我们已经看到的一些很酷的项目:来自 Browserbase 的 Kyle Jeong 正在以极低的成本为浏览器使用 agent 提供支持,Jarrod Watts 构建了一个实时交易 agent,Ryan Vogel 正在进行大规模的电子邮件分类。
现在几乎每周都有新模型发布,但这个模型获得了相当超乎寻常的反响。我们很期待看到你用 LangChain 和 Jev 构建出什么。
在论坛上告诉我们你的想法,在 X 上标记我们并分享你正在构建的内容,或者参与 LangChain issues!
来源:LangChain Blog · langchain.com