JJev Cookbook
课程首页 中文文档 拓展阅读 GitHub ↗

拓展阅读 / Jev 工程与置信度路由

知识库收录材料 · 原始文件 ↗ · 来源、版本与许可

用 Jev 工程与 Kimi K3 把智能体账单砍掉 90%

原文:How to Cut Your Agent Bill by 90% With Jev Engineering and Kimi K3 · X 长文 · @polydao(Mr. Buzzoni)· 2026-09-29

译文为社区学习用途的非官方中文翻译,版权归原作者所有。

封面

如何找出藏在智能体里的那些决策,写出 System One 模型答得好的问题,按校准过的置信度做路由,再把难啃的案子交给 Kimi K3。API、代码、薄弱点,还有这笔账怎么算,全都在这里。


随便打开一份智能体运行记录,数一数模型没在创造任何东西的时刻。下一步该用哪个工具。这个来源相不相关。

测试过了没有。这条命令安不安全。任务完成了没有。在大多数循环里,这类小判断的数量远超真正的工作,而每一个都在按前沿模型的完整生成来计费。

9 月 15 日,TypeSafe AI 结束隐身,带来了一个专为这类调用打造的模型。Jev 从不写一个字。

图1

你发给它状态和类型化的问题,它返回带概率的答案,通常 100 毫秒上下,价格是每百万输入 token $0.042,输出免费。

在 TypeSafe 自家的 workflow 评测里,它比用来对标的那些 LLM 快 193.6 倍、便宜 444.6 倍——连公司自己都说,这组数字是预期里的上限。

Jev 工程就是把它用好的那门手艺:找出藏在流程里的决策、写出模型答得了的问题、按它的置信度做路由,并清楚它会在哪里失灵。这篇是完整的实战手册,Kimi K3 则负责接下 Jev 拿不准的案子。


1/ 一个不会写作的模型为什么有用

Diogo Almeida 是 InstructGPT 的共同作者——正是那项把 GPT-3 变成 ChatGPT 的 RLHF 工作。他支持 Jev 的论证,恰恰从对自己这套技术的批评开始:为了讨好人类评审而训练出来的模型,学会的是“看起来对”,它们声称的置信度也就不再有任何含义。如果一个模型 95% 的时候能把任务做对,却说不出错的是哪 5%,这个任务就没法自动化。

Jev 用 TypeSafe 称为 RLCD 的方法训练——面向校准决策的强化学习。目标是诚实的概率:在你的数据上,标了 90% 的答案就该在大约 90% 的时候是对的。

单个答案仍然可能错——这恰恰是置信度数字重要的原因。它告诉你的代码,哪些答案可以直接执行,哪些该送到别处去。

一个真实运行说明了这个思路。Hassan(@nutlope)筛了 100 封邮件,一半正常、一半欺诈。Jev 用 1.42 秒分完全部 100 封。置信度低于 95% 的 31 个答案送去 Kimi K3 完整读一遍。整条流水线 16 秒跑完,100 封对 96 封,成本约 $0.07,其中 Jev 的那份账单只有三分之一美分。

图2


2/ 第一步:把智能体的每一步分拣归类

拿一份真实的运行记录过一遍,把每一步放进下面四个桶之一。

如果这一步……它属于例子
必须创造文本、代码或计划一个 LLM草稿、修复、摘要、给人读的理由
遵循一条精确规则代码重试上限、预算、白名单、日期运算、计数
从你能提前列出的答案里做选择Jev路由、排序、留还是丢、安全与否、完成与否
无法撤销你自己发送、付款、发布、删除、改权限

第三个桶总是比人们预想的大,而它正是 Jev 工程能搬动的那一块。其余一切原样留在原地。


3/ 三种原语与 API

三种问题类型,正好覆盖第三个桶。

类型问什么返回什么规则
Choice从你的选项里挑一个choice、每个选项各自的概率、confidence最多 255 个选项,概率之和为 1
Score放到你的评分标尺上score,可以落在档位之间,外加整个分布2 到 10 个有序档位
Noul是还是否noul,回答“是”的概率0.5 表示它判断不了,绝不会给“中等”

图3

动手搭建时会用到的硬信息:

  • 端点: POST https://api.typesafe.ai/v1/systemone,请求体带 state、model 和 questions。Python SDK:pip install typesafe-sdk,然后 client.system_one(...)

  • 模型: 阈值调好之后锁定 jev-1.13.0。jev-latest 指向的版本会变。

  • 体量: state 字段加上所有问题共享约 64K token,而 state 字段加上最长的那单个问题必须装进约 32K(大致是 150,000 字符的英文)。

  • 输入: 只收文本。字符串、JSON 对象或数组,不支持图片。

  • 速率限制: jev-1.13 上是每秒 1,200 次请求、250,000 个 token,TypeSafe 说等产能到位,这些数字还会上调。

  • 速度与价格: 端到端 70 到 500 毫秒,每百万输入 token $0.042,输出免费。10,000 次决策、每次 1,000 token,一共 $0.42。


4/ 把所有问题塞进一次调用

同一个请求里的问题,对着同一份状态并行求值。

TypeSafe 管这叫 speculative fan-out(推测式扇出),它是你能掌控的最大一根成本杠杆。在他们的一次测试里,对着一份 53,777 字符的文档问 13 个问题,合成一次调用比拆成十三次便宜 12.2 倍、快 10 倍——主要因为状态只发了一次。

from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

client = TypeSafeClient(model="jev-1.13.0")

r = client.system_one(
    state={"ticket": ticket_text, "customer": {"plan": "pro", "refunds_90d": 0}},
    questions={
        "department": Choice(
            instructions="Which team should own the problem described in `ticket`?",
            criteria={
                "billing": "Charges, invoices, plan changes",
                "bug": "Something in the product does not work as documented",
                "howto": "The customer asks how to do something that already works",
                "other": "None of the above fits",
            }),
        "frustration": Score(
            instructions="How frustrated is the customer, judged from `ticket` only?",
            criteria=[
                "Neutral or positive, no complaint about the experience",
                "Annoyed but polite, describes wasted time",
                "Angry, mentions cancelling, a public review or a chargeback",
            ]),
        "refund_requested": Noul(
            instructions="Does `ticket` ask for money back, a refund or a chargeback?"),
    },
)

dept = r.answers["department"]            # .choice  .probabilities  .confidence
mood = r.answers["frustration"].score     # can land between levels, e.g. 1.3
refund = r.answers["refund_requested"].noul

有两条边界要注意。同一次调用里的问题读不到彼此的答案,所以如果某个决策依赖新证据,先把证据取回来,再问一次。另外,只有问题共享同一份状态时,扇出才划算;互不相关的问题该拆进不同的调用

图4


5/ 写问题才是真功夫

大多数糟糕的 Jev 答案,追根溯源都是一个糟糕的问题。下面这些规则来自 TypeSafe 的文档,也来自已经拿它上过生产的人。

  • 问题的 ID 根本不会发给模型。 给字段起名 is_fraud,对 Jev 毫无信息量。语义必须写进 instructions 和 criteria 里。

  • 一个问题只问一个判断。 “这紧急吗、客户付没付过钱”是两个问题。拆开问,在代码里合并答案。

  • 描述情境,不要描述程度。 “提到了取消订阅或拒付”是可以核对的;“非常沮丧”是一种情绪,拿光秃秃的数字当档位也一样。

  • 每个档位都要写成能独立成立的句子。 各档位是独立判定的,所以“比上一档更糟”对模型来说毫无意义。

  • 每条 Noul 都要写成数值越高越代表“是”。 一条“true 代表不安全”的 Noul,就是一个等着爆发的 bug。

  • 永远留一个出口。 每个 Choice 都要有 other 或 none,因为模型总得选点什么,而出口能给不确定性一个去处。

  • 指明确切的字段。 像 order.charges 这样带反引号的路径,能告诉 Jev 问题问的是状态的哪一部分。

  • 把证据发过去,并且先在代码里过滤。 无关状态堆得越多,准确率掉得越狠。七个来源各自带着主张,胜过一句“研究看起来差不多做完了”;搜索结果裁到只剩相关行,胜过整页塞进去。

  • 把抽取变成选择。 你的 schema 里没有的值,Jev 变不出来。如果你要从发票里抠出供应商名字,就把已知供应商的列表给它,让它挑一个。

图5


6/ 知道它会在哪里失灵

TypeSafe 为 jev-1.13 公开了一个“jaggedness”(能力参差)页面。上面每一条,都有对应的脚手架修法。

薄弱点会发生什么脚手架怎么接
按字面理解问题措辞松散的问题会得到字面答案把问题当代码对待:版本化、测试、评审
不是计算器计数错误随规模变大计数、求和、比较都放在代码里,把结果传进去
日期就是文本“3 月 3 日之后”不是一次有序比较日期逻辑在代码里算
上下文腐烂无关状态拉低准确率把状态裁到问题所需
无条件信任状态状态里的对抗性文本能带偏答案确定性检查和权限控制留在代码里
文本进,数字出它解释不了自己,也读不了截图需要文字或视觉的活儿交给 LLM
多跳推理推理链一长就退化把链条拆成多次调用,中间更新状态

对所有这些,最后一道防线都是同一句话:类型安全意味着 Jev 不会返回 schema 之外的值,但它仍可能返回一个“错误的合法值”。置信度阈值加上第二个模型,就是你抓住它们的办法。


7/ 级联:Jev 打头阵,难案交给 Kimi K3

组装到一起,每个决策就都会穿过四层,在第一层“有把握”的地方停下来。

层负责什么速度成本
代码精确规则即时免费
Jev置信度过阈值的封闭选项判断~100 ms每百万输入 token $0.042
Kimi K3低于阈值的答案,以及任何需要书面理由的请求秒级每百万 token 输入 $3 / 输出 $15
你自己不可逆操作,以及两个模型都拿不准的案子取决于你什么时候看你的时间

Kimi K3 坐第二把交椅,是出于很实际的理由。升级上来的案子往往需要整条线程和历史记录,而 K3 的 1M token 上下文不论多长都是一个价。它能读 Jev 读不了的截图和扫描版 PDF。它的权重是开放的,所以同一份代码可以打 Moonshot 的 API、Together(Hassan 的方案),也可以打你自己的部署。

import json, os
from openai import OpenAI
from typesafe_sdk import Choice, TypeSafeClient

CRITERIA = {
    "customer": "A current customer asking about an order, a bill or their account",
    "lead": "Someone asking about prices, a demo or working together",
    "vendor": "Someone selling a product or service to us",
    "fraud": "Urgent payment request, changed bank details, spoofed sender or a login link",
    "other": "None of the above fits",
}
THRESHOLD = 0.95   # Hassan's setting for fraud, tune it per decision

jev = TypeSafeClient(model="jev-1.13.0")
kimi = OpenAI(api_key=os.environ["KIMI_API_KEY"],
              base_url=os.environ.get("KIMI_BASE_URL", "https://api.moonshot.ai/v1"))

def ask_kimi(email, jev_guess):
    reply = kimi.chat.completions.create(
        model="kimi-k3",
        response_format={"type": "json_object"},
        messages=[{"role": "user", "content":
            f"Classify this email as one of {list(CRITERIA)}. "
            f"A fast classifier guessed '{jev_guess}' with low confidence. "
            'Answer as JSON: {"category": "...", "reason": "...", "sure": true}\n\n' + email}],
    )
    return json.loads(reply.choices[0].message.content)

def route(email):
    r = jev.system_one(
        state={"email": email},
        questions={"category": Choice(
            instructions="What does the sender of `email` want?", criteria=CRITERIA)},
    )
    a = r.answers["category"]
    if a.confidence >= THRESHOLD and a.choice != "other":
        return {"category": a.choice, "by": "jev", "confidence": a.confidence}
    k = ask_kimi(email, a.choice)
    if k.get("sure"):
        return {"category": k["category"], "by": "kimi-k3", "reason": k["reason"]}
    return {"category": "review", "by": "you", "jev": a.choice, "kimi": k["category"]}

other 永远不会自己走完路由。K3 会拿到 Jev 的猜测作为上下文。而当两个模型都拿不准时,两个答案会并排摆到你面前——没有比这更快的审核方式了。


8/ 接进你已有的脚手架

你不需要新框架。Jev 已经内置在三个最常见的框架里。

LangChain(langchain-typesafe)带了两个中间件。ModelRouterMiddleware 让 Jev 按你写好的 criteria,挑出能处理某个请求的最便宜模型。

AutoModeMiddleware 会在每次工具调用执行前先做风险检查——就是那类编程脚手架一直闭源自用的危险动作分类器:

from langchain.agents import create_agent
from langchain_typesafe.experimental.middleware import AutoModeMiddleware

agent = create_agent(YOUR_MODEL, middleware=[AutoModeMiddleware(tools=["bash"])])

Pydantic AI(pydantic-ai-slim[typesafe])把你的输出类型直接变成问题:Agent("typesafe:jev-latest", output_type=Triage)。

bool 变成一个是非题,Literal 变成一个 Choice,每个成员都带 docstring 的 IntEnum 变成一个 Score,X | None 则会加一个“以上都不是”的选项。它的 FallbackModel 模式把拿不准的答案兜底给一个 LLM——上面那套级联,两行代码就齐了。

Vercel AI SDK 通过 @ai-sdk/typesafe-ai provider 的 experimental_evaluate 暴露 Jev,也可以走 AI Gateway,名字是 typesafe-ai/jev,价格一样。


9/ 大家已经在跑的东西

项目Jev 决定什么结果
Browser Use jev-ultrafast下一步动作、操作哪个元素,每一步都从全新列表里选7.1 秒找到苏黎世飞伦敦的航班,只花 $0.0039
欺诈筛查(Hassan)正常还是欺诈,拿不准的 31 封交给 Kimi K396/100 正确,16 秒,约 $0.07
1kpapers.com每篇论文属于 24 个主题中的哪一个1,018 篇论文 $0.08,中位数 256 ms;换 LLM 总结这批要 $3.99
收件箱分诊(Riley Brown)每封邮件需要什么500 封邮件 3.5 美分
Computer use(awlevin)桌面任务的每一步每次决策 $0.0002,对比 Opus 5 的 $0.032;0.13 到 0.38 秒,对比 5.2 秒
即时压缩(tamara)会话里哪些工具调用仍然有效一个 Claude 会话约一秒内从近 1M token 砍到 86K(Alex Volkov 的测试)
jev-trader(Jarrod Watts)每个区块做一次交易决策模型延迟约 81 ms

模式在反复出现:选项菜单每一步都从实时状态重建,Jev 负责挑,剩下的交给代码或一个小模型。


10/ Jev 给 Kimi K3 集群掌舵

同样的思路还能放大。活儿够大的时候,Kimi K3 的 Agent Swarm 用最多 300 个子智能体来完成构建,Jev 则接手轮与轮之间的那些调用:下一个轮到哪个角色跑、哪些返回值要保留、目标达没达成。

每轮三次 Jev 调用只花美分的零头,所以循环可以在每轮结束都查一遍“完事了没”,然后自己叫停。当这个完成检查落在中间置信带,就由一次带着完整状态的 K3 调用来定夺。

图6


11/ 阈值与上线

阈值按动作设,不按模型设。 TypeSafe 的文档拿 0.5 当人工审核的下限、0.9 当任何破坏性动作之前的门槛,并明确说这些只是示例而非默认值。归档一封 newsletter,可以在比标记欺诈低得多的置信度上就放行自动化。

图7

跑一周影子模式。 让 Jev 只打标,老路径继续拍板。然后按置信度分带对比:如果 0.9 以上的答案几乎每次都和你一致,这个带就最先转全自动。

锁版本,全量记日志。 模型 ID、完整概率分布、阈值、哪一层接的、接下来发生了什么。这些日志会变成你的评测集;版本锁定了,你的阈值到下个月也还是同一个含义。

把问题当代码对待。 criteria 一改,生产行为就跟着变。给问题上版本管理,在标注集上测试,发现漂移就回滚。


12/ 算一笔账

每月 10,000 封邮件。假设:Jev 侧每封约 1,000 输入 token;一次完整模型调用 1,500 输入、300 输出;10% 走升级。

方案价格月成本
一个前沿模型读每一封邮件每百万 token 输入 $10 / 输出 $50$300
Kimi K3 读每一封邮件每百万 token 输入 $3 / 输出 $15$90
全部先过 Jev,它拿不准的 10% 交给 Kimi K3Jev $0.42 + K3 $9.00$9.42

TypeSafe 自家的级联估算,在大规模下也落在同一个量级:一百万张客服工单,约 $6,480,而不是 $30,400。


13/ 它能怎么赚钱

渠道能收到什么钱动手前你需要什么
给小企业搭分诊系统一笔搭建费加月度服务费,覆盖级联、审核队列和阈值检查在你自己的收件箱上跑通一条级联,手里有一个月的日志
给财务团队做欺诈与发票筛查按邮箱收费;拦下一次冒充供应商的付款,就够抵上好几年的费用用他们的真实邮件跑出影子模式结果
智能体成本审计收一笔固定费用,帮团队摸清它的智能体循环,并把决策类调用迁到 Jev第 2 节的四桶分拣,先在你自己的智能体上做一遍

第三种最好卖。每个跑智能体的团队,都在用前沿模型的价格付决策的钱,而审计会告诉他们,具体哪些调用该搬走。


浓缩版

把智能体的每一步分进四类:创造、精确规则、从已知答案里挑、不可逆。第三个桶交给 Jev;相关的问题一次调用全问完;criteria 写成情境并留好出口;置信度路由按动作逐个设阈值。Jev 拿不准的送给 Kimi K3,不可逆的那几步留给自己。

从你的智能体每天要做五十次的那个决策开始。


工具栈:

📁 Jev,来自 TypeSafe AI ↳ https://typesafe.ai

📁 Jev API 文档 ↳ https://docs.typesafe.ai/api

📁 Kimi K3 API ↳ https://platform.kimi.ai

📁 Hassan 的 Jev + Kimi K3 欺诈流水线 ↳ https://github.com/Nutlope/jev-fraud

图8


如果这篇文章对你有用:

  • 收藏这篇文章。链接会变,新仓库每周都在冒出来,你会需要它当参考

  • 想每周深挖 AI 架构、量化交易和智能体经济,关注我:@polydao

    • 这里我分享我的原始提示词、自定义 skills,还有那些放上 X 还太早的 alpha。加入 TG 频道:Buzzoni Notes

第十一章知识库收录材料 · 来源、版本与许可 · 第三方内容版权归各自作者;观点与数字请对照原始来源核验。