Featured image of post OpenAI Responses API与Chat Completions API区别详解

OpenAI Responses API与Chat Completions API区别详解

对比 OpenAI Responses API 与 Chat Completions API 的核心差异、能力边界、迁移成本与选型建议

一句话结论

Chat Completions 是传统的“聊天消息补全”接口:调用方自己维护完整的消息历史,模型按输入生成一条 assistant 回复。Responses 是 OpenAI 推出的新一代统一接口:不仅支持生成回复,还内置工具调用、Agent 循环、会话状态管理和结构化输出 Item,为构建 Agent 应用而生。

核心区别总览

维度Chat CompletionsResponses
端点POST /v1/chat/completionsPOST /v1/responses
输入格式messages[] 数组(客户端维护完整对话历史)input(可以是字符串或消息数组),支持通过 previous_response_id 让服务端管理历史
系统提示放在 messages 中的 role: "system"独立的顶层 instructions 字段
输出格式choices[],每项包含 messageoutput[],一组类型化 Item(messagefunction_callreasoning 等)
内置工具仅自定义函数调用原生支持 web_searchfile_searchcode_interpretercomputer_use、MCP、图像生成等
Agent 循环单次请求通常只完成一轮工具调用一次请求内模型可多次调用工具,形成 Agent 循环
状态管理无状态,客户端手动维护历史store: true 默认开启,服务端保存上下文;也支持加密推理 Item 实现无状态
推理模型推理 Token 暴露有限提供更完整的推理摘要与工具联动
流式输出delta 增量块类型化的 SSE 事件(按 type 分支处理)
多候选生成支持 n > 1 返回多个 choices已移除,只返回一个结果
Structured Outputresponse_formattext.format

协议结构差异

Chat Completions:消息数组驱动

客户端负责拼装完整对话上下文:

{
  "model": "gpt-4o",
  "messages": [
    { "role": "system", "content": "You are a helpful assistant." },
    { "role": "user", "content": "什么是 Responses API?" }
  ]
}

响应结构围绕 choices 展开:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Responses API 是..."
      }
    }
  ]
}

Responses:类型化 Item 驱动

输入更灵活,最简单可以直接传字符串:

{
  "model": "gpt-4o",
  "input": "什么是 Chat Completions API?"
}

也可以传入结构化消息并指定 instructions

{
  "model": "gpt-4o",
  "instructions": "You are a helpful assistant.",
  "input": [
    { "role": "user", "content": "帮我比较两个 API 的区别。" }
  ]
}

响应由一组类型化 Item 组成:

{
  "id": "resp_xxx",
  "output": [
    { "type": "reasoning", "summary": "..." },
    { "type": "message", "role": "assistant", "content": [{ "type": "output_text", "text": "..." }] }
  ]
}

工具调用与 Agent 能力

Chat Completions 中的工具调用

Chat Completions 支持 toolstool_calls,但逻辑是“一问一答”模式:模型返回 tool_calls 后,客户端需要执行工具、手动把结果追加回 messages,再发起下一次请求才能让模型继续。

适合场景:

  • 单次函数调用(查数据库、调用一个 API)
  • 简单的多轮对话机器人
  • 兼容现有生态的主流方案(大量第三方框架和推理服务以此为准)

Responses 中的 Agent 循环

Responses API 一次请求内可以完成多轮工具调用。模型可以搜索、读文件、执行代码、再推理,最终在一个响应中返回结果,客户端无需手动维护中间的工具调用状态。

示例:

{
  "model": "gpt-4o",
  "tools": [{ "type": "web_search" }, { "type": "code_interpreter" }],
  "input": "搜索今天的AI新闻,然后写一段 100 字的摘要"
}

适合场景:

  • 需要“搜索 + 总结”或“读文件 + 分析”的多步骤任务
  • Agent 工作流、自动化研究助手
  • 希望服务端托管上下文与工具执行的应用

会话状态管理

这是两者最实际的工程差异之一。

Chat Completions: 完全无状态。每一轮对话客户端都要把之前所有消息重新发送一遍。对话越长,每次请求的 Token 成本越高,客户端需要自己实现历史裁剪、摘要、缓存等逻辑。

Responses: 默认开启 store: true,服务端会保存对话上下文。后续请求只需传 previous_response_id 指向上一次的响应,服务端自动拼接历史:

{
  "model": "gpt-4o",
  "previous_response_id": "resp_xxx",
  "input": "继续刚才的话题"
}

如果担心数据隐私,可以使用 store: false 并利用加密推理 Item(Encrypted Reasoning Items)实现“无状态但保留推理上下文”的模式,适合 ZDR(Zero Data Retention)场景。

流式事件差异

Chat Completions 流式

返回一系列 delta 块,客户端拼接 delta.content 即可:

data: {"choices":[{"delta":{"content":"你"}}]}
data: {"choices":[{"delta":{"content":"好"}}]}
data: [DONE]

Responses 流式

返回一组按 type 区分的 SSE 事件,每个事件都有明确的生命周期:

event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"你"}

event: response.function_call_arguments.delta
data: {"type":"response.function_call_arguments.delta","delta":"..."}

event: response.completed
data: {"type":"response.completed"}

Responses 的事件粒度更细,能区分“文本开始”“工具参数流”“推理摘要”“响应完成”等阶段,适合构建更精确的 UI 反馈。

兼容性与迁移成本

方面说明
向后兼容Chat Completions 没有废弃计划,现有代码可继续使用
第三方兼容大量开源推理服务(vLLM、Ollama、各种国内模型)只实现了 Chat Completions 兼容协议;Responses 兼容目前仅限 OpenAI 官方和少数服务
迁移路径OpenAI 提供 migration guide,主要改动是把 messages 换成 input,系统提示提取到 instructionschoices 改为 output
SDK 支持OpenAI 官方 SDK 两条路径都支持;社区 SDK 大多以 Chat Completions 为主

判断标准: 如果你的应用需要部署到非 OpenAI 的模型服务(本地模型、第三方推理引擎),Chat Completions 是事实标准。如果只在 OpenAI 生态内构建,Responses 功能更完整。

选型建议

场景推荐
新项目、Agent 应用、需要内置工具Responses
兼容已有代码 / 只做简单文本补全Chat Completions
需要服务端托管对话状态、减少 Token 重复发送Responses
需要部署到第三方或本地推理服务Chat Completions
需要多候选生成(n > 1Chat Completions
需要完整推理摘要与工具联动Responses

总结

Chat Completions 和 Responses API 目前都在维护,没有废弃关系。核心区别不是“新旧替代”,而是定位不同:

  • Chat Completions 是通用的事实标准协议,兼容性最好,适合任何模型服务和简单对话场景。
  • Responses 是 OpenAI 为 Agent 时代设计的新一代接口,提供内置工具、Agent 循环、会话状态管理和更丰富的输出结构,适合在 OpenAI 生态内构建复杂智能体应用。

如果你在构建多步骤、需要工具协作的 Agent 应用,Responses API 能显著降低工程复杂度;如果你的核心需求是“调一个模型拿结果”,Chat Completions 依然是最简单、最兼容的选择。

最后修改于 Sep 07, 2026 18:50 +0800
使用 Hugo 构建
主题 StackJimmy 设计