
10 月 1 日,Cloudflare 发布了两款自研决策模型 Clef 和 Clef-flash,权重以 Apache 2.0 协议在 Hugging Face 开源,同时托管在 Workers AI 上供 API 调用。这是 Cloudflare Workers AI 团队第一次发布自研训练的 ML 模型。与模型一起亮相的还有一个强化学习微调服务:客户可以用自己的业务数据把 Clef 调成领域专用的分类器。
这条新闻的背景是九月中旬 TypeSafe 发布的 Jev。那款不生成文字、只输出结构化判断的模型在 Hacker News 冲上榜首,随后两周,GitHub 上出现了一整批同类项目:jaredpalmer 的 kev(8.2k star)、NandhaKishorM 的 laya(29.8k star)、给 Claude Code 做上下文压缩的 fast-jev-compaction(7.3k star)。现在,第一批大厂正式进场了。
决策模型是什么,和 LLM 差在哪
先看它解决什么问题。一个 AI Agent 在执行任务时需要做大量小判断:这条客服工单紧不紧急、该转给哪个团队;这个域名是正常网站还是钓鱼站;这个爬虫是好爬虫还是恶意爬虫。这类判断有两个特点:答案是封闭的(几个选项里选一个),而且要求稳定、快速、便宜。
用大语言模型做这类判断是杀鸡用牛刀。LLM 要一个 token 一个 token 地生成回答,速度慢、成本高,而且同样的问题问两遍可能给出不同答案。决策模型走的是另一条路:输入一段上下文和一组问题定义,模型不走文本生成,直接对所有合法选项并行打分,输出带概率的类型化答案。官方文档里的请求示例长这样:
{
"model": "clef",
"state": "Checkout has been failing for every customer for the last hour.",
"questions": {
"urgent": { "type": "noul", "instructions": "Is this support request urgent?" },
"team": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"billing": "Payments, invoices, and refunds",
"technical": "Outages, errors, and configuration",
"sales": "Plans and upgrades"
}
},
"severity": {
"type": "score",
"instructions": "How severe is the customer impact?",
"criteria": ["No impact", "Minor", "Major", "Critical"]
}
}
}state 是当前上下文,questions 定义要做的判断:choice 类型从给定选项里选,score 类型按程度打分,noul 输出是/否。返回结果里每个选项都带概率,业务代码可以直接拿概率做路由、升级或转人工的分支逻辑。
Cloudflare 自己的威胁情报团队已经在用 Clef 给域名分类。给模型一个域名(配合浏览器渲染),它 2.2 秒完成抓取、渲染和分类,输出「95% 时尚网站、85% 电商、不到 1% 钓鱼」这样的判断;同样的事情用 gpt-oss-120b 做,耗时 4.7 秒,而且只返回两个分类结果。

架构:冻结的 Qwen,加上并行打分头
Clef 的技术路线值得细看,因为它给「怎么把通用基座改造成专用模型」提供了一个完整样本。
基座不是从零训练的。Clef 冻结了 Qwen3.8-27B 做骨干网络,Clef-flash 用的是 Qwen3.5-9B,训练只更新两部分:一个路由头(routing head)和秩为 256 的低秩适配器(LoRA)。也就是说,模型的语言理解能力全部来自冻结的 Qwen,新训练的参数只负责「把内部表示映射到选项打分」这一件事。
推理流程和 LLM 有本质区别。Clef 用 Qwen 做一次 prefill-only 前向(只编码输入,不逐 token 生成),然后对所有合法的 schema 选项并行打分。打分阶段是非自回归的,没有中间文本需要逐个生成,这是它比同规模 LLM 快的核心原因。
打分机制官方称为两阶段注意力路由(two-stage attention routing):每个合法选项先从 prompt 里提取与自己相关的上下文,然后各字段的参数跨字段交叉注意力、再回连到原始输入,最后按 schema 边界打分。这个设计让每个选项都能看到「其他字段问的是什么」,避免多字段判断之间互相矛盾。
训练目标用了三项组合:对合法 schema 输出用标签平滑交叉熵,加上 Brier 损失来校准概率(让模型输出的 90% 真的接近 90% 的正确率),再叠加一个自研的 RLCD(Reinforcement Learning for Calibrated Decisions)作为次级优化目标——相邻的有序选项给部分得分,完全精确的记录输出给满分,同时用参考惩罚防止模型分布漂移。训练数据是内部合成数据集,对字段顺序、prompt 和 schema 结构做排列组合。
这套组合拳的成果,官方概括为三件事:分类准确率提升、输出被约束为纯概率(不生成文本)、速度超过 Jev 和基座 Qwen 模型本身。
评测:Clef 与 Jev 的正面对决
Cloudflare 给出的基准数据相当详细。先看 Jev Decision Index 定义的十项能力评测:
| 基准 | Clef | Clef-flash | Jev | DiffusionGemma Jev | Kev 9B | Laya |
|---|---|---|---|---|---|---|
| BFCL · case exact | 98.47 | 98.76 | 95.75 | 96.52 | 94.51 | 38.13 |
| ToolRet · nDCG@10 | 69.19 | 66.43 | 65.28 | 61.21 | 64.26 | 12.69 |
| API-Bank · accuracy | 91.93 | 93.11 | 88.19 | 83.66 | 56.30 | 11.41 |
| 家电分类 · case exact | 82.95 | 97.73 | 52.27 | 42.05 | 25.00 | 0.00 |
| When2Call · accuracy | 72.37 | 65.58 | 80.97 | 75.44 | 49.62 | 11.94 |
| BANKING77 · macro-F1 | 94.20 | 90.93 | 79.74 | 74.28 | 84.83 | 14.29 |
| CLINC150+OOS · macro-F1 | 97.43 | 66.77 | 89.27 | 83.49 | 79.03 | 3.19 |
| BRIGHT · nDCG@10 | 45.91 | 39.26 | 47.52 | 42.94 | 38.53 | 19.90 |
| Amazon ESCI · macro-F1 | 57.48 | 57.39 | 55.21 | 53.37 | 49.22 | 24.40 |
| PhishNChips · accuracy | 79.60 | 75.05 | 62.55 | 85.35 | 50.75 | 50.15 |
十项里 Clef 拿下四项第一,Clef-flash 拿下三项,Jev 拿下两项(When2Call 和 BRIGHT),剩下一项归 DiffusionGemma Jev。在 Typesafe 自己的工作流评测套件里,Clef 在四项中有三项超过 Jev:
| 工作流 | Clef | Clef-flash | Jev |
|---|---|---|---|
| 发票处理 | 64.7 | 57.1 | 61.8 |
| 客户服务 | 76.3 | 77.0 | 76.0 |
| 安全事件 | 62.9 | 61.7 | 61.7 |
| Agent 轨迹观测 | 68.5 | 69.8 | 71.6 |
延迟数据按官方说法覆盖了 43 项评测基准,中位数和 p95 如下(Laya 5.8ms 的中位数最快,但上面两张表里它的质量得分明显掉队):
| 延迟 | Clef | Clef-flash | Jev | DiffusionGemma Jev | Kev-9B | Laya |
|---|---|---|---|---|---|---|
| 中位数 · ms | 209.3 | 38.8 | 524.1 | 84.4 | 51.4 | 5.8 |
| p95 · ms | 238.6 | 122.4 | 536.0 | 211.2 | 187.9 | 222.5 |
把质量和延迟放到一张图里,格局更直观:

图里把三类来源分开标注:橙色是 Cloudflare 自报的数字,黑色是 Jev(闭源,官方数据),蓝色是开源模型(board-validated,第三方验证)。Clef 61.2 分、中位延迟 209ms,在质量维度排第一;Clef-flash 57.1 分、38.8ms,走延迟敏感路线;Jev 57.9 分但要 530ms。虚线画的「efficient frontier」穿过了 Clef-flash 和 Clef,意思是这两款模型目前构成了质量-延迟的帕累托边界。
需要说明的是,这批数字是 Cloudflare 自家发布的评测,第三方独立复测还需要时间;Jev Decision Index 本身是 Hugging Face 上的开放排行榜,demo 站(clef-evals.workers-ai-mle.workers.dev)会持续更新结果。
和 Jev 的两点硬差异
纯从参数表看,Clef 对 Jev 有两个结构性优势。
第一是视觉输入。Clef 带视觉编码器,可以分类图片内容;Jev 目前只支持文本。对需要「看屏幕做判断」的 Agent 场景(比如识别 UI 截图、审核图片内容),这是 Jev 暂时补不上的能力。
第二是上下文窗口。Clef 是 64k,Jev 是 32k,翻了一倍。决策模型的输入是完整的任务状态(工单全文、代码上下文、页面内容),窗口大小直接决定能塞多少现场信息进去。
反过来,Jev 保留了两个优势项:When2Call(判断工具该不该调用)和 BRIGHT(检索类基准)两项质量指标领先,另外它的 API 生态先发了两周,兼容工具链更多。Clef 的应对方式是做了完全的 Jev API 兼容——现有接了 Jev 的代码,改一个模型名就能切到 Clef。
RL 微调平台:这次发布的另一半
模型本身之外,Cloudflare 真正下注的是强化学习微调服务。逻辑不难理解:通用决策模型覆盖不了所有垂直场景,每个企业的工单分类、内容审核、风控判断都有自己的标签体系和历史数据,微调是刚需。
官方的架构图把整条链路拆成了五段:

- 采集:业务流量先过 Cloudflare AI Gateway,请求和响应自动落成数据集;
- 准备:人工把日志整理成带奖励定义的任务(官方特意标注:日志本身不等于标签);
- 生成:Workers AI 用当前策略模型采样动作或回答;
- 执行评分:Cloudflare Containers 里跑沙箱,执行工具调用、跑测试、算任务奖励;
- 更新:新的 Trainer 组件计算 RL 损失和梯度、更新模型权重,选出的 checkpoint 再经 Workers AI 的 BYO Model(Cog)通道重新部署上线。
这个产品的底子是 Cloudflare 收购 Replicate 后整合的 BYO Model 能力,加上 AI Gateway、Containers 这些已有组件。现阶段微调服务由 FDE(前置部署工程师)团队手把手带着做,自服务平台在路线图上。官方也给出了内部用例:Trust & Safety 提交审核、Support 工单分诊、Bot 管理产品里判断爬虫善恶——这些都是 Cloudflare 自己积累了多年标注数据的场景。
对开发者的实际意义
对已经在用 Jev 或类似决策模型的团队,Clef 给了一个零成本切换的选项:API 兼容、权重开源、可以托管也可以自部署。想本地跑的,Hugging Face 上已经出现了社区量化版(GGUF、MLX 4bit 等),笔记本级硬件就能跑 9B 的 Clef-flash。
对做 Agent 框架的开发者,决策模型正在成为一个新的基础设施层:LLM 负责推理和生成,决策模型负责高频小判断,两者通过概率输出衔接。Clef 的两阶段注意力路由和 RLCD 训练方法是公开的,等于给「怎么把通用基座改造成决策模型」发布了一份参考实现——GitHub 上那批快速跟进的项目证明了这条路的门槛没有想象中高。
对 Cloudflare 自己,这是「Agent 云」战略落地的第一步:Workers AI 托管模型、AI Gateway 沉淀数据、Containers 跑沙箱、Trainer 更新权重,链条上的每一环都指向同一个目标,让 Agent 的工作负载留在 Cloudflare 的网络上。决策模型单价低、调用频次高,恰好是边缘推理最擅长承接的流量类型。
模型权重:huggingface.co/Cloudflare/clef、huggingface.co/Cloudflare/clef-flash;官方公告:blog.cloudflare.com/clef-decision-models;实时评测:clef-evals.workers-ai-mle.workers.dev