2026 年 10 月 3 日——llama.cpp 于 10 月 2 日正式合并决策模型支持(PR #29818),llama-server 新增 /v1/systemone 端点:开发者发送一段状态(文本、JSON 或截图)与若干带类型的问题,模型单次前向传播即返回各选项的概率,全程不生成文本。接口沿用 TypeSafe Jev 模型引入的 System One 格式,现有客户端仅需更换 base URL 即可完成迁移。ggml-org 同步开放五款官方 GGUF 决策模型,在 RTX PRO 6000 显卡上单次决策延迟为 3-43 毫秒,其中 27B 的 OpenJev 支持图像输入。

据 ggml-org 发布在 Hugging Face 的官方博客《New in llama.cpp: Decision Models》(2026 年 10 月 2 日),决策模型面向路由、分类、打分、真假判断等结构化决策场景,与传统文本生成模型形成互补。另据 Ollama 仓库合并记录,Ollama 已于 9 月 28 日先行合并同名 /v1/systemone 接口,本地推理生态的两个主流运行时已先后采用同一端点格式。

1. System One 格式:不生成文本,只输出结构化决策

决策模型的用法与对话模型不同:请求中包含 state(状态,可以是文本、JSON 对象或截图)和 questions(若干带类型的问题),模型对每个问题独立评估,单次前向传播即返回结构化答案与概率分布。据 TypeSafe 官方文档,System One 模型的所有问题在同一请求中并行评估,增加问题数量几乎不增加响应时间,且每个问题独立评估、互不干扰。

System One 格式共定义三种问题类型,据 TypeSafe 官方文档整理如下:

问题类型 用途 返回字段
choice 从给定选项中选择一个 choice、probabilities、confidence
score 按评分标准对状态打分 score、probabilities、confidence
noul 判断某个陈述为真的概率 noul(0-1 数值)

以下为 PR #29818 测试用例中的请求示例(客服工单场景,同一状态同时判断用户意图、紧急程度与情绪等级):

{
  "state": {
    "message": "Hi, I was charged twice for my order #4471 and I want a refund.",
    "plan": "pro",
    "order": { "id": 4471, "items": ["phone case", "charger"] }
  },
  "questions": {
    "intent": {
      "type": "choice",
      "instructions": "What does the customer want?",
      "criteria": {
        "refund": "wants money back",
        "cancel": "wants to cancel an order",
        "track": "wants to know where an order is",
        "other": "anything else"
      }
    },
    "urgent": {
      "type": "noul",
      "instructions": "Does this need a human within the hour?"
    },
    "frustration": {
      "type": "score",
      "instructions": "How frustrated is the customer?",
      "criteria": ["calm", "mildly annoyed", "annoyed", "angry"]
    }
  }
}

System One 概念由 TypeSafe AI 于 2026 年 9 月 15 日发布的 Jev 模型带入公众视野。据 TypeSafe 官方文档,Jev 是该公司的旗舰模型与第一个 System One 模型;据媒体报道,TypeSafe AI 由前 OpenAI 研究员创立,Jev 发布帖曾登上 Hacker News 头条。

2. /v1/systemone 端点的实现与兼容性

据 GitHub 合并记录,PR #29818 由 llama.cpp 维护者 ngxson 提交,2026 年 10 月 1 日创建、10 月 2 日合并,改动 35 个文件、新增 2139 行代码,带有 highlight 标签。PR 披露了实现思路:所谓决策模型本质上是传统 embedding 模型(BERT、Qwen 等)的包装,底层推理设施与现有 embedding 模型一致,因此 libllama 核心改动极小,主要工作是服务器侧的 server_decision_context 模块——它根据 GGUF 元数据中的 {arch}.decision.type 字段切换输入输出处理逻辑。该 PR 同时声明大部分代码由 AI 编写、设计由作者本人负责。

对开发者的兼容性影响集中在两点:

  • 客户端零改动迁移:/v1/systemone 端点沿用 TypeSafe Jev 引入的 System One 格式,现有客户端(含 TypeSafe 官方 SDK)只需将 base URL 指向 llama-server 即可切换到本地推理。
  • 一条命令启动:官方提供预转换 GGUF,直接以 -hf 参数加载。获取 llama.cpp 最新版可访问 llama.app,或运行 llama update 更新。
llama serve -hf ggml-org/Kev-4B-GGUF

除文本与 JSON 外,本次支持还包括视觉输入(需搭配支持图像的模型,vision projector 自动下载)与并行共享提示词前缀(仅因果模型可用)。官方博客同时介绍了 router mode:在单台服务器上挂载多个决策模型,按请求需要自动加载。

推理精度方面,PR 测试将 llama.cpp 输出与参考实现逐项对照:五款模型的概率最大偏差介于 0.00018(OpenJev)与 0.022(Julia-1)之间,其余三款在 0.001 量级;除 lev 因分词器差异导致输入 token 数不同(576 对 1194)外,其余模型输入 token 数与参考实现完全一致。

官方博客还给出三条实测建议:为选项补充描述文本可显著提升路由准确度;置信度阈值因模型而异,切换模型需重新标定;多个问题合并到一次请求只处理一次状态,比拆分请求更高效。

3. 五款官方 GGUF 模型规格

官方提供的五款模型定位从轻量到多模态全覆盖,规格据 Hugging Face 官方博客整理,延迟为 RTX PRO 6000 显卡上每个问题的中位数:

模型 参数量 底座模型 支持语言 图像输入 许可 每问题中位延迟
Julia-1 144M mmBERT-small 50+ 种语言 不支持 Apache 2.0 3 毫秒
Laya 421M ModernBERT-large 英语 不支持 Apache 2.0 5 毫秒
Kev-4B 4B Qwen3.5-4B-Base 英语 不支持 Apache 2.0 12 毫秒
lev 4B Qwen3.5-4B 英语 不支持 Apache 2.0 36 毫秒
OpenJev 27B Qwen3.8-27B 英/德/法/印地/中/日 支持 CC BY-NC 4.0 43 毫秒

注 1:Julia-1、Laya、Kev-4B、lev 四款采用 Apache 2.0 许可,OpenJev 采用 CC BY-NC 4.0 许可,后者禁止商用,选用时需注意许可差异。

注 2:延迟数据来自官方博客,测试硬件为 RTX PRO 6000,实际延迟随硬件、量化档位与问题数量变化。

注 3:五款模型均支持多种量化档位,低参数量模型(如 144M 的 Julia-1)可在纯 CPU 环境运行。

4. 生态跟进:Ollama 已先行合并同名接口

据 Ollama 仓库合并记录,PR #18606「feat: add System One scoring API」已于 2026 年 9 月 28 日合并,比 llama.cpp 早四天。该实现新增 POST /v1/systemone 端点,支持本地 Nimble 与 Tev 两款决策模型:GGUF 格式经 llama-server 推理,safetensors 格式经 MLX 推理;接口仅支持文本输入,提示词上限 2048 token,超限请求直接拒绝而不截断。

llama.cpp 方面,官方博客预告下一步将支持 Cloudflare 的 Clef 决策模型(该模型在 PR 编写时尚未发布满 2 小时,已被列为后续跟进项)。中文社区跟进速度较快,据搜索结果,9 月末已有基于 llama.cpp 的 Laya 模型微调与本地部署教程出现。

从 Ollama 与 llama.cpp 在一周内先后采用同一端点格式来看,/v1/systemone 正在成为本地部署决策模型的通用接口;对使用者而言,决策模型的获取与部署门槛已降低到与普通 GGUF 模型一致的水平。