news 2026/9/7 2:49:04

openinterpreter 的 Codex 技能设计:latest-model.md 作为模型指引的受控回退快照

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
openinterpreter 的 Codex 技能设计:latest-model.md 作为模型指引的受控回退快照

openinterpreter 的 Codex 技能设计:latest-model.md 作为模型指引的受控回退快照

【免费下载链接】openinterpreterA coding agent for open models like Kimi K3 and GLM 5.3项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter

在 openinterpreter 仓库中,codex-rs/skills打包了一个名为openai-docs的示例技能,用于让 Agent 回答 OpenAI 模型、API 与 Codex 相关问题。本篇以该技能中的回退快照文件 latest-model.md 为主体,讲解一个工程化设计问题:当"最新模型"这类时效性信息随官方文档持续漂移时,如何为 Agent 设计一份"紧凑、非权威、必须披露"的本地兜底资料,并配合动态解析脚本保证官方来源始终优先。读完本文,你将掌握该快照文件的完整内容与使用边界、技能内部的来源优先级机制,以及配套解析器的源码级工作方式。

文件定位:一份紧凑且自我声明为"非权威"的回退快照

latest-model.md 全文只有一页,开头第一句就定义了它自身的性质:

This is a compact, non-authoritative fallback, not a source for current availability, prices, aliases, or defaults.

这句话确立了三条使用边界:

  1. 它不是权威来源:不能从中获取当前的可用性、价格、别名或默认值;
  2. 官方文档优先:应先搜索并抓取当前的官方模型指引页(官方 latest-model 指南页及相应官方模型页),本快照仅作为兜底;
  3. 漂移时以官方为准:若快照与抓取的官方文档不一致,官方文档获胜;
  4. 必须披露:一旦使用了这份回退快照,就要向用户披露("Disclose any use of this fallback")。

这种写法把一个静态 Markdown 文件从一个"可能被当成事实的数据表"重新定义为"有明确降级语义的缓存"。这是整份文件最核心的设计意图:不禁止快照过期,而是把"过期风险"显式编码进使用规则里

快照内容继承:GPT-5.6 家族表与遗留模型边界

下面完整继承原文档的两张表,它们是快照的唯一实体内容。

GPT-5.6 家族

原文档为 GPT-5.6 家族给出了"对照当前模型页验证"的分工表:

模型 ID文档标注的工作负载(需对照当前模型页验证)
gpt-5.6GPT-5.6 家族别名;需验证其当前文档记录的路由与可用性
gpt-5.6-sol质量优先的旗舰,负责推理与高难度编码任务
gpt-5.6-terra质量、延迟与成本的均衡型
gpt-5.6-luna高吞吐、低延迟的工作负载

原文档同时要求:在进行真实的 GPT-5.6 迁移时,使用官方的 upgrading-to-gpt-5p6-sol 指南;在被要求给出 GPT-5.6 提示词建议时,使用官方的 prompt-guidance-gpt-5p6 页面;并且"在推荐请求形态、推理设置、端点、工具行为或迁移方案之前,先打开并阅读相应官方页面"。这与后文 upgrading-to-gpt-5p6-sol.md 中"以线上文档为模型 ID、参数、限额、定价与功能可用性的权威"的表述一致——快照文件只负责"家族角色分工"这一相对稳定、而具体数值则被刻意留给线上文档。

被显式请求的既有模型

模型 ID边界
gpt-4.1仅当用户显式请求该模型或既有迁移目标时保留;需搜索并抓取它自己的当前官方指南
gpt-5.4仅当用户显式请求该模型或既有迁移目标时保留;需搜索并抓取它自己的当前官方指南

围绕该表,原文档给出三条禁止性规则,值得逐条保留:

  • 不得把遗留模型宣传为当前默认("Do not promote a legacy model as the current default");
  • 不得把遗留模型替换进不相关的任务,也不得用 GPT-5.6 去替换一个被显式请求的遗留目标——这一条与 model-migration.md 中"显式目标必须原样保留,包括显式请求的 GPT-4.1 或 GPT-5.4 迁移,不得运行 latest-model 解析器、不得替换为更新模型"的规则互相印证;
  • 专用模型(图像、音频、实时、编码、审核、向量)只在对照当前官方文档验证了所请求的模态之后才推荐

GPT-5.6 Pro 的表述纪律

原文档最后一行是一条专门针对 Pro 的验证规则:描述模型 ID、推理模式、请求参数或账号可用性之前,须先对照当前的官方 Responses 与模型文档核验 GPT-5.6 Pro;不得凭空发明一个独立的gpt-5.6-pro模型 slug。这一点在 upgrading-to-gpt-5p6-sol.md 中得到更完整的展开:Pro 是"基座模型 + 推理模式"的组合(reasoning: { "mode": "pro", ... },且仅走 Responses 端点,支持的 effort 从medium起),因此快照文件把它单列出来,是为了防止 Agent 把"模式"误当成"新模型"。

技能内部机制:latest-model.md 在来源优先级中处于什么位置

单看 25 行的快照文件并不完整,它的真正价值来自技能根文件 SKILL.md 中规定的来源顺序。该文件对 Agent 的"首个实质性动作"有硬性要求:

  1. 用 2~6 个关键词的简短查询,搜索用户所请求的确切官方文档主题与被显式点名的模型;
  2. 若已有可直接调用的官方文档搜索与页面抓取能力,先用它:先搜索,再打开匹配的官方页面;否则立即使用官方域名的网页搜索,并真正打开或抓取相关页面,而不是依赖搜索摘要;
  3. 只有在"完成上述官方来源顺序之后",才允许阅读本地 references、检查仓库文件、运行模型解析脚本、起草计划或凭记忆作答;
  4. 保留用户显式请求的模型,永远不得替换为更新模型("Preserve the exact requested model; never substitute a newer model")。

在此前提下,SKILL.md 的"Source and execution boundaries"一节明确给出 latest-model.md 的启用条件:

Usereferences/latest-model.mdonly as a disclosed fallback after current official model guidance does not answer the question.

即:只有当当前官方模型指引无法回答问题时,才以"已披露的回退"身份读取它。同一条款还规定了另外两份参考的启用条件——upgrading-to-gpt-5p6-sol.md 仅用于真实被请求的 GPT-5.6 家族迁移;prompting-guide.md 仅用于被请求的提示词工作。

再看 model-selection.md,它给出了同一规则的选型侧表述:模型选择推荐的第一、二步是搜索并抓取当前官方文档(当前/最新家族指引指向官方 latest-model 指南页),"不要基于搜索摘要、猜测的默认值或打包快照做推荐";只有在"抓取到的当前官方来源无法回答"时才读references/latest-model.md,且要披露"打包的回退指引可能已经过期"。

把这三处放在一起,可以看到该技能对"时效性知识"的完整处理链:官方实时抓取(首选)→ 打包快照(兜底,必须披露)→ 用户显式请求(最高优先级,不可被新模型替换)。latest-model.md 正是这条链路的第三级缓存。

动态解析器:resolve-latest-model-info 如何解析"当前模型"

既然官方来源优先,那么"当前模型到底是什么"是如何动态确定的?技能目录下的 scripts/resolve-latest-model-info 是一个 POSIX shell 引导脚本,scripts/resolve-latest-model-info.cjs 是真正的 Node.js 实现。从源码看,其工作方式如下:

运行时探测(shell 引导层)。引导脚本通过process.versions.node的主版本号判断候选解释器是否满足 Node 18+,按以下顺序寻找可用运行时:环境变量NODEPATH中的node、Codex 自带运行时缓存路径(~/.cache/codex-runtimes/codex-primary-runtime/dependencies/...)、/opt/homebrew/bin/node/usr/local/bin/node/usr/bin/node;全部失败则向 stderr 打印 "No usable Node.js 18+ runtime found" 并以退出码 127 结束。这个"不假设可执行位、通过sh调用"的写法(见 model-migration.md 中"在 POSIX shell 中通过sh调用解析器,不要假设可执行位"的说明)保证了技能被复制进不同仓库后的可移植性。

数据源读取与重试(cjs 层)readSource支持file://、本地相对路径和 http(s) 三种来源,默认源为官方 latest-model 的 Markdown 页面(DEFAULT_URL常量,可用LATEST_MODEL_URL环境变量或--source/--url参数覆盖)。抓取采用最多 3 次尝试、每次间隔 250ms 递增退避的策略;对 4xx(除 429)不重试,直接失败。请求头设置accept: text/markdown,text/plain,*/*,说明它依赖官方文档站对同一页面提供 Markdown 表示的能力。

元信息块解析。脚本在抓回的 Markdown 中查找两种等价形式之一:

  • 顶层latestModelInfo:行,其后跟 2 空格缩进的key: value列表(parseIndentedInfo);
  • HTML 注释块<!-- latestModelInfo ... -->内的扁平key: value行(parseFlatInfo)。

normalizeInfo强制要求modelmigrationGuidepromptingGuide三个字段齐全,否则抛错;相对路径形式的指南 URL 会按baseUrl解析为绝对 URL(LATEST_MODEL_BASE_URL可覆盖)。同时modelToSkillSlug把模型 ID 中的.替换为p(如gpt-5.6gpt-5p6),这与仓库中 upgrading-to-gpt-5p6-sol.md 的文件名及官方指南 URL 的命名风格一致——从源码结构看,该 slug 用于在文件系统层面安全地引用含点号的模型名。

成功判据与降级。model-migration.md 规定:解析成功必须产出modelmigrationGuideUrlpromptingGuideUrl三个非空字段的 JSON;不得抑制或重定向 stdout;命令失败或字段缺失时,先按平台重试一次(Windows 下改用node <skill-dir>\scripts\resolve-latest-model-info.cjs),仍失败则回落到"当前官方文档 → 已披露的打包参考"。也就是说,解析器输出的是迁移与提示词指南的坐标,而 latest-model.md 这类打包快照是这条链路的最后一级。

与其他参考文件的分工

把 references 目录整体来看,latest-model.md 与兄弟文件构成清晰的职责切分:

文件触发条件职责
latest-model.md官方来源无法回答模型问题非权威家族快照,必须披露使用
model-selection.md选型/对比需要更多指导官方搜索→抓取→按模态/质量/延迟/成本匹配的推荐流程
model-migration.md真实迁移或提示词升级显式目标保留、动态目标解析、指南 URL 当作不透明句柄
upgrading-to-gpt-5p6-sol.md真实被请求的 GPT-5.6 迁移迁移判断:角色映射、推理档位保持、Chat Completions/工具兼容、缓存与多模态陷阱
official-docs.md官方页面仍未解决来源选择或 API 形态官方文档检索方法与引用纪律

其中 upgrading-to-gpt-5p6-sol.md 与 latest-model.md 互补:快照文件回答"家族里有哪些角色",迁移指南回答"换模型时哪里会坏"——它明确列出 5.6 迁移的主要风险(把 Sol 选给原本刻意低成本的路线、继承medium默认推理导致原none行为改变、Chat Completions 带函数工具时未显式设为none、提示缓存命中丢失、图像/PDF 输入 token 增长等),并要求把"线上文档视为模型 ID、参数、限额、定价、功能可用性的权威,本文件只提供迁移判断"。两份文件共同体现了同一原则:事实数据外置到官方实时来源,本地文件只保留行为规则与判断框架

设计要点小结

以 latest-model.md 为核心的这套机制,可以提炼为四条可复用的工程实践:

  1. 快照自我声明降级语义:文件第一句就声明自己"紧凑、非权威、不回答可用性/价格/别名/默认值",把使用边界写进数据文件本身,而不是依赖外部约定;
  2. 官方优先 + 快照兜底 + 强制披露:SKILL.md 把"先官方搜索抓取、后本地参考"的顺序写成 Agent 的首个实质性动作规则,快照只在官方无法回答时启用,且使用即披露;
  3. 显式请求不可被新模型替换:无论快照还是解析器,都不得把用户显式请求的遗留模型(如gpt-4.1gpt-5.4)悄悄升级为最新家族,这是三条规则在 SKILL.md、model-migration.md、latest-model.md 中反复出现的不变量;
  4. 解析器输出坐标而非事实:resolve-latest-model-info 解析官方页中的latestModelInfo元数据块,返回模型名与两份指南 URL,让 Agent 抓取指南正文;解析失败时沿"重试 → 官方文档 → 已披露快照"逐级降级。

对维护 Codex 技能或类似 Agent 资料包的开发者而言,这套"实时来源 + 受控快照 + 披露义务"的组合,给出了处理模型这类高频漂移信息的直接范式:让静态文件永远只承担它仍然稳定的那部分信息(角色分工、行为边界、验证纪律),把易变数值交给运行时抓取,并对每一次兜底使用保持透明。

【免费下载链接】openinterpreterA coding agent for open models like Kimi K3 and GLM 5.3项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 2:49:03

DeepSeek Harness 接入 Codex 实战:读图链路、配置与报错排查

有人在技术群里问&#xff1a;DeepSeek Harness 能读图了&#xff1f;装完之后&#xff0c;是不是可以直接在 Codex 里丢一张报错截图、贴一份设计稿&#xff0c;让 DeepSeek 看图改代码&#xff1f;我正好在做本地模型链路实验&#xff0c;就顺手把 Harness 装起来&#xff0c…

作者头像 李华
网站建设 2026/9/7 2:48:56

腾讯云 AI Skills 实战:从零构建可编排的 Agent 技能体系

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

作者头像 李华
网站建设 2026/9/7 2:47:24

基于机器学习的糖尿病风险预警系统设计与实现

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

作者头像 李华
网站建设 2026/9/7 2:47:15

VCU诊断规范实战解读:从DTC到UDS的故障处理与验证方法

简介&#xff1a;北京新能源汽车整车控制器系统诊断规范是一份以PDF格式提供的技术文档&#xff0c;面向新能源汽车整车控制器的开发、测试与售后诊断工程师。文档系统划分了诊断规则、网络拓扑、诊断接口、诊断需求、诊断协议等板块&#xff0c;覆盖物理层、数据链路层、网络层…

作者头像 李华