OpenAI Responses API Agents API Programmatic Tool Calling Function Calling Tool Search

OpenAI 程序化工具调用:用 JavaScript 编排工具

来源: OpenAI API 文档 — Programmatic Tool Calling 说明: 本文是基于 OpenAI 官方文档整理的中文译介,保留原文技术结构与关键示例。API 能力可能更新,请以官方文档为准。 程序化工具调用(Programmatic Tool Calling)允许模型编写并运行 JavaScript 来协调可用工具。生成的程序可以并发调用工具、使用循环和条件、组合中间结果,再向模型返回一个更小的最终结果,而不是把每一份原始输出都塞回模型上下文。 这特别适合控制流可预测的多工具阶段,以及中间数据量很大的任务。在 Responses API 中,应用决定是否开放该能力,以及每个工具可被直接调用、程序调用或两者皆可。客户端函数依然由应用执行。在 Agents API 中,这项能力默认开启,托管框架会负责 Agent 循环。 启用前应查看最新模型页面,确认所选模型当前支持该能力。 运行时环境 每段生成的程序都在一个全新、隔离的 V8 运行时中执行。它支持 JavaScript 和顶层 await,但不是 Node.js。运行时不提供: 安装包; 直接网络访问; 通用文件系统; 子进程执行; 控制台; 跨程序执行持久化的 JavaScript 状态。 程序只能通过请求中启用的工具访问外部系统,并用 text(...) 或 image(...) 输出结果。 Responses API 可以在不使用持久代码容器的情况下,将程序化工具调用用于零数据保留(ZDR)工作流。但组织或项目必须已经启用 ZDR;store: false 只代表无状态续传,并不会自行开启 ZDR。实际保留资格取决于完整请求,包括模型、工具和第三方服务。 何时适合使用 当一个阶段的控制流可预测,而且代码能够把多份中间输出压缩为较小的结构化结果时,程序化编排最有价值。 任务形态 推荐方式 单次查询或操作 直接工具调用 过滤、连接、排序、去重、聚合或校验多份结果 程序化工具调用 数据流可预测的依赖调用 程序化工具调用,并明确限制与失败行为 每个结果都会影响下一步判断的自适应搜索或语义评估 直接工具调用 写操作或需要审批的动作 默认直接调用,保留清晰授权边界 最终引用或原生制品校验 默认直接调用;除非程序能保留并验证所有必需项 真正的分界线是“是否需要重新判断”。确定性的协调和缩减适合交给代码;如果每个结果都会改变下一步的语义决策,就应让模型重新参与。 ...

2026年9月11日 · 5 分钟 · 883 字 · OpenAI