重新思考 GPT-6 Astra 的技能与提示词
编码智能体已经取得了长足进步,最佳实践也在快速变化。随着模型能力的增强,过去需要大量人工引导和脚手架的工作,如今已不再需要。
如果你在过去一年里一直在项目中使用 Codex 这样的智能体,你很可能在努力引导模型取得良好结果的过程中积累了很多指令。每次发布都值得重新审视这些假设,但对于 GPT-6 Astra 来说,这一点比以往任何时候都更加重要。
这些指令可以采取多种形式:技能、AGENTS.md 以及你的任务提示都在塑造模型完成工作的方式。
更好的技能
这些指令可以以技能的形式存在,技能本质上是存储为 Markdown 文件的提示,也可以与资源和捆绑脚本一起打包。通常,它们对于特定工作流的指导,或在使用某些应用程序时最为有用。
现在人们默认将大量技能打包到他们的项目中,每个技能都有一个名称和描述,这些会被加载到模型的上下文中,以便它知道何时使用它们。但许多描述太长了,当你添加太多技能时,Codex 会开始缩短它们的描述以适应。模型最终看到的每个描述都更少,使得更难知道该选择哪个技能。
更糟糕的是,描述往往会相互矛盾,或者过度强调技能何时应该使用,导致模型加载实际上对任务没有帮助的指令。
创建技能的常见工作流是使用 $skill-creator 技能。我们最近更新了它的指南,以帮助缓解我们在实践中看到的许多失败模式。
首先,技能描述应尽可能简短,同时明确模型何时应使用它们:
差
创建并验证 Postgres 模式迁移。在处理数据库、查询、模型或持久化时使用。
好
创建并验证 Postgres 模式迁移。在添加或更改迁移,或审查其推出时使用。
在这里,糟糕的技能描述可能会促使模型在接触任何与数据库相关的内容时都使用它,而不仅仅是在必须处理迁移时。
其次,有用技能的关键标志之一是渐进式披露。阅读技能会占用上下文,使你更接近压缩,并引入可能不适用于任务的指导。对于具有多个工作流的技能,请将根文档设为一个最小路由器,指向支持文档和脚本。给模型足够的指导,让它知道去哪里查找,而不强迫它阅读当下无关紧要的内容。
第三,许多技能被写成了精心设计的行程或食谱。模型在理解细微差别和模糊性方面已经好得多,因此过于具体的指导现在可能会阻碍结果,而以前它曾有所帮助。
仓库技能也指导其他贡献者的智能体,这些智能体可能使用不同的模型。对 Sol 或 Luna 有帮助的指导可能会过度约束 GPT-6 Astra,因此请考虑哪些模型会使用你留下的指令。
最新的 AGENTS.md
因为 AGENTS.md 在模型于你的仓库中工作时都会应用,所以你应该经常重新审视每条指令,并问自己它是否仍然需要。
在每次编辑前都要求一堆文档或完整的仓库地图,对于修复一个拼写错误来说是过度的。GPT-6 Astra 可以自行弄清楚它需要阅读什么,而无需在每次更改前被推动去审查整个项目。
差
每次编辑前,先阅读 architecture.md、database.md 和 deployment.md。
好
使用 architecture.md 了解服务边界,使用 database.md 了解架构变更,准备部署时使用 deployment.md。
在每次编辑前都提示模型去读取文件,是消耗上下文并拖慢工作速度的好方法。不过,指向某些文档仍然可以有所帮助,只要它是基于上下文的。也请务必保持你的文档更新!
以往的模型需要被鼓励才会运行测试并检查自己的工作。GPT-6 Astra 会自行完成这些工作,因此相同的指令可能会导致不必要的测试。
GPT-6 Astra 很周全,但在任务推进到何种程度上可能会更加谨慎。有时它需要一点推动才能继续。你可以使用 AGENTS.md 来为它授权执行你所知的、安全的特定工作流程,例如本地测试套件:
本地测试使用一次性测试夹具,且没有生产环境访问权限。请运行它们,修复由所请求的更改引起的失败,并在每一步都无需请求批准的情况下重新运行受影响的测试。
决策边界
请仔细注意你如何描述边界。如果之前的模型曾在未经许可的情况下代你行事,你可能已经添加了强硬的语言来要求它先询问。这可能有用,但 GPT-6 Astra 作为我们最对齐的模型,拥有更好的判断力,除非它知道某项任务是安全的,否则不会执行——因此你应该据此对待它。
如果你之前设定边界是为了防止其他模型越界,而现在要切换到 GPT-6 Astra,请考虑更新这些措辞:Astra 可能会过于认真地对待它们,并可能在你实际上乐见其继续的地方停止工作。
持久性
如果你习惯了 GPT-5.6 Sol 接受一个请求并长时间持续工作,GPT-6 Astra 在何时停止上可能会显得更加谨慎。它可能在完成初步实现后就回来交给你审查,而此时工作尚未完成。
这就是在开始之前定义完成标准有所帮助的地方。你可能需要推动 Astra 继续,直到它完全完成。如果任务包括让实现运行起来、检查结果并修复失败的部分,请将其作为请求的一部分。要求在初步实现后停下来审查,会将模型拉向更早的停止点,因此请检查这是否真的是你需要做出的决定。
如果你想让它在初步尝试之后继续探索,请说明你想要探索什么以及应该在哪里停止。
换用新模型是一个清理旧账的好机会,但你不需要手动审查所有内容:让 GPT-6 Astra 根据本文讨论的内容进行一次审计,然后去构建一些你以前不敢尝试的东西吧!