AREX Feed Article
OpenRouter 发布 openrouter-decisions 技能:编码 agent 可把分类、路由与审核步骤重建到决策模型上
9 月 29 日,OpenRouter 发布了面向编码 agent 的技能 openrouter-decisions。按其说明,把 agent 指向代码里的一个分类、路由或审核步骤,它就会经 OpenRouter 的 Decisions API,把这一步重建到决策模型(decision model)上:模型返回概率而不是生成文本,代码可以直接按概率设置阈值。
OpenRouter 在同一条推文串里给出一组对比数据:不带技能时,27 次编码运行中只有 4 次真正用上决策模型;带技能后,27 次全部用上()。技能的安装命令是 gh skill install OpenRouterTeam/skills openrouter-decisions,需要 GitHub CLI v2.90.0 或更新版本;支持 Claude Code、Cursor、Codex、OpenCode、Gemini CLI、Windsurf 等编码 agent,使用前要设置 OPENROUTER_API_KEY()。默认装在当前项目,加 --scope user 可跨项目安装;它和 OpenRouter 的其他技能一起维护在公开仓库里,安装后会按对话内容自动加载()。
有 API 参考,agent 仍会把判断步骤做错
OpenRouter 说,即使手里有 API 参考,agent 有时仍会把这一步做错:在它自己的运行里,agent 会写关键词规则并把那称为决策模型,或者去问普通聊天模型一个是/否,因此拿不到概率,代码也就没有可设的截止点()。
技能给出三条要求:把计算留在代码里、只让模型做判断;按正确的形态提问,即一个选择、一个打分,或一个是/否;并从模型目录中固定一个模型版本()。技能页面把适用场景写得更具体:替换「提示词加解析」式的大语言模型(LLM)调用、关键词或相似度启发式、人工审核队列,或行为失准的路由、过滤与分类器。
请求形态:choice、noul 与 score
技能页面对决策模型的定义是:读取应用状态,回答带类型的问题,返回概率,从不生成文本;它不是聊天模型,不是编码 agent,也不是驱动编码 agent 的模型的替代品。技能给出的筛选标准是:一个步骤的答案有界、需要判断而不是计算,且概率能让代码行动、推迟或升级,才适合交给决策模型。
一次调用是 POST /api/alpha/decisions,请求体带 state(应用状态)和 questions(问题集),每个问题选用一种原语:choice 从一组预定义选项里选一个,返回选项、各选项概率与 confidence(置信度);noul 判断某个条件是否成立,返回「是」的概率;score 沿有序档位给出位置,返回概率加权得分、各档位概率与 confidence。同一请求里的问题彼此独立、并行求值()。技能自带的 API 参考还要求:每个答案先检查 type 再读字段,缺键或类型不符按错误处理;响应里的 model 是实际作答的构建,usage.cost 以美元计。
概率回到代码里充当闸门:技能规定,在探测之前,noul 的初始闸门取 >= 0.5,choice 就用它返回的选项;更严格的阈值要等第 7 步在真实输入上探测后再定。模型版本要钉在 canonical_slug(或带版本号的 id)这一个配置值上,不要用别名,因为别名指向的构建会变,概率可能随之变化。
流程被拆成七步:拆分判断与计算;为每个判断选择原语;构造最小的 state;写问题;选模型并钉版本;在代码里设闸门;用真实输入探测阈值。技能附带两个脚本:models.ts 列出当时的决策模型目录与适配信息;decide.ts 支持单模型调用、SDK 调用,以及 --compare 把同一请求发给目录里所有非别名模型,输出答案、解析到的模型版本、延迟与成本。
自测:三个模型、四类任务与 13 项检查
OpenRouter 称,测试用了 gpt-5.6-luna、gpt-6-astra 与 glm-5.3-flash 三个模型,在四类任务上各跑 3 次、分别带与不带技能:评估事故紧急度、因 breaking change(破坏性变更)阻止 PR(拉取请求)合并、预测已取消的客户是否会回流、挑选模型()。
据其公布的评分图,这批运行发生在 Codex CLI 上,按同一套 13 项检查、每个模型 3 次运行来评。gpt-5.6-luna 的通过率从 10% 升到 72%,gpt-6-astra 从 41% 升到 100%,glm-5.3-flash 从 5% 升到 82%。OpenRouter 还让 claude-opus-5.5 对每个任务的两个版本做盲评(两种呈现顺序都测),36 次全部都选中带技能的版本,每个模型 12 次全中()。
这些数字全部出自 OpenRouter 自己的运行与它选定的模型评分,不构成独立验证。
决策模型目录里现在有什么
技能面向 OpenRouter 模型目录中的决策模型,并按目录的实时返回挑选。截至 9 月 30 日核对,GET /api/v1/models?output_modalities=decisions 返回 7 个条目:TypeSafe 的 Jev 1.13 与一个 Jev 别名,Upstage 的 Solar Decide,Respan 的 Span-01、Span-01 Lite 及其免费版本,以及 Jared Palmer 的 Kev 4B()。
技能页面还给出了选择方法:不要凭记忆挑,因为决策模型集合会变;先按上下文长度、价格、服务商覆盖筛选,剩下多个候选时,再用脚本把问题发给每个候选,对比答案、延迟与成本,然后钉住版本。技能按标准而不是按名字选模型,目录里新增模型不需要改技能文件。SKILL.md、API 参考与脚本也都维护在公开仓库里。
留在代码里的部分:算术、日期与回退路径
技能页面把哪些工作留在代码里列得很细:算术、计数、日期排序、查表、阈值比较,以及从字符串中提取路径、ID 格式、金额这类事实的匹配,全部由代码完成;代码已经持有的值,不再拿去问模型。参考文档另有一页专讲决策模型做不到的事:涉及数量、日期、否定、间接引用或不可信文本时,要先读那一页。
技能页面还规定了回退的用法:如果代码路径本来就有回退选项(人工审核队列、默认值、更大的模型),概率落在闸门附近时就保留给该选项,这段区间的宽度在第 7 步探测里确定;confidence 只衡量分布的集中程度,不代表答案正确或动作获得授权;一个阈值不会从 noul 搬到 choice,也不会从一个模型搬到另一个模型。
OpenRouter 公布的这组对比能否外推到别的代码库,还要看使用者在自己真实输入上的探测结果。