OpenAI内部那位主导Codex研发的工程师近日发出提醒:别再沿用GPT-5.5时代的提示技巧去调教GPT-5.6了。他随即分享了一份官方Prompt指南,我仔细研读后,发现其中确实有不少值得深入探讨的要点——按照这些方法调整,Agent不仅能高效完成任务,还能显著节省Token消耗。
指南中的第一条最佳实践,用一句话概括就是:让你的提示词更精简。后面还附上了具体数据。在OpenAI内部的Coding Agent评测中,将系统提示词里重复的指令、多余的示例删除后,评测分数提升了大约10%到15%,总Token使用量减少了41%到66%,成本则降低了三到六成。
删掉一半的Prompt,分数反而上涨。这一结论,与过去两年我们被灌输的“Prompt工程”理念完全相反。以往的教程都在教你如何增加内容:添加角色设定、添加示例,再添加一堆防御性指令。而现在,模型厂商亲自下场,教你如何做减法。
Prompt越写越长,反而适得其反?
先说说你很可能遇到过的情况。Agent又不听话了——比如让它修改代码,它顺手把测试文件也改了。你怎么办?多半是打开系统提示词,补上一句“不要修改测试文件”。过阵子它又犯,再补一句“记住,永远不要动测试”。补着补着,系统提示词就从几十行膨胀到几百行,像一件打满补丁的旧衣服。
这个习惯从何而来?其实是弱模型时代遗留下来的。早年的模型理解能力有限,你不把话说三遍它真记不住,堆叠指令是无可奈何的做法。但新一代模型的意图理解能力已经大幅提升,这些补丁反而成了噪音。“不要动测试”说了三遍,模型会琢磨:这句话被反复强调,权重是不是特别高?然后在一些本该动测试的场景里也变得畏首畏尾。指令重复,并不会让模型加倍听话,只会让它加倍分心。
那么问题来了,具体该怎么删?官方给出的做法很朴素,不是让你大刀阔斧地乱砍。先拿一份已经能正常运行的Prompt和工具集,每次只删除一组指令或示例,删除后运行同样的评测,分数没下降就继续删。核心原则只有一条:每条指令只说一次。
工具描述也是如此。只暴露当前任务真正需要用到的工具,描述写得简短而精准。那种一口气挂上三十个工具、每个描述都写成小作文的Agent,先给它瘦身再说。
当然,删除也有底线。官方明确点名了两类内容不要动:一类是示例本身就是产品要求,比如你规定了输出格式必须是什么样,那个例子就得保留。另一类是真正有效的风格指导,加上这句之后评测分数确实变好了,那么它就赢得了自己的位置。判断标准与长短无关。
另外还有一个容易忽略的点:会话越长,重复内容的负面影响越大。系统提示词里多余的那句话,每一轮对话都要跟着重新计算一遍Token、干扰一遍注意力。你是否觉得Agent聊得越久越容易犯糊涂?一部分原因就在这里。
对了,怕你删完心里没底,官方还提供了一套复杂Prompt的参考骨架:角色、性格、目标、成功标准、约束、工具、输出格式、停止规则,一共八个部分。别误会,这不是让你每项都写一大段,它是一张检查清单。
拿一个Code Review助手的Prompt举例,按这个骨架填写出来大致是这样:
角色:你是我们组Go后端仓库的Code Review助手。
性格:直接指出问题,不用客套。
目标:审查本次PR的改动,给出可执行的修改意见。
成功标准:每条意见指向具体文件和行号,说清为什么是问题。
约束:只看本次改动涉及的文件,别顺手重构无关代码。
工具:可以运行测试和Lint,不允许修改代码。
输出:按严重程度列出问题,最多十条。
停止规则:信息不够下判断时,列出你缺什么,不要猜测。
你看,每项就一两句话,但每句都在实实在在地影响模型的行为。反过来用它当尺子衡量你现有的Prompt,哪条信息跟这八项都对不上,那它就是可以删除的内容。
模型到底该不该自己做主?
这份指南里,我个人觉得最值得学习的是关于自主权的部分。
做过Agent的都知道,Agent有两种死法。一种是太莽撞,没让它动的东西它顺手就删了。另一种是太谨慎,每走一步都停下来问“我可以继续吗”,一个任务请示八遍,还不如自己动手写。
大部分人的解法是在提示词里堆砌安全句:“先问我”“不要擅自修改”“等待批准”。指南明确说了,这类话重复多了,模型会对本来安全的常规操作也跑来请示。谨慎,就是这么被惯出来的。
很多人可能会问,不堆安全句,那还能怎么管?官方的方案是给模型立一套行事规矩,把动作分成三档。原版例子是英文的,翻译成大白话大致如下:
问答、解释、Review、诊断类的请求,看完相关材料,汇报结果就行,没让你改就别动手改。
修改、构建、修复类的请求,范围内本地改动直接做,顺手运行测试这类非破坏性验证,不用先问。
涉及外部写入、破坏性操作、花钱、扩大任务范围的动作,必须先确认。
说人话就是给模型划三条线:只读的随便看,本地可逆的放手干,对外的、删东西的、花钱的必须举手。
划线之后还有一个关键动作:把安全操作点名说清楚。读文件、看日志、改范围内的代码、跑测试,这些明确授权给它。整套规矩写在一个地方。
上面这套规矩,管的是模型能干什么。官方还想让你再进一步,连怎么干的过程,也放给它。
什么叫过程?很多人写Prompt喜欢排步骤:先搜索相关代码,再打开配置文件,再按给定顺序逐项检查。GPT-5.6的意图理解能力上来了,这种写法反而是在捆它的手脚——你排的路线未必是最优路线,它明明有近道也不敢走。官方推荐只交代三样:要什么结果、做到什么程度算合格、拿什么证明。
举个例子,与其写“先跑测试、再看日志、再逐个文件排查”,不如写“找到这个接口超时的原因,给出证据链,改完要过现有测试”。路怎么走,让它自己挑。
那ALWAYS、NEVER这类强硬指令还能不能用?能用,但只留给真正的铁律,比如“NEVER把密钥提交进仓库”这种碰了就出事的红线。至于“什么时候该搜索”“日志要不要全读”这类判断题,别下死规定,给它一条判断标准就够。遇到影响方向的模糊地带先来问你,其实也是一条判断标准,只不过判断出来的动作是开口问。
对了,官方还提了一句挺狠的警告。GPT-5.6会严格执行你的Prompt契约,你要是一边写着“NEVER修改测试”,一边又要求“修复所有失败的用例”,它不会像老模型那样挑一条执行,而是烧着Token想两头都满足,结果反而更差。矛盾的指令,比缺一条指令更糟糕。
说到底,模型不是不想干活,是你没告诉它哪些活能直接干。
“简洁点”三个字,为什么会坑你?
这条是专门给老用户提个醒的。GPT-5.6默认输出比上一代简洁,如果你的老Prompt里还留着“简洁点”“回答简短些”这类指令,两层简洁叠在一起,模型可能把关键信息也一起省略了。
看到这你可能要问,那想要短答案该怎么说?指南给出的修法我觉得很巧妙。与其喊“短一点”,不如说清楚短答案里必须保留什么。官方例子意译过来大致如下:
结论先行。带上支撑结论的证据、重要的注意事项,以及下一步动作。次要细节和重复的话可以省略。
这段话妙就妙在给了模型一个明确的优先级:先保内容,再删废话。
语气也是一个道理。“友好一点”“有同理心”这种词太虚,每个人的理解都不一样。官方的建议是别贴标签,直接把你要的写法描述出来:
直接给出答案。用户报了问题,先确认那个具体问题,再给下一步。只在确实需要的时候才安抚。省掉客套的夸奖和没必要的结尾寒暄。
你看,全程没出现“友好”两个字,但照着这个写出来的回复,读起来就是舒服的。
模型说搞定了,就真搞定了吗?
指南里反复强调一个原则:模型生成了结果,不代表任务完成。这个场景大家太熟悉了:AI说测试都通过了,你一跑,红了一片。它倒不是故意骗你,是没人要求它去验证。
官方的修法分两步:第一步,给模型能验证的工具——测试、类型检查、构建这些,让它有条件自己核对。第二步,在Prompt里写清楚哪些验证是重要的。编程场景的官方例子意译过来是这样的:
改完代码后,运行手头最相关的验证。改了哪块行为,就跑哪块的定向测试,类型检查和Lint能跑就跑,全量验证太贵就跑个最小的冒烟测试。实在没法验证,就说明原因,并给出下一步最该做的检查。
做前端的还有一条专属提示:别光看代码,把页面渲染出来自己检查一遍——布局、裁切、间距、有没有缺内容,改到渲染结果符合要求为止。
一句话:验收标准里要有“怎么证明你做完了”,否则模型说的“做完了”,只是它觉得做完了。
最后
整份指南读下来,我的感受是Prompt工程的重心正在转移。以前写Prompt像念口诀,多念一句是一句,念错顺序还不灵,所以才有那么多“万能模板”“必抄句式”。现在更像签合同,你负责讲清楚目标、边界、验收标准,过程怎么走,让模型自己拿主意。
模型每强一代,你多说的每句废话就更贵一分。以后看一个人Prompt写得溜不溜,估计得先看他敢删多少了。
参考资料
• OpenAI官方GPT-5.6使用指南:https://developers.openai.com/api/docs/guides/latest-model?model=gpt-5.6
• OpenAI官方GPT-5.6 Prompting专项指南:https://developers.openai.com/api/docs/guides/prompt-guidance-gpt-5p6
