2026.10 — Jett 1.0 已发布 · 一次调用,给一组带把握的决定→
Evon Lab
Evon Lab — Release 012026.10 · 结构化决策模型
一次调用 · 类型化输出 · output_tokens = 0

Jett 1.0

给一段情况和一组问题,Jett 一次调用把它们全部答完。 回来的是选项与把握程度,以及需要的那个数 ——精确值,带单位,可以逐位核对。

候选里没有正确答案时,它返回的是「没有对的」, 而不是从错的里面挑一个最像的。

输出
选项 · 是否 · 档位 · 数值
延迟
P50 42.1 / P95 272.6 ms
计算题全量准确率
191 / 191
坏题检出
19 / 19 · 误报 0

口径:191 道题(好题 172 + 坏题 19)· 串行测量 —— 并发会把延迟污染 25 倍

01 — 能力

01

类型化的输出

问题分三类:从一组候选里选一个、回答是或否、在有序的档位上打一档。三类的返回都是结构化的,值加上完整的概率分布,不是一段还要再解析的文字。

调用方因此不需要写解析器,也不需要为「这次它多说了一句」准备容错。

02

数值是精确的

要拿去跟阈值比大小的数,Jett 给的是精确值,带单位,可以逐位核对。

部署口径下 191 道计算题全对,而且不随题目变难而退化:指数衰减、单位换算、两个单位之间的比值,和一次减法一样精确。

03

它会说「这里面没有对的」

给它一道候选全错的题,Jett 返回「无匹配」,不从错的里面挑一个最像的。实测 19 道坏题检出 19 道,误报 0;同一批题上,判断类模型检出 0 道。

自动流程要用得上它,这一条是前提:接口永远给得出答案,就没法把「这件事该转人工」表达出来。

04

同样的输入给同样的答案

调换候选的顺序,分数逐比特相同;同一个请求重复发,结果一致。实测重复调用不一致 0 次,作为对照,判断类模型在 160 次里出现 4 次。

对接入方来说这意味着:回归测试可以写死期望值,线上的异常一定来自输入变化,不来自模型抖动。

此刻正在跑

右边是一次真实请求

页面加载时发出,一跳一跳地落。这是一条四跳的流水线:后一跳问什么由前一跳的结果决定,所以它们必须串行,单跳延迟会被跳数乘起来。

每跳的耗时是服务端自报的,不含网络往返。刷新一次会重跑。

跑完了· 一条退货工单,四跳
—
    每一跳都是一次真实调用,时间是这一次量出来的 —— 打开控制台能看到那条流。
    02 — 接口

    同一道题的所有问题合并成一次请求。实测:问 1 个问题 13.8 ms、问 8 个问题 21.9 ms —— 成本主要来自往返次数,而非问题数量。

    请求
    POST /v1/systemone
    
    {
      "model": "jett-1.0",
      "state": "电量 38%,还能飞 18 分钟。
                距返航点 2.1 km,顶风地速 24 km/h。",
      "questions": {
        "action": {
          "type": "choice",
          "instructions": "现在应当怎么做?",
          "criteria": {
            "continue":   "继续完成航点",
            "return_now": "立刻返航",
            "land_here":  "就近降落",
            "other":      "以上都不合适"
          }
        },
        "margin_ok": {
          "type": "noul",
          "instructions": "电量余量够吗?"
        },
        "risk": {
          "type": "score",
          "criteria": ["低", "需要留意", "高"]
        },
        "eta": {
          "type": "number",
          "instructions": "飞回返航点要多久?",
          "unit": "min"
        }
      }
    }
    响应
    {
      "answers": {
        "action": {
          "value": "return_now",
          "probs": { "continue":   0.122,
                     "return_now": 0.798,
                     "land_here":  0.040,
                     "other":      0.040 }
        },
        "margin_ok": { "value": "no",  "p_yes": 0.269 },
        "risk":      { "value": "高",  "p": 0.811 },
        "eta":       { "value": "5.25",
                       "unit":  "min",
                       "exact": true }
      },
      "usage": {
        "output_tokens": 0,
        "server_ms": 42
      }
    }

    exact: true 表示这个值是精确的,不是近似 —— 可以直接拿去跟阈值比大小。

    output_tokens = 0 —— 模型不生成任何 token,所以延迟与「要说多少话」无关。

    候选里没有正确答案时,value 返回 no_match。

    03 — 基准

    下表中对照一列是我们自己的实测结果,不是其公开宣称值。两次评测的坏题样本量不同(15 与 19),因为题库版本不同。

    维度判断类模型(实测)Jett 1.0
    候选里没有正确答案时能否说出来0 / 1519 / 19
    调换候选顺序后结论翻转7.5% p=0.00470
    同输入重复调用不一致4 / 1600
    计算题全量准确率(191 道)——191 / 191
    P50 / P95 延迟——42.1 / 272.6 ms

    口径:191 道题(好题 172 + 坏题 19)· 串行测量。

    同一道题的两种返回

    切到「选项全错的题」:这道题的四个候选都不是正确答案。判断类模型仍会挑出一个并给出较高置信度;Jett 1.0 返回 no_match。

    两题只差最后一个选项
    净利润 24 亿元,营业收入 300 亿元,总资产 600 亿元,股东权益 150 亿元。
    该公司的净资产收益率(ROE)是多少?
    A. 0.08B. 4C. 0.04D. 0.21
    判断类模型
    D. 0.21
    置信度 0.64
    四个选项没有一个对,但它必须选一个 —— 而且看上去和平时一样有把握。
    Jett 1.0
    no_match
    算出 0.16,与全部选项均不符
    它先把答案算出来,再去对选项。对不上就是对不上 —— 这不需要模型表态。
    computed = 0.16 · exact = true · matched = []
    04 — 场景 · 19

    每个场景都会发出真实请求,卡片上的数由本次请求算出。点开可以看到它收到了什么、答了什么、用了多久。

    实时循环 · 2

    这两个每一帧都要重新问一次。判断要是花三秒,这一类应用整个不存在。

    其余 · 17

    一次调用答完一组问题,再把需要的那个数算准。点标题进去看它这一次的请求与回包。

    05 — 适用范围

    链路深度四跳

    四步以内的计算链是可靠的,站点上最长的场景就是四跳。更深的链路在做。

    档位判断走升级

    在有序档位上打分这一类,部署时按「拿不准就升级」处理,约七成请求交给更大的模型。这是设计上的选择:这一类的准确率我们只认升级后的那条线。

    实时场景验数值

    虚拟驾驶与游戏 NPC 每一跳状态都不同,没有参考答案可比。这里验证的是数值精确与单位正确 —— 这两条每一跳都成立。

    06 — Evon Lab

    三个模型,各担一件事:记住你、自己变强、每一步都验得了。

    Jett 的技术报告正在整理 ——敬请期待