opencodex 模型排序完全指南:Codex Picker 顺序规则、优先级表与实战配置
【免费下载链接】opencodexUniversal provider proxy for OpenAI Codex Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code项目地址https://gitcode.com/gh_mirrors/ope/opencodex点击查看免费下载本文深入讲解 opencodexUniversal provider proxy如何决定 Codex 模型选择器picker中的模型顺序从 Codex 的priority升序排序规则、确定性字母序 tie-break到subagentModels/modelPickerOrder/selectedModels/disabledModels的各自职责以及 Dashboard「Sub-agents」与「Models」页面的排序控件。读完本文你将掌握 featured 模型置顶、路由模型字母序排列、显示级排序与完整 picker 排序的配置方法并能区分可见性过滤与排序两个容易混淆的概念。背景排序解释为何值得单独成文opencodex 通过 src/codex/catalog.ts 维护一份 Codex 可见的模型目录catalog并暴露给 Codex picker 与spawn_agent。此前三个用户触达面docs-site 文档站、GUI 的 Sub-agents 页面、GUI 的 Models 标签页都缺少对模型顺序到底由什么决定的说明导致用户误以为调整配置文件里providers对象的声明顺序或models数组的先后就能改变 picker 顺序。相关工作记录见 010_report.md最终在文档站新增了多语言文章model-ordering.md并在 GUI 两个页面加入了orderHint提示行把这一规则透明化。需要先记住的根本结论Codex 模型选择器不保留 provider 声明顺序也不保留模型数组顺序。最终顺序完全由目录条目的priority决定同优先级的路由模型则按确定性字母序排列。Codex 应用的排序规则Codex 的 models-manager 对 picker 可见的目录条目按priority升序排序并且丢弃目录数组本身的顺序。也就是说把某个条目在生成的 JSON 数组里往前提并不会让它出现在 picker 的更前面。该约束直接记录在src/codex/catalog/sync.ts的注释与实现中。因此 opencodex 控制 featured精选位置的方式是赋予更小的 priority 数值而不是依赖数组位置。除非特别说明下面给出的固定优先级与示例描述的都是没有任何合格 Codex 账户选择器account selector的目录。无选择器场景的优先级表目录条目优先级来源subagentModels[i]i0到4src/codex/catalog/sync.ts中的 featured 排名映射其他路由模型5src/codex/catalog/sync.ts中的路由条目创建列在modelPickerOrder中的非 featured 路由模型1000 isrc/codex/catalog/sync.ts中仅显示用的 picker 排名默认的原生 GPT slug9src/codex/catalog/sync.ts中的原生条目创建存在 featured 列表时未被选中的原生模型至少featured.length 100src/codex/catalog/sync.ts中的原生目录合并有账户选择器时的 stride 规则当存在N个合格选择器时featured 优先级以N为步长stride展开配置排名为i的裸原生选择会展开为选择器行优先级为i * N jj是该选择器从 0 开始的位置路由选择使用i * N精确指定选择器的选择使用i * N j。未被选中的路由行会被移出这些选择器分组。Codex 仍然只对外通告前五个 picker 可见行。5 选上限管理 API 用slice(0, 5)把subagentModels限制为五个条目见 src/server/management/agent-settings-routes.ts。这与 Codexspawn_agent表面一致——它只通告前五个模型覆盖项。这五个之外的其他模型仍可在主 picker 中保持可见并可通过其精确 id 调用。同优先级 tie 的顺序确定性字母序所有普通路由模型优先级都是5所以必须有一个 tie-breaker。在目录条目构建之前gatherRoutedModels()会先把路由模型列表按provider 名、再按model id分别做字母序排序src/codex/catalog/provider-fetch.ts。这意味着以下两个配置细节都不会改变最终顺序providers对象中键的声明顺序某个 provider 的models数组中 id 的先后顺序。随后orderForSubagents()使用稳定排序把配置好的 featured 选择按subagentModels中的顺序移到最前非 featured 模型保持先前确立的 provider/id 字母序相对顺序src/codex/catalog/sync.ts实现位于 src/codex/catalog/build-entries.ts。featured 排名在构建条目时也会被转换为0到4的优先级因此 Codex 的优先级排序会保留这段领先序列。从源码看orderForSubagents用rank映射featured.map((id, i) [id, i])并兼容三种 id 形式别名、provider/id、编码 slug未命中 featured 的条目返回Number.MAX_SAFE_INTEGER从而稳定排在末尾——这正是featured 置顶、其余保持原相对顺序的实现基础。可见性与排序是两回事selectedModels与disabledModels决定哪些路由模型被暴露它们不是排序控件。filterCatalogVisibleModels()把两者都转换为Set查询然后过滤已收集的列表绝不把数组当排名用src/codex/catalog/provider-fetch.ts实现位于 src/codex/catalog/model-visibility.ts。因此重排selectedModels或disabledModels中的元素对 picker 位置没有任何影响只会改变模型是否被包含。disabledModels与各 provider 的selectedModels始终是可见性字段项目里不存在独立的modelOrder、providerOrder或优先级映射配置项——这是一个诚实的局限。有效的 picker 排列模式在无账户选择器且 featured 列表非空时最终顺序为按subagentModels精确配置顺序排列的模型优先级0到4其余全部路由模型按 provider 再按 model id 字母序优先级5未选中的原生模型在目录合并时被压到 featured 块之下。若没有subagentModels路由模型保持在优先级5原生 GPT 条目使用其正常优先级通常为 opencodex 构建条目的9路由组仍保持 provider/id 字母序。示例假设subagentModels按此精确顺序包含五个 idsubagentModels [ gpt-5.5, opencode-go/glm-5.2, anthropic/claude-opus-4-6, gpt-5.6-sol, gpt-5.6-terra, ]picker 起始排列如下Picker 位置模型优先级出现原因1gpt-5.50第一个subagentModels选择2opencode-go/glm-5.21第二个选择即使其 provider 在anthropic之后排序3anthropic/claude-opus-4-62第三个选择4gpt-5.6-sol3第四个选择5gpt-5.6-terra4第五个选择6anthropic/claude-fable-55provider/id 字母序中第一个剩余路由 id7 起其余路由模型5先 provider 字母序再 model id 字母序路由模型之后其余原生模型featured.length 100或更高未选中的原生模型被移到 featured 块之下前五个条目即通告给spawn_agent的覆盖项其余按正常 picker 顺序继续。有账户选择器时五条上限在裸原生选择展开为选择器限定组之后应用。修改顺序的两种手段用subagentModels控制头部使用subagentModels选择并排列 Codex 同时通告给spawn_agent的头部模型。Dashboard 的Sub-agents页面可以重排裸原生与路由 id也可以用ocx agent subagents set或直接编辑 opencodex 配置来精确指定selector/native-openai-model选择Dashboard 保存后会保留这些 id包括当前不可用的选择。最多配置五个 id。注意有账户选择器时一个裸原生选择可能展开为多行选择器限定的目录条目因此配置的选择与通告的行未必一一对应。如果某个账户门控的原生模型没有合格账户支持请求会以无效模型选择失败如果存在支持账户但暂时耗尽或不可用则以可重试的速率限制失败。这两种状态永远不会被报告为无效 API key——请改选其他可用模型或等待有能力的账户配额窗口重新开放。用modelPickerOrder控制显示级排序modelPickerOrder用于对 featured 块之外的路由provider/model行做仅显示排序{ modelPickerOrder: [ tyler/deepseek-v4-flash, jd-chat/kimi-k3, jd-chat/glm-5.2 ] }列出的路由行按配置顺序出现。被省略的路由行保持其正常优先级因此会排在modelPickerOrder显示带之前——想控制相对位置就必须把每个路由行都列出来。同时出现在subagentModels中的行保持其 featured 优先级。若列表只含路由行原生行保持正常位置。要排序完整 picker请加入一个裸原生 id{ modelPickerOrder: [gpt-5.6-sol, opencode-go/glm-5.3] }列出的行按数组顺序排在最前未列出的行按自然优先级随后排列。匹配使用精确目录 idgpt-5.6-sol与openai/gpt-5.6-sol是两行。同一路由 id 的原始拼写与编码拼写都可接受精确匹配优先。空条目被忽略。账户限定的行需要在列表中使用其选择器限定 id。从源码看orderForModelPickersrc/codex/catalog/build-entries.ts通过检查列表中是否存在不含/的 slug 来判定这是否为完整排序complete模式完整模式下未列出的行按pickerOrder.length natural排名而仅路由模式下未列出的行保持在 featured 带内。sync.ts中构建条目时还会把非 featured 行的原始priority备份到SPAWN_PRIORITY_FIELD再覆盖为1000 i的显示优先级——这是显示排序不影响 spawn_agent 通告优先级的关键机制。迁移注意现有排序中的原生 id此前modelPickerOrder中的原生 id 会被忽略。现在包含裸原生 id 的既有列表会激活完整 picker 排序含 featured 行。要恢复旧的路由专用行为请移除裸原生 id。未设置、空列表与纯路由列表均保持原行为OpenCodex 的自然优先级引导候选计算不变。modelPickerOrder保留 OpenCodex 对最多五个首选候选的自然优先级计算。每一被移动的行保留其独立于原生priority的自然优先级仅改变 picker 顺序不得改变该项 OpenCodex 计算。它也不限制精确名称模型覆盖的资格原生通告列表不是 allowlist既有的认证、模型/effort 与后端约束依然生效。原生 Codex 使用原生priority在 V1 及 V2当模型覆盖暴露时选出spawn_agent通告的前五个合格 picker 可见模型。因此这通告的五个可能随 picker 顺序变化即使 OpenCodex 的首选候选不变。V1 不接收 OpenCodex 首选名册注入V2 在客户端目录状态允许时可能额外接收 OpenCodex 的自然优先级引导但该引导不会重排原生工具的通告列表。Dashboard 的 picker 预设在Models页面选择Default、A–Z by model、Group by provider或Most used snapshot然后Apply order。这会保存当前可见的路由 id 与modelPickerOrderModealphabetical、provider或most-used。Most used 在应用时读取一次全部保留用量重新加载时恢复快照不再抓取用量。新增或移除的模型不会自动重算它。手动保存的顺序包括完整/原生顺序在你显式应用替换前保持不变。Default 会清空两个 picker 字段即使没有路由模型可用。这些控件使用GET/PUT /api/subagent-modelschosen与available保留已保存的名册选择包括被禁用或缺失的模型pickerAvailable仅含合格的路由目录 id。Models 页面发送pickerOrder与pickerOrderMode从不发送models。仅名册的保存会保留 picker 设置。无效的联合更新与持久化失败会保持之前的 picker/名册状态不变。从 src/server/management/agent-settings-routes.ts 的实现看PUT /api/subagent-models对pickerOrder校验了非空字符串、去重与 trimpickerOrderMode只接受alphabetical、provider、most-used或null且pickerOrderMode必须与pickerOrder同时更新否则返回 400——这正是模式必须配对顺序的契约来源。仅路由的预设保留既有的 featured/原生优先级带。它们影响 Codex 目录与 Claude discovery 的路由组Claude 的原生前缀与显式 Desktop profile/alias 归属不变。OpenCodex 引导排名与配置的 fallback 设置保留但原生 Codex 的通告五个与推荐默认可能随显示优先级变化。保存不会重启客户端目录刷新可能仍在挂起持有旧目录的客户端可能需要重新打开。自定义路由顺序在 Models 页面选择Custom order加载全新的路由快照。将可拖动的行拖到另一行之前或使用其 Up/Down 按钮然后Save draft。featured 路由行保持在配置排名的前端且不可移动。原生行不显示这不是完整原生 picker 的预览。存活的已保存行保持相对顺序新候选跟随当前候选列表。每次保存都发送完整路由列表不改变 featured 名册。包含裸原生 id 的顺序会保持受保护直到你显式应用路由预设或 Default。仅选择不同选项不会替换它。未知的 featured 状态会阻止编辑。保存前编辑器会检查全新快照若发现变化会保留你的草稿并阻止保存直到Reload and discard draft加载当前设置。请求失败保留草稿。已接受的保存仍可能有挂起的目录刷新再次编辑前请重新加载。编辑器还要求每个路由候选都有无歧义的模型身份。若模型目录不完整请在编辑前刷新 Models 页面仅重载 picker 设置无法恢复缺失的目录身份。featured 选择精确匹配且不修剪重复选择使用其最后配置的位置规范 id 优先于原始 id。顺序解释的三个用户触达面本次工作把以上规则同时落地到三个界面详见 010_report.mddocs-site 文档站新增文章 model-ordering.md英文并同步了韩文 ko 版、中文 zh-cn 版 以及 fr/ja/ru/tr/zh-tw 等语言版本侧边栏入口位于docs-site/astro.config.mjs。GUI Sub-agents 页面gui/src/pages/Subagents.tsx在 Featured 列表上方新增orderHint提示行说明当前顺序即 picker 1-5 顺序加spawn_agent候选。GUI Models 标签页gui/src/pages/Models.tsx在模型列表上方新增orderHint说明——subagent 选择优先、随后是路由 provider/id 字母序、再到原生可见性开关仅做过滤。i18n key 在 en/ko/zh/de 中均有提供。小结与实操清单想控制 picker 头部顺序配置subagentModels最多 5 个或使用 Dashboard Sub-agents 页面重排。想控制 featured 块之外路由行的显示顺序配置modelPickerOrder需要完整排序时加入裸原生 id。想理解为什么我的配置顺序没生效因为 Codex 按priority升序排序数组顺序被丢弃路由模型按 provider/id 字母序 tie-break。想隐藏/暴露模型用selectedModels/disabledModels——它们是过滤不是排序。别忘了诚实局限目前不存在modelOrder/providerOrder/ 优先级映射配置modelPickerOrder是显示级手段不改变spawn_agent通告的自然优先级计算。赞分享【免费下载链接】opencodexUniversal provider proxy for OpenAI Codex Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code项目地址https://gitcode.com/gh_mirrors/ope/opencodex点击查看免费下载相关推荐Hetty scope优先级规则执行顺序完全指南Hetty scope优先级规则执行顺序完全指南 你是否曾在使用Hetty进行安全测试时遇到过scope规则不按预期匹配的情况明明配置了拦截规则却无法捕获网络安全应用安全AdGuardHome规则执行顺序优先级调整完全指南AdGuardHome规则执行顺序优先级调整完全指南 你是否遇到过这样的困扰明明添加了广告过滤规则却依然看到弹窗或者自定义规则与预设规则冲突导致某些网站网络后端网络安全Sinatra配置优先级规则理解设置加载顺序Sinatra配置优先级规则理解设置加载顺序 在使用Sinatra开发Web应用时正确理解配置的加载顺序至关重要。配置冲突是导致应用行为异常的常见原因本文后端Web框架创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Presto 的 CREATE VIEW 语句完全指南:语法、安全模式与实战示例

Presto 的 CREATE VIEW 语句完全指南:语法、安全模式与实战示例

大数据数据库后端 【免费下载链接】presto The official home of the Presto distributed SQL query engine for big data 项目地址: https://gitcode.com/gh_mirrors/pre/presto 点击查看 免费下载 导读 本文基于 Presto 官方文档 presto-docs/src/main/sphinx/s…

2026/9/24 0:50:53 阅读更多 →
使用 Deployer 零停机部署 TYPO3 项目:完整实战指南

使用 Deployer 零停机部署 TYPO3 项目:完整实战指南

DevOpsCI/CDCLI开发工具运维 【免费下载链接】deployer The PHP deployment tool with support for popular frameworks out of the box 项目地址: https://gitcode.com/gh_mirrors/de/deployer 点击查看 免费下载 TYPO3 是德国企业级 PHP CMS,其 Compo…

2026/9/24 0:50:53 阅读更多 →
OpenSSL 命令行速查指南:密钥生成、证书管理、加密与 TLS 诊断实战(reference 项目版)

OpenSSL 命令行速查指南:密钥生成、证书管理、加密与 TLS 诊断实战(reference 项目版)

文档知识库教程开发工具 【免费下载链接】reference 为开发人员分享快速参考备忘清单(速查表) 项目地址: https://gitcode.com/jaywcjlove/reference 点击查看 免费下载 本文是基于 reference 开源速查表仓库中 OpenSSL 备忘清单 整理而成的深度实战指南。文章覆盖…

2026/9/24 0:50:52 阅读更多 →

最新新闻

EasyWeChat 6.x 开放平台第三方平台实战示例:从推送事件接收、预授权到代公众号/小程序调用

EasyWeChat 6.x 开放平台第三方平台实战示例:从推送事件接收、预授权到代公众号/小程序调用

后端即时通讯 【免费下载链接】easywechat 📦 一个 PHP 微信 SDK 项目地址: https://gitcode.com/gh_mirrors/ea/easywechat 点击查看 免费下载 本篇基于 EasyWeChat 6.x(PHP 微信 SDK)的开放平台第三方平台模块,围绕…

2026/9/25 2:48:22 阅读更多 →
深入解析 Orleans Journaled Todo List 示例:基于日志一致性提供程序的持久化事件溯源实战

深入解析 Orleans Journaled Todo List 示例:基于日志一致性提供程序的持久化事件溯源实战

后端微服务 【免费下载链接】orleans Cloud Native application framework for .NET 项目地址: https://gitcode.com/gh_mirrors/or/orleans 点击查看 免费下载 导读 Journaled Todo List 是一个由 .NET Aspire 托管的 Blazor Web 应用示例,它完整演示…

2026/9/25 2:48:22 阅读更多 →
Kubebuilder 移除 kube-rbac-proxy:以 NetworkPolicy 与 cert-manager 重构指标端点安全架构

Kubebuilder 移除 kube-rbac-proxy:以 NetworkPolicy 与 cert-manager 重构指标端点安全架构

开发者工具代码生成CLI云原生后端 【免费下载链接】kubebuilder Kubebuilder - SDK for building Kubernetes APIs using CRDs 项目地址: https://gitcode.com/gh_mirrors/ku/kubebuilder 点击查看 免费下载 Kubebuilder 在 3.15.0 版本起不再在新脚手架的默认配置…

2026/9/25 2:48:22 阅读更多 →
react-native-skia 混合着色器指南:用 Blend 与 ColorShader 组合着色效果

react-native-skia 混合着色器指南:用 Blend 与 ColorShader 组合着色效果

图形学移动开发跨平台UI组件 【免费下载链接】react-native-skia High-performance React Native Graphics using Skia 项目地址: https://gitcode.com/gh_mirrors/re/react-native-skia 点击查看 免费下载 本篇指南基于 react-native-skia 官方文档中的 Blending …

2026/9/25 2:48:21 阅读更多 →
Python字符串转数字:int()与float()的精度陷阱与异常处理实战

Python字符串转数字:int()与float()的精度陷阱与异常处理实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 2:48:20 阅读更多 →
专科毕业论文AI工具实测:九款软件组合与全流程配置指南

专科毕业论文AI工具实测:九款软件组合与全流程配置指南

专科生的毕业论文难不难?我不想灌鸡汤,直接说结论:难,但不是难在深度,而是难在没人告诉你怎么拆解。我自己当年也是一边实习一边抽空搞论文,白天上班晚上憋字,导师的标准一句比一句抽象。后来我…

2026/9/25 2:47:20 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →