Skip to content
←返回博客
Jev Engineering 与 Kimi K3:用置信度级联压低智能体成本
JevTypeSafeKimi K3

Jev Engineering 与 Kimi K3:用置信度级联压低智能体成本

拆解 Jev 的 Choice、Score、Noul 判断,如何在代码中按概率路由,并用 Kimi K3 处理低置信样本、控制成本与误差。

Mr. Buzzoni (@Mr_Buzzoni)2026年9月29日5 分钟阅读84次阅读
EN

大多数智能体账单并不是由最终答案产生的。真正反复消耗推理预算的,是最终答案出现之前的那些小判断:下一步调用哪个工具、这条来源是否相关、测试是否通过、命令是否安全、任务是否已经完成。所谓 Jev 工程化,本质上就是把这些边界明确的判断从通用大语言模型里拆出来,用概率控制路由,只把真正需要昂贵生成的少数样本交给更大的模型。

版本核验说明。本文依据 Mr. Buzzoni 于 2026 年 9 月 29 日发布的 X 长文,以及采集时公开可查的 TypeSafe、Kimi 与 GitHub 文档整理。原文写于 Jev 1.13.0 时期;核验时当前生产模型已经是 Jev 1.14.0,因此历史模型名、上下文限制与评测数字都按现状单独标注。原文中的付费服务、合作邀约、订阅推广与 Telegram 引流均已删除。

代码、Jev、Kimi K3 与人工复核组成的级联
这不是模型替代关系,而是路由层级:精确规则留在代码里,边界判断交给 Jev,歧义样本升级给 Kimi K3,不可逆操作保留人工确认。

智能体最贵的环节,往往不是创作

打开一段真实的智能体执行记录,逐项判断每一步到底需要什么能力。有些步骤确实在创作:起草修复、编写计划、总结证据、解释失败原因。有些步骤只执行确定规则:计算重试次数、检查 token 预算、比较日期、核对白名单。有些步骤则是从一组可以提前写出的答案里做选择:账单还是技术支持、相关还是无关、安全还是危险、完成还是未完成。还有极少数步骤无法撤回:发送邮件、发布内容、转移资金、删除记录、修改权限。

原文的核心观察是:第三类工作被按第一类工作的价格收费了。一个前沿模型读取大段状态,最后只输出一个分类词,推理过程仍然承担生成式模型的成本与延迟。如果智能体每一轮都做这样的调用,原本不起眼的“小判断”就会变成主要运营成本。

Jev 是针对这类判断设计的 system one 模型。它不负责写文章,而是接收调用方提供的状态与结构化问题,再返回带概率的结构化答案。TypeSafe 将大多数调用的完成时间描述为约 100 毫秒。当前价格为每十亿输入 token 42 美元,也就是每百万输入 token 0.042 美元,输出 token 不单独收费。

先做四类审计,再决定是否换模型

分类审计比模型选择更重要。如果一项工作本来就属于确定性代码,把语言模型换成另一个语言模型并不会让它更可靠;如果一项工作必须由人承担风险,仅凭分类器给出的数字就自动执行,反而会扩大事故面。真正需要分析的单位是决策边界,而不是整个智能体。

步骤类型 正确执行者 例子 判断依据
开放式创作 通用大语言模型 起草、改写、解释、综合、规划 输出空间开放,需要语言生成能力。
精确规则 确定性代码 重试次数、算术、预算、日期顺序、权限 可以写成可测试规则的工作,不应交给概率模型估算。
有边界的判断 Jev 路由、排序、保留或丢弃、安全或危险、完成或未完成 答案可以表达为 Choice、Score、Noul 或 Box 问题。
不可逆副作用 代码加人工审批 发送、付款、发布、删除、授权 概率判断可以提出建议,但不应单独执行。

迁移应从一项每天出现几十次、并且已有可复查历史的决策开始。每次执行都记录:模型当时看到的状态、作出的判断、置信度、下游结果,以及人工是否纠正。这样的日志比通用榜单更有价值,因为它测的是路由器真正要面对的数据分布。

置信度是路由信号,不是正确答案证明

system one 模型真正重要的性质,不是每个答案都正确,而是置信度能把“可以直接执行”和“应该再检查”分开。TypeSafe 将 Jev 描述为面向校准判断训练,而不是面向取悦人类的解释训练。原文引用 Diogo Almeida 的观点:如果一个模型在 95% 的任务上成功,却无法告诉你哪些 5% 会失败,这项任务就很难安全自动化。

当前文档也明确指出,Jev 返回的置信度衡量的是答案分布形状,并不等于所选答案正确的概率。因此生产系统不能只拿一个置信度数字就决定高风险操作。

对于含概率向量 pi 的 Choice 问题,路由层至少应同时观察首选概率和第一名与第二名的间距:

$$C_{\mathrm{choice}}=\max_i p_i$$

$$M=p_{(1)}-p_{(2)}$$

首选概率高但间距小,说明概率质量集中在两个相邻选项;首选概率不高但间距较大,仍然是不确定,只是歧义方式不同。两者都不能证明答案正确,但都可以用带标签样本针对具体动作做校准。

对于有序等级的 Score 问题,期望分数回答“这个样本落在量表的哪里”,分布集中度回答“模型有多集中”:

$$\mathbb{E}[s]=\sum_{j=1}^{n} j\,p_j$$

$$C_{\mathrm{score}}=\max_j p_j$$

对于 Noul 问题,返回值是陈述为真的概率。越接近 0.5 越不确定,越接近两端越确定:

$$u_{\mathrm{noul}}=1-2\left|p_{\mathrm{true}}-0.5\right|$$

这也是为什么不应把 Noul 命名为 is_not_safe。命名反转了输出含义,后面的阈值代码看起来仍然合理,实际却会把安全判断整体翻面。每个 Noul 都应写成“数值越高,就表示路由器想检测的条件越成立”。

当前四种判断原语

Jev 1.14 支持 Choice、Score、Noul 与 Box。前三者覆盖大多数智能体判断;Box 用于定位图片中的区域,不能替代通用视觉推理。当前请求已经接受文本与图片,但图片和 Box 请求需要设置 TypeSafe-Danger-Zone-Images 请求头。

原语 问题形式 返回证据 使用规则
Choice 从已知集合中选择一个 choice、confidence、probabilities 选项必须互斥,并用可观察情境描述。
Score 放到有序量表的某一档 score、confidence、legend、probabilities 每个等级都写成独立、完整的定义。
Noul 这个陈述是否为真 noul,即陈述为真的概率 适合二元门控;“其他情况”应另问一个问题。
Box 定位一个区域 归一化的上、下、左、右坐标及置信度 只有边界框本身就是决策结果时才使用,并在代码中验证几何关系。
Choice、Score 与 Noul 问题结构示意
问题原语必须匹配决策形式。排序判断不是二元 Noul,开放式解释也不应硬塞进 Choice。

问题 ID 不会发送给模型。因此字段名 is_fraud 本身不会向模型提供任何语义,所有含义都必须写在指令和选项描述里。同一个请求中的问题看到同一份状态并并行执行;一个问题不能读取另一个问题的答案。

9 月快照与当前 API 的差异

原文记录的是 Jev 1.13.0 的接口与限制。生产集成不能直接照抄历史示例,应使用当前契约。

项目 9 月原文快照 当前核验结果
接口 POST /v1/systemone POST https://api.typesafe.ai/v1/systemone
固定模型 jev-1.13.0 jev-1.14.0;jev-latest 会跟随移动别名
原语 Choice、Score、Noul Choice、Score、Noul、Box;Box 为 1.14 新增
输入模态 仅文本 支持文本与图片;图片和 Box 需要危险区请求头
默认上下文 总计约 64K,单个最长问题约 32K 默认仍为 64K 与 32K
长上下文 原文未提供 使用 TypeSafe-Danger-Zone-Long-Context: true 后两项上限均为 262K,但更慢且准确率下降
速率限制 每秒 1,200 个请求、250,000 token 由组织在开发者控制台单独确定,历史数字不是通用额度
延迟 70 至 500 毫秒 大多数调用约 100 毫秒;长尾仍受状态大小与负载影响
退出选项 每个 Choice 都加 other 或 none 更推荐为主 Choice 配一个独立 Noul,而不是机械地加入人工退出项

价格仍为每百万输入 token 0.042 美元,输出免费。长上下文与图片请求头被命名为“危险区”是有意为之:它们是风险开关,不是无代价的性能升级。只有证明较小的结构化请求确实不够用时,才应扩大上下文或加入图片。

相关问题放在一次调用里

推测式扇出是原文中最大的结构性节省。如果多个问题面对同一份状态,就把它们一起发送,Jev 会并行评估并共享同一份状态。路由判断、安全判断与完成判断可以在一次推理中返回,不必把同一份长文档分别发送三次。

共享状态并行扇出多个问题后汇入路由器
扇出共享的是昂贵状态,不是推理链。问题之间仍然彼此独立。

原文报告测试中约快 10 倍;当前 TypeSafe 的扇出示例则报告:在 53,777 字符文档上并行询问 13 个问题,相比 13 次独立调用便宜 12.2 倍、快 11.8 倍。两组数字来自不同运行快照,不需要取平均,也不能把一个结果当成通用常数。它们共同说明状态复用会显著影响成本;真正上生产前,仍应针对自己的状态大小、问题数量与供应商负载重新测量。

是否适合扇出,取决于两个边界。第一,问题必须真的共享同一份状态;无关问题应该拆开。第二,问题不能读取彼此答案。如果问题 B 依赖问题 A 之后才取得的新证据,就必须完成一次调用、更新状态,再进行下一轮。

真正需要工程能力的是写问题

很多被归咎于 Jev 的错误,本质上是问题规格错误。模型按字面理解问题,并给出了一个格式正确、语义却错误的答案。修复方式通常是收紧状态、改成可观察标准,或缩小一次判断的范围。

较弱问题与改进问题的对照示例
好的问题会指出字段、描述可观察情境,并且只问一个判断;只有“高、中、低”而没有情境,会让模型自行发明量表。
  1. 每个问题只问一个判断。“这件事是否紧急,而且来自付费客户”包含两个事实和一条规则。分别询问两个事实,再在代码中组合。
  2. 描述情境,不要描述模糊程度。“提到取消、拒付或公开差评”可以观察;“非常沮丧”不能。
  3. 每个量表等级都要独立成立。各等级不是一段对话,不能写“比上一档更严重”。
  4. 精确指向字段。像 order.charges 这样的反引号路径能缩小模型搜索范围。
  5. 先过滤,再推理。无关状态会降低准确率。七条经过选择、附带原始陈述的证据,往往优于把整个研究目录直接塞进请求。
  6. 尽量把抽取变成选择。如果需要供应商名称,就把已知供应商列表交给模型选择,不要期待分类器生成模式之外的新值。
  7. 优先使用配套 Noul,而不是所有 Choice 都塞“其他”。当前建议是让主 Choice 保持互斥,再单独询问“以上类别都不适用”的 Noul。

模型仍然会在哪里失败

类型安全只保证输出形状,不保证输出内容为真。一个符合模式的错误答案仍然是错误答案。Jev 也不是计算器、日期引擎或稳定的多跳推理器。这些运算应在代码中完成,再把结果作为事实传入模型。

失败模式 实际会发生什么 外层程序如何补足
按字面理解 宽松指令得到机械但错误的答案 把问题当作代码来版本化、测试与审查
算术 输入变大后计数与求和发生漂移 用代码计算总数,只让模型对结果做有边界判断
日期顺序 “3 月 3 日之后”被当成普通文本 构造状态前先由代码完成日期比较
上下文污染 无关材料越多,判断越不稳定 按问题选择并裁剪证据
状态中的提示注入 对抗性文本改变模型判断 权限与确定性检查必须留在模型之外
需要解释 一个数字无法向人说明原因 需要文字说明时升级给大语言模型或人工
多跳推理 推理链越长,稳定性越差 拆成多次调用,每一步都把新状态显式写回

置信度级联

实际架构是一个分层路由器。确定性代码处理必须精确的事实;Jev 处理有边界的判断并返回概率;代码按照具体动作的阈值检查概率;低于阈值的样本升级给 Kimi K3,后者可以读取长线程、查看截图或扫描文档,并给出原因;两个模型都无法确定的样本进入人工复核;不可逆操作只有在相应审批门通过后才能执行。

状态
  -> 确定性校验与特征提取
  -> Jev:并行提问
  -> 路由器
       -> 首选概率与间距达到动作阈值时接受
       -> 低置信样本升级给 Kimi K3
       -> 问题规格异常时拒绝或补充状态
       -> 两个模型都不确定时进入人工复核
       -> 不可逆操作必须再经过显式审批
Jev 为更大的 Kimi K3 多智能体系统分配工作
Jev 也可以监督更大的模型协作:选择下一轮由哪个角色执行、保留哪些结果,以及昂贵的轮次之间目标是否已经完成。

Kimi K3 适合作为升级层,因为不确定样本往往需要的不只是一次短分类,而是完整线程、截图、扫描 PDF 或书面解释。当前 Kimi 文档提供 1M token 上下文,并强调长上下文价格不随长度变化,这使它适合处理 Jev 紧凑状态无法覆盖的样本。模型既能通过托管 API 使用,也有开放权重,因此同一套路由契约可以切换不同部署后端。

升级时可以把 Jev 的选择作为上下文,但不能把它的选择当成证据。有效的升级指令应类似:“快速分类器选择了 X,首选概率 0.71,第一与第二名间距 0.08。请根据原始状态与下列标准重新判断,并解释是否需要修正。”这样 Kimi 是在复核,而不是被第一个答案锚定。

一个完整但克制的级联函数

下面的代码只负责分类和路由,不执行发送、删除或付款。模型 ID、请求头和重试逻辑应从当前 SDK 文档补全;真正关键的是把分类、路由与副作用严格分开。

from typesafe_sdk import Choice, Noul, TypeSafeClient

THRESHOLD = 0.95
MARGIN = 0.10

jev = TypeSafeClient(model="jev-1.14.0")

def classify_email(email):
    response = jev.system_one(
        state={"email": email},
        questions={
            "category": Choice(
                instructions="What does the sender of `email` want?",
                criteria={
                    "customer": "A current customer asks about an order, bill, or account",
                    "lead": "Someone asks about prices, a demo, or working together",
                    "vendor": "Someone is selling a product or service to us",
                    "fraud": "Urgent payment change, spoofed sender, or credential link",
                },
            ),
            "none": Noul(
                instructions="Does none of the listed categories fit `email`?"
            ),
        },
    )
    return route_j_email(response)

def route_j_email(response):
    answer = response.answers["category"]
    probs = sorted(answer.probabilities.values(), reverse=True)
    margin = probs[0] - probs[1] if len(probs) > 1 else 1.0
    none_probability = response.answers["none"].noul

    if (
        probs[0] >= THRESHOLD
        and margin >= MARGIN
        and none_probability < 0.5
    ):
        return {"status": "accepted", "category": answer.choice}

    return {
        "status": "escalate",
        "jev_guess": answer.choice,
        "selected_probability": probs[0],
        "margin": margin,
    }

这个例子故意不包含发送、删除、发布或改权限。那些动作应放在路由器之后,由工具白名单和人工审批控制。分类器可以建议不可逆操作,但不应成为执行该操作的授权来源。

欺诈筛查:两次运行,两组不同结果

公开的 jev-fraud 仓库是原文最具体的证据,也恰好说明为什么不能把一个演示数字直接复制到生产。原文报告了一次运行,仓库中签入的 Together AI 轨迹则记录了另一次运行。

指标 原文所述运行 仓库中的 Together AI 运行
数据集 100 封邮件,合法与欺诈各半 同一演示的 100 封邮件
Jev 阶段 分类全部 100 封 接受 70 封,升级 30 封
仅 Jev 未单独报告 90/100 正确
Kimi 升级 31 个样本 30 个样本
最终准确率 96/100 92/100
修正情况 未拆分 修正 2 个,没有回归
欺诈召回率 未报告 84%
Jev 延迟 批量阶段 1.42 秒 汇总在 6.114 秒总时长中
总延迟 16 秒 6.114 秒
记录成本 约 0.07 美元 0.101775 美元
欺诈演示中接受与升级判断的结果
欺诈流水线展示的是路由模式,不是普适准确率证明。模型供应商、提示词、并发与计费方式不同,观测结果也会不同。

仓库运行将 Jev 并发设为 20、Kimi 并发设为 25,并把首选概率阈值设为 0.95。记录中的 Jev 网关成本为 0 美元,是因为该路由处于免费额度或推广状态,所以 0.101775 美元不是可移植的 Jev 生产报价。原文对未缓存 Kimi 输入的估算采用每百万 token 3 美元,输出采用每百万 token 15 美元,这部分才更接近长期运营成本。

两次运行不同,因为级联不是一台只有一个全局基准的确定性规则引擎。模型版本、供应商路由、提示词、阈值行为、并发和缓存 token 的处理都会改变结果。正确结论不是“这条流水线准确率 96%”,而是“这条流水线可以被完整记录,并分别审计接受层和升级层”。

把成本算术摆出来,而不是只写 90%

沿用原文每月一万封邮件的例子。假设每封邮件给 Jev 约 1,000 输入 token;每次升级给 Kimi 1,500 输入 token 和 300 输出 token;升级率为 10%;Kimi 输入价格每百万 3 美元,输出每百万 15 美元。

路径 输入成本基础 输出成本基础 每月估算
每封邮件都交给前沿模型 1,500 万 token,每百万 10 美元 300 万 token,每百万 50 美元 300 美元
每封邮件都交给 Kimi K3 1,500 万 token,每百万 3 美元 300 万 token,每百万 15 美元 90 美元
Jev 全量,Kimi 处理 10% 1,000 万 Jev token 加 150 万 Kimi token 30 万 Kimi 输出 token 9.42 美元

Jev 部分为:

$$\frac{10{,}000\times1{,}000}{1{,}000{,}000}\times0.042=0.42$$

升级部分为:

$$\frac{1{,}000\times1{,}500}{1{,}000{,}000}\times3+\frac{1{,}000\times300}{1{,}000{,}000}\times15=9.00$$

设升级概率为 e,Jev 单次成本为 cJ,升级模型单次成本为 cK,则一次级联的期望成本为:

$$\mathbb{E}[C]=c_J+e\,c_K$$

如果比例为 r 的样本因证据不足或风险过高而没有进入自动接受,而是退回补充状态或转人工,则每个被接受决策的期望成本为:

$$\mathbb{E}[C_{\mathrm{accepted}}]=\frac{c_J+e\,c_K}{1-r}$$

升级后的最终准确率同时取决于第一层准确率 AJ,以及升级模型在升级子集上的准确率 AK:

$$A_{\mathrm{final}}=A_J+e\left(A_K-A_J\right)$$

这些式子揭示了“便宜 90%”标题背后的真实权衡。降低升级率会减少成本,但也可能降低覆盖率或准确率;提高阈值会改善精度,却把更多样本送给昂贵模型。合理目标不是账单最低,而是在该动作的风险预算内,找到成本最低的配置。

阈值属于动作,不属于模型

新闻邮件路由与付款账户变更不应共享一个阈值。前者可逆、纠错便宜;后者可能立即造成资金损失。TypeSafe 的指南用较低置信区间触发人工复核,在破坏性动作前要求更高置信度,同时明确这些数值只是示例,不是通用默认值。

错误代价越高,判断阈值越严格
阈值是策略变量。可逆性越差、监管暴露越高,阈值就应越高;而且必须先用数据证明某个置信区间真的可靠。
动作 可逆性 初始策略 提升自动化前要测什么
给内部条目打标签或路由 容易撤回 影子验证后使用较低阈值 各置信区间的精度与人工纠正率
保留或丢弃来源 通常可逆 要求概率间距达到最低标准 漏掉证据的比例与最终答案质量
把发票标为欺诈 业务影响高 高首选概率阈值加第二模型复核 欺诈召回率、误报成本与升级收益
删除数据或修改权限 可能不可逆 无论模型多自信都保留人工审批 授权检查与完整审计日志
付款或对外发布 不可逆 模型之外的审批门 双人控制、幂等与恢复方案

影子模式才是上线机制

不要在第一天直接切换生产路径。先让 Jev 在影子模式运行,旧系统仍然拥有决策权。每次判断都记录模型 ID、原语、完整概率分布、首选概率、第一与第二名间距、阈值、升级结果、最终人工决定以及后续结果。评估时按置信区间看,而不是只看模型全局平均。

  1. 先记录一个决策。选择有明确事实依据、已有复核流程、每天重复足够多次的调用。
  2. 收集有代表性的影子样本。覆盖普通样本、对抗样本、稀有类别,以及旧系统本来就处理不好的失败。
  3. 检查校准。对每个置信区间计算准确率、动作精度、覆盖率与升级率,不要假设 API 的置信度数字自动适用于你的数据。
  4. 先自动化最安全的区间。如果 0.98 以上长期稳定正确,先让该区间自动执行,其余仍走旧路径。
  5. 只在划算的地方加入第二模型。遍历现实升级阈值,比较最终准确率、审查工作量与总成本。
  6. 固定版本并记录问题版本。固定模型版本,问题文本也要版本化;修改判断标准等同于修改生产行为。
  7. 监控漂移。持续观察状态分布、升级率、人工纠正与每个接受决策的成本。升级率突然上升,可能是输入分布变化的最早信号。
flowchart TD
  A[智能体状态与候选证据] --> B[确定性校验]
  B --> C[并行 Jev 问题]
  C --> D{概率和间距达到动作阈值?}
  D -->|是| E[接受并继续]
  D -->|否| F[升级给 Kimi K3]
  F --> G{K3 能给出有证据支持的答案?}
  G -->|是| H[返回带理由的判断]
  G -->|否| I[人工复核]
  E --> J{是否存在不可逆副作用?}
  H --> J
  I --> J
  J -->|否| K[允许工具执行]
  J -->|是| L[要求显式审批]
  L --> K

Jev 与 Kimi K3 的边界

原文介绍了 LangChain、Pydantic AI 与 Vercel AI SDK 的集成。这些适配器的价值,是把路由放进智能体外层,而不是让每个应用重新发明协议。

集成位置 适合承担的边界 应用仍需负责什么
LangChain middleware 模型路由与工具调用前的风险检查 工具权限、副作用审批与状态脱敏
Pydantic AI 把输出类型映射为问题,并配置回退模型 阈值选择与真实数据分布上的验证
Vercel AI SDK 在 TypeScript 智能体中评估结构化判断 请求构造、用户同意与下游执行
Kimi K3 升级层 长上下文、图片、推理与书面解释 按策略复核答案并保留审计轨迹

即使供应商变化,这条边界也应保持稳定。代码负责授权、算术、预算、日期、幂等和真实执行;Jev 负责在一份受控状态上做结构化判断;Kimi 负责更难的生成或多模态推理;人负责不可逆决定。这个分工比任何一次 SDK 调用都更可移植。

最重要的结论

真正有用的思路不是“把小型模型塞得到处都是”,而是把决策边界写清楚。当工作可以压缩成答案空间已知的问题、状态可以裁剪到相关证据、概率可以驱动路由时,system one 模型非常合适。它不适合开放式写作、精确计算、隐藏的多跳推理,也不应拥有不可逆动作的执行权。

原文的乐观场景确实可能把成本压低一个数量级,但结果取决于 token 量、升级率、供应商价格,以及可以共享多少上下文。欺诈演示的两次轨迹同时证明了两个方面:级联可以用较低成本取得不错的准确率,而模型、供应商与计费方式的微小变化也会改变可观测结果。应衡量低于阈值的真实样本群,而不是只看标题里的平均数字。

从智能体每天重复五十次的一个判断开始。先完成四类审计,再写出版本化问题与影子日志;证明某个置信区间可靠后,再逐步自动化;只把真正需要的样本升级给第二模型;让不可逆动作停在人工或确定性审批边界。相比照抄演示里的阈值,这才是更持久的“Jev 工程化”。

来源:Mr. Buzzoni,〈How to Cut Your Agent Bill by 90% With Jev Engineering and Kimi K3〉,2026 年 9 月 29 日。本文为完整翻译与重组,并结合当前公开文档核验事实,已删除商业推广内容。

主要参考

本站含 CakeGrowth 联盟推广链接,我们可能从符合条件的购买中获得佣金。