OpenAI:GPT-6 需优化 Skill 和 AGENTS.md 配置
OpenAI :GPT-6 开始你需要给 Skill 和 AGENTS.md 做一次大扫除了
OpenAI 提醒开发者,GPT-6 会严格执行规则,旧配置可能反而降低效率,需要按模型能力调整 Skill 和 AGENTS.md。
OpenAI 在 GPT-6 Astra 的官方指导中提到,其指令遵循能力比前代更强,模糊、冲突的规则会导致任务阻塞。例如,过于宽泛的数据库操作描述会触发不必要的 Skill 执行,浪费 Token 并增加上下文膨胀。推荐使用精确的上下文索引表,如仅在特定任务时加载相关文档。
OpenAI :GPT-6 开始你需要给 Skill 和 AGENTS.md 做一次大扫除了
这个问题 GPT 5.6 sol 的时候大家就都在说,Anthropic 在 Fable 5 的时候我记得应该也说过,比如 Superpower 在现在的强模型下就变成负优化,除了浪费 Token 毫无用处。 所以不得不感慨那句名言:只要你学得够慢,你就不用学了。 这个说法其实和 OpenAI 给 GPT-6 Astra 的官方 prompting guidance 也基本一致,在 OpenAI 的 API 说明里也提到过, GPT-6 Astra 的 instruction following 比前代更强, 所以也更容易受到 Skill、 * AGENTS.md * 等上下文指令影响,模糊、互相冲突、范围过宽的规则,会让它提前暂停、询问用户,甚至直接阻塞任务: 比如官方提供的这两个例子: 「 Use when working with databases, queries, models, or persistence. 」,这些词的覆盖范围太大,比如你可能只是改一个 ORM model,或者修一条 query 这些普通逻辑的时候,模型都可能判断 migration Skill 和当前任务相关,这时候的结果就是 Skill 被过度触发,后面的 migration 规则、检查步骤、参考资料也跟着进入上下文: 然后官方推荐的版本把触发条件收紧成:「 adding or changing a migration, or reviewing its rollout 」,这样它描述的就是具体任务,不会被多次多余执行混入上下文。 另外一个也是,因为很多人的 AGENTS.md 现在就是这类 BAD 版本: Before every edit, read architecture.md, database.md, and deployment.md. 这种规则其实过去很常见,因为早期 Agent 经常不知道主动找项目文档,所以大家直接强制它“每次都读”,但是现在来到 Astra 之类的模型, AI 真的会认真反复执行这个约束。 你就算只改了一个字符串,它也会完整把你几个 md 都读一遍,改第二次,它又会完全读一遍, 整个过程除了浪费 token ,让进度变慢,实际上毫无意义,而且上下文会快速膨胀,导致幻觉更重 。 而在推荐的版本里: Use architecture.md for service boundaries, database.md for schema changes, and deployment.md when preparing a deployment. 实际上是在建立一个简单的 context routing table : 当前任务 加载的上下文 修改 service boundary architecture.md 修改 schema database.md 准备部署 deployment.md 普通 UI bug 都不用 修一个 typo 都不用 也就是 OpenAI 一直提到的 Harness 工程的方式,给一套精准的上下文索引和项目约束 。 实际上这确实是目前 AI flow 工程的常见问题,因为模型在变,但是你的 AGENT.md 和 Skill 还有 Rule 一直没变的话,实际上会跟不上模型的能力。 现在很多 Coding Agent 配置,本质上记录的是上一代模型的缺陷 ,然后现在模型逐步优化完善后,如果还有大量强制行为或者规则在,那就可能反而导致执行混乱。 所以从目前的情况来看,我们其实应该把 prompt maintenance 当成模型迁移的一部分,每次换模型都需要考虑需不需要适配。 特别是 Skills,多加载和多执行 Skills 会带来是很大的上下文问题,可能很多人对 Skill 的理解是: 项目里放几十个 SKILL.md 没什么关系,需要的时候模型自然会加载。 但是 Codex 目前用的是 progressive disclosure,也就是启动时不会把所有 Skill 正文全部塞进上下文,但它必须先知道有哪些 Skill,还有什么时候应该选择它们。 也就是说,启动时模型会先拿到每个 Skill 的 name 和 description,Codex 还会带上文件路径,如果模型判断某个 Skill 和当前任务匹配以后,就会再读取完整 SKILL.md, 这里隐式触发本身就依赖 description 。 也就是 description 实际就承担了 Skill router 的职责 ,如果像前面的例子一样,一个 PostgreSQL migration Skill,它的描述被写成: 创建和检查 PostgreSQL migration。处理数据库、query、model 或 persistence 时使用。 这时候会带来什么问题其实前面我们就提到过了, 所以类似过去的 Superpowers 规则,在 Astra 这里的问题会特别明显,因为它什么流程都介入,还把很多流程从“建议”写成了“强制门禁” 。 特别 Superpowers 的核心 using-superpowers Skill 写得很激进: 只要有哪怕 1% 的可能某个 Skill 适用,就必须调用;任何回复、澄清问题、浏览代码、检查文件之前,都先做 Skill 判断。 虽然 Superpowers 后来作者调整过流程,但是实际上这种「约束哲学」在现在的模型已经没什么必要, 就它那种严格流程纪律,在模型激活喜好和轨迹上都很不友好。 比如可能会把模型从“高概率自然轨迹”硬推到一条规定轨迹上,还有干扰什么时候做判断 。 所以,在现在的强模型时代,特别 Codex 里用的 Progressive Disclosure , 重点就是必须让 Skills 能做到按需加载,不能有太过于宽放的规则,Skill 必须是一套按任务加载的操作手册 ,类似 : 这个道理同样在 AGENTS.md也一样,因为 AGENTS.md 的覆盖范围更广,根据 OpenAI 的建议,现在把这类规则最好成有条件的文档目录,比如前面说的: architecture.md 用于涉及 service boundary 的修改 database.md 用于 schema 相关修改 deployment.md 只在准备 deployment 时读取 所以比如常见的 AGENTS.md 写: Always run tests after every change. Always verify your implementation. Never finish until all tests pass. 目前 Astra 本身已经更倾向于执行验证,如果你还写这些规则,那你的 GPT 就会疯狂些测试用例,这个 GPT 5.6 sol 应该有人体验过了 。 所以,模型越会遵守指令,一些历史遗留规则的副作用越容易完整执行出来。 还有一类似需要注意的 Coding Agent 的约束行为,比如我们以前可能会把“需要确认”的范围写得很宽,比如: Ask before modifying additional files. Ask before making architectural decisions. Ask before running commands that change the repository. 这些规则在老模型上可能会有用,但是在Astra 可能就反而成为干扰它决策时的判断方向,会找不到安全的边界。 按照目前的 AI 情况,可能我们一年前建立起来的 CLAUDE.md、AGENTS.md、rules、Skill、system prompt,到了现在可能反而都是累赘,所以我们应该在每次模型升级之后,根据不同模型重新评估下整个 Prompt 的可靠性。