Skip to content

Jev 实战:不写文本只返回概率的 AI 怎么用 ​

译注:本文翻译自 Erik Hanchett 发布于 dev.to 的文章,原文标题为《Jev 101: How I'm Using It Today in My Apps》,原文链接见文末。作者为 AWS 高级开发者布道师,文中观点与实测数据均来自其个人使用体验。

TypeSafe 于 2026 年 9 月 15 日发布 Jev,并将其称为一种「System One 模型」。所谓 System One 模型,是一类专门用于快速、确定性判断与结构化分类的 AI,它在单次并行推理中给出结果,而不是生成对话式文本。

你不与它聊天。你发送一段状态(state)加一组范围明确的问题,它返回概率。

作者最看重的是成本:每十亿输入 token 收费 42 美元,输出 token 免费。在他的测试中,响应时间为 70 到 500 毫秒。

一次请求长什么样 ​

接口形式是一个 POST 请求,包含一个 state 对象和一个 questions 映射:

js
const response = await $fetch('https://openrouter.ai/api/alpha/decisions', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${config.openRouterApiKey}`,
    'Content-Type': 'application/json',
  },
  body: {
    model: '~typesafe/jev-latest',
    state: buildGateState(stack, pullRequest),
    questions: {
      matches_request: {
        type: 'noul',
        instructions: 'Does the pull request directly address the stated issue and acceptance criteria?',
      },
      protects_credentials: {
        type: 'noul',
        instructions: 'Does the changed frontend code keep credentials and secret tokens out of browser-visible runtime configuration?',
      },
    },
  },
})

返回结果的结构与你提出的问题一一对应:

json
{
  "model": "~typesafe/jev-latest",
  "answers": {
    "matches_request": { "type": "noul", "noul": 0.59 },
    "protects_credentials": { "type": "noul", "noul": 0.11 }
  },
  "usage": { "input_tokens": 4211, "output_tokens": 0, "cost": 0.00067 }
}

每个答案都是 0 到 1 之间的数字。问六个问题,就得到六个概率,后续如何处理由你决定。

三种问题类型 ​

Jev 提供三种原语。

noul 是「是/否」概率,只有问题,没有其他判定标准。

choice 从你定义的一组类别中选出一个。它的 criteria 是对象,因为类别之间无序:

js
traffic_shape: {
  type: 'choice',
  instructions: 'Using only the described usage pattern, choose how this workload receives traffic over a typical month.',
  criteria: {
    steady_24_7: 'Traffic arrives continuously at a roughly similar rate at all hours.',
    business_hours: 'Traffic happens during working hours on weekdays and falls to almost nothing outside them.',
    spiky_bursty: 'Traffic is uneven and unpredictable, with quiet periods followed by much heavier bursts.',
    batch_scheduled: 'Work runs on a schedule as discrete jobs rather than as a stream of user requests.',
  },
}

score 是有序评分量表,因此它的 criteria 是数组。API 会强制区分这两种结构。

应用一:为 pull request 设置门禁 ​

第一个应用加载一个 pull request,并一次性提出六个问题:diff 是否匹配所述 issue?是否让凭证远离浏览器可见配置?是否实现了验收标准要求的失败状态?改动的交互式 UI 是否可键盘操作?考虑到依赖关系,该层是否可独立安全审查?

六个问题在同一次请求中完成,速度非常快。随后由代码(而非模型)把概率转换为结论:

概率结果含义
80% 至 100%Pass证据充分,可进入常规审查
55% 至 79%Review需要人工核实不确定的证据
低于 55%Block暂不合并该层

在作者的场景中,只有当 changes_interactive_ui 高于 0.5 时,keyboard_accessible 才计入判断。纯后端的 PR 不应因为没有键盘行为而被扣分,而这个条件逻辑写在代码里,可读也可改。

OpenRouter 与直连 TypeSafe ​

作者最初通过 OpenRouter 调用,因为当时还在 TypeSafe 等待名单上。他注意到 OpenRouter 明显更慢:

  • 经 OpenRouter:683 毫秒,成本 0.00067 美元
  • 直连 TypeSafe:318 毫秒

同样的工作,耗时大约减半。如果要基于此构建应用,建议加入等待名单并使用官方 API——作者第二天就获得了访问权限。

应用二:AWS 工作负载估算 ​

第二个应用描述一个 AWS 工作负载,例如「面向零售店面的公共结账 API」,然后返回成本估算。其职责划分如下:

层负责绝不负责
Jev对文字描述做语义判断看数字、输出数字、比较两个数字
我的代码规格计算、平台限制、阈值、排序猜测意图
AWS Price List所有单价无,它只是数据

Jev 回答诸如:所述数据访问是否需要跨多表的关系查询?是否有任何单个工作单元运行超过十五分钟?描述暗示的是有界人群还是开放式公共需求?随后由 Agent Toolkit for AWS 与 AWS pricing MCP server 给出具体金额。模型完成分类后,算术是确定性的。

Schema 有效不等于正确 ​

Schema 有效并不等于答案正确。Jev 不会返回你定义之外的问题或类别,因此不会解析到破损的响应。但它同样可能返回一个「自信地错误」、却完全通过校验的概率。

这正是两个应用都在任何后果之前设置阈值的原因。低置信度会转交人工或更强的模型。如果把概率直接接入不可逆操作,保证输出结构并不能救你。TypeSafe 发布了关于置信度的指南,但你需要用自己的标注数据去衡量,并根据犯错的代价来设定阈值。

社区在用它做什么 ​

社区项目最能体现速度优势。有人让 Jev 玩《超级马里奥兄弟》,在游戏运行中反复询问「这里该跳吗」。还有人做了一个实时穿搭推荐器,输入变化时建议随之更新。

作者会不会用 ​

前沿模型不会消失,Jev 也不与它们竞争。它不写代码、不解释决策、不产出计划。

但作者有不少工作流需要大量小型语义判断,而另一端是确定性代码在等待:路由、分类、门禁、昂贵步骤前的廉价验证。对这类场景,发送范围明确的问题并拿回概率,比让聊天模型输出 JSON 再祈祷要合适得多。

建议先在有标注数据的事情上试用,自行测量校准度,并把任何昂贵的操作挡在阈值之后。

原文链接 ​

https://dev.to/erikch/jev-doesnt-write-text-it-returns-probabilities-5gno