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