Jev 玩家图鉴:380 个玩法里,哪些今天就能抄
Jev 一个字都不写——你给它一段内容,再加几个"二选一 / 排序 / 打勾"式的问题,它把答案和把握程度直接交给程序。发布至今 9 天,社区已经拿它重做了浏览器操作、代码审查、上下文压缩、客服路由和数据库查询。这篇不重复厂商的宣传口径,而是按"你到底想干哪件事"把玩法地图铺开,每类给到能抄的仓库名、安装命令或配置片段,并且把厂商没主动说的失效模式与质疑一并放进来。
📅 更新于 2026-09-23
本文校对于 Jev @ jev-1.13.0(2026-09-23 逐条核对官方文档、模型页与社区索引)· 官方源:docs.typesafe.ai
0030 秒速览:三句话、第一个动作、以及你手上必须有什么
如果只记三句话
① 它不是一个"更笨的聊天模型",而是一个"会用概率回答选择题的零件"。它不写文章、不写代码、不解释理由。你从三种问法里挑:从你给的选项里挑一个(Choice)、按你给的分级打个分(Score)、判断一句话是真是假(Noul,读作"诺尔")。答案带着概率一起回来,你的程序可以直接用。
② 它的全部价值,是把"本来就是选择题、却偏要请大模型来答"的那些环节换掉。一次判断 0.4 秒、几厘钱;同一个判断交给前沿大模型要几十秒、上千倍的钱。发布 9 天,社区最能打的一批玩法几乎都长在同一个位置:Agent(能自己连着做好几步任务的 AI 助手)循环里的每一个小决定——下一步该调哪个工具、这条工具结果还值不值得留在上下文里、这轮任务是不是真做完了。
③ 但它不是"更便宜的 Claude",换错了地方会比原来更糟。厂商自己在文档里列了 9 种已知失效模式:不会数数、不会比日期、只看字面意思、容易被对抗性文字带跑。更关键的是——如果你的场景里 79% 的情况都该给同一个答案,那"准确率 75%"的分类器还不如一行写死的代码。这句话不是我说的,是 2026-09-21 一份独立评测算出来的。
起手动作:读完 60 秒内,你要做的第一件事
如果你在用 Claude Code,把下面这两行复制进终端跑一次——这是厂商官方提供的"技能包",装完之后你的 AI 助手就知道该怎么调用 Jev 了:
claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai
装完,重启 Claude Code(或敲 /reload-plugins),然后把这句话原样丢给它:
Using the TypeSafe skill, explore the project and find opportunities for using
intelligent judgement to stand in for complex parsing or other fragile code.
(这句话的意思是:用 TypeSafe 技能扫一遍这个项目,找出哪些地方本来靠一堆脆弱的手写规则在硬扛、其实该换成"让模型做一次判断"。)
为什么是"先装技能",而不是"先学怎么调它的接口(API,程序之间约定好的调用方式)"?因为这正是厂商对"我该从哪开始"的官方回答。文档里那页 Jev with coding agents 开篇就把最常见的一个误解堵死了:Jev 不能替换你 AI 助手的底座模型——文档原话是"没有 model: "jev-latest" 这样一个开关,能把你的编程助手变成 Jev 驱动的助手,因为这两个系统解决的是不同的问题"。正确的姿势是:你照常用 AI 助手写代码,让写出来的代码去调用 Jev 做判断。
我把能核实的都摆出来,因为它正好是"强时效"的活标本:
- 09-15 发布时:走候补名单(early access)。旧版在 09-21 写下"官方走 waitlist",当时是对的。
- 约 09-20:候补名单取消、开放注册,新用户送 $5 额度(约 1.2 亿 token)。旁证有三条:官方控制台现在直接跳到登录页、页面上已经没有任何候补名单表单(这一条我自己验证过);OpenRouter 官方文档写着"没有候补名单、也不需要单独的 TypeSafe 账号";中文媒体 09-21 有报道。但官方站点和文档里搜不到"取消候补名单"这条公告,首页的介绍文字至今还挂着 "in early access"。
- 09-22:又暂停了新用户注册。出处是一份第三方跑分仓库的结论。
所以正确的姿势是:别根据任何一篇文章(包括这篇)判断"现在能不能注册",直接去控制台看一眼。读文档、看社区项目、装技能包都不受影响。
做这个动作之前,你手上必须有什么
这一栏比上面那一栏重要——它让你在花时间之前就知道这篇对你有没有用。
Jev 是要"嵌进"某个地方替换掉一次调用的,不是从零搭一个产品。这个地方可以是一段代码,也可以是一条业务流程(工单分派、内容审核、简历初筛、发票归类)。如果你手上只有一个想法、还没有任何东西在跑,这篇仍然能读,但请把 08 最小例子整节当成"先知道有这回事"。
因为你多半不自己写代码——这篇里绝大部分操作的正确姿势是"把话讲给 AI 助手,让它动手"。厂商自己的文档也是这么建议的,甚至给了"让 AI 助手自己动手装"的提示词。
这两样如果你都没有,那这篇对你现在最大的价值是第 04 节那张玩法地图和第 11 节那些质疑——你至少能判断出,当有人再拿"AI 又有新突破了"来找你时,这件事的分量到底在哪一档。
先给一组数字,后面才谈细节
你的处境 → 该看哪一节
| 你现在的情况 | 直接跳到 | 为什么是这一节 |
|---|---|---|
| 我天天用 Claude Code / Codex,想知道能装点什么让 Agent 变聪明 | 05 装进 AI 助手 | 这一节全是可复制的安装命令与配置,不讲原理 |
| 我想知道这波热度里到底有什么真东西,别被忽悠 | 11 质疑与误解 + 10 失效模式 | 把厂商自认的短板和外部批评摆在明面上 |
| 我不写代码,但手上有一条业务流程想加"AI 判断" | 06 官方配方 + 04 玩法地图 | 配方带实测数字,地图告诉你别人做到哪一步了 |
| 我想知道它和我现在用提示词(写给模型的那段指令)让大模型"返回 JSON(一种固定格式的文本,程序能直接读)"有什么本质区别 | 01 它是什么 + 02 三种问法 | 这两节回答"为什么需要它" |
| 我只想知道账怎么算、会不会踩坑 | 09 成本 + 10 失效模式 | 直接给表和数字 |
| 我只想看真实的人拿它做了什么 | 04 玩法地图 | 380 条按意图归好类,还带仓库地址 |
Jev 于 2026-09-15 发布,价格、版本号、速率限制都在快速变化。本文里出现的性能数字分成三类,我会逐处标注:厂商自报(如"快 193.6 倍、便宜 444.6 倍",出自厂商自己设计的四套工作流评测)、第三方评测(如两份独立跑分,样本都很小)、二手报道(如"上线 24 小时内 Vercel 上约 13% 的付费团队在用",来自中文媒体转述)。拿它们做规划可以,拿去做财务承诺还太早。
01它到底是什么:一台"只输出判断结果"的机器
先破除三个最容易犯的误解
误解一:它是"小一号的 Claude"。不是。小号大模型依然是"接着往下写字"的机器,只是字少一点、笨一点。Jev 根本不写字——它拿到内容之后,直接输出一个带类型的值("billing"、"3 分"、"0.999")。这两件事的区别在下一篇里会反复出现,因为它决定了很多能力它有、很多能力它永远没有。
误解二:它是"用提示词(写给模型的那段指令)让大模型当分类器"换了个牌子。也不完全是。让大模型返回 JSON(一种固定格式的文本,程序能逐字读出来)的做法有三个老问题:它可能格式写错(少个引号、多一句解释)、它说"我有 90% 把握"往往并不准、它按 token 计费所以每个字段名都在烧钱。Jev 把"输出形状"和"把握程度"这两件事变成了模型本身的属性——它只能在你的选项里选,不存在"输出第五个类别"这种失败。
误解三:它是拿开源模型微调出来的。"微调"是指拿一个已经训练好的模型、再用自己的数据接着训它;"LoRA"是一种只训练一小块附加参数、比较省钱的微调做法。官方模型页明确写了:"Jev is not fine-tuned or LoRA-adapted with customer data. It is trained with RLCD... and the same weights serve every account."(Jev 不用客户数据做微调或 LoRA 适配,所有账号用同一份权重;RLCD 是它自己的训练方法,"校准决策强化学习"。)也就是说,你不能"训练它懂你的业务",只能通过每次请求里带的内容和问题来塑造它的判断。
它是什么:一句话定义 + 一个类比
Jev 是 TypeSafe AI 在 2026-09-15 发布的第一个公开的"System One 模型"(System One Model,直译"系统一模型")。官方定义是:
"System One models are a class of AI models built to make fast, structured decisions that software can use directly. A System One model evaluates a state and returns typed answers and probabilities."
用中文说一遍:这类模型的用途是"让软件直接拿去用的快速结构化判断"。你给它两样东西——一段待判断的内容(官方叫 state,可以理解成"案卷")和一组带类型的问题,它还给你的是一批带类型的答案(选项名 / 分数 / 概率)。
谁做的、为什么做。Jev 出自 TypeSafe AI,创始人是 Diogo Almeida——按他在公开访谈与中文报道里的自我介绍,他是"RLHF(基于人类反馈的强化学习)的共同发明人",参与过 GPT-4 和 ChatGPT。他的论点是:大模型已经很会聊天、写作和编程,但真正无人值守、在服务器后台稳定运行的自动化却少得可怜;他把一部分原因归到训练目标本身——"让人类更喜欢这个回答"和"让软件能可靠地消费这个结果"并不是同一件事,所以他另起了一条路。这段背景主要来自本人自述与二手报道,我没有逐一核实其履历细节。
"System One"这个名字借自心理学家卡尼曼在《思考,快与慢》里的双系统说法。这个类比在这里是映射得住的,因为至少三处能一一对上:
| 心理学里的说法 | 对应到 AI | 代表 | 什么时候该用哪一类 |
|---|---|---|---|
| 系统一:快、直觉、几乎不费力、可并行 | 一次性算完、只给受限答案、可同时回答很多问题 | Jev | 答案空间已经被你定死的判断 |
| 系统二:慢、需要专注、一步步推、费力 | 一个字一个字往外写、可以长篇推理 | Claude / GPT / Gemini | 需要理解、生成、多步推理、写代码 |
这个类比的边界在哪:人的"系统一"包含大量常识和联想,而 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%。你的程序接住这个数字,就可以把它排到队列最前面。
这里有三个值得停下来看的细节,它们决定了它好不好用:
- 输出里没有"文本"这一层。不需要解析、不需要容错、不需要"万一它多写了一句解释怎么办"。这就是厂商说"零幻觉"的真正含义——第 11 节会说明它保证的到底是什么。
- 问题是你编号的,编号不会发给模型。文档特别提醒:"Question IDs are for your code. They are not sent to the model. Write the complete question in
instructions."(编号只给你的代码用,不会送给模型;所以问题必须完整写在 instructions 里,别指望靠编号省字。) - 一次请求可以问很多个问题,而且它们是并行的。这不是"多问几个就多等几倍"——文档原话是"每个问题独立评估,增加问题几乎不改变响应时间,也不会产生 context rot(上下文里堆了太多无关内容、模型反而变糊涂)"。第 03 节的"扇出"模式就建立在这条性质上。
它解决什么问题:把"伪选择题"从大模型手里拿回来
你大概见过这类代码逻辑:把一段用户消息塞进一个精心写的提示词,要求大模型"返回 JSON,category 只能是 complaint / question / praise / other 之一",然后在代码里 JSON.parse、校验字段、处理解析失败。
这套做法的荒谬之处在于:你其实已经知道答案长什么样了(就那四个词之一),却请了一个"按字收费、能写论文"的系统来回答,还得写一堆代码去处理它可能写歪的情况。
Jev 就是把这部分接走:大模型继续负责理解、生成、推理、写代码;Jev 专门负责"该走哪条分支"。官方在模型页里用了一个很好的说法:你在用请求(questions 和 criteria)来塑造它,而不是用权重来训它。
问自己一句——"这个判断的答案,我能不能提前把所有可能都列出来?"能列出来 → 大概率适合 Jev。
再问一句——"这个判断用一句 if/else(程序里最基本的"如果…就…否则…")或者正则表达式(用一串匹配模式去认文本的写法)能不能写死?"能写死 → 连 Jev 都不用上,直接写代码。
最后问一句——"这里 80% 以上的情况是不是都该给同一个答案?"是 → 先去算你的"常数基线"(也就是"永远返回最常见那个答案"能拿到的准确率,见 第 08 节的 79% 陷阱),否则准确率再高也是白花钱。
02三种问法,和那根被大多数人忽略的"第二根轴"
Jev 只认三种问题形状(官方叫 primitives,原语——意思是"最基础、不能再拆的操作")。你必须把你的需求塞进这三种之一,没有第四种。它们可以在一次请求里混着问。
Choice:从你给的选项里挑一个
怎么问:给一串选项,每个选项配一句人话解释它是什么意思。
拿回什么:choice(它选的那个)、probabilities(每个选项各自多少概率,加起来 100%)、confidence(一个 0–1 的数,说明这次选择有多"干脆")。
数量上限:255 个选项。这条上限有实际后果——官方有个配方就是靠它把"在文档里找答案"变成"一次问 218 行哪一行最相关"。
典型用途:意图分类、工单分派、把请求路由给不同的处理者。
Score:按你给的分级打分
怎么问:给一串有顺序的等级,每一级用一句人话描述(比如"只是难看,不影响功能" → "功能坏了但有替代办法" → "完全卡死,没有绕路")。
拿回什么:score(分数,可以落在两级之间,比如 1.9)、legend(把等级按序号重述一遍,方便你对号)、probabilities、confidence。
典型用途:严重程度、客户愤怒程度、内容质量、风险等级。
Noul:判断一句陈述是真是假
怎么问:一句是非题,比如"客户是在要求退款吗"。
拿回什么:只有一个 noul,0 到 1 之间的一个数,意思是"这句话为真的概率"。接近 1 是很强的"是",接近 0 是很强的"否",靠近 0.5 就是它也不知道。
注意:Noul 不返回 confidence——因为它本身就是个概率,没必要再套一层"我对这个概率有多确定"。
典型用途:退款判定、内容审核、合规守门、某个字段有没有出现。
Noul 返回的不是真/假,是一个概率。你可以在代码里设阈值把它变成真假(比如 > 0.8 就当"是"),但把这个概率原样留着更有用——0.95 和 0.55 都算"是",该走的路完全不同。至于 "Noul" 这个名字本身,官方文档没给词源解释,别去猜它的缩写含义。
置信度:被大多数人忽略的那根轴
这是 Jev 设计里最有意思的一处,也是很多"用了但没用好"的根源。你要区分两件事:
| 概念 | 它在回答什么 | 什么时候用它 · 别当什么用 |
|---|---|---|
probabilities(概率) | "在这几个选项里,各自占多少比重" | 它是相对的——三个选项各 33% 和另外一个三选项集里各 33%,看起来一样,但含义可能天差地别。要做统计、算期望值时用它。 |
confidence(置信度) | "这个分布有多集中"——也就是它这次有多干脆 | 它是从概率分布算出来的一个汇总数,用来做"要不要动手"的开关。别拿它当"正确率"用——它说的是模型自己有多笃定,不是它有多准。 |
官方给的建议是最实用的一条:把置信度切成三段,每段对应一种系统行为。
模型看得清楚,不用人管。可以直接往下走。
它有个合理答案但不确定。可以请用户确认一句、标记待复核、或者再去补一点信息。
转人工、要求澄清、或者退回到别的系统。官方原话是"模型在告诉你,它没有足够信息,或者这个问题不适合它"。
而"阈值(就是前面说的那道门槛的具体数字)到底设多少"这件事,官方给的原则是:同一个系统里,不同动作的门槛应该不一样,按"做错了有多贵"来定。下面这段是官方文档里的示例代码,我没有改动它的阈值(0.5 / 0.9):
response= client.system_one( state=user_message, questions={"action": Choice( instructions="What is the user trying to do?", criteria={"check_balance":"View account balance","approve_transfer":"Approve the pending withdrawal request","support":"Get help with an issue", }, ), }, ) action = response.answers["action"] confidence = action.confidenceifconfidence < 0.5:# 模型是真的不确定,别猜route_to_human(user_message)elifaction.choice =="check_balance":# 低风险:查余额看错页面,可以撤回show_balance(account_id)elifaction.choice =="approve_transfer":ifconfidence > 0.9:# 高风险 + 高置信度:要确认,然后执行confirm_then_execute(account_id)else:# 高风险 + 中等置信度:先核实ask_user_to_confirm(account_id)
读这段代码的重点不是语法,而是那个不对称:同样是"查余额"和"批准转账"两个动作,"查余额"不需要 0.9 的门槛,"批准转账"需要。这就是"阈值随风险缩放"的操作含义。
三份独立研究拼出了同一幅图,每一条都值得记住:
- 它的置信度是一个固定公式算出来的。有人收集了 738,164 条真实 Choice 答案反推,发现置信度就是
C = (N × 最高概率 − 1) / (N − 1)(N 是选项个数),和实测值的平均差只有 0.005。巧的是,官方文档里那个可以拖滑块的交互演示,用的正是这个公式的三选项版本。所以你完全可以自己算、或者换一种算法——官方也明说"你从来不被锁在我们的定义里,所以我们把完整的概率分布给了你"。 - 它报的把握常常偏高。同一份研究测出:Noul 平均高估约 7 个百分点(报 79.0% 把握、实际 72.3% 准),Choice 高估约 15 个百分点(报 91.4%、实际 76.1%)。
- "把握低于 95%"这件事本身说明不了什么。另一份测试里,Choice 置信度低于 95% 时准确率只有 50–57%,作者的原话是"那个数字几乎不携带信息"。
所以:置信度是一个"可用信号",不是一份"正确率承诺"。厂商在文档里也提醒过:正确的阈值取决于你的领域和模型在你场景上的表现,要从保守的阈值开始、用自己的数据测、再根据观察结果调整。
如果你只是想挑一个最可能的选项,根本不需要设置信度阈值——选概率最高的那个就行了。官方在"常见问题"里专门澄清了这一条:只有当你要"根据把握程度决定要不要行动"时,才需要阈值;如果你心里有一个明确的统计算法(比如算期望值、做加权),那就该去用 probabilities 而不是 confidence。
一个反直觉的坑:不要指望"同一件事换个问法答案就一致"
这是官方"失效模式"文档里最值得单独拿出来的一条,因为它违反直觉,而且只有真读过文档的人才知道。同一个工单,问"客户是在要求退款吗"(Noul)和问"这是不是退款请求(是/否)"(Choice),答案差得很远:
Noul 的 noul | Choice 选"是"的概率 | Choice 选"否"的概率 | Choice 的 confidence |
|---|---|---|---|
| 0.22 | 0.01 | 0.99 | 0.97 |
更极端的是问同一件事和它的否定("客户是在要求退款吗" / "客户是在要求退款以外的事吗"),两个 Noul 分别给出 0.72 和 0.47——加起来 1.19,不是 1。
官方对此的解释是:"不要依赖想象中的结构性不变性。Choice 是在选项之间做相对取舍(到底选哪个),而每个 Noul 都是绝对的,可以所有选项都很低。" 实际后果有两条:第一,别把一个 Noul 上调好的阈值直接搬到 Choice 上;第二,别拿两个独立问题的答案去做加减法校验。
03官方给的四种用法模式:这是"新玩法"的骨架
2026-09-23 我核对时,官方文档的 Patterns 一页已经从发布初期的空白长出了四个成体系的模式。这一节把它们说清,因为社区那 380 个玩法,基本都是这四种的变体——看懂这四种,你就有了自己造第五种的能力。
模式一:推测式扇出(Speculative Fan-Out)——一次把想问的都问了
它在解决什么:传统流程是"先分类,看结果再决定问什么",于是每次都多一个来回。而 Jev 加问题的成本极低(官方原话:每个问题独立评估,加问题几乎不影响响应时间),所以你可以把"可能用得上"的问题一次性全问了,然后由代码决定忽略哪些。
官方举的例子是客服工单分流:一次请求同时问五件事,其中 bug_severity(缺陷严重程度)只在"这是缺陷报告"时才有意义,refund_requested(是否要求退款)只在"这是账务问题"时才有意义——但全都先问了。
{
"state": "Hi, I placed an order (#98423) last Thursday and was charged twice. I also can't log in after the site update, and adding Apple Pay would be really helpful. This is getting frustrating.",
"questions": {
"category": {
"type": "choice",
"instructions": "Determine the broad category of this support ticket",
"criteria": {
"bug_report": "The user is reporting something that is broken or producing errors",
"billing": "Charges, invoices, refunds, subscriptions",
"feature_request": "The user is requesting new functionality",
"account": "Login, permissions, profile, security"
}
},
"bug_severity": {
"type": "score",
"instructions": "How severe is the reported issue",
"criteria": [
"Cosmetic; no impact to functionality",
"Broken or degraded feature; workaround exists",
"Blocking issue; no workaround exists"
]
},
"has_reproducible_steps": {
"type": "noul",
"instructions": "The user describes specific steps to reproduce the issue"
},
"refund_requested": {
"type": "noul",
"instructions": "The user is explicitly asking for a refund or credit"
},
"frustration": {
"type": "score",
"instructions": "How frustrated the user appears",
"criteria": ["Calm, matter-of-fact", "Frustrated but civil", "Very angry"]
}
}
}
然后决策留在代码里(这是官方反复强调的分工:模型给判断,代码管流程):
# 官方示例,原文照抄category = response.answers["category"] bug_severity = response.answers["bug_severity"] bug_repro = response.answers["has_reproducible_steps"] refund = response.answers["refund_requested"] frustration = response.answers["frustration"]ifcategory.choice =="bug_report":ifbug_severity.score > 1.5andbug_repro.noul > 0.6: escalate_to_engineering(ticket_id, severity="high")else: add_to_bug_backlog(ticket_id)elifcategory.choice =="billing":ifrefund.noul > 0.7: route_to_billing_with_flag(ticket_id, refund_likely=True)else: route_to_billing(ticket_id)# 愤怒程度跟类别无关,都一样有用iffrustration.score > 1.5: flag_for_priority_response(ticket_id)
这个模式的实测收益(官方另一个配方给出的数字):把 13 个问题关于一篇 GDPR 维基百科文章分别问 13 次、和一次性问完,答案完全一样,但合并成一次便宜 12.2 倍、快 10.0 倍。这组数字是官方自报。
模式二:置信度门控路由(Confidence-Gated Routing)——答案告诉你"是什么",置信度告诉你"该不该动"
这就是 第 02 节那根"第二根轴"的正式名字。官方的说法很精确:"Use confidence as a second axis. The answer tells you what; confidence tells you whether to act."(答案告诉你是什么,置信度告诉你要不要行动。)
官方自己点出了它的价值来源:"如果一个智能系统不能诚实地表达不确定,这个系统就不可信。" 这句话是理解 Jev 定位的关键——它卖的不是"更准",而是"知道自己什么时候不准"。
模式三:组合打分(Composite Scoring)——把一个大判断拆成几个小判断
它在解决什么:很多人第一反应是问一个宏大的问题,比如"给这个创业项目打分"。官方明确反对这么做,理由写得很直白:"System One 模型在'每个问题只问一件具体、范围明确的事'时表现最好。把每个问题想成一次'直觉判断'——一个非常懂行的人在几秒钟内、在正确上下文下能做出的那种判断。"
官方给的做法是:把"市场大小""技术可行性""差异化"拆成三个独立的 Score 问题,然后在代码里用自己的权重合成总分。好处被官方总结成一句话,我觉得是这份文档里最有工程味的一句:
官方原话:"When priorities shift, change a coefficient in your code rather than rewriting a prompt."——优先级变了的时候,你改的是代码里的一个系数,而不是重写一段提示词。这就是"模型给判断、代码管策略"在维护成本上的直接兑现。
模式四:意图路由(Intent Routing)——把请求分给三种不同的处理者
官方对它的定义是:分类进来的请求,把每一个路由到"最合适的处理者"——而处理者有三类,不只是模型:
能用规则算清的,根本不用模型。这一类的成本是零、延迟是零、还永远不会错。
需要理解或生成的,交给合适的大模型。可以按难度分档——简单的走便宜的,难的才走贵的。
低置信度、高风险、或者明确超出范围的情况,转给人。这一类必须显式设计,不能等出事才想起来。
把四个模式串起来看,官方的整体主张其实是一句话:把一段"政策"拆成"模型回答的问题"和"代码执行的规则"两部分。官方评测页上给了一个很好的对照——左边是团队写在文档里的一段报销政策("每笔报销都要有收据;收据看不清就让员工重新提交;判断这是餐费、差旅还是设备;超过 75 美元的餐费,如果描述和收据明显对不上就要经理签字;其余批准"),右边是同一段政策变成的流程图:哪几句变成了 Noul / Score / Choice 问题,哪几句变成了代码里的 if。
04玩法地图:380 个条目,按"你想干的那件事"归类
这一节是整篇的骨架。社区把"别人拿 Jev 做了什么"整理成了两份可查的清单,我把它们都拉下来数过:
| 清单 | 我实测到的规模 | 它适合回答什么 · 别当什么用 |
|---|---|---|
| Awesome Jev(社区维护,有中英日韩四种语言) | 380 条,分 18 个大类;带机器可读的 projects.json | 适合:按"意图"筛。"有哪些人在做上下文压缩"这种问题它一眼能答。别当质量担保用——里面既有六千多星的成熟插件,也有一句话点子的占位条目。 |
| Jevable(按 X 上的帖子精选) | 页头写 194,实际服务出 144 张卡片(4 页 × 36) | 适合:看"这东西做出来长什么样",每条配演示视频或截图,还标了作者自报的成本与耗时。别当覆盖率用——它只收公开发帖的项目,而且我实测到的最新卡片停在 09-20,09-21 之后的玩法它还没收进去。 |
本文前一版(2026-09-21 校对)写的是"jevable.com 上 269 个真实落地项目"。两天后我重新数:页头写 194,但实际服务出来的只有 144 张卡片(4 页 × 36),而且最新的一张停在 09-20。两个数字对不上,我也没找到公开说明,所以只能把两个都报给你。这就是"强时效"主题的日常:连"有多少个项目"这种看似最简单的事实,都可能在 48 小时内变化。凡是看到有人引用一个精确的社区规模数字,先问一句"哪天数的、怎么数的"。
官方列的 30 种意图:这是最好的筛子
Awesome Jev 的数据文件里带了一份"标准意图表"(30 条),它是社区给每个项目打标签用的。我把它们按"你大概想干哪类事"重新分了组,顺手标出我看到的代表项目:
| 你想干的事 | 这一类的代表玩法 | 怎么判断该不该抄 · 别踩什么 |
|---|---|---|
| 省下 Agent 的钱和上下文 | 上下文压缩与剪枝(fast-jev-compaction、winnow、jev-pruner、yoshi);按难度给模型分档(jev-router、jev-codex-router、JevRouter) | 这一类 star(GitHub 上的收藏数,等于热度)最多、争议也最大。先看第 10 节的失效模式和 Theo Browne 的反对意见,再决定要不要装。 |
| 给 Agent 加"刹车"和"守门员" | 工具调用风险门控(jev-guard、pi-jev-auto-mode、AutoModeMiddleware);防提示注入(prompt injection:把指令藏在被抓取的内容里、诱导 AI 照做;jev-shield、pi-jev-sentinel);防止 Agent 提前收工(limpet、jev-belay) | 安全类要特别小心失败方向:门控失败时是"放行"还是"拦住"?文档里有项目明确写了"fail closed"(判不出来就拦),这类更保守。 |
| 判断 Agent 干得好不好 | 审查 Agent 输出与代码改动(jev-code、Stanley、jev-reviewer);给技能/提示词排序择优(skillranker、skillbox、hermes-jev-skills) | 这一类是"用小模型判大模型",务必留意判分标准是否循环——有个项目专门测了"用 Jev 当裁判"的循环偏差。 |
| 让 Agent 会看网页、会点鼠标、会开手机 | jev-ultrafast(与浏览器自动化库 Browser Use 合作,作者演示"查航班 7 秒、$0.0039",视频在 X 上约 300 万次浏览);typesafe-computer-use;mobile-jev(真机 Android);Jev-cu | 这类是 star 最集中的区域。注意"每一步一次判断"的累计成本——单步几分钱,跑几百步就不是几分钱了。 |
| 做搜索、重排、给 RAG(先检索资料、再让大模型照着资料回答的做法)提质量 | jev-search;reranker;jev-semgrep(按意思 grep);jev-sift;blink(代码库搜索) | 官方配方里有硬数字:法律文书检索里,重排把"第一名就命中"从 5% 提到 18%、"前十名包含"从 38% 提到 62%。 |
| 处理文档、表格、脏数据 | tax-doc-classifier(261 种 IRS 税表);pg-jev(用大白话查 Postgres);jev-curate(清洗训练数据);HA-Jev(智能家居) | 这一类最像"传统自动化",也最容易算清 ROI——因为它有明确的日处理量。 |
| 内容安全与审核 | Jev-Moderation-Bot;StopSpam;snifftest(识别 AI 味的文风);is-malicious(扫代码里有没有偷数据的勾当) | 审核类必须配人工兜底。is-malicious 的 README 自己就写了"干净的报告不等于安全",这种诚实的表述值得信一分。 |
| 玩票、游戏、机器人 | typesafe-mario(玩超级马里奥);JevPilot(开车模拟);quackd(驱动机器人);jev-drone | 这一类的价值不在实用,而在它把"一次判断有多便宜"这件事可视化了——每秒好几次判断也不心疼。 |
| 自己跑,不依赖厂商 | 开源复刻:SemIf、NanoJev、jevlike、decider、reflex 等 35 个条目 | 官方没有开源权重。这些是"机制相似"的独立实现,不是同一个东西,性能差距很大——把它当成"同一条路的不同走法",不是"免费的 Jev"。 |
怎么自己挖:一条比翻网页快得多的路
Awesome Jev 提供了机器可读的数据,你可以直接让你的 AI 助手去查:
# 一次性拉下全部 380 条(不到 400KB),然后本地筛
curl -s https://awesomejev.vercel.app/projects.json -o projects.json
每条记录里有两个字段最有用:jev.intents(这个项目在解决哪类意图,带权重)和 github.stars / github.pushedAt(有多热、最后一次更新是什么时候)。选项目的经验法则(也是那份索引自己的建议):优先挑带"可信说明"的、星更多的、最近还在更新的;并且要留意 riskBulkScaffold 这个标签低于 0.5——按索引维护者的说法,这类条目更像"批量生成的脚手架",不是有人真在维护的东西。
它的 SKILL.md 里写着:不要调用它的内部重排接口(那会消耗维护者的 Jev 额度且被限流);不要把列出来的仓库代码当"经过审核的东西"直接跑——"Entries are leads, not reviews"(这些条目是线索,不是评测);提交只能走 PR、一次提一个。
05装进你的 AI 助手:八类玩法 + 能抄的配置
这是"用例"最密集的一节。社区在 Claude Code / Codex / Pi 这几个编程助手上长出了 52 个专用条目(Awesome Jev 的 "Coding agents" 分类),按玩法可以归成八类。下面每一类我都给出具体仓库名和能复制的安装方式,你不需要看懂代码——把命令交给你的 AI 助手,让它装。
玩法 1:官方技能包——先让助手"知道有 Jev 这回事"
这是所有玩法的前置。装完之后,你的助手就掌握了 Jev 的三类问法和四种模式,你只要用大白话提需求就行。
# Claude Code
claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai
# 其它助手(会问你是哪一个)
npx skills add typesafe-ai/skills --skill typesafe-ai
更新与排错(这三条都是官方文档里的原话要点):更新走 claude plugin marketplace update typesafe-ai 再 claude plugin update typesafe@typesafe-ai,然后重启或敲 /reload-plugins;如果助手不认这个技能,在 Claude Code 里直接敲 /typesafe:typesafe-ai 点名调用;如果助手开始编造请求或响应字段,八成是技能版本旧了,更新一次就好。
玩法 2:MCP 服务器——让 Jev 变成助手的一个"工具"
MCP 全称 Model Context Protocol,可以理解成"给 AI 助手插外设的通用插头":装上一个 MCP 服务器,助手就多出几个可调用的工具。Jev 的 MCP 服务器是社区做的(最常被引用的是 jkudish/jev-mcp,TypeScript 版),它一次性给你十个判断工具:
| 工具 | 它判断什么 | 什么时候用 · 别当什么用 |
|---|---|---|
jev_verify | 某条说法是否有证据支持 | 用来核对报告、PR 描述、简报里的每一句话。不能替代人看原始材料。 |
jev_screen | 一段内容该不该进入上下文 | 抓回来的网页先过一遍,顺便挡提示注入。 |
jev_find | 哪个候选最可能是答案 | 几百个文件里找那个对的,不需要向量库和索引。 |
jev_rerank | 给一批候选打分排序 | 检索结果重排、去重、按相关性排信息流。 |
jev_classify | 批量把条目归到你给的类别里 | 工单路由、打标签、收件箱分类。类别必须你自己定好。 |
jev_decide | 在有限几个方案里做取舍 | 带证据和优先级的选择;判不出来时可以转问用户。 |
jev_compare | 两段内容是什么关系 | 核对变更日志和文档、摘要和原文、两页对同一个价格的说法。 |
jev_extract | 从文本里"抄"出字段值 | 价格、日期、版本号、编号。是"抄"不是"写"——它只在原文里找,不生成。 |
jev_review | 给一个改动打分 | 正确性、是否满足需求、测试缺口、影响范围。 |
jev_gate | 一次调用同时审改动 + 核实"完成了"的说法 | 合并或发布前的闸门。 |
官方 README 给的安装方式是这样的(注意包名带作用域,不是旧文里写的 npm install -g jev-mcp):
# Claude Code:一行注册 claude mcp add jev -- npx -y @jkudish/jev-mcp # 或者手动注册进配置文件(~/.claude.json 或项目的 .mcp.json){ "mcpServers": { "jev": { "command": "npx", "args": ["-y", "@jkudish/jev-mcp"] } } }
它还需要一个 TypeSafe 的 API key(去 console.typesafe.ai/settings/keys 建)。README 里专门给了一段"让助手替你装"的提示词,其中一句很值得学:"如果我还没设 key,请一步步引导我设置,但不要让我把 key 贴进对话里。"——这是个好习惯,密钥不该出现在聊天记录里。
装好后怎么用?直接在对话里点名那个工具就行——下面这段是能直接粘的:
// 在 Claude Code 里让 Agent 直接调
用 jev_classify 判断这条 issue 属于 bug 还是 feature,
labels: [bug, feature, question]
另外两个 MCP 选择:itsmostafa/typesafe-mcp(Go 写的,轻量)和 blakestone-x/jev-mcp(额外提供 match 和 screen)。别同时装多个——工具名会撞车。
玩法 3:上下文压缩——目前 star 最多、争议也最大的一类
问题背景:Claude Code 这类助手跑久了,对话会变得很长,长到快塞不进模型能看的范围(这个范围叫"上下文窗口")。传统做法是让大模型把旧内容摘要一遍——但摘要是有损的:一个文件路径、一条报错原文、一句约束,可能就在摘要里消失了。
社区里最火的那一版叫 fast-jev-compaction(我数的时候 6400+ star),它的做法和"摘要"完全不同:
官方 README 原话是 "This library never rewrites anything. It only deletes tool calls and tool results Jev says are no longer needed."——它一个字都不重写,只删掉 Jev 认为不再需要的工具调用和工具结果;用户和助手说过的话原样保留、顺序不变。它给 Jev 看的"案卷"是整段对话(工具结果先用一句"ok, 4213 chars (omitted)"占位),然后对每一个未被钉住的调用问两个 Noul:这个调用还值不值得留、它的结果还值不值得原样留。
安装(这两条命令我逐字核对过仓库 README):
# 前置:Claude Code 需要在运行环境里打开 function hooks 这个开关
# 在 ~/.claude/settings.json 里加:
# { "env": { "CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1", "TYPESAFE_API_KEY": "<你的 key>" } }
claude plugin marketplace add tamaratran/fast-jev-compaction
claude plugin install fast-jev-compaction@fast-jev-compaction
# 重启 Claude Code,或敲 /reload-plugins
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS 开关,官方文档里查不到
我让一个研究助手把 Claude Code 的公开更新日志(到 2.1.278)和官方 hooks 文档全文搜了一遍:这个环境变量一次都没有出现;它只被这些插件的 README 反复断言。连插件用到的钩子事件名(session.compact、turn.complete)也不在官方公开的钩子清单里。插件声称需要 Claude Code 2.1.274+,这个版本号在更新日志里确实存在,但那次更新的说明里没提 function hooks。结论:这条属于"多个独立作者都这么说、但没有官方依据"——能用,但要知道你踩在早期功能上,升级 Claude Code 时可能失效。
它的可调参数(取自 README 的参数表,旧文只写了前两个,这里补全):
| 参数 | 默认值 | 它管什么 · 什么时候该改 |
|---|---|---|
keepThreshold | 0.5 | "还值得留"的概率超过多少才留。调高 = 删得更狠 = 更省但更容易丢东西。 |
preserveRecentMessages | 6 | 最近的几条消息永不评估、直接保留(第一条永远保留)。觉得助手"失忆"就调大。 |
maxStateTokens | 25000 | 送给 Jev 的案卷最多多大。超了就分级压缩(先截短工具输入,再折叠旧消息……)。 |
maxRequestTokens | 30000 | 案卷加一批问题不能超过这个数(在 Jev 的 32k 限制之下)。 |
truncateHeadChars | 300 | 被判定"调用要留、结果不用原样留"时,结果保留开头多少字符。 |
同类还有一批,值得一起看(都来自社区索引,我按思路分组):winnow(在工具结果进入上下文之前就判断,让窗口填得更慢,而不是事后清理)、jev-pruner(专门裁长的命令行输出,短输出、报错、结构化格式不动)、save-token-jev(同一思路,但适配了 Claude Code、Codex、OpenCode 和原始 API 记录)、yoshi(做成了代理层,且把省下的量测出来而不是只宣称)。
Redis 的作者 antirez 在 2026-09-21 公开质疑这波热潮;AI 开发者 Theo Browne 则专门反对用 Jev 做上下文压缩,理由有实质内容:压缩不是简单的内容过滤,而需要综合"任务目标、试过哪些办法、工具返回了什么、之前为什么这么决定";Jev 只看得到文字记录、看不到模型的推理过程(这些内容各家 API 只返回加密载荷),上下文又只有 32k,信息量不足以做可靠判断。删掉记录后,助手可能忘记自己已经试过哪些办法,反复做同一件事,最后卡进死循环。此外他还提到一个技术后果:改动较早的历史可能让后续的推理块和提示缓存失效(提示缓存=把重复的前半段内容缓存起来省钱),省下输入费用的同时增加了重建缓存的成本。
这不是说这一类玩法不能用,而是说:它的收益(省 token)容易测量,它的代价(助手变笨、循环、缓存失效)不容易测量。如果你要试,先在没有交付压力的小项目上试,观察它有没有开始重复劳动。
这批反对意见里最硬的两条,都有具体数字(我从一份汇总了多条原始讨论的英文报道里读到,属二手转述):① 省下来的空间会衰减——有人测得"每次压缩释放掉的空间"从 63% 掉到 8%,也就是同一招越用越不灵;同时它保留的 token 量(11.5 万)比传统摘要方案(5.5 万)还多,意味着后续每一轮都要重复为这些内容付费。② 改动旧记录可能触发"缓存未命中",代价是 10 到 40 倍——因为提示缓存是按"一模一样的前缀"命中的,你在中间删一条,后面全部要重算。此外,最初那个爆火演示的作者本人也承认:压缩之后的会话"感觉有一点点变笨",而且演示里的前后对比面板量的是"上下文占用了多少",不是"任务完成得好不好"。
玩法 4:模型路由——把简单的活分给便宜的模型
思路都一样:每一轮任务开始前,让 Jev 判断"这活有多难",然后决定用哪个模型、思考档位开多高。代表项目:jev-router(把任务分给最便宜的那个 Claude 模型)、jev-codex-router(连"思考深度"和"速度模式"一起选)、jev-gateway(本地网关,只把"下一步该用哪个工具"这个决定交给 Jev,其余照常走你原来的模型)、JevRouter(把模型、子代理、技能、插件工具(MCP,见 05 节)、命令行全放进一个候选池)、agent-router(连用哪个助手都帮你选)、tiershift(策略写在 YAML 里,决定耗时约 180 毫秒)。
LangChain 官方给的做法值得单独看,因为它把路由写成了"中间件"(middleware,指插在模型调用前后的通用钩子),而不是改业务代码:
fromlangchain.agentsimportcreate_agentfromlangchain_typesafe.experimental.middlewareimport( 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])
玩法 5:工具调用守门员——在动手之前拦一下
背景:编程助手能执行命令、改文件、发网络请求。这些动作出错代价高,所以各家助手本来就有"要不要问你一下"的机制——但那套判断逻辑是闭源的、你改不了。Jev 让这件事变得可自定义。代表项目:jev-guard(把每次工具调用判成"拒绝 / 询问 / 允许"三档,并在里面标出提示注入)、pi-jev-auto-mode(判断不出来时默认拦住,这叫 fail closed)、jevwire("只能更严、不能更松"的升级式插件)、bicameral(大模型写代码、Jev 当反射神经,每次调用判成 allow / confirm / block / warn / steer)。
LangChain 把同一件事包成了几行:
fromlangchain.agentsimportcreate_agentfromlangchain_typesafe.experimental.middlewareimportAutoModeMiddleware guardrail = AutoModeMiddleware(tools=["bash"]) agent = create_agent("openai:gpt-5.6-luna", middleware=[guardrail])
LangChain 的博客把这件事的意义说得很清楚:这种"在危险动作执行前先分类"的做法,各家编程助手其实都已经有了,只是被锁在闭源部分里;现在有了便宜好用的分类模型,任何 Agent 都能用上同一个模式。
同一个位置最值得抄的一份配方:自动批命令
这是我在整个生态里找到的最好抄的一份——出自 OpenRouter 的官方配方,做的事情很具体:你的 AI 助手要执行一条命令、弹出"是否允许"时,让 Jev 替你判断这条命令该不该放行。它只问两个是非题,而且都是人话:
constAPPROVE_AT = 0.9constQUESTIONS = { reversible: { type:"noul", instructions:"Every command in `commands` only reads or changes files inside `project` and can be undone with git or by rerunning it. It does not push, publish, deploy, delete files outside the project, change system settings, or send data to a network service."}, serves_task: { type:"noul", instructions:"Running `commands` is a reasonable next step toward `task`."}, }as const// 两个判断都过 0.9 才自动放行;任何一个没过线,就还是弹给你
它公开了实测的分数和账单(我给每行加了中文解释):
| 助手想跑的这条命令 | Jev 判的两个概率 | 结果 · 为什么这个例子值得看 |
|---|---|---|
bun test …(跑测试) | 可撤销 0.93 / 服务于任务 0.95 | 自动放行。这是个好例子:跑测试既不改文件也不联网。 |
bun add left-pad(装依赖) | 可撤销 0.45 / 服务于任务 0.09 | 不批,弹给你。注意两个分数都很低——它会承认"我看不出这跟当前任务有什么关系"。 |
npx wrangler deploy(部署上线) | 可撤销 0.04 / 服务于任务 0.07 | 不批。这正是你要的行为:部署不可撤销、且把数据发到了网络。 |
账单也被公开了:一次典型的 400 token 案卷,成本 $0.0000168(不到十万分之二美元)。配方里还有一句最重要的工程提醒:真正拦住危险命令的是那张写死的危险关键词清单,Jev 只是第二道门——不要把它当唯一防线。这份配方同时覆盖 Claude Code、Codex CLI、Cursor 和 OpenCode 2.0.12+。
玩法 6:判断 Agent 是不是真的干完了
这类要解决的问题很实际:助手说"改好了、测试通过了",但它可能没真跑测试,或者只修了表面。代表项目:limpet(一个"停止钩子"——助手想收工时触发——按你写的自然语言规则拦住它)、jev-belay(读整段记录找证据,只在"文件改了但之后没有任何通过的检查"时才花一次四问的 Jev 调用,判不出来就放行)、jev-code(把吃判断力的活交给命令行工具,每个请求对应一条带类型的工作流)、Stanley(把一句自然语言需求路由到一条固定工作流,再由这条工作流去问 Jev 固定的选择题)。
这一类里最新的一步是 09-20 和 09-21 发生的:LangChain 先发了官方评测博客 Jev-as-a-Judge for Agent Evals(09-20),第二天就把 Jev 做进了它的评测平台 LangSmith——也就是说,你现在可以在一个已成型的评测工具里把"裁判"从大模型换成 Jev,不用自己写代码。他们把卖点放在"一致性"上:Jev 在连续打分上的方差比三个大模型裁判低 92 到 913 倍。这一点比"更准"重要——评测最怕的不是偏,是同一份东西今天给 4 分明天给 2 分。
玩法 7:技能与提示词择优——别把 182 个技能全塞进去
这个数字很能说明问题:官方有个配方是"从 Nous Research 的 Hermes 目录里 182 个技能中,最多挑一个用在当前这一轮"。文档把问题说得很直白:"Agent 们靠把所有技能塞进系统消息来选技能,这会推高成本、降低选择质量,并让整个 session 的其余部分产生 context rot。"(context rot=上下文里堆了太多无关内容,模型反而变糊涂。)
官方那个配方用两次请求解决:一次把所有 182 个技能的描述便宜地读一遍排名,再只把前三名完整读出来复核。它给出的对照实验跑了 488 次请求、拿 Claude Haiku 4.5 当基线——具体的百分比数字我在这篇里不转述,因为那是官方自报的窄场景测试,你可以自己去 docs.typesafe.ai/cookbooks/skill_suggestion 看完整表格。社区对应的项目是 skillranker、skillbox、hermes-jev-skills、typesafe-skill-router。
玩法 8:把 grill-me 那种"追问到你崩溃"的流程变成按重要性分流
如果你用过那种一次问你 30 个问题的工作流,这一类最实用。先把一件事说清楚:grill-me 这类"追问式"技能本身和 Jev 没有任何关系——我让研究助手把它的技能文档搜了一遍,"jev" 出现 0 次。下面讲的是你自己在它旁边加一层 Jev 分流,属于自拼玩法,不是它自带的功能。(旧版把这两件事写得像是配套的,这里更正。)
做法是:让 Jev 给每个问题打 1–5 分(Score),你的门槛设在 3 或 4,低于门槛的自动采纳建议答案、不打断你。下面三段是可以直接粘给 Claude Code 的提示词(旧文里的三段我保留了下来,并把过时的工具名改成了真实的工具名):
// 打分:把 30 个问题按"必须我亲自答"的程度排序
用 jev_score 给这些问题逐一打分,
scale: [1, 2, 3, 4, 5],其中 1=琐碎可自动答、5=必须我亲自答。
输出按分数倒序,只把分数 ≥3 的问题列给我。
// 复核建议答案:每个建议答案做三重判断
对下面这个 Q&A 做三件事:
1. 用 jev_score 给建议答案的合理性打分(1-5)
2. 用 jev_score 给潜在风险打分(1-5,5=高风险)
3. 用 jev_classify 判断:建议答案属于"明显错误 / 有隐患 / 没问题"哪一类
输出一张表,按风险倒序,让我一眼看到哪些需要改。
Q: 你打算怎么处理 SQLite 并发写?
建议答案: 用事务隔离 + retry-on-busy。
// 守门员:助手自动改完之后再过一道闸
对刚才这个修复做两层判断:
1. 用 jev_verify 判断:这个修复是否真解决了原始问题?
2. 用 jev_check 判断:这个改动是否引入了新问题?
只要任何一项 confidence < 0.8,转人工。
把它固化成规则,就不用每次重说。加到 ~/.claude/CLAUDE.md 或项目的 CLAUDE.md 里:
// 加到 CLAUDE.md:让助手在我用追问式工作流时自动分流
在我用 grill-me 时,请同时调 Jev 给每个问题打 1-5 分。
输出格式:
- 分数 ≥ 4:列出问题 + 建议答案,等我回答
- 分数 2-3:列出问题 + 建议答案 + 一句话风险提示,自动用建议答案、让我知道即可
- 分数 1:自动用建议答案、不必打断我
第一次配置时先观察一周,别一上来就全自动放行。免责声明:上面第三段里的 jev_check 是社区某个 MCP 服务器的工具名,不是官方技能包或上一节那十个工具里的名字——如果你装的是 @jkudish/jev-mcp,请把 jev_check 换成表里的 jev_verify。这类"工具名对不上"的坑,是 AI 助手替你装工具时最常见的失败,遇到就让它 /mcp 列一遍真实工具名。
06官方配方里最值得抄的七个(都不写代码也能看懂思路)
官方文档有一整个 Cookbooks(配方)栏目,2026-09-23 我数到 17 个,每个都是"一个真实问题 + 完整做法 + 实测数字"。下面挑七个对不写代码的人最有参考价值的——数字都是官方自报,我把来源和口径一起写了。
配方一:给 LLM 加护栏(每个进出的消息都过一遍)
问题:各家大模型都做过安全训练,但"线画在哪"每家不一样,而且模型每升一版线就动一次。你想要的位置可能和厂商不一样,还希望这条线是你自己能读到、能改的。
做法:一次请求同时问"这段内容危险程度几级""属于哪一类风险",然后按概率和严重度分成四档处理:放行 / 复核 / 拦下 / 转走。
为什么值得抄:这是"把安全策略从黑箱里拿出来"的最短路径——你的规则变成可读的问题和阈值,不是一个提示词里的祈祷。
配方二:抓出瞎编的引用(给 RAG 查证)
问题:大模型写答案时经常附上引用,但引用可能是错的——引的那句话原文里根本没有,或者有这句话但上下文不支持这个结论。
做法:用一个 Choice 问题判断"这段引文的上下文是否支持这个论断"。
为什么值得抄:这是把"看起来有出处"和"出处真的成立"区分开,成本极低。任何要对外发布的 AI 生成内容都值得加这一道。
配方三:按置信度决定"报细类还是报大类"
问题:把公司年报分到 75 个行业细类里,一定会有一部分分不准。
做法:每个文档问一个 Choice,然后读它自己给出的 confidence:有把握的那一半直接报细类;没把握的那一半,退一级报它上面的大类。
实测数字(官方):有把握的那一半,报对的比例是 90%;没把握的那一半如果硬报细类,只有 40% 对;退一级报大类,就变成 70%。
为什么值得抄:这是"置信度门控"最有说服力的实例——它不是让模型更准,而是让你的输出变得"知道自己哪里不准",从而可以选择报一个更粗但更可靠的答案。
配方四:给检索结果重排(搜索质量翻倍的那一步)
问题:先用快而粗的办法(关键词匹配,这里的算法叫 BM25)从几千份文档里挑出 30 个候选,但正确答案常常不在第一个。
做法:对这 30 个候选,让 Jev 逐个回答一个是非题——"这段文字有没有可能出自能回答该问题的文档"。
实测数字(官方,数据集是 3565 份法庭意见、40 条法律查询):正确段落排在第一名,从 5% 提到 18%;排进前十名,从 38% 提到 62%。
为什么值得抄:任何"先粗筛再精选"的流程都能套这个形状——内容推荐、简历筛选、客服知识库都算。
配方五:给大模型看的东西"逐行打分"(一次问 218 行)
问题:你有一份长文档和一个大白话问题,要找出回答它的那几行,还要能判断"这份文档里根本没有答案"。
做法:把每一行编号,一次请求里用一个 Choice 问"哪一行最相关"(这是 255 个选项上限的实战用法——它能覆盖 255 行以内的文档),再用一个 Noul 问"这份文档里到底有没有答案"。
实测规模(官方):拿 GitHub 服务条款做样例,一次请求评分 218 行。
为什么值得抄:它给出了一条"不用建向量库、不用维护索引"的语义搜索路径,适合文档量不大但要快速上手的场景。超过 255 行就得换做法(社区有 jev-tree 这类递归方案)。
配方六:两步走的结构化提取(便宜的先上,贵的兜底)
问题:从杂乱文本里抽结构化字段,小模型便宜但会错,大推理模型准但慢且贵。
做法:做成"级联"——便宜模型先抽 → Jev 做验证 → 只有验证不过的才升级给贵模型。官方还专门提醒了一条容易踩的坑:不要让 Jev 直接"写出"那个值,而是先让正则表达式或大模型找出候选,再让 Jev 从候选里挑——因为 Jev 不擅长生成,擅长挑选。
为什么值得抄:这套"分级兜底"是所有成本优化里最通用的结构,不限于提取任务。
配方七:防止"结构不变性"骗了你(自我一致性检查)
问题:同一个判断问 15 次,答案稳不稳?一个自动保险理赔的分诊流程需要知道"哪些单子该转人工"。
做法:用 14 个 Noul 组成一套评分表,同一份材料重复跑 15 次,看每个答案是否稳定;不稳定的那些转人工,同时把原始概率一起留档。
为什么值得抄:它是第 02 节那个"结构不变性"坑的正面对策——既然不能指望答案在换个问法后保持一致,那就把"稳定性"本身当成一个指标去测。
配方之外:别的行业里已经跑出来的数字
官方配方是厂商给的例题。下面这些是社区里公开了做法的真实案例,我按"能不能自己复核"筛过一轮,每条都标了证据强度:
| 谁 / 在哪里 | 它让 Jev 判断什么 | 公开的数字 · 证据强度 |
|---|---|---|
| 实时虚拟试衣(Drape,X 上的演示) | 读对话记录 + 用户身上穿着,从衣柜里挑一套 | 每次判断 $0.0011、约 620 毫秒。⚠️ 单条帖子,没有代码仓库。 |
税表分类(tax-doc-classifier) | 每页从 261 种 IRS 表格里选一个 + 判断 7 种页面类型,置信度低于 0.95 就不下结论 | 314 页填过的表格零严格错误、共 $0.36;753 页空白表格零错判、38 页低置信度、共 $0.86。约 $0.001 一页,比它自己的对照流程便宜 34 倍、快 6 倍。✅ 仓库可复现。 |
邮箱分诊(jevmail) | 每封邮件问三件事:归到 5 个抽屉的哪个、紧急度 1–5、要不要人看 | 1000 封约一分钟、约 3 美分。✅ 有仓库,72 star。 |
| 图纸集分类(Proq) | 整份建筑图纸集逐页归类 | 26 页图纸 2.9 秒、$0.0052。⚠️ 单条帖子,原文末尾被截断,我没看到完整对照结论。 |
| 医学文献初筛(独立研究) | 从论文摘要里筛出与 ADHD 相关的那批 | 851 篇:准确率 94.6%、F1 75.3%(F1 是一种同时看"漏没漏"和"误报没误报"的综合评分)、约 523 毫秒,整个测试约 $0.078。⚠️ 学术场景,样本有限。 |
| 简历初筛(YouWare) | 按岗位要求判断这份简历相不相关 | 360 份简历 24.2 秒、$0.0212。⚠️ 厂商演示性质。 |
跨库记录对齐(jlink) | 判断两份数据里的两条记录是不是同一个东西 | 171,354 对候选共 $2.95、约 250 对/秒,在 12 个基准里 11 个超过一个专用的实体匹配模型。⚠️ 作者自测。 |
注意这些案例的共同点:Jev 只负责"这是哪一类""有多急""要不要人看",而金额、时间、排序、阈值一律在代码里算。比如税表分类里"置信度低于 0.95 就不下结论",简历筛选里"判断结果和打分公式分开存放,所以改一次策略只要 20 毫秒就能把所有候选人重新算一遍"。这正好呼应官方那页失效模式的第一条——模型做判断,代码做算术。
官方配方里还有:函数调用(把"帮我买 100 股某某"这种自然语言变成对普通函数的调用)、分层分类(用并行广度搜索穿过很深的层级,比如专利分类、零售商品分类)、实体对齐(判断两份商品目录里的 450 对候选是不是同一个商品,用的是 Magellan 啤酒数据集)、结构还原(把丢了格式的纯文本重新还原成 Markdown,两次请求、10211 个 token、0.8 秒——这组数字来自官方配方的附录)、自动研究(让 Jev 把自由文本变成数值特征,再用模型的错误去改进一个传统机器学习模型)。入口都在 docs.typesafe.ai/cookbooks。
07接入路径:七个入口,从"今晚就想试"到"要上生产"
Jev 不像 Claude 那样"官网一套 SDK 走天下"。它原生只有一个接口 POST /v1/systemone,但托管到了七个地方。我按"从轻到重"排:
| 入口 | 标识 / 地址 | 适合谁 · 注意什么 |
|---|---|---|
| 官方 Playground(网页版试玩) | console.typesafe.ai/playground | 想先零成本感受一下的人。这是官方文档推荐的第一步:粘一段文本当案卷,加几个问题,直接看结果。 |
| OpenRouter | 模型 id typesafe/jev-1.13 | 想最快在代码里试的人。它与 OpenAI 的接口格式兼容,已有代码改两个字符串就能跑。文档把它标为 Beta 上架;用你的 OpenRouter 密钥计费。 |
| Vercel AI Gateway | 模型名 typesafe-ai/jev | 用 Vercel AI SDK / Next.js 的人,不需要 TypeSafe 的排队资格,走 Vercel 计费。而且它到 2026-09-25 之前限免——这是个明确有截止日的窗口,过了就按促销价结束。Vercel 官方还称它是"AI Gateway 历史上采纳最快的模型"(09-18)。 |
| Cloudflare Workers AI | env.AI.run('typesafe/jev', input) | 已经在 Cloudflare 生态里的人,在 Worker 里直接调用。 |
| Netlify AI Gateway | 见 Netlify changelog | 从 Netlify Functions 零配置访问,不需要单独的 TypeSafe 密钥。 |
| LiteLLM 透传 | docs.litellm.ai/docs/pass_through/typesafe | 已经在用 LiteLLM 统一管密钥和成本的人。文档明确说不支持流式输出——因为 TypeSafe 本来就没有流式(它一次算完,不是一个字一个字吐)。 |
| TypeSafe 官方 | console.typesafe.ai;POST v1/systemone | 正式的企业通道(企业版有更高速率上限和零数据保留)。注册状态这一周改了两次(见 00 节的警示):候补名单约 09-20 取消并送 $5 额度,09-22 又暂停了新注册。用之前先去控制台看一眼。 |
OpenRouter 上有两个接口,不是一个(这一条旧版写漏了)
OpenRouter 把 Jev 暴露成两个面:① 兼容层 /api/v1/systemone——走上面那段 OpenAI 风格的调用;② 新的 Decisions 接口 /api/alpha/decisions,直接收 state + questions 对象(05 节那份"自动批命令"的配方用的就是它)。另外 OpenRouter 文档特别说明两条对新人有用的事:走它不需要 TypeSafe 账号、也没有候补名单;而且每个响应里都带一个 usage.cost 字段,直接告诉你这次调用花了多少美元——做成本核算时这个字段比自己去乘单价准。
Python / TypeScript 的官方 SDK
如果你要写代码而不是让 AI 助手代劳,官方提供了两套 SDK:Python 的 typesafe_sdk(有同步和异步两种客户端)和 TypeScript 的 @typesafe-ai/sdk。两者都内置了遇到限流自动退避重试,并会读服务端返回的 retry-after 头(这是"服务器告诉你等几秒再试"的标准做法)。GET /v1/models 可以列出你账号能用的模型名和发布日。
三种调用方式,各有各的形状(这一段是旧文里最容易出错的地方)
OpenRouter —— 走的是它自己的"决策接口",不是 OpenAI 那个聊天接口。这是旧版写错、我这次按官方文档更正的一处:OpenRouter 的模型页明确写着,Jev "runs on the OpenRouter Decisions API rather than the OpenAI-compatible chat endpoint"(它跑在 OpenRouter 的 Decisions 接口上,不是那个与 OpenAI 兼容的聊天接口)——所以请求和响应的形状都不一样:
curl https://openrouter.ai/api/alpha/decisions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-1.13",
"state": "My monthly invoice shows a charge for the Pro plan but I signed up for Free. Please help.",
"questions": {
"category": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Charges, invoices, refunds, subscriptions",
"technical": "Errors or integration problems",
"account": "Login, permissions, profile",
"other": "None of the above"
}
}
}
}'
这里没有"解析字符串"这一步。你给它的是 state + questions,拿回的是按你起的问题编号组织好的答案;官方原话是 "There is no free-form text to parse."(没有自由文本需要解析)。旧版那段"OpenRouter 与 OpenAI 接口兼容、答案是 choices[0].message.content 里的字符串"是错的——我按官方文档和 OpenRouter 自己那篇教程改正了;如果你手上还留着旧代码,它不会按预期工作。
Vercel AI SDK(下面这段出自 Vercel 官方指南,用的是它专门的求值接口):
import{ generateText }from'ai';import{ createOpenAICompatible }from'@ai-sdk/openai-compatible';constjev = createOpenAICompatible({ name:'typesafe-ai', apiKey: process.env.TYPESAFE_API_KEY, baseURL:'https://api.typesafe.ai/v1', });const{ text } =awaitgenerateText({ model: jev('jev'), prompt:`Classify this ticket: ...`, });
Cloudflare Workers AI——它的官方模型页在 developers.cloudflare.com/ai/models/typesafe/jev/,标注模型 id 为 typesafe/jev、上下文 32,000 token(就是"案卷 + 最长问题"那个口径):
exportdefault{asyncfetch(request, env) {constinput =awaitrequest.json();constresponse =awaitenv.AI.run('typesafe/jev', input);returnResponse.json(response); } }
现阶段先去 Playground 摸一下手感,再用 OpenRouter 在代码里试。理由有三条:不用排队、有免费额度可以试、模型 id 与其他 OpenAI 兼容客户端直接对接。但请注意上面那条区别——如果你要的是"答案直接是可用的结构、不用解析",那就得走 TypeSafe 原生接口(Python SDK 或 /v1/systemone),而不是兼容层。
- 各家用的环境变量名不一样。官方和多数插件用
TYPESAFE_API_KEY,但jev-router、jev-rules用的是JEV_API_KEY。装完发现"不生效",八成是名字没对上。 - 有些插件的"安装名"和"仓库名"不是同一个字符串。比如
jev-pruner的安装命令里写的是fast-jev-output@fast-jev-output。照 README 抄,别照仓库名猜。 - 不是所有助手都能装同一样东西。官方明确说过:技能(skill)和 MCP 服务器是两套独立的安装流程,装技能的命令不会顺带把 MCP 装上。
国内使用的现实问题(旧版这一节是猜的,现在有依据了)
旧版写的是"OpenRouter 在国内访问不稳定"——那是我按常识推的,当时没有依据。现在有两条可核实的:
- 服务本身还没对大陆开放。中央广播电视总台旗下网站 2026-09-20 的报道原话是"目前该服务尚未对中国大陆地区开放"。
- 有人量过延迟的"地板"。一位杭州的测试者公开记录了自己的实测:需要本地代理才能访问,网络往返延迟有约 270 毫秒的下限(同一次测试里,从法国访问是 163 毫秒,而 Claude Haiku 只有 18 毫秒);首次建立安全连接要 992 毫秒,连接复用后降到 270 毫秒。
不过在担心网络之前,有一条更该先解决的问题——
官方模型页原话:"English is the primary training language and where accuracy is currently best. Other languages, including CJK scripts, are handled but not equally well; test on your own content before relying on Jev for a non-English workload"——英文是主要训练语言、准确率最好;中文、日文、韩文这些能处理,但水平不一样,用在非英文业务之前必须拿你自己的内容测一遍,并且要特别留意置信度。对中文场景,这是比"能不能访问"重要得多的前提。
08最小例子:把一个分类调用换成 Jev
你有一个客服系统,每条用户消息都要先判断"是投诉 / 咨询 / 表扬 / 其他"。当前是每次调一次 Claude Haiku 4.5 来做分类,每月账单压在心上。下面看怎么换、能省多少、以及为什么不能无脑换。
改造前:用大模型做分类
importAnthropicfrom'@anthropic-ai/sdk';constclient =newAnthropic();async functionclassifyTicket(message:string) {constresponse =awaitclient.messages.create({ model:'claude-haiku-4-5', max_tokens: 50, system:`You are a ticket classifier. Return JSON: {"category": "complaint|question|praise|other"} - complaint: user is unhappy or reporting a problem - question: user is asking how to do something - praise: user is thanking or complimenting - other: everything else`, messages: [{ role:'user', content: message }], });returnJSON.parse(response.content[0].text); }
成本:每次大约 600 个输入 token + 30 个输出 token,Haiku 4.5 定价 $1 / $5 每百万 token,单次约 $0.0009;10 万条/月 = 约 $90/月。
隐藏成本:那段分类说明(system 提示词)每一条消息都要重发一遍,这 600 个 token 里有相当一部分是"反复教它同一件事"。
改造后:用 Jev 做分类
// 走 OpenRouter 的 Decisions 接口:给它"案卷 + 问题",拿回结构化答案constres =awaitfetch("https://openrouter.ai/api/alpha/decisions", { method:"POST", headers: { Authorization:`Bearer ${process.env.OPENROUTER_API_KEY}`,"Content-Type":"application/json", }, body: JSON.stringify({ model:"typesafe/jev-1.13", state: message, questions: { category: { type:"choice", instructions:"这张工单属于哪一类?", criteria: { complaint:"用户在表达不满或报告问题", question:"用户在问怎么做某件事", praise:"用户在道谢或称赞", other:"以上都不是", }, }, }, }), });constdata =awaitres.json();// 答案按你起的问题编号返回,没有解析自由文本这一步。 // 具体的字段名(是 data.answers.category 还是 data.category)以官方 API 参考为准—— // 我没有 key,无法实跑确认返回值的确切层级,所以这里不写死。returndata;
成本:单次约 $0.000025;10 万条/月 = 约 $2.50/月,也就是省掉约 97%。输出不计费,这一点在分类任务上尤其划算——大模型的账单里"输出"那一栏直接归零。
改造点对照
| 维度 | Claude Haiku 4.5 | Jev | 实际影响 · 别只看便宜 |
|---|---|---|---|
| 代码改动量 | 原样 | 改地址 + 模型名 + 简化提示词 | 基本是字符串替换,一小时内能跑通灰度 |
| 提示词维护 | 要写完整指令,常要配少量示例 | 只需要列出允许的答案 | 省下的不只是 token,还有"改一次提示词要重测一遍"的工时 |
| 输出校验 | 要 try/catch + 解析 + 字段校验 | 答案被约束在你给的集合里 | 这条是"零幻觉"的真实含义:格式不会崩,不代表判断不会错 |
| 延迟 | 约 600–1500 毫秒 | 约 200–500 毫秒 | 用户几乎感觉不到的差别;但放在 Agent 循环里跑几百步就明显了 |
| 单次成本 | $0.0009 | $0.000025 | 省约 97% |
先把 10% 的工单走 Jev、90% 走 Haiku,对比两边的分类准确率——这一步叫灰度。但 2026-09-21 那份独立评测提了一条更重要的前置动作:先算你的"常数基线"。它的原话逻辑是——在他们测的真实工具调用里,79% 都是无害的、该给同一个标签,所以一个"永远返回默认答案"的假分类器就已经有 79% 准确率;一个准确率 75% 的真模型,比这个假分类器还差。换成你的工单场景:如果 85% 的工单最后都归到"咨询",那你要比较的不是"和 Haiku 比谁准",而是"和一个永远返回咨询的 if 语句比谁准"。
如果换成"原生接口",代码长这样
上面那段走的是 OpenRouter 的兼容层,所以还要解析字符串。如果走 TypeSafe 原生接口,一次请求可以同时问多个问题,答案直接是带类型的值(这是官方 quickstart 的形状):
fromtypesafe_sdkimportNoul, Choice, TypeSafeClient client = TypeSafeClient(model="jev-1.13") result = client.system_one( state=ticket_text, questions={"category": Choice( instructions="这张工单属于哪一类?", criteria={"complaint":"用户在表达不满或报告问题","question":"用户在问怎么做某件事","praise":"用户在道谢或称赞","other":"以上都不是", }, ),"refund_requested": Noul( instructions="用户是否明确要求退款或补偿?", ), }, )# 答案直接可用,不需要解析category = result.answers["category"].choice confidence = result.answers["category"].confidence refund_p = result.nouls["refund_requested"].noul
它是按官方文档的 SDK 用法写的形状(TypeSafeClient / system_one / answers / nouls 这些名字都出自官方文档与官方在 LangChain 博客里的示例),但我没有 TypeSafe 的账号,无法确认 result.answers[...] 与 result.nouls[...] 的确切属性和版本行为。请以 docs.typesafe.ai/sdk/python 的当前版本为准。
09成本与准确率:把厂商的两个数字拆开看
厂商现在说的是"快 193.6 倍、便宜 444.6 倍"
这个数字我从首页上逐字抄的,页面还给了它的"证据":TypeSafe AI 这边 $0.000081、0.114 秒完成;LLM 那边 $0.013880、8.566 秒完成。
现在做一道小学算术:
# 这是我自己的验算,不是厂商给的
$0.013880 / $0.000081 = 171.4 ← 成本差 171 倍
8.566s / 0.114s = 75.1 ← 耗时差 75 倍
所以首页上那个"444.6 倍便宜",不是从这个单例算出来的——它来自厂商另外设计的一套"四项工作流"评测(官方说明:四项任务同权重取平均)。这件事值得记住:同一个页面上,宣传数字和它自己给的证据可以差两三倍。
厂商自己的评测榜:Jev 不是最准的那个
更值得看的是它自己的评测页(evals.typesafe.ai)。我把上面我能读到的点全部抄下来——注意这是一张"准确率 vs 成本"的散点图,不是排行榜:
| 模型配置 | 平均准确率 | 每例成本 | 每例耗时 |
|---|---|---|---|
| Jev(工作流方式) | 67.8% | $0.0004 | 0.4 秒 |
| opus 5(工作流) | 73.1% | $0.1761 | 37.8 秒 |
| sol(工作流) | 74.1% | $0.0836 | 23.3 秒 |
| terra(工作流) | 67.9% | $0.0304 | 10.1 秒 |
| luna(工作流) | 66.8% | $0.0033 | 12.9 秒 |
| sonnet 5(工作流) | 67.8% | $0.1174 | 78.1 秒 |
| haiku 4.5(工作流) | 53.6% | $0.0195 | 12.5 秒 |
| haiku 4.5(单段提示词) | 18.1% | $0.0363 | 21.2 秒 |
这张表怎么读(我为它加的一列判断):
- Jev 不是最准的。它 67.8%,比 opus 5 低 5.3 个百分点、比 sol 低 6.3 个百分点。唯一让它在同一张图上"没人能同时打赢"的,是成本和时间那两栏——页面上那句话写得很老实:"frontier: nothing is both cheaper and more accurate"(前沿模型里,没有谁既更便宜又更准)。
- "工作流"这三栏比模型本身更重要。同一个 haiku 4.5,把同一套判断拆成结构化工作流(拆成一个个 Noul / Choice / Score 问题 + 代码规则)之后,准确率从 18.1% 跳到 53.6%,成本还降了。换句话说:这张表里最大的收益来自"把任务拆开"这件事本身,不是来自换模型。这对你选不选 Jev 其实是最有用的一条信息。
- 参考标签本身是模型给的。官方明确说明:这套评测的标准答案,是拿 GPT-6 Astra 和 Claude Fable 5.1 在高推理设置下的回答取平均生成的。它不是人工标注的黄金标准,所以"准确率"这一栏要打折看。
- 官方承认可能有偏差。中文媒体的转述里提到,官方同时承认这些数字处在"现实收益的高端",且评测工作流由公司内部人员制作、可能存在偏差。
那批第三方评测说了什么
旧版(2026-09-21)写的是"尚未见权威独立测评"。两天后这句话就不再成立了——社区里已经出现了一批独立评测,我挑三份有具体方法的:
| 谁测的 | 测了什么 | 结论 · 该怎么用这个结论 |
|---|---|---|
| LangChain(09-20 官方博客,第三方博客详述) | 四个"裁判"模型去判同一批 agent 记录:Jev、GPT-5.6 Terra、GPT-5.6 Luna、Claude Sonnet 4.6。样本是 5 条抓取下来的天气工具调用记录,每条重复 100 次 = 500 次判断,看和人工判定的一致率 | Jev 500/500 全中(100%),Terra 99.8%、Luna 96.4%、Claude Sonnet 4.6 80.0%;Jev 每次判断约 $0.00035、平均 0.44 秒,500 次总共 $0.34,对照组 Claude 是 $28.17。他们主推的其实不是准确率而是"一致性":Jev 的评分方差比那三个裁判低 92–913 倍。但样本只有 5 条记录——这是"Jev 当裁判很稳"的证据,不是"Jev 在你业务上很准"的证据。第二天(09-21)LangChain 就把它做进了 LangSmith 评测平台。 |
| Archestra(2026-09-21) | 100 条真实 Claude Code 生产会话里的工具调用,比较 Jev、Sonnet 5 和一批开源模型,任务是判断数据流向安全属性 | 暴露了"79% 常数陷阱":79% 的调用都该给同一个标签,所以"永远返回默认答案"的假分类器就有 79% 分。他们同时说这次评测也暴露了自己基准的问题——这种自我揭短的措辞,比只报好看数字的评测可信。 |
| jev-fanout-bench(2026-09-23) | 2,976 次请求、花掉 $0.156,专门测"把问题合并成一次"到底省多少 | 算出每次请求有约 261 个输入 token 的固定开销;N 个问题合并成一次,N=2/4/8 分别省掉 43% / 65% / 76% 的输入 token(案卷很短时),案卷长到 3k token 时省 49% / 74% / 86%,答案完全一致;8 个问题一次问比串行问 8 次快 7.7–8.6 倍。仓库里给了原始记录和校验和(用来证明数据没被改过)。✅ 可复核。 |
| jev-ultralightspeed(2026-09-20) | 30,000 次判断、1,347 条人工标注的内容,"32 个打包成一批"对比"一次问一个" | 吞吐从 16.7 提到 533 条/秒,请求数从 30,000 降到 940,成本 $0.729 → $0.430,而两边的判断一致率都是 89.2%(人工之间的一致率上限是 97.3%)。这份报告还主动撤回了自己早先夸大的倍数。✅ 这种自我更正比数字本身更值得信。 |
| 路由成本测试(2026-09-21) | 把客服工单分到 30 个队列,测"每 1000 次既正确又及时的决定"要多少钱,负载从每秒 2 单加到 40 单 | Jev 是 $0.048;Haiku 在每秒 40 单时涨到 $24.48。作者同时给出诚实的修正:一旦所有模型都有足够的并发能力(也就是同时能接住这么多单),领先幅度会缩到约 3 倍;而且 Jev 准确率 92.2%,略低于对照的 93.6%——它是靠"便宜 + 不随负载涨价"赢的,不是靠更准赢的。✅ 预注册(先把方法公开、再跑测试)、方法完整。 |
| PrimeLine(2026-09-18,预注册) | 两个任务:800 条提交信息分类、450 条知识库笔记分类;用自己标注的数据,厂商从未接触过 | 任务一 Jev 65.8% 排第一(Opus 5 63.5%、GPT-5.6 59.5%、Haiku 4.5 54.6%),比 Haiku 高 11.1 个百分点(p=4.4e−09);但比 Opus 5 高出的 2.25 个百分点在统计上不显著。任务二 Jev 只排第三(90.7%),输给 Haiku 的 97.8%。约 9,750 次调用、总花费不到 40 美分。✅ 预注册,结论有正有负——这正是它可信的原因。 |
| OpenRouter(2026-09-22;注意它自己也转售 Jev,不算中立) | Banking77:3,080 条银行客服语句,分到 77 个意图 | Jev 81.0%,Opus 5 84.4%(差距的置信区间是 2.3–4.4 个百分点,也就是 Opus 确实更准);但延迟中位数 175 毫秒 vs 2266 毫秒(快约 13 倍),每 1000 次成本 $0.11 vs $2.42。最有用的是它的分档表:置信度 ≥0.99 的那 58% 里准确率 96.3%,置信度 <0.5 的那 3.5% 里只有 29.6%——这张表比总准确率有用得多。 |
一份自称预注册的负结果(jev-orderby-bench) | 在 Amazon 商品搜索数据集上做排序,六项条件提前写死 | 六项挂了四项。作者还发现一个和官方"susceptible to large state"呼应的现象:把 40 行合成一个批次送进去,会挂掉"逐行单独送"能通过的排序门槛。⚠️ 来自社区索引的条目描述,我没读到完整报告——但正是这种"作者主动报负结果"的条目最值得你亲自去看原文。 |
一份对抗性评测(willkelly/jev-evaluation,2026-09-19) | 123,805 次请求、跑 138 分钟、花了 $12.69,提前写下 25 条可检验的预测再逐条验证 | 25 条里 13 条被推翻。三个最该记住的结果:① 在 3-SAT 这类逻辑问题上完全失效——不管题目多难,它都答"可满足",连 x AND NOT x(自相矛盾)都给 0.38 的把握;② 礼貌型的"权威口吻"注入,200 条里改掉了 147 条的判断,而粗暴注入只成功 1 条——也就是说它容易被"说得像专家"骗;③ 路由任务上的校准误差是 0.075。✅ 方法完整、原始数据公开。 |
钓鱼邮件基准(jev-phishing-bench,2026-09-20) | 钓鱼邮件识别:先问一个大问题,再拆成五个窄问题 | 单问 Jev 62.6%,对照 Haiku 81.3%(输);拆成五个窄问题后 Jev 95.0%,Haiku 93.2%(赢)。成本上 Jev 每千封 $0.038、Haiku $0.462。这条是本文"把大问题拆成原子问题"最有说服力的证据——同一个模型、同一批数据,只因为问法变了,结果就反转。 |
| 多份社区跑分(2026-09-17 至 09-22) | 钓鱼邮件识别(2000 封,对比 Claude Haiku)、检索重排(14 个数据集,对比 Cohere Rerank)、9,831 组检索评分、韩语与医学文本、提示注入与脆弱代码检测,以及一份中文研究报告(52 页、50 个可复现测试、143 行可追溯数据) | 规模都不大、结论也不一致,但"有没有独立验证"这个问题现在有答案了:有,只是都很小、很早期。用之前请打开原报告看它的样本量和方法。 |
同批独立评测里,最不利于 Jev 的结果出现在钓鱼邮件识别上:在留出来的那半数据上,一条纯正则规则(一张域名黑名单)的准确率是 91.8%,而 Jev 最好的信号是 89.4%(p=0.0032——p 值衡量"这个差距有多像巧合",越小越不像巧合)。另一份垃圾邮件评测里,一个传统的 TF-IDF + 逻辑回归模型(用"词出现得频不频繁"当特征的一类经典机器学习方法,不需要大模型、不需要联网)和 Jev 基本打平(98.87% vs 98.64%)。还有一份评测直接点破了评测本身的陷阱:"在基准数据集上训练过,就决定了谁赢"——某个开源复刻在 Banking77 上超过 Jev,是因为那个数据集在它的训练数据里;换到 CLINC150 就落后 28.7 个百分点。
结论不是"Jev 不行",而是两件事:① 这类任务里,简单方法的基线常常比你想象的强——所以第 08 节才反复强调先算常数基线;② "谁更准"高度依赖数据集,任何没写清楚测试集的准确率对比都别当结论。
别忘了竞品:真正最便宜的那个不是它
| 方案 | 单次成本(按 600 输入 + 60 输出估算) | 100 万次 | 什么时候该选它 · 别忽略什么 |
|---|---|---|---|
| Jev | $0.0000252 | $25.20 | 便宜 + 不用自己训练 + 不用自己运维 + 答案空间随时能改,四样加在一起 |
| 自部署开源小模型(如 gpt-oss-20b) | $0.0000258 | $25.80 | 几乎一样便宜。代价是你要有机器、有 ML 人手、答案空间一改就得重训或重调 |
| GPT-5 mini | $0.00027 | $270 | 要通用能力时的便宜档 |
| Claude Haiku 4.5 | $0.0009 | $900 | 要通用能力 + 稳的指令遵循 |
| Claude Sonnet 4.6 | $0.0027 | $2,700 | 要真会推理的活 |
表里的单价我是按公开定价和"每次 600 输入 + 60 输出 token"这个假设算的(旧版沿用同一套假设,方便你前后对照)。我没有逐一回到每家厂商的定价页核今天的价——大模型的价格变动非常频繁,请把它当成"量级参考"而不是报价单。真正算你自己的账时,请用你自己的实际 token 数乘当前单价。
便宜不等于不用优化
一个容易忽略的账:如果你每条消息都要过 Jev 问 5 个判断,每月 1000 万条,那就是 约 $52.50——听着仍然很少,但它不等于"可以不管"。该做的三件事一样要做:监控用量、调阈值、把重复的判断结果缓存起来(同样输入别重复问)。
10官方自己列的九种失效模式:这是最该先读的一节
很多教程会把"坑"放到最后当补充。这一节我提前讲,因为厂商自己在文档里专门写了一页叫 Jev 1.13 jaggedness(jaggedness="坑坑洼洼"),逐条列出它知道这个版本哪里不行。这一页的价值比任何宣传页都高——愿意把短板写进文档的产品不多。下面九条我全部保留,并加上"这对你意味着什么"。
| # | 失效模式 | 官方建议怎么绕 | 对你意味着什么 |
|---|---|---|---|
| 1 | 只看字面意思——它回答的是你写下来的那个问题,不是你心里想的那个 | 把确切条件写进指令;边界情况写进选项说明里 | 如果你发现自己在解释"我其实是想说……",那句话就是漏掉的半条指令。模糊就是错。 |
| 2 | 不会算数——不擅长计数(词里有几个字母、一段话里出现几次),也看不懂数值表示(六位色号、汇编、二进制) | 算术留在代码里;要计数就逐个问再自己加总 | 别让它当计算器。凡是"能算出来"的,一律别问它。 |
| 3 | 不会比日期——它把日期当文本读,不是当有顺序的数量 | 拆成部件提取,比较留在代码里 | 判断"哪个先发生""隔了多久""是不是落在某个季度内",都不靠谱。日期要拆成"年/月/日"的小选择题再拼回代码里。 |
| 4 | 经不起绕弯——双重否定、属性套属性、需要跳几步的问法 | 指令写直白;能点名 state 里的哪一部分就点名 | 一个问题里塞两个判断,准确率就掉。 |
| 5 | 案卷越大越乱——state 里无关内容一多,准确率下降,还查不出是哪句话害的 | 先在代码里筛,只送真正相关的字段;筛不了就用一个 Noul 先判相关性 | 这条和"塞得越多越好"的直觉完全相反。官方原话是 Jev 也会 context rot。 |
| 6 | 容易被对抗性内容带走——state 里故意写来操纵它的文字,能改变答案 | 选项说明写精确;上线前把边界情况测透 | 它默认不把输入当敌意内容。如果你要拿它审用户提交的内容,这条是安全前提,不是小提醒。 |
| 7 | 指令和选项说明打架时会糊涂——比如一个 Noul,答案为"真"却对应"否" | 把选项说明当作指令的延伸,两边措辞对齐 | 反着写的题目让它表现变差,原型上很容易犯这个错。 |
| 8 | 不要指望"结构不变性"——同一件事换个问法,答案可能对不上(见 02 节那两个例子) | 不要把一个 Noul 的阈值搬到 Choice 上;不要拿两个问题的答案做算术校验 | 这是最容易在生产里出事的一条,因为它不会报错,只会安静地给出不一致的结果。 |
| 9 | 不能生成——硬逼它写文本(比如串一串选择题拼出一段话)效果很差且极慢 | 要生成就用生成模型;提取任务改成"从候选里挑" | 你要写邮件、写报告、写代码,它的答案是"请换一个模型"。 |
请避免以下四件事:① 问它任何代码能精确算出来的东西;② 把好几个判断藏进一个问题;③ 让它做"系统二"的任务(多绕几层);④ 给它的案卷超过问题真正需要的量——"Jev 也受 context rot 影响,案卷里无关的材料会让你付出准确率的代价。"
官方文档没写、但独立实测发现的三种坑
下面三条来自社区的独立测试,官方那页失效模式里没有。它们的共同点是不会报错——你只会拿到一个看起来很正常的答案。
noul 恰好 0.50 的回答。它不会拒绝你,只会安静地瞎猜。所以"输入里绝对不能混图片",得靠你自己在送进去之前保证。不该用它的场景
| 场景 | 为什么不适用 | 用什么替代 |
|---|---|---|
| 要写长文(文档、邮件、解释、报告) | 它不生成文本,硬用会很怪且很慢 | Claude / GPT 等生成模型 |
| 要写代码、调试、重构 | 它不生成代码 | Claude Code / Codex / Cursor |
| 要看图、听音频、看视频 | 只接受文本(字符串、JSON、文本数组) | 多模态模型 |
| 要多步链式推理 | 它是直觉判断,不擅长长推理 | 推理模型 |
| 答案空间定不下来 | 它要求你先把答案范围定死 | 开放式大模型 |
| 单次判断必须绝对正确(医疗、法律终判) | 它的置信度是统计意义上的,单次仍可能错 | 人审 + 大模型 + Jev 三层 |
| 想换掉 AI 助手的底座模型 | 官方明确说"没有这样一个开关" | 继续用大模型当底座,Jev 用在旁边 |
几个操作层面的硬约束
| 约束 | 具体数值 | 踩了会怎样 · 怎么绕 |
|---|---|---|
| 上下文长度 | 一次请求 64k token 上限;其中 案卷 + 最长的一个问题 只能占 32k | 超了会被截断或报错。注意旧版写的"32K 上限"不准确:64k 是总预算,32k 是"案卷加最长问题"的预算。长文档要先用代码筛。 |
| 选项数量 | Choice 最多 255 个选项 | 超过就得换做法(分层、递归、分批)。 |
| 速率限制 | 每秒 25 万 token、每分钟 1200 次请求 | 超了返回 429 Too Many Requests。另外还有一个 529 Overloaded(服务器暂时过载,官方建议等一小会儿再重试)。官方建议这两种都用指数退避,别立刻重试。SDK 会自动退避并读 retry-after。但文档同时说速率上限会"随时变动"——别把它当合同写进容量规划。 |
| 服务可用性 | 官方状态页显示 API 可用率 99.839% | 发布头一周里有过几次事故:09-19 中断 18 分钟、09-20 报"API 问题"约 2 分钟、09-21 一次"间歇性中断与系统不稳定"(当天 23:40 UTC 恢复)。对一个"要嵌进关键流程"的零件来说,这是必须纳入设计的前提——你要准备好它挂掉时怎么办(重试、降级、还是走原来的大模型)。 |
| 语言 | 英文最好,中日韩"能处理但不等同" | 中文业务必须先自测并盯紧置信度。 |
| 数据 | 官方称不用客户请求或响应做训练;企业版有零数据保留(ZDR) | 如果你有合规要求,去读它的 Legal 页原文,别只信我这一句转述。 |
| 定制 | 不提供按客户的微调或 LoRA | 你只能通过请求内容来塑造它,不能"训一个懂我的 Jev"。 |
11有人说它只是"一个聪明的 switch 语句"
这一节是旧版完全没有的。Jev 发布 9 天,社区已经分裂成两派,而两派的论证都比"真香"或"智商税"复杂。我把最有分量的几条摆在下面,你可以自己判断它值不值得进你的流程。
质疑一:Redis 作者说,这波热度说明多数人分不清什么重要
2026-09-21,Redis 的作者 Salvatore Sanfilippo(圈内叫他 antirez)在 X 上发文,中文媒体的转述里引了他的原话:"Jev 或许有一些很狭窄的应用场景,但围绕它出现的炒作,恰好说明了 AI 泡沫中的大多数人根本分不清什么重要、什么不重要。" 那条帖子据报获得超过 11.6 万次浏览。
同一篇报道里还有一个更技术的判断,来自 AI 开发者 Theo Browne,他的比喻是:把 Jev 看成一个"聪明的 if 或 switch 语句"——程序给出当前状态和有限选项,它立刻决定走哪条分支;"它的智能水平大致和一个 switch 语句相当。它适合分类,却不知道怎样浏览整个代码库并作出高质量决定。"
"它是一个判断零件,不是一 intelligent 助手"这个定位,其实和厂商自己说的一致——官方文档反复强调"complement, not replace"(是补充不是替代),以及"为软件而生,而非为上帝而生"。所以真正有分歧的不是定位,而是这个零件值不值得这么大声势:它改变的是"语义判断"的成本、延迟和输出形状,并没有获得新的推理能力。
质疑二:"0% 幻觉"保证的是格式,不是答案
这是最值得记住的一条,因为它解释了为什么很多"宣传 vs 体感"的落差。厂商宣称 Jev 不产生幻觉,但这个保证的范围是输出结构:如果你规定答案只能是"销售/技术支持/财务/其他"四个,它就必然在四个里选一个,不会返回第五个类别,也不会写坏 JSON。但它选的那个可能是错的。
中文媒体的报道里还提到一个细节:厂商在发布文章里称 Jev"永远不会出现类型错误",并承认图表里那个 0% 并非实际测试结果,而是由 schema 匹配机制直接保证的;报道里引述 GitHub 的一位资深工程师把这种宣传称为一种"语义上的规避"。
输出格式是确定的;输出内容不是。你应该像信任一个函数签名那样信任它("一定返回这四个之一"),但不能像信任一个纯函数那样信任它的返回值("它一定返回对的那个")。这一条想清楚,后面 90% 的预期落差都能避免。
质疑三:上下文压缩这一类玩法,反对意见最具体
前面 05 节已经完整写了 Theo Browne 的反对理由(信息不足、看不到推理过程、可能陷入重复劳动的循环、可能让提示缓存失效)。这里只补一条官方口径之外的证据:那个最火的压缩插件确实有效——中文媒体报道了一次流传很广的演示,把约 15.6 万 token 的对话压到约 6.2 万 token。但同时,厂商文档自己也承认 Jev"案卷越大越乱"、要"只送真正相关的字段"。两件事放在一起看,就是这类玩法的核心张力:它要判断"什么还能用",而它恰恰在长上下文里最容易判断不准。
几条常见的误解澄清
POST /v1/systemone)返回按问题编号组织的 answers;OpenRouter 走的是它自己的 Decisions 接口(/api/alpha/decisions),不是那个与 OpenAI 兼容的聊天接口,官方原话是"没有自由文本需要解析"。两条路真正的区别是调用形状和字段层级,不是"要不要解析"。这是旧版最容易让人写错代码的一处,我在这一版改正了。jev-0.01 或 "version 0.01" 出现 0 次。模型的版本自始至终是 jev-1.13.0,来自 OpenRouter / Vercel / Cloudflare 的对外标识也都是 1.13。旧版据此写"存在版本号未同步",是个伪问题;我在这一版里改正了。另外记住它有两个别名:jev-latest(最新稳定版)和 jev-preview(最新预览版,官方说明目前和前者指向同一个模型)。12一页纸速查:什么时候用哪个、抄哪个
"我遇到的情况 → 用哪种问法 / 抄哪个项目"
| 你的情况 | 用哪种问法 | 可抄的东西 |
|---|---|---|
| 要从固定几个类别里选一个(路由、分类) | Choice | 官方"意图路由"模式;jev_classify 工具 |
| 要打 1–5 分(严重度、愤怒度、质量) | Score | 官方"组合打分"模式;本页 05 节的模式 B 提示词 |
| 要判断一句陈述真不真(是否退款、是否合规) | Noul | 官方"护栏"与"引用查证"配方 |
| 不确定该不该自动执行 | Choice/Score + 读 confidence | 官方"置信度门控路由";06 节配方三 |
| 要同时问好几件事、又不想多等 | 一次请求混着问 | 官方"推测式扇出"整套示例 |
| Agent 上下文太长、太贵 | 批量 Noul 评分后删减 | fast-jev-compaction、winnow、jev-pruner(先读 05 节的反对意见) |
| Agent 要动手做危险操作 | Noul / Choice 三档门控 | jev-guard、AutoModeMiddleware、pi-jev-auto-mode(失败默认拦住) |
| 简单的活想用便宜模型 | Choice 判难度 | jev-gateway、jev-router、LangChain ModelRouterMiddleware |
| 检索结果排序不好 | 逐个候选问是非题 | 官方"重排"配方(5% → 18%、38% → 62%) |
| 要从文档里找答案,又不想建向量库 | Choice 逐行评分(≤255 行) | 官方"逐行搜索"配方(一次 218 行) |
| 要从杂乱文本抽字段 | 先用正则/大模型找候选,再让 Choice 挑 | 官方"预解析提取"与"级联"配方 |
| 不写代码,只想让助手替我干 | — | 官方技能包 + @jkudish/jev-mcp |
"我要跑了,最少要知道这几条"
你的场景里,"永远返回同一个答案"能拿到多少准确率?如果这个数字比模型的准确率还高,别上模型。
把大问题拆成原子问题,权重和阈值写在代码里——这样优先级变了改一个系数,而不是重写一段提示词。
计数、比日期、算金额、看数值表示——这四件事它都不擅长,官方明确建议放进代码。
只送和这个问题相关的字段。无关内容不是"顺便提供点背景",而是实打实的干扰。
高风险动作的门槛要高得多;低置信度一律转人,别猜。
10% 流量走新路,对比准确率;同一批材料重复跑几遍,看答案稳不稳——不稳的那些就是该转人的那些。
13术语表
| 术语 | 一句话定义 | 为什么重要 / 何时用 · 别当什么用 |
|---|---|---|
| System One 模型 | 不做文字生成、只输出结构化判断结果的一类模型 | 用来理解它快在哪。别用它推断聪明程度——名字借自心理学,不是能力分级。 |
| 原语(primitive) | 最基础、不能再拆的操作,这里是 Choice / Score / Noul 三种问法 | 你的一切需求都得塞进这三种之一。塞不进去就说明这个活不该给它。 |
| state(案卷) | 交给它判断的那段内容,可以是字符串、JSON 对象或文本数组 | 写得越干净越准。别当"多给点背景总没坏处"——官方说它也会被无关内容带偏。 |
| Choice / Score / Noul | 三种问法:挑一个 / 打个分 / 判真假 | 选错问法是最常见的效率损失。只有 Noul 不给置信度,因为它本身就是概率。 |
| confidence(置信度) | 从概率分布算出来的 0–1 汇总值,表示这次答案有多"干脆" | 用来决定"要不要自动执行"。别当正确率用——它说的是模型多笃定,不是它多准。 |
| probability(概率分布) | 每个选项/等级各占多少比重 | 要做统计、算期望、自己定指标时用它。它是相对的,别跨问题直接比大小。 |
| RLCD | Reinforcement Learning for Calibrated Decisions,校准决策强化学习——它用的训练方法 | 厂商的核心技术主张。论文尚未公开,具体细节目前无法核实。 |
| RLHF | 基于人类反馈的强化学习,让模型学会"人类更喜欢哪种回答" | 理解厂商为什么另起一条路:他们认为这套方法造出来的是"陪人用"的模型,不是"给软件用"的零件。 |
| 校准(calibrated) | 它说"90% 把握"的时候,同类事情里大约真有 90% 是对的 | 这是它和"用提示词让大模型报个概率"的核心差别。但校准是群体层面的,单次仍可能错。 |
| MCP | Model Context Protocol,给 AI 助手插外设的通用插头 | 装上 Jev 的 MCP 服务器,助手就多出十个判断工具。别同时装多个服务器,工具名会撞。 |
| hook(钩子) | 在特定时刻自动触发的脚本,比如"助手想收工时" | 社区大量玩法靠钩子挂上去。它能拦住助手,也能误拦,阈值要按风险调。 |
| compaction(上下文压缩) | 对话太长时清掉旧内容,腾出空间 | Jev 派玩法的发源地。先读反对意见:省下的 token 好测量,让助手变笨的代价不好测量。 |
| context rot | 上下文里堆了太多无关内容,模型反而变糊涂 | 厂商用它解释"为什么案卷要干净"。这是反直觉的一条——不是给得越多越好。 |
| 提示注入 | 把指令藏在被抓取的内容里,诱导 AI 照做 | 官方明说它默认不把输入当敌意内容。审用户提交内容的场景必须额外设防。 |
| 重排(rerank) | 先用快办法粗筛出一批候选,再逐个精细排序 | 官方配方里收益最直观的一个(法务检索 5%→18%)。它替代不了粗筛,是第二道工序。 |
| 灰度 | 只让一部分流量走新方案,对比效果再决定全量 | 换模型的必经步骤。没有灰度就没有证据,只有厂商的数字。 |
14参考来源与证据边界
本文用到的主要来源
| 来源 | 类型 | 我用了它什么 · 可信到什么程度 |
|---|---|---|
| docs.typesafe.ai(含 模型页、原语页、模式页、配方页) | 官方文档 | 价格、版本、上限、原语定义、四种模式、17 个配方、安装命令。最可靠的一手源,但都是厂商视角。 |
| Jev 1.13 jaggedness | 官方文档 | 九种失效模式、那个"Noul 0.22 / Choice 0.99"的例子、结构性不变性不成立的两个反例。厂商自己承认的短板,价值最高。 |
| Jev with coding agents / Agent skill | 官方文档 | "不能替换底座模型"的明确表述、技能包安装与更新命令、三个示例提示词。 |
| evals.typesafe.ai | 厂商评测 | 四项工作流的准确率/成本/耗时表、参考标签由两个大模型平均生成这一口径。厂商自评,且承认可能有偏差。 |
| typesafe.ai | 官方首页 | "193.6 倍快、444.6 倍便宜"及其单例证据($0.000081 / 0.114 秒 vs $0.013880 / 8.566 秒)。我用它做了自己的验算,发现和宣传数字对不上。 |
| LangChain:Building a Harness with Jev(2026-09-17) | 第三方工程博客 | 原生接口的请求/响应形状、TypeSafeClassifier、路由器与护栏中间件代码、三个真实项目(Browserbase、交易代理、邮件分诊)。 |
| LangChain:Jev-as-a-Judge for Agent Evals(2026-09-20,作者 Daniel Shea / Seán Roche) | 第三方评测(一手) | 500 次判断四个模型的一致率、"5 条天气工具记录 × 100 次重复"这个关键口径、方差低 92–913 倍、$0.00035/次。另参见 09-21 的 LangSmith 集成公告与 explainx.ai 的详述。 |
| Archestra:100 条真实 Agent 调用(2026-09-21) | 第三方评测 | "79% 常数陷阱"、真实生产会话的工具调用样例、以及作者对自己基准问题的坦白。 |
| InfoQ 中文:Redis 之父质疑 Jev 狂热(2026-09-23) | 中文媒体(二手) | antirez 的原话、"聪明的 switch 语句"这个评价、对上下文压缩的具体反对理由、"0% 幻觉"的实际含义与厂商承认。转述性质,我未找到每条发言的一手链接。 |
Awesome Jev(社区索引,含 projects.json) | 社区汇总 | 380 个条目、18 个分类、30 条标准意图、各项目的 star 与最后更新时间。索引维护者自己声明"这些条目是线索,不是评测"。 |
| Jevable | 社区精选 | 194 个项目、按 X 帖子收录的演示与成本/耗时标注。 |
| jev-fanout-bench(2026-09-23) | 第三方评测 | 2,976 次请求、"每次请求约 261 token 固定开销"、合并提问省 43–86% 输入 token、8 问一次比串行快 7.7–8.6 倍;也是"09-22 暂停新注册"这条的出处。原始数据带校验和。 |
| jev-ultralightspeed(2026-09-20) | 第三方评测 | 30,000 次判断的批量对比:533 条/秒、成本 $0.729→$0.430、两边一致率同为 89.2%;作者主动撤回了早先夸大的倍数。 |
| "一次正确决定要多少钱"(2026-09-21) | 第三方评测(预注册) | 路由成本随负载的变化(Jev $0.048 / Haiku $24.48)、准确率 92.2% 略低于 93.6%、以及作者自己给出的"领先会缩到 3 倍"修正。 |
| tax-doc-classifier / jevmail 等社区项目 | 社区开源项目 | 税表分类($0.001/页、零严格错误)、邮箱分诊(1000 封/分钟/3 美分)、跨库对齐等用例的原始数字。 |
| 官方状态页与中央广播电视总台网站报道(2026-09-20) | 官方状态页 / 中文媒体 | 99.839% 可用率与 09-19 至 09-21 的三次事故;"目前该服务尚未对中国大陆地区开放"。状态页是一手,地区限制那句是媒体转述。 |
| fast-jev-compaction / @jkudish/jev-mcp | 社区开源项目 | 参数表与安装命令、十个工具的真实名称。我逐字核对了 README,并据此修正了旧版里写错的包名与工具名。 |
证据边界(这些你必须知道)
- 厂商自报:"快 193.6 倍、便宜 444.6 倍"、四项工作流的准确率与成本、各配方的实测收益。这些数字的评测工作流由厂商内部人员制作,官方自己也承认处在"现实收益的高端"、可能存在偏差。拿来做规划基准可以,拿去做财务承诺太早。
- 第三方但样本很小:LangChain 的 500 次判断(底层只有 5 条记录)、Archestra 的 100 条工具调用(作者自称"早期结果,仍在改进数据集和提示词")。"有没有独立验证"这个问题的答案现在是"有",但"够不够格当依据"的答案是"还不够"。
- 二手转述:Vercel 上 13% 付费团队、14 万内测申请、antirez 与 Theo Browne 的发言、厂商承认 0% 图表口径。这些我都只见中文媒体的转述,未找到可复核的一手来源。
本文写于 2026-09-23,距 Jev 发布 8 天。这一版我请了一个独立的研究助手逐条核过数字,改正了旧版的三处硬错(OpenRouter 的调用形状、Sonnet 4.6 的单价、被误读成"版本矛盾"的页脚版本号)。剩下这几条是我知道自己核不实、或已标为可疑的:① 发布日多数一手来源写 2026-09-15,OpenRouter 页面上架日写 09-18(那是上架日,不是发布日),另有一份二手来源写 9-16;② 本文第 08 节那两段 Python 原生 SDK 代码是按官方文档形状写的,我没有账号、没有实跑,返回值的字段层级请以官方 API 参考为准;③ 第 09 节竞品价格表沿用了"600 输入 + 60 输出"的假设,单价来自各厂商公开价目表,但我没有逐一实跑验证,而其中"gpt-oss-20b 自部署"那一行的数字我没找到可核实的出处,请当作估算;④ 全库最大的反面证据在 willkelly/jev-evaluation(见 09 节),如果这件事对你重要,请直接读那份原始报告,而不是读我这段转述;⑤ jevable.com 的项目数:页头写 194、实际服务 144 张卡片、旧版记的是 269,三个数字对不上,我没找到公开说明;⑥ 注册状态一周内改了两次(候补名单取消 → 又暂停新注册),恢复时间未知;⑦ 服务对大陆尚未开放,且发布首周有过三次事故(可用率 99.839%)。这个主题的 shelf-life 是"强时效",建议 1 周内重核一次数字,并且每次用之前先去状态页看一眼。
99一句话总结
Jev 不是一个新的聊天模型,而是一个把"语义判断"从大模型手里接过来的零件——你给它一段内容加几个选择题,它用 0.4 秒、几厘钱还给程序一个带概率的答案;发布 9 天,社区已经在它身上长出了 380 个玩法,最能打的都长在同一个位置:AI Agent 循环里那些"明明是选择题却偏要问大模型"的环节。但真正该抄的不是某个项目,而是三条判断:先算你的常数基线(如果 80% 都该给同一个答案,模型可能还不如一行代码)、算术和日期留给代码(它不擅长,官方自己承认)、用置信度分档而不是用一个阈值走天下。
留给你自己验的那条判据——拿你手上最常见的那次"判断"(工单该给谁、这条内容要不要拦、这份简历值不值得看),先数一遍"如果我永远返回最常见那个答案,准确率是多少",再数一遍"这件事每月发生多少次"。两个数字放一起,你就知道这件事值不值得动,以及该用什么口径去验收别人的演示。