一文读懂 Jev:让 Agent 拥有"反射神经"的 System 1 决策模型(原理 · 上手 · 典型案例)

举报
yd_214179722 发表于 2026/09/30 01:42:02 2026/09/30
【摘要】 Jev 是 TypeSafe AI 于 9 月中旬上线的 "System 1" 决策模型,不生成文本,只以约 250ms 的延迟返回三种类型化判断——choice(多选一)、score(打分)、noul(是否 + 校准概率)。社区对它的定位是“Agent 的反射神经”,与 LLM 构成“双系统”分工。

一文读懂 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 快速问三个问题:

  1. 这个操作是否不可逆(删除数据、对外发送、真实付款)?
  2. 工具调用和它声称要做的事一致吗(防偏离、防幻觉)?
  3. 影响范围是否超出工作区边界?

置信度低就 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 团队的自述):

  1. 只做窄域离散判断,不生成内容——写文案、写代码、复杂推理仍是 LLM 的事,别指望它替代主模型;
  2. 分布外(OOD)场景仍是短板:Wiki 导航、T-Rex、绘画类任务较弱,2B 模型在部分浏览器/无人机快照评测中甚至低于常数基线;
  3. 长上下文 + 多候选时延迟上升:1024 token 状态、32 候选时自托管实测约 1 秒,"毫秒级"不是无条件成立的;
  4. 高风险决策不要全自动:用 confidence 阈值 + fail-closed(不确定就人工)是社区共识;
  5. 任务越简单越划算:简单判断丢给 Jev,生成类任务仍走 ChatGPT / Claude / DeepSeek 这类大模型。

六、结语

如果说 2023–2025 年的关键词是"把 LLM 接进一切",那 Jev 代表的"决策模型"赛道提出的是一个更细的问题:Agent 里 80% 的调用其实只需要一个判断,而不是一段作文。把判断交给 System 1,把生成留给 System 2——这个"双系统"架构正在成为 Agent 工程的新默认值。

对开发者来说,上手成本极低:一个 pip install、一个 curl 就能跑通第一个判断;对云上用户来说,开源的 Open-Jev 让"数据不出内网、延迟压到几十毫秒"成为可能。如果你的业务里有大量"路由、打分、是否"类的实时判断,值得一试。


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。