Responses API

OpenAI 面向推理、多模态输入、工具调用和多轮状态的新一代统一响应接口。

#type / resource #status / growing #tech / ai #resource / openai #interface / api

Responses API

核心模型

Responses API 把一次模型运行表示为结构化的 response。输入与输出不再只是一串 role/content 消息:输出可以包含文本消息、推理项、函数调用、托管工具调用及其结果等不同 item。

这种对象模型的价值在于:应用不必把所有能力压缩进聊天文本,而能明确处理模型输出、工具协议、状态续接和结构化结果。

典型执行循环

  1. 应用提交 instructions、input、model 和可用 tools。
  2. 模型直接返回结果,或产生一个/多个工具调用 item。
  3. 应用验证参数、执行自管函数或接受托管工具结果。
  4. 应用把工具输出与正确的 call ID 关联后继续 response。
  5. 达到终止条件后读取最终消息,并记录 usage、错误和 trace 信息。

状态策略

  • 显式历史:应用保存必要的 input/output items 并在后续请求重放,控制力强。
  • previous_response_id:让后续响应引用先前响应,简化多轮续接。
  • 无状态或受限保留:对隐私、ZDR 或合规要求较高的工作流,应按官方说明选择存储配置并保留必要的加密推理项。

状态续接不是业务事实存储。用户资料、审批状态、订单结果和知识库版本仍应存放在应用自己的数据库或审计日志中。

工具边界

工具描述要写清输入、返回结构与错误语义;应用必须执行权限检查、参数校验、超时、幂等和审计。模型提出调用不等于调用已经被授权,尤其是写入、支付、发送和删除操作。

最小实现骨架

from openai import OpenAI

client = OpenAI()
response = client.responses.create(
    model="<从官方模型目录选择>",
    instructions="只根据已提供证据回答。",
    input="总结这份材料。",
)
print(response.output_text)

示例故意不固定模型版本。生产代码应通过配置选择模型,并用评估集验证升级。

常见误区

  • 只读取第一个 output item,遗漏工具调用或其他结构化输出。
  • 把 response ID 当作永久数据库主键或业务状态唯一来源。
  • 对副作用工具无限自动重试,导致重复写入。
  • 迁移接口时只改 URL,不重新验证提示词、输出解析和工具循环。

相关笔记

官方资料

创建于 2026/8/8 更新于 2026/8/8