重新思考面向 GPT-6 Astra 的 skill 和 prompt

编程 agent 已经进步了很远,最佳实践也在快速变化。过去需要大量手把手引导和脚手架才能完成的事,现在已经不再需要那么做了。

如果过去一年你一直在项目里使用 agent,那么为了把模型引向好的结果,你大概率已经积累了很多臃肿的指令。每次模型发布新版本时,都值得重新审视这些假设;到了 GPT-6 Astra,这件事比以往任何时候都更重要。

这些指令可以有很多形态:Skills、AGENTS.md 和你的任务 prompt,都会影响模型完成工作的方式。

Skill 文件

这些指令的一种形态是 skill 文件。它们本质上是以 Markdown 文件形式保存的 prompt,有时还会打包一些脚本。一般来说,它们最适合用来提供某个工作流的指导,而这个工作流只有在特定任务中模型才需要;或者用来说明如何使用某个插件。

很多人会默认把大量 skill 下载到项目里,但这是个错误。每个 skill 都带有名称和描述,这些内容会被加载进模型的 context,让模型知道什么时候该使用它们。很多描述写得太长;当你加入太多 skill 时,Codex 会开始压缩它们的描述来塞进 context。最后模型看到的每条描述都变少了,也就更难判断该选哪个 skill。

更糟的是,描述之间可能互相矛盾,或者带着太强的“选我”意味,导致模型加载一些其实对当前任务没有帮助的指令。

如果你曾经让 Codex 创建一个 skill,它很可能用过 $skill-creator 这个 skill。我们最近从几个方面更新了它的指导,以缓解许多我们在实践中见到的失败模式。

第一,skill 描述应该尽可能短,同时清楚说明模型应该在什么时候使用它。

这里的坏 skill 描述可能会把模型推向“只要碰到数据库、查询、模型或持久化相关内容就用它”,而不是只在必须处理迁移时才使用。

第二,一个有用 skill 的关键标志之一是渐进式披露。读取一个 skill 会占用 context,让你更接近压缩点,同时也会引入可能并不适用于当前任务的指导。对于包含多个工作流的 skill,根文档应该做成一个最小路由器,指向配套文档和脚本。给模型足够的指引,让它知道该去哪里找,而不是强迫它读取当下无关的内容。

第三,许多 skill 曾经被写成很复杂的行程表或菜谱。模型现在已经更擅长理解细微差别和模糊性,所以过于具体的指导,如今可能会在过去有帮助的地方反而拖累结果。

仓库里的 skill 也会指导其他贡献者的 agent,而那些 agent 可能使用不同模型。对 Sol 或 Luna 有帮助的指导,可能会过度限制 GPT-6 Astra,所以要想清楚你留下的这些指令会被哪些模型使用。

AGENTS.md

因为只要模型在你的仓库里工作,AGENTS.md 就会生效,所以请重新检查每条指令,问问自己当前任务是否仍然需要它。

每次修改前都要求模型先读一堆文档或完整的仓库地图,对于修一个拼写错误来说太过了。GPT-6 Astra 能自己判断需要读什么,不必在每次改动前都被推着审完整个项目。

提示模型每次修改前都先读文件,是一种消耗 context、拖慢工作的好办法。不过,只要是结合上下文地指向一些文档,这仍然可能有帮助。也一定要保持文档更新!

以前的模型需要被提醒去跑测试、检查自己的工作。GPT-6 Astra 会自己做这些事,所以同样的指令可能会导致不必要的测试。

GPT-6 Astra 很彻底,但对于一项任务应该推进到什么程度,它可能更犹豫。有时它需要一点推动,才会继续往下做。你可以用 AGENTS.md 给它一个你知道安全的特定工作流授权,比如本地测试套件:

本地测试使用一次性 fixture,没有生产环境访问权限。运行它们,修复由本次请求改动导致的失败,并重新运行受影响的测试;不要每一步都请求批准。

决策边界

请特别注意你是如何描述边界的。如果之前某个模型未经允许替你做了事情,你可能加过很强的措辞,让它必须先询问。这可能有用,但 GPT-6 Astra 的判断力已经好得多,你也应该按这个标准看待它。它也会认真对待你的边界,可能会在你其实愿意让它继续的地方停下来。

持续推进

如果你习惯了 GPT-5.6 Sol 接到请求后长时间持续推进,那么 GPT-6 Astra 在什么时候该停止这件事上,可能会显得更犹豫。它可能完成第一版实现后就回来请你检查,而实际上还有工作没做完。

这时,在开始之前先定义完成标准会很有帮助。如果任务包括把实现跑起来、检查结果、修复失败点,就把这部分写进请求里。要求模型在第一版实现后停下来让你检查,会把模型拉向更早的停止点,所以要检查一下:这真的是你需要自己做的决策吗?

如果你希望它在第一版之外继续探索,请说明你想让它探索什么,以及应该在哪里停下来。

新模型是一次整理屋子的好机会。让 GPT-6 Astra 基于本文讨论的内容做一次审计,然后去做一个你以前不会尝试的东西吧!