GPT-6 Astra 发布了。过去一年,你为了让模型听话,攒了一大堆 Skill、AGENTS.md 指令、复杂的任务 Prompt。
现在有个反直觉的事:那些曾经帮你「驯服」旧模型的东西,在新模型身上,很可能已经变成了拖累。
作者(Eric Provencher,OpenAI 的 Codex 团队成员)的原话:
这堂课就是带你,一步步搞懂:哪些该删、哪些该留、哪些该改。全程动手,不是看文章。
每个 Skill 都带一个「名字 + 描述」,这些会被加载进模型的上下文,好让它知道「什么时候该用我」。问题是——
模型能读到的「描述空间」是有限的。点击下面按钮,一次加一个 Skill,观察右边的描述被「压缩」成什么样。
当 Skill 太多时,Codex 会开始压缩它们的描述来塞进上下文。模型最终看到的是每段描述更少的字,反而更难判断该选哪个 Skill。
更糟的是:描述之间可能互相矛盾,或带着太多「选我选我」的气息,导致模型加载了对任务毫无帮助的指令。
关键认知:Skill 是「按需加载」的引导,不是「越多越保险」。加一个 Skill,等于多占一份上下文、多一层选择干扰。
作者给了三条改 Skill 的原则,第一条就是:描述要尽可能短,同时说清楚「什么时候该用它」。
「这个 Skill 帮助你处理任何与数据库相关的工作。无论你是要查询数据库、插入数据、更新记录、删除数据、设计表结构、写迁移脚本、优化查询、调试连接问题,还是做任何涉及数据库的事情,你都可以使用这个 Skill。它涵盖了 SQL、NoSQL、ORM、连接池、事务……」
问题:模型一碰到任何「数据库」相关的东西就会加载它,哪怕只是问个字段名。
「当需要编写或修改数据库迁移(migration)时使用。」
只在一个明确场景触发,不占多余上下文。
关键认知:一个 Skill 的价值,在于「让模型一眼知道何时该用它」——不是「覆盖得越全越好」。
读 Skill 会消耗上下文,把你推向 compaction(上下文压缩),还塞进跟当前任务无关的引导。作者的第二个原则:progressive disclosure(渐进式披露)。
Skill.md 里塞满了:工作流 A 的全部步骤 + 工作流 B 的全部步骤 + 工作流 C 的全部步骤 + 所有脚本说明……
模型一读就全读,哪怕只用到工作流 B 里的一个步骤。
根文档只写:
「本 Skill 处理 X。有 3 个子流程:A(见 a.md)、B(见 b.md)、C(见 c.md)。只读你需要的那一个。」
模型先看路由,再按需只读相关子文档,不浪费上下文。
很多 Skill 被写成繁琐的行程表。但模型现在对细微差别和歧义的理解已经强了很多——过去有帮助的「过度具体」,现在反而会妨碍结果。
还提醒一句:仓库里的 Skill 也会引导其他贡献者的 Agent(可能用不同模型)。对旧模型有帮助的引导,可能过度约束 Astra。要想想:你留下的指令,未来会被谁用。
AGENTS.md 会在模型每次工作于你的仓库时生效。所以更要逐条问一句:这个任务还需要它吗?
规矩 1:「每次编辑前,先读完整 repo map + 全部相关文档」
规矩 2:「每次改动后,必须运行测试并自查」
规矩 3:一个你确定安全的工作流,模型却老停下来问你
关键认知:AGENTS.md 是「每次都会生效」的东西,所以它的每一条都在持续消耗上下文。定期问一句「这还必要吗」,比堆更多规矩更重要。
如果以前的模型老是在没经你允许时就擅自做事,你可能加了很强烈的措辞让它「先问」。这在当时有用。但 Astra 的判断力好得多,也会把你的边界当回事——它可能在你其实很乐意让它继续的地方停下来。
所以:重新审视你写的每一条「先问我」「禁止」「必须先确认」,问一句——这条现在还是我真正想要的吗?
如果你习惯了旧模型(Sol)拿到一个请求就长时间连跑,那 Astra 在「什么时候停」上会显得更犹豫:它可能做出第一版,就回来找你评审——尽管还有活没干完。
✅ 把「完成」写进请求:
「把这个功能实现到能运行、并自己检查结果、修掉失败的,才算完成。」
❌ 别这样写(会把模型拉向过早停止):
「先做出第一版就停下来等我评审。」——除非这真的是你需要的那个决策点。
如果你希望它继续探索,就说清楚:想探索什么、以及它应该在哪里停。
关键认知:新模型的「停」和「走」,很大程度上由你的边界描述和完成定义决定。与其怪它「不主动」,不如先把自己的意图写清楚。
Q1. 为什么「下载一堆 Skill」是个错误?
Q2. 「渐进式披露」指的是?
Q3. Astra 做了一半就回来找你评审,最可能的原因是?
模型每进化一代,就该回头删一轮旧指令。你的 Skill 和 Prompt,不是资产,是会过期的负债。
1️⃣ Skill 不是越多越好——描述会被压缩、互相干扰。
2️⃣ 描述要「短 + 明确触发点」,别写「万能」。
3️⃣ 根文档做成极简路由器,按需展开(渐进式披露)。
4️⃣ AGENTS.md 逐条审视:删掉「每次读全项目」「催它跑测试」这类旧规矩。
5️⃣ 重新写边界 + 定义「完成」——新模型更听得进边界,也更需要你说清停在哪。
原文:《Rethinking skills and prompts for GPT-6 Astra》by Eric Provencher(@pvncher)