一个 Agent 用久了,System Prompt 往往只会变长:模型漏做一次,加一条;工具走错一次,再加一条;某次没等确认就改了文件,于是把“先询问”复制到三个位置。模型升级了,这些旧补丁还在原地。
OpenAI 最近发布了面向 GPT-5.6 Sol 的 Prompt 指南,开头就把这类系统点了出来。为旧模型准备的规则、工具说明和流程补丁,到了新模型上可能互相冲突,还会带来额外 Token、无意义状态播报,甚至让 Agent 对安全的本地操作反复请示。
官方内部样例里的 Token 降幅很醒目,但我更在意它指向的维护方式:Prompt 应该像一份任务合同,把结果、边界、停止条件和验收标准写清,执行路径留给模型。模型换代了,Prompt 没必要继续背着上一代留下的创可贴。
你的 System Prompt 可能是一座补丁仓库
很多长 Prompt 都有相似的成长史。
同一个权限边界分散在开头、工具说明和末尾;一个地方要求自主完成,另一个地方要求任何修改先确认;工具已经下线,描述仍留在列表里。模型越认真遵循指令,冲突带来的犹豫越明显。
OpenAI 给出的处理方式很朴素:从一份已经能工作的 Prompt 开始,每次删除一组规则,再跑同一套评测。
优先清理五类内容:
-
重复出现、含义相同的规则; -
不再改变行为的样式和过程说明; -
没有实际作用的示例; -
模型已经能稳定完成的过程步骤; -
当前运行环境里用不到的工具与说明。
需要留下的内容短得多:用户最终要看到什么、什么算完成、什么时候停止、哪些安全和业务边界不能越过、不同上下文该调用什么工具,以及交付前如何验证。
OpenAI 还提醒,指令冲突造成的不稳定,往往比少写一条细节更麻烦。Prompt 的维护工作因此有了一个很实用的顺序:先删重复和冲突,再考虑添加新规则。
一组内部数据
OpenAI 在指南里披露了一个内部 coding agent 样例。System Prompt 精简后,评测得分约提高 10%~15%,总 Token 减少 41%~66%,成本下降 33%~67%。
分数上涨,消耗反而下降,这组结果很容易让人产生“Prompt 越短越好”的错觉。OpenAI 对适用范围写得很清楚:它只是一个内部样例,具体结果会随工作负载变化,团队仍要在自己的代表性任务上验证。
所以可复制的部分只有实验方法:保留基线,一次删一组,使用同一批任务比较质量、Token、成本和失败类型。单纯把 2 万字砍到 2 千字,并不能证明系统已经变好。
别把工作流写成铁轨
长 Prompt 还有一个常见习惯:把任务拆成固定的第一步、第二步、第三步,连模型什么时候读文件、什么时候汇报、什么时候停都预先钉死。
OpenAI 更推荐 outcome-first,也就是先定义结果和完成标准。绝对规则只留给安全、合规、证据和权限这类不变量;需要判断的地方,给出决策条件和默认动作。
例如,一个代码任务可以压缩成下面几项:
目标:修复指定问题,并保持现有兼容性。 完成标准:相关测试通过,改动没有超出任务范围。 允许:读取和搜索仓库、修改范围内文件、运行非破坏性验证。 必须确认:外部写入、删除数据、付费操作或扩大任务范围。 停止:目标已验证完成,或遇到无法绕过的外部阻塞。
这类写法没有替 Agent 选择每一条命令,却把交付责任说清了。我现在更愿意把 System Prompt 当成一份任务合同:结果、边界、验收写清,路径留给模型选择。
Agent 总在问“能不能继续”,先查权限规则
Agent 每改一个文件都要举手请示时,可以先检查系统提示词:“先问我”是不是被写了三遍。
OpenAI 在权限章节里给了三档边界:
-
用户要求回答、解释、审查、诊断或规划时,默认只检查并报告; -
用户明确要求修改、构建或修复时,可以完成范围内的本地改动和非破坏性验证; -
外部写入、破坏性操作、购买行为和范围扩张,需要用户确认。
这三档比一句“谨慎行事”更可执行。OpenAI 还建议把权限政策集中放在一个位置,其他章节只引用它。多处重复 ask first、do not mutate 和 wait for approval,可能让模型对本来安全、符合预期的操作也发起确认。
自主 Agent 的权限设计,目标是让它在该停的位置停下来。常规读取、范围内编辑、测试和检查若都要逐步确认,用户依旧在充当工作流调度器。
停止条件比步骤清单更值钱
“尽可能多搜索”“持续改进”“完成所有必要工作”听起来积极,实际很容易把任务拖进没有终点的循环。
停止条件要回答三个问题:什么证据已经足够,什么阻塞允许退出,最低可用交付是什么。
检索任务找到直接回答问题的一手来源后可以停止;代码任务需要通过与改动相匹配的测试、类型检查、Lint、构建或冒烟验证;无法运行验证时,要把缺失项和原因写清楚。任务完成需要一个明确的证据门,不能只靠 Agent 自己说“已经完成”。
推理强度也适合放到最后调。OpenAI 建议把较低的 reasoning effort 作为定义清楚任务的自然起点,只有代表性评测显示更高强度带来明显收益时再往上加。任务定义含糊时,先修 Prompt,比拿更高推理强度补洞更划算。
给现有 Prompt 做一次迁移
如果手里已经有一份用了很久的 System Prompt,可以按五步处理:
-
选一组真实代表性任务,记录当前质量、耗时、Token、成本和失败类型。 -
标出重复规则、过时工具、无效示例和旧模型流程补丁,每次只删除一组。 -
把权限、证据和安全策略收拢到单一位置,消除互相打架的表述。 -
补齐目标、完成标准、停止条件、输出形态和验证动作,再跑同一套任务。 -
Prompt 清晰后再调 reasoning effort;没有评测收益,就不为“看起来更聪明”支付额外成本。
代码仓库会定期删除过时兼容层,System Prompt 也需要同样的维护纪律。下一次换模型,不妨先让它用最小规则跑一遍,再依据真实失败样本加回必要边界。
少写本身不值钱;每条规则都有清楚责任,才值钱。
参考链接
-
OpenAI:Prompting guidance for GPT-5.6 Sol:https://developers.openai.com/api/docs/guides/prompt-guidance-gpt-5p6
进技术交流群请添加AINLP小助手微信(id: ainlp2)
请备注具体方向+所用到的相关技术点
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。

