Jev 与 Agent 工具链分工:三类任务该给谁做
先说结论
- Jev 不是聊天模型,而是一个做结构化决策的 System One 模型。它输入程序状态,输出带概率的类型化答案,不生成文本、不解释推理。
- 工具链至少要有四层:规则/正则(确定性)→ 决策模型(结构化判断 + 置信度)→ 专用小模型(有标注数据)→ 通用 LLM(开放生成/长链推理)。Jev 主要补第二层。
- 第三方基准指向两个明确场景:60 例工具调用风险分类基准显示校准结论成立(社区二手),适合执行前门禁;物理 AI 实测给出 $0.042/百万输入 token、output free 的第三方价格口径,指向机器人/边缘分诊。
- 接入位置应在网关/路由层,而不是生成层:LiteLLM 把它用于 Auto Router 分类,Netlify 已将其纳入 AI Gateway;它在链路里负责“决定走哪条路”,不负责“生成内容”。
- 四类情况别用:需要解释理由、输入是长自由文本且结构不稳定、判定必须可审计到规则级、调用量极低。
证据与过程
1. System One 模型的边界:只判断,不生成
根据 TypeSafe 官方文档,System One 模型是一个区别于 LLM 的类别。它像 LLM 一样理解自然语言输入,但返回的是类型化的决策和概率,而不是生成的文本。Jev 是 TypeSafe 的首个 System One 模型,也是旗舰模型。
官方文档明确写了三个关键点:第一,Jev 目前只接受文本输入,评估字符串、JSON 对象和文本数组;不支持图像、音频、视频(官方数据)。第二,它不写回复、不产代码、不生成推理过程的解释。第三,它的概率是被校准的,但校准是群体层面的概念,不保证单个答案一定正确。
这种特性让 Jev 不适合做“生成”,而适合放在一个动作发生之前做判断。例如 Netlify 官方 changelog 给出的示例是一个联系表单路由:把提交内容交给 Jev,让它从 sales、support、spam 三个选项里选一个,返回的是 answers.team.choice,代码可以直接分支。
2. 四层分工:从零成本确定性到开放生成
下面这张表是我根据官方文档和社区实测整理的分工表。表中“判断”表示这是根据工程常识的自己推算,不是官方数据。
| 任务类型 | 首选层 | 典型例子 | 原因 | 来源/判断 |
|---|---|---|---|---|
| 固定格式、确定性规则 | 正则与规则 | URL 白名单、字段格式校验、固定关键词命中 | 零成本、可审计、实时 | 自己推算 |
| 高频、结构化判断、需要置信度 | 决策模型(Jev) | 工具调用风险门禁、工单分派、退款意图识别、情绪评分 | 返回类型化答案 + 校准概率,适合请求路径 | 官方文档 + Netlify changelog |
| 有标注数据、量大 | 小模型/专用分类器 | 垃圾邮件过滤、特定意图分类、文本主题标注 | 训练数据明确,模型可压缩、可本地部署 | 自己推算(常见 ML 实践) |
| 开放生成、长链推理、需要解释 | 通用 LLM | 代码生成、复杂多步规划、需要自然语言回复或解释链 | 生成能力、上下文长度、推理能力 | 自己推算 |
3. 接入位置:网关/路由层,不是生成层
两个官方集成案例说明了 Jev 在链路中的位置。
LiteLLM 官方博客 显示,LiteLLM 将 Jev 用于 Auto Router 的分类环节。从博客标题列表可以看到一篇题为“TypeSafe Jev on LiteLLM Auto-Router: Switching Tiers Without Encrypted Content Failures”的文章,表明它是作为路由器的分类器,而不是生成节点。不过该博客的具体测试条件和性能数字(如标题所称“5.43x as Fast as Haiku, 96% Lower Cost”)本次未读取到正文,这里不展开(未能核实)。
Netlify changelog 给出了更完整的官方说明。Jev 现在可以直接在 Netlify AI Gateway 中使用,零配置,SDK 为 @typesafe-ai/sdk,无需创建 API key。changelog 明确写到:状态和问题共享约 32,000 token 预算(约 150,000 字符英文文本),TypeSafe 报告端到端响应时间为 70–500ms(官方数据)。这些数字说明它适合放在请求路径上做快速分诊,而不是离线批处理。
Netlify 的官方示例代码(有删减)如下:
import { choice, TypeSafeClient } from "@typesafe-ai/sdk";
const client = new TypeSafeClient();
const { answers } = await client.systemOne({
state: await req.json(),
questions: {
team: choice("Route this contact form submission", {
sales: null,
support: null,
spam: null,
}),
},
});
// answers.team.choice 只会是 "sales" | "support" | "spam" 之一
// 每个答案还带概率分布和 confidence,可据此决定是否升级到人工
这个示例体现了关键点:答案被约束在选项内,不需要 JSON 解析;同时携带置信度,可以设置门槛,高置信度直接执行,低置信度兜底。
4. 第三方实测:两类适合场景
第三方社区仓库的实测提供了两个场景的证据。
第一个是 60 例工具调用风险分类基准。该基准公开任务集,结论是 Jev 的校准成立(社区二手)。关键数字:准确率 91.7%(55/60);按题目难度分层,清晰题(n=34)100%、模糊题(n=14)71.4%、对抗题(n=12)91.7%;ECE(10 个分箱)0.0712;延迟 p50 421.6ms、p95 542.0ms;平均输入 413 tokens,按 $0.042/百万 token 算单次约 $0.0000173;置信度恰好 1.000 的有 40/60,而这些高置信答案里没有一个是错的(5 次失误的置信度分别落在 0.130~0.785)。这意味着它输出的概率与真实风险水平具有一致性,适合作为工具执行前的“门禁”:对于高风险工具调用,即使 LLM 生成了动作,也要先经过一个独立的风险判断;判断通过再执行,不通过转人工。
但这个结论有两个必须一起说的限制(作者自己写的):一是样本只有 60 例,任务分布是作者自己定的,不能外推成通用安全分类器;二是 0.9~1.0 这个置信度分箱里装了 60 例中的 50 例,也就是说 ECE 这个总分基本由这一个箱子决定——看分箱占用率,而不是只看一个 ECE 数字。另外作者记录了约 240 次调用中出现过 1 次瞬时 API 错误,重试后答案一致。
第二个是 物理 AI 实测。该仓库报告了机器人/边缘分诊场景下的延迟和账单数据,价格口径为 $0.042/百万输入 token、output free(第三方口径,社区二手),并在开头给出 70–500ms 的延迟量级。说明:本轮抓取时该仓库页面超时(raw.githubusercontent 连接超时),因此它内部更细的延迟分位数我没有逐项复核;上面那段具体的 p50/p95 来自 60 例基准仓库的复现结果,两者不是同一个测试,别混着比。
这两类实测都指向同一个结论:Jev 在链路里是“判断器”,而不是“执行器”。
5. 一个两段式链路的最小伪代码
下面给出一个“决策模型门禁/分级 → 通过则交给 LLM 或工具执行 → 低置信度走兜底”的最小链路:
state = build_state(user_input, tool_metadata, policy)
// 决策模型并行评估多个问题
answers = jev.system_one(state, {
risk: noul("Does this tool call have irreversible side effects?"),
intent: choice("Which tool category?", ["read", "write", "delete"]),
urgency: score("How urgent is this request?", ["low", "medium", "high"])
})
if answers.risk.probability > 0.8 and answers.intent.choice == "delete":
route_to_human_review # 高风险 + 破坏性操作,即使置信度高也升级
else if answers.risk.probability < 0.3 and answers.intent.choice == "read":
route_to_generic_llm_or_tool # 低风险读操作,直接放行
else:
route_to_fallback_rule_or_human # 中间地带或低置信度,走兜底
这个伪代码不是生产代码,只是表达分层判断的思路:决策模型负责快速分级,生成模型只在通过后介入。
自己的判断:什么时候别用
以下清单是基于这次核实的来源和工程经验给出的判断,不是官方指南。
- 需要解释理由:如果用户或下游要求“为什么这么判断”,Jev 无法生成推理过程,因为你不给它生成能力。这时应该用通用 LLM 或人工。
- 输入是长自由文本且没有稳定结构:Jev 的状态和问题共享约 32k token 预算(官方数据),但它的强项是给定状态下的结构化判断。如果输入是松散的长篇叙述,判断边界本身就不清晰,用 LLM 先做摘要或抽取可能更合理。
- 判定结果必须可审计到规则级:在金融合规、医疗等场景,每个决策都要能追溯到明确规则。概率模型的校准不等于可解释,即使给出置信度,也不满足审计要求。此时应坚持规则引擎或决策树。
- 调用量极低:如果每天只有几十次调用,人工判断的准确率和成本可能都更优;引入决策模型反而增加维护和版本管理的复杂度。
- 不要为了让 AI 参与而用:如果正则和规则已经覆盖 95% 的边界,剩下 5% 人工处理,就不要用决策模型;过度设计只会增加延迟和故障点。
这次没核实的
- Vercel AI Gateway 的具体接入方式:工单提到 Vercel,但本次来源集中未提供 Vercel 官方链接,未能核实。
- LiteLLM 官方博客标题中“5.43x as Fast as Haiku, 96% Lower Cost”的测试条件与基准细节:仅见标题,未读取到正文。
- 物理 AI 实测仓库中更细的延迟分位数与硬件型号:本轮抓取该仓库时连接超时(raw.githubusercontent),只核到价格口径与 70–500ms 的量级,未逐项复核。
- 60 例基准任务集的标注细则(每条标签是谁标的、有无第二人复核):任务集
tasks.jsonl公开、可自行改标签重跑,但标注流程文档未在本次证据中展开。 - Jev 模型的训练数据、参数量、知识截止时间等官方文档未披露。
参考来源
- Netlify Changelog: TypeSafe Jev now available in AI Gateway(官方一手)
- TypeSafe System One 官方文档(官方一手)
- LiteLLM Blog: TypeSafe Jev(官方一手,但本次仅获取到标题列表)
- 第三方 60 例工具调用风险分类基准(社区二手,非官方)
- 该基准作者的完整报告:I Benchmarked Jev on Agent Tool-Call Risk. Calibration Held.(社区二手,非官方)——文中 91.7%、ECE 0.0712、p50 421.6ms / p95 542.0ms、分箱占用率等数字出自这里
- 第三方物理 AI 实测(社区二手,非官方)
评论区
登录后可评论。