学习 GPT-5.6 及 GPT-5.6 模型系列的最佳实践、特性与迁移指南。
简介
GPT-5.6 为复杂的生产工作流树立了新的质量与效率基准。它在 token 效率上表现尤其突出,并改善了前端美学,包括布局、视觉层级和设计判断。
GPT-5.6 还引入了新的命名方案。gpt-5.6 别名会把请求路由到 gpt-5.6-sol,即面向旗舰级能力的模型。需要较强性能但更看重价格的场景可以用 gpt-5.6-terra,高吞吐工作负载则用 gpt-5.6-luna。
从 GPT-5.5 或 GPT-5.4 迁移时,先用你当前的 reasoning 设置作为起点,然后在代表性任务上分别测试同一档位和低一档。GPT-5.6 通常能用更少的 token 维持甚至提升质量,但最优设置取决于你的具体负载。
新特性
- Programmatic Tool Calling(可编程工具调用) :GPT-5.6 可以编写 JavaScript 来调用符合条件的工具、在调用之间传递结果,并在托管运行时中处理中间输出。对于有界、工具密集、且不需要在每步之间引入模型新判断的工作流,使用 Programmatic Tool Calling。它兼容 ZDR,且不产生额外容器成本。
- Multi-agent(多智能体)beta :Multi-agent 让一个 GPT-5.6 实例可以并行协调多个 subagent 并汇总它们的结果。类似 Codex 中的 ultra 模式,对于能干净拆分成独立工作流的复杂任务,这可以降低端到端耗时并提升表现。Multi-agent 作为 beta 特性在 Responses API 中提供,官方会根据开发者反馈持续迭代。
- 显式 prompt 缓存:GPT-5.6 允许你精确标记 OpenAI 要缓存哪些可复用的 prompt 前缀。你仍然可以使用隐式模式下的自动缓存。OpenAI 按 1.25× 未缓存输入费率对缓存写入计费,缓存读取仍然享受折扣。了解如何配置 prompt 缓存。
- 持久化 reasoning :GPT-5.6 可以在多轮之间复用可用的 reasoning items,以提升多轮质量和缓存效率。用
reasoning.context选择行为。了解如何跨调用保留 reasoning。 - Max reasoning effort:GPT-5.6 支持最高档的 max reasoning effort,适用于需要更多探索和验证的高难度任务。如果你当前在用 xhigh,可以在代表性负载上对比这两个设置。
- Pro mode :GPT-5.6 可以执行更多模型工作,在困难任务上提升可靠性并返回单一最终答案。当质量比延迟和 token 用量更重要时,用
reasoning.mode: "pro"开启。了解如何使用 pro mode。 - Token 效率:GPT-5.6 以更少的输出 token 达到前沿性能。
- 前端设计:GPT-5.6 生成的网站和应用更精致、更可用,布局、视觉层级和设计判断更强。
- 意图理解:GPT-5.6 能更好地从上下文推断用户的底层目标和预期的工作深度,因此你常常不必把每个步骤都规定死。继续提供领域上下文、硬约束、审批边界和成功标准即可。当某个重要歧义应当触发提问时,告诉模型。
- 原始图像尺寸 :GPT-5.6 会保留以
original或autodetail 发送的图像原始尺寸,而不再把它缩放到 patch 预算或像素尺寸上限。大图会消耗更多输入 token 并增加延迟。了解如何选择图像 detail 级别。
安全防护
使用 GPT-5.6 模型时,用户可能会遇到安全防护机制拦截或拒绝某些请求,原因是模型在生成输出时会同步运行实时网络与生物安全滥用分类器。还有一些请求会耗时更长,因为在生成过程中会暂停几秒钟,等待这些分类器同步审查输出。安全机制偶尔会误伤合法工作,尤其是在防御性与攻击性活动初期看起来相似的双用途领域。
如果你的应用面向个人终端用户,请在每次请求中带上一个稳定、保护隐私的 safety_identifier。参见《实现安全标识符》获取指引。
官方正在持续演进这些防护机制,使其在对抗压力下仍然稳健有效,同时保留对合法工作的访问,例如代码审查、漏洞研究、补丁开发、调试、安全教育和防御性测试。
迁移快速上手
用 Codex 迁移
Codex 可以通过 OpenAI Docs skill 应用本指南中建议的改动。
kotlin
$openai-docs migrate this project to the GPT-5.6 model family
要在其他编码 agent 中使用该 skill,可从 OpenAI skills 仓库下载。
更新 API 与模型参数
-
根据负载选择目标模型。前沿能力用
gpt-5.6-sol,在智能与成本之间取平衡用gpt-5.6-terra,高吞吐工作负载用gpt-5.6-luna。gpt-5.6别名会把请求路由到gpt-5.6-sol。 -
对于 reasoning、tool-calling 和多轮工作流,使用 Responses API。
-
有意识地设置
reasoning.effort。GPT-5.6 支持none、low、medium、high、xhigh和max。- 如果从 GPT-5.5 或 GPT-5.4 迁移,保留当前 reasoning effort 作为基线,然后再对比低一档。
- 如果你用的是
none,把它保留为延迟基线,并在工作流能从 reasoning 或 tool use 受益时也测试low。 - 以
medium作为均衡起点,延迟敏感负载用low。 - 当更多 reasoning 能带来可测量的质量提升时,用
high或xhigh。 - 把
max留给最难的、质量优先的工作负载。在你的用例上对比max和xhigh,找到质量、延迟和成本的最佳权衡。
-
要使用 pro mode,保留你选定的 GPT-5.6 模型,并在 Responses API 中把
reasoning.mode设为pro;不要切换到单独的 Pro 模型 slug。reasoning.effort可以独立选择。如果省略,GPT-5.6 在标准和 pro 模式下都默认为medium。参见 reasoning mode 获取请求示例和计费说明。 -
根据先前 reasoning 还有多大相关性来配置持久化 reasoning。
- 省略
reasoning.context或设为auto,使用模型默认行为。检查响应中的reasoning.context字段以确认实际生效的模式。 - 当任务的目标、假设和优先级在多轮之间保持稳定时,把
reasoning.context设为all_turns。 - 使用
all_turns时,继续用previous_response_id让先前响应的 reasoning 对模型可用。 - 手动管理历史时,保留并重发先前的用户输入和每一个响应输出项。对于
store: false或 Zero Data Retention,重放 API 默认返回的加密 reasoning items。 - 当先前 reasoning 不再相关时,把
reasoning.context设为current_turn。
- 省略
-
审查 prompt 缓存。你不需要改代码就能继续用隐式缓存。由于 GPT-5.6 的缓存写入成本是 1.25× 未缓存输入费率,要跟踪
cached_tokens和cache_write_tokens来理解净成本。用显式断点或prompt_cache_options.mode: "explicit"避免不必要的写入,并用prompt_cache_options.ttl替换prompt_cache_retention。 -
要使用 Programmatic Tool Calling,添加
programmatic_tool_calling工具,并通过allowed_callers把符合条件的工具纳入。更新你的应用以处理 program items、由 program 发起的 function calls 和program_outputitems,同时保留每次调用的call_id和 caller 关联。参见 Programmatic Tool Calling 指南获取请求和续接示例。 -
在代表性任务上对启用 PTC 的工作流做基准测试。对比任务成功率、最终答案完整性、所需证据、总 token、延迟和成本。只有当最终答案仍满足所需质量门槛时,更少的调用、轮次或中间输出才算改进。
Prompt 最佳实践
倾向更精简的 prompt
移除重复指令和示例、简化工具描述,可以提升任务表现和 token 效率。在一批内部 coding-agent 评测运行样本中,使用更精简 system prompt 的配置把评测分数提升了约 10--15%,同时总 token 减少 41--66%、成本降低 33--67%(结果因负载而异,这些区间仅作方向性参考,请在你自己应用的代表性任务上验证改动)。
在精简 prompt 的同时不丢失重要指引:
- 从一个已经能用的 prompt 和工具集出发。每次只移除一组指令、示例或工具,然后重跑相同的评测。
- 每条指令只说一次。
- 只暴露与任务相关的工具,描述要简洁、精确。
- 当示例和风格指引编码了某个产品需求,或纠正了一个可测量的缺口时,就保留它们。
- 既在运行开始时、也在对话变长后跟踪上下文。长会话会放大重复的 prompt 和工具内容。
定义自主性与审批边界
GPT-5.6 在执行多步任务时可以主动且持久。请定义每个请求授权的行动级别,让模型能在没有不必要的停顿下继续做安全、范围内的活,同时在外部、破坏性、昂贵或扩大范围的操作之前停下。
一段紧凑的策略通常就够了:
对于要求回答、解释、审查、诊断或规划的请求,检查相关材料并报告结果。
除非请求本身也要求实施改动,否则不要动手改。
对于要求改动、构建或修复的请求,做所要求的范围内本地改动,
并先跑相关的非破坏性验证,不用先问。
对外部写入、破坏性动作、购买、或实质性扩大范围,要求确认。
显式点名安全的本地动作,例如读文件、查日志、改范围内的代码、跑测试。把策略放在一个地方,每条规则只说一次。重复诸如"先问""不要改动""等批准"之类的指令,会让模型对安全、预期的动作也提出不必要的审批请求。
设定响应长度与风格
GPT-5.6 默认比 GPT-5.5 更简洁。迁移时,检查诸如 "Be concise" 或 "Keep it short" 之类笼统的简短指令是否仍然有用。它们对某些任务可能是多余的,有时还会让响应过短。当它们确实稳定产出你应用所需的输出时,就保留。
要跨请求更一致地控制长度,用 text.verbosity 设定默认细节级别,再用 prompt 处理任务特定要求。
用 text.verbosity 设默认值
为请求选择 low、medium 或 high 作为默认细节级别。在 prompt 中指定任何任务特定的长度、结构或必含内容。参见"配置 text.verbosity"的 API 示例。
指定简短答案必须包含什么
当任务需要更短的答案时,明确模型必须保留哪些信息、可以省略哪些细节。例如:
以结论开头。包含支撑结论所需的证据、任何重要保留意见,以及下一步动作。
省略次要细节和重复。
保留所有必要的事实、决策、保留意见和下一步。优先砍掉开头、重复、
通用的安抚话语,以及可选的背景信息。
这给了模型一个清晰的优先级顺序:先保留完成任务所需的内容,再移除价值较低的细节。
定义语气
"友好""共情"这类笼统标签可能含糊。把你产品语气所对应的写作选择描述出来,比如答案要多直接、什么时候要承认问题、是否需要安抚或结束语。
直接给出答案。如果用户报告问题,先承认具体问题,再给下一步。
只在相关时使用安抚话语。省略通用的夸赞和不必要的结束语。
Pro mode
质量优先时选 pro mode
Pro mode 是 Responses API 的一种执行模式,会在返回单一最终答案之前对请求施加更多模型工作。它可以提升困难任务的可靠性,但会增加延迟,并把那些工作的 token 汇总计入上报的 usage。这些 token 按所选模型的标准 token 费率计费。
当边际质量提升会实质性地影响结果、且任务足够困难能从中受益时使用 pro mode,例如复杂优化、高价值编码或审查、或具有清晰评估标准的深度分析。对于常规、延迟敏感或高吞吐的工作负载,以及评测没有显示 pro mode 带来有意义收益的任何时候,优先用标准模式。
Reasoning mode 和 reasoning effort 相互独立。Pro mode 可与任何 GPT-5.6 模型及其支持的 reasoning effort 搭配。先以你标准模式基线相同的模型和 effort 起步,然后在代表性任务上对比不同配置,而不是假定最高 effort 总是最佳权衡。
在 API 中配置 pro mode
在 API 请求中启用 pro mode。保留你在标准模式下使用的、同样关注结果的 prompt:陈述目标、相关上下文、约束、所需证据、成功标准和输出格式。你不需要让模型 "use pro mode"、"think harder",或生成多个候选答案。
例如:
审查这个数据库迁移方案中可能导致数据丢失或长时间停机的失败模式。
对于每个发现,引用相关步骤,估计影响和可能性,并推荐具体的缓解措施。
按严重程度返回五个最重要的风险。
对比质量与成本
在相同的代表性任务上对比标准和 pro 模式。测量任务成功率、答案完整性、所需证据、总 token、延迟和成本。在质量或可靠性收益足以证明额外模型工作物有所值的地方,选择性地使用 pro mode。
详见 reasoning mode 指南。
Programmatic Tool Calling
按任务形态选择 Programmatic Tool Calling
Programmatic Tool Calling(PTC)最适合有界工作流:代码可以处理多个工具结果或大块中间输出,然后返回一个小得多的结构化结果。适用于过滤、连接、排序、去重、聚合、校验或其他可预测的处理。
单纯的多次、并行或存在依赖的调用,不足以成为使用 PTC 的理由。以下情况优先用直接、非 PTC 的工具调用:
- 一次调用就够了
- 中间输出已经很小
- 每个结果都可能改变模型的下一步决策
- 某个动作需要审批
- 最终输出必须保留引用或原生产物
让路由指令任务特定
不要依赖工具的可用性或诸如"高效地使用 Programmatic Tool Calling"这类泛化指令来产生正确的路由。当直接调用和 program 调用都可用时,明确说明:
- 哪个有界阶段应使用 Programmatic Tool Calling。
- 它可以调用哪些工具。
- 确切的输出 schema 和所需证据。
- 并发、重试和停止的上限。
- 哪些工作应保持直接调用。
工具描述应记录其预期的返回字段、类型和错误行为。如果模型在编写 program 之前无法确定返回结构,优先用直接工具调用,让它能在决定如何使用结果前先检查结果。
如果两条路由都需要,定义一次清晰的交接,并告诉模型不要切换路由或重复已完成的工作。
例如:
css
<tool_orchestration>
对 [有界阶段] 使用 Programmatic Tool Calling,且只能用 [符合条件的工具]。
安全时并发运行独立调用。只使用文档中记录的工具输入和输出字段。
处理并缩减中间结果,然后精确产出 [输出 schema],
包含最终答案所需的证据。
当满足 [条件] 时停止。瞬时失败最多重试 [R] 次。
不要重复已完成的调用或执行有副作用的动作。如果某个必需结果仍缺失,
返回一个清晰的结构化失败。
对 [语义判断、审批或最终校验] 使用直接工具调用。
</tool_orchestration>
评估最终答案
program_output item 和最终 assistant 消息是两份独立的输出,务必都测试。理论上,program 可能返回正确的记录,而消息却遗漏了某个必填字段、引用或保留意见。
在相同的代表性任务上对比直接调用和 program 调用。检查最终响应是否正确、完整,并包含所需证据。然后再对比总 token、延迟、成本、调用数、轮次和重试。只有当响应仍能通过你现有评测时,更低的资源消耗才算改进。
详见 Programmatic Tool Calling 指南。