ChatGPT5.6 中文文档 下载 App

GPT-5.6 可编程工具调用 — 过滤中间数据、动态调整工作流

从手动到可编程

在 GPT-5.5 及之前的模型中,工具调用通常遵循"模型决定调用 → 你执行工具 → 把结果全部传回模型 → 模型决定下一步"的循环。这个模式的问题是:

GPT-5.6 的可编程工具调用(Programmatic Tool Calling) 解决了这些问题。它让开发者可以:

  1. 在模型和工具之间插入过滤层,只回传关键信息
  2. 让模型自己决定哪些中间结果值得保留,哪些可以丢弃
  3. 在运行过程中动态调整工作流,而不是一开始就写死所有步骤

核心价值

OpenAI 在发布博客中总结了可编程工具调用的三大改进:

"能够编写并运行轻量级程序,在工作开展过程中协调工具、处理中间结果、监控进度并自主选择下一步操作。这使得重度依赖工具的任务能够以更少的 Token、更少的模型交互次数及更少的人工干预顺利推进。"

Lovable 联合创始人 Fabian Hedin 的实际反馈:

"帮助用户以比前代模型减少约 25% 的步骤和 35–48% 的工具调用量完成任务,同时将项目成功率提升了 15%。"

Responses API 中的用法

可编程工具调用是 Responses API 的内置功能。基础结构如下:

# 定义工具
tools = [{
    "type": "function",
    "name": "run_tests",
    "description": "运行测试套件并返回结果摘要",
    "parameters": {...},
    # 新增:可编程处理配置
    "programmable": {
        # 告诉模型它可以在收到完整输出前就开始规划下一步
        "streaming": True,
        # 指定后处理函数名
        "post_process": "summarize_test_output"
    }
}]

# 模型自动协调工具
response = client.responses.create(
    model="gpt-5.6-sol",
    input=[task],
    tools=tools
)

过滤中间数据

可编程工具调用最直接的效果是大幅减少不必要的 Token 往返。传统模式 vs 可编程模式对比:

维度传统工具调用可编程工具调用
工具输出回传完整输出(含大量非关键信息)仅关键信息摘要
模型交互次数每次工具调用都需要一轮对话可并行调用多个工具后统一汇报
工作流调整需要人工干预模型自主根据中间结果调整
Token 效率基准PlayCo 实测减少 63.5%

PlayCo 的 Unity 场景构建案例:

"借助 GPT-5.6 的可编程工具调用功能,在整个场景构建工作流中,总 Token 使用量减少了 63.5%,模型交互次数减少了 50.1%。"

Clio 的法律文档分析案例:

"针对多步骤文档分析,可编程工具调用功能在不损失质量的前提下,将提示词 Token 消耗降低了 38%。"

动态工作流调整

传统的工具调用流程是预定义的、线性的:

工具 A → 工具 B → 工具 C → 结束

可编程工具调用允许模型在运行中调整:

工具 A → 结果 X:跳过 B,直接 C
       → 结果 Y:并行调用 B 和 D,合并后再 E
       → 结果 Z:重新规划,调用 F 和 G

这个能力对于长周期智能体工作流至关重要——因为真实世界的任务经常出现"运行到一半发现需要换方案"的情况。

与多智能体的关系

可编程工具调用是每个子智能体都具备的能力。在 ultra 四智能体模式下:

迁移建议

如果你之前的代码是基于 Chat Completions API 的传统工具调用,迁移到 Responses API 的可编程模式需要注意:

  1. tool_choice 的语义变化:从"选择哪个工具"变成"允许模型自主决定工具策略"
  2. 新增 programmable 配置块:你需要为每个工具定义后处理逻辑
  3. 流式处理:可以在工具执行过程中就开始规划下一步,而不必等完整输出

对于新开发者,建议直接从 Responses API 入手——它完全支持 GPT-5.6 的所有新特性。