一文读懂 Jev:让 Agent 拥有"反射神经"的 System 1 决策模型(原理 · 上手 · 典型案例)
一文读懂 Jev:让 Agent 拥有"反射神经"的 System 1 决策模型(原理 · 上手 · 典型案例)
摘要:9 月以来 Agent 圈最火的新词之一是 Jev——TypeSafe AI 推出的 “System 1” 决策模型。它不写文章、不写代码,只做一件事:在约 250ms 内对你的问题给出带校准概率的类型化判断(多选一、打分、是否)。本文介绍 Jev 的定位与原理、三种决策原语,给出从托管 API 到开源自托管的完整上手路径,并盘点社区里最具代表性的玩法与典型案例,最后聊聊它的边界在哪里。
推荐标签:AI Agent 大模型 决策模型 Jev
一、Jev 是什么
卡尼曼在《思考,快与慢》里把人的思维分成两套系统:System 1 快而直觉,System 2 慢而深思。过去两年我们构建 Agent 的方式几乎全是"System 2 依赖症":无论判断一个工单该转给谁,还是决定要不要点"删除"按钮,都让大模型自回归地生成一段文字,再用正则或 JSON 解析把答案抠出来——贵、慢、不稳定,还得为一大段"话"付 token 钱。
Jev(TypeSafe AI,2026 年 9 月中旬上线)把"判断"从"生成"里拆了出来。官方 README 的一句话定位:
Give it state and typed questions, then use the returned choices, scores, and probabilities in your code.
(给它状态和类型化的问题,然后在代码里直接使用返回的选项、分数和概率。)
它提供三种决策原语(decision primitives):
| 类型 | 回答的问题 | 返回内容 |
|---|---|---|
choice |
多选一(支持动态候选) | choice + probabilities + confidence |
score |
按给定档位打分 | score + probabilities + confidence |
noul |
是 / 否判断 | noul ∈ [0, 1](校准概率) |
几个关键设计:
- 一次请求可混合多类问题并行评估,官方文档明确说"增加问题几乎不增加响应时间";
- 概率经过校准(calibrated),可以直接拿
confidence设阈值做自动化兜底; - 延迟极低:托管 API 实测约 250–300ms(Open-Jev 团队跨网观测约 295ms),自托管可以压到几十毫秒。
社区对它的定位有一句很传神的总结:“Jev 不是替代 Agent 的万能药,而是 Agent 的反射神经。”
二、它和"让 LLM 顺带判断一下"有什么区别
| 维度 | LLM 判断(System 2) | Jev(System 1) |
|---|---|---|
| 输出 | 自回归生成文本,需要解析 | 类型化结构,天然可编程 |
| 延迟 | 秒级 | 托管 ~250ms;自托管几十 ms |
| 不确定性 | 表述模糊,难以校准 | 显式概率 + 置信度,可设阈值 |
| 成本 | 按生成 token 计费 | 判断类任务成本低得多 |
| 稳定性 | 同一问题反复问可能摇摆 | 输出概率分布,稳定可复现 |
| 擅长 | 生成、推理、创作 | 分类、打分、是否、路由 |
所以典型的生产架构是"双系统":Jev 负责高频小判断,LLM 负责真正的生成与推理,代码负责策略(policy)与验证。二者不是替代关系,而是分工关系。
三、快速上手
3.1 托管 API:5 分钟接入
Python SDK(要求 Python ≥ 3.10):
pip install typesafe-sdk
# 或
uv add typesafe-sdk
API Key 在 console.typesafe.ai/keys 获取,默认模型为 jev-latest。也可以直接裸调 HTTP 接口:
curl -X POST https://api.*****.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
Python SDK 的完整示例(三种问题类型混合,一次调用全部返回):
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
client = TypeSafeClient() # 默认从环境变量 TYPESAFE_API_KEY 读取密钥
ticket = "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."
response = client.system_one(
state=ticket,
questions={
"department": Choice(
instructions="Which team should handle this",
criteria={
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions",
},
),
"frustration": Score(
instructions="How frustrated the customer appears",
criteria=[
"Calm, just stating facts",
"Frustrated but civil",
"Very angry, strong language",
],
),
"is_urgent": Noul(
instructions="The message conveys urgency or time-sensitivity",
),
},
)
print(response.answers["department"].choice) # "technical"
print(response.answers["frustration"].score) # 1.0
print(response.answers["is_urgent"].noul) # 1.0
返回的 JSON 长这样(节选):
{
"model": "jev-1.13.0",
"answers": {
"department": {
"type": "choice",
"choice": "technical",
"confidence": 0.78,
"probabilities": { "technical": 0.85, "sales": 0.0, "billing": 0.15 }
},
"is_urgent": { "type": "noul", "noul": 1.0 }
},
"usage": { "input_tokens": 392, "output_tokens": 65 }
}
注意 probabilities 给的是整个候选集上的分布而不只是top-1,confidence 则告诉你这个判断本身可不可信。生产代码里推荐养成"阈值 + 兜底"的习惯写法:
ans = response.answers["department"]
if ans.confidence < 0.6:
route = human_review() # fail-closed:不确定就交给人工
else:
route = ans.choice
3.2 接入编码 Agent(Claude Code 等)
官方提供了 Agent Skill,两条命令装进 Claude Code:
claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai
社区目前最热的用法之一是技能路由:把 Claude Code 的技能(skills)设为"仅用户可调用",每次用户请求先让 Jev 判断该命中哪个技能,只把命中的那一个塞进模型上下文——避免把写测试、代码审查、写文档、生成 API 等一堆无关技能全量注入,既省 token 又提高命中率。同思路的还有 codex-jev-router、pi-jev-model-router(给不同任务自动选模型和推理档位)等社区路由器。
3.3 开源自托管:Open-Jev
如果业务数据不能出内网,可以用西北大学团队受 Jev 启发的开源实现 Open-Jev(MIT 协议)。它提供 2B / 9B / 27B 三个规格的权重(HuggingFace:ZefanCai/Open-Jev-2B、Open-Jev-9B、Open-Jev-27B-v1.1),底座为 64 层"Gated DeltaNet 线性注意力 + 全注意力"混合架构,外挂 LoRA 适配层与标量决策头。
安装与启动服务:
git clone https://github.com/ Zefan-Cai / Open-Jev .git
cd Open-Jev
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[train]'
# 启动推理服务
python -m jev.server --model Qwen/Qwen3.5-2B \
--revision 15852e8c16360a2fea060d615a32b45270f8a8fc --max-length 4096
或者用 Docker 一键起:
docker compose up -d --build # NVIDIA GPU
docker compose up -d --build open-jev-cpu # 仅 CPU,速度慢很多
curl -s -X POST http://127.0.0.1:8791/v1/systemone \
-H 'Content-Type: application/json' \
--data-binary @configs/example-request.json
Python 客户端调用(与托管 API 的 /v1/systemone 格式兼容):
from jev.client import Client
result = Client().ask(
state="My order arrived damaged. Please refund it.",
questions={
"refund_requested": {"type": "noul", "instructions": "Is a refund explicitly requested?"},
"route": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Refunds and charges", "engineering": "Software defects"}},
"frustration": {"type": "score", "instructions": "Rate expressed frustration.",
"criteria": ["Calm", "Frustrated but civil", "Very angry"]},
},
)
print(result["answers"])
效果参考(Open-Jev 团队自测,JevBench 231 题):
| 模型 | JevBench 准确率 | Hard 111 准确率 |
|---|---|---|
| Open-Jev-2B | 64.94% | 41.44% |
| Open-Jev-9B | 77.49% | 59.46% |
| Open-Jev-27B v1.1 | 85.28% | 72.07% |
在云上部署的选型建议:
- 2B / 9B:单卡即可(官方自述 9B 可在单张 16GB 显存显卡上以 bf16 运行),选一台带 NVIDIA T4 级别 GPU 的弹性云服务器、或直接用 ModelArts Notebook 拉起
jev.server,就足以支撑工单路由、内容风控这类高频业务;判断服务无状态,前面挂负载均衡即可横向扩容; - 27B:准确率最高,但需要大显存高配实例,适合对误判率敏感的核心链路;
- 社区还有优化版 OpenJev-Fast:在 Blackwell 架构单卡上把单次前向压到 17.3ms、端到端 42ms(P95 137ms),精度几乎无损——不过它依赖 B300(sm_103)等特定硬件与 CUDA 13 软件栈,选型时注意匹配;
- 安全上建议:推理实例只在安全组放行内网网段,API 不暴露公网。
四、典型案例盘点
Jev 上线不到一个月,社区已经玩出了花。下面挑几类最有代表性的。
案例 1:客服工单的"一次调用三连判"(官方场景)
就是 3.1 节的例子:一次请求同时完成部门路由(choice)+ 情绪打分(score)+ 紧急程度(noul),总延迟与单问几乎相同。开源 README 里还给出了更"工业级"的同类场景:智能客服工单路由、实时退款风控裁决、故障告警定级——这些任务的共同点是高频、低延迟敏感、答案空间小,正是传统 LLM 最不划算的地方。
案例 2:Agent 的安全护栏(高危操作门控)
在 Agent 执行工具调用之前,用 Jev 快速问三个问题:
- 这个操作是否不可逆(删除数据、对外发送、真实付款)?
- 工具调用和它声称要做的事一致吗(防偏离、防幻觉)?
- 影响范围是否超出工作区边界?
置信度低就 fail-closed 转人工审批。退款审批、授权门控属于同一类玩法。Jev 的判断结果还会注入回 Agent 上下文,供后续步骤参考。
案例 3:游戏 Agent 出圈(社区最火)
- Jev plays Slay the Spire 2(@coolish,1100+ 赞):每一步出牌就是一次
choice,没有思维链、没有长推理; - Jev plays Tetris(@AlanDaitch)、Jev 2048(@ARCJ137442,每步移动实时显示概率分布);
- Jev Chess(@choxos):直接对阵 Stockfish。
这类 demo 证明了"纯类型化决策"也能构成完整的策略闭环,而且每步只需几十毫秒。
案例 4:浏览器自动化 jev-ultrafast
browser-use 生态的官方仓库 browser-use/jev-ultrafast 把传统 Agent 循环替换为"每周期一次类型化决策",动作空间动态索引、只在需要输入文本时才生成文字,实测 Google Flights 机票查询 7.1 秒完成——比传统"截图→大模型思考→出动作"的循环快一个量级。
案例 5:反垃圾与内容风控
- Jev Anti-Spam Bot(@backmeupplz):Telegram 群里
noul高置信度自动删 spam,低置信度转人工复核; - Jev Call Screener(@SuchintK):来电转录实时分类,Go 写的策略层决定接听/挂断(Twilio);
- Slop Guard / Jev Content Guard:浏览器插件识别 AI 水文、广告和标题党。
案例 6:文档与邮件分诊
- JevPDF(@kylemclaren):对 PDF 逐行做相关性 yes/no 判断并高亮命中行;
- 多个 Gmail 分诊工具(jev-mail、Jevmail、JevZero):把 Jev 当"标注员",给邮件自动打标签、分流。
案例 7:把判断嵌进数据管道与命令行
- duckdb-jev / dbt_jev / datafusion-jev / Jev for Splunk:在 SQL 和数据管道里直接做语义分类;
- jegrep:用自然语言描述做"语义 grep";decide(@vsekhar):命令行决策工具。
彩蛋:talktojev —— “生成即分类”
@xucian 的 talktojev 逐词用 choice 选出下一个字,全程不用 LLM 完成对话——把"分类"玩成了"生成",堪称这套原语的极限操作。
五、冷静看:Jev 的边界
热度之下也要看清局限(部分来自 Open-Jev 团队的自述):
- 只做窄域离散判断,不生成内容——写文案、写代码、复杂推理仍是 LLM 的事,别指望它替代主模型;
- 分布外(OOD)场景仍是短板:Wiki 导航、T-Rex、绘画类任务较弱,2B 模型在部分浏览器/无人机快照评测中甚至低于常数基线;
- 长上下文 + 多候选时延迟上升:1024 token 状态、32 候选时自托管实测约 1 秒,"毫秒级"不是无条件成立的;
- 高风险决策不要全自动:用 confidence 阈值 + fail-closed(不确定就人工)是社区共识;
- 任务越简单越划算:简单判断丢给 Jev,生成类任务仍走 ChatGPT / Claude / DeepSeek 这类大模型。
六、结语
如果说 2023–2025 年的关键词是"把 LLM 接进一切",那 Jev 代表的"决策模型"赛道提出的是一个更细的问题:Agent 里 80% 的调用其实只需要一个判断,而不是一段作文。把判断交给 System 1,把生成留给 System 2——这个"双系统"架构正在成为 Agent 工程的新默认值。
对开发者来说,上手成本极低:一个 pip install、一个 curl 就能跑通第一个判断;对云上用户来说,开源的 Open-Jev 让"数据不出内网、延迟压到几十毫秒"成为可能。如果你的业务里有大量"路由、打分、是否"类的实时判断,值得一试。
- 点赞
- 收藏
- 关注作者
评论(0)