编程智能体已取得长足进步,最佳实践也在快速变化。随着模型能力增强,过去需要大量逐步引导和辅助框架的工作,如今已不再需要这些支持。
如果您在过去一年里一直使用 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 根据本文讨论的内容进行一次审查,然后去构建一些您以前不会尝试的东西吧!