技术分享2026年9月4日

message 和 response 有什么区别?看 OpenAI 和 Anthropic 的 API 就明白了

从真实接口出发,看懂大模型应用是怎么被接起来的 很多人看大模型发布,第一反应是看模型能力、上下文长度、价格。 但真正做应用时,另一个问题往往更关键: 这个模型提供什么样的 API? 因为接口决定了: 你怎么把模型接进产品 怎么组织上下文 怎么做多轮对话 怎么调用工具 怎么拿到结构化结果 最...

#message#response

从真实接口出发,看懂大模型应用是怎么被接起来的


很多人看大模型发布,第一反应是看模型能力、上下文长度、价格。

但真正做应用时,另一个问题往往更关键:

这个模型提供什么样的 API?

因为接口决定了:

  • 你怎么把模型接进产品
  • 怎么组织上下文
  • 怎么做多轮对话
  • 怎么调用工具
  • 怎么拿到结构化结果

最近 DeepSeek v4 pro 发布,也再次把“接口形态”这件事带到台前。对普通读者来说,message、response 这些词听起来很抽象;但如果你直接去看 OpenAI 和 Anthropic 的 API,就会发现它们其实很好理解。

这篇文章就结合两家的真实接口形式,讲清楚:

  • message 是什么
  • response 是什么
  • 为什么 OpenAI 要推出新的 Responses API
  • 为什么大模型接口正在从“聊天接口”走向“任务接口”

一、先说结论:message 更像“对话记录”,response 更像“任务结果”

最简单的区分方式是:

  • message:更像一条条对话内容
  • response:更像一次完整调用的返回结果

如果用一句话类比:

message 是“你们聊了什么”; response 是“这次模型处理完以后返回了什么”。

这也是 OpenAI 和 Anthropic API 设计里非常重要的差异。


二、Anthropic 的 Messages API:最典型的 message 接口

先看 Anthropic。

Anthropic 的 Claude API,很典型的接口就是 Messages API。

它的思路非常直观:

你把一段对话,以 messages 的形式发给模型; 模型再返回一条 assistant message。

一个典型请求大概长这样

{
  "model": "claude-opus-4-1",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "帮我解释一下什么是 MCP"
    }
  ]
}

这里的核心是 messages 字段。

它不是一句话,而是一个消息数组。

每条消息都有自己的角色:

  • user:用户输入
  • assistant:模型之前的回复
  • system:系统指令,通常用于约束行为

如果是多轮对话,就会变成这样

{
  "model": "claude-opus-4-1",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "MCP 是什么?"
    },
    {
      "role": "assistant",
      "content": "MCP 是一种让大模型连接外部工具和数据源的协议。"
    },
    {
      "role": "user",
      "content": "那它和 function calling 有什么区别?"
    }
  ]
}

你可以看到,这种方式本质上就是:

把整段对话历史,每次都发给模型。

这就是最典型的 message 接口形态。


三、OpenAI 的 Chat Completions API:也是 message 思路

OpenAI 早期最经典的接口,就是 Chat Completions API。

它和 Anthropic 的 Messages API 很像,核心也是 messages。

一个典型请求长这样

{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "你是一个解释技术概念的助手"
    },
    {
      "role": "user",
      "content": "什么是 Agent Skill?"
    }
  ]
}

返回结果里,通常会拿到:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Agent Skill 是一种把任务方法、模板、工具调用方式封装起来的能力包。"
      }
    }
  ]
}

你会发现它和 Anthropic 很像。

本质上都是:

  • 你传 messages
  • 模型返回一个 assistant message

所以,Anthropic Messages API 和 OpenAI Chat Completions API,都属于 message 接口形态。


四、message 接口的优点和问题

message 接口最大的优点,是简单直观。

它特别适合:

  • 聊天
  • 问答
  • 简单多轮对话
  • 教学型产品

但它的问题也很明显。

1. 每次都要自己传完整上下文

比如你现在做第 5 轮对话,就要把前面 4 轮都发过去。

这在小应用里没问题,但在复杂应用里会很麻烦。

2. 它更像“对话接口”,不太像“任务接口”

如果模型只是聊天,message 很好用。

但如果模型要做这些事:

  • 调用工具
  • 查网页
  • 执行代码
  • 读文件
  • 生成结构化结果
  • 维持任务状态

你会发现,message 接口表达起来就越来越别扭。


五、OpenAI 为什么要推出 Responses API

这时候,就能理解 OpenAI 为什么要推出 Responses API 了。

Responses API 的核心变化,是把一次模型调用,不再仅仅看成“返回一条消息”,而是看成一次更完整的任务执行结果。

一个典型 Responses API 请求大概长这样

{
  "model": "gpt-5.5",
  "instructions": "你是一个擅长写技术科普的助手",
  "input": "帮我解释一下 Agent Skill 是什么"
}

返回结果不只是一个 message,而是一个更完整的 response 对象,里面可能包含:

  • 输出文本
  • 工具调用结果
  • 结构化内容
  • token 使用情况
  • 状态信息
  • 可继续追加的上下文标识

也就是说,Responses API 更强调:

这次调用到底完成了什么,而不是只返回一句话。


六、Responses API 和 Chat Completions API 的区别

你可以这样理解:

Chat Completions API

关注的是:

  • 给你什么 messages
  • 返回什么 message

Responses API

关注的是:

  • 这次任务怎么处理
  • 处理结果是什么
  • 中间发生了什么
  • 后续怎么接着做

一句话总结:

Chat Completions 是“聊天接口”,Responses 是“任务接口”。


七、为什么说 response 更像“任务结果”

看一个更实际的例子。

假设你让模型做这件事:

  • 总结一份 PDF
  • 提取 5 个要点
  • 生成一个 JSON
  • 如果有不清楚的地方继续追问
  • 顺便调用搜索工具补资料

这类任务,如果还用传统 message 来表达,会很别扭。

因为它已经不是“你一句我一句”的聊天了,而是一次带状态、带工具、带结构的任务执行。

response 这种接口形态,就更适合承载这类场景。


八、OpenAI 新接口为什么还强调会话和状态

你刚才问的那个点,正是 Responses API 的关键变化之一。

以前很多开发者调用 Chat Completions 时,习惯方式是:

每次请求都把前面的 messages 全部重新发一遍。

这就像每次打电话都重新自我介绍一遍。

而 Responses API 开始把一些上下文管理能力往服务端挪。

我看到的 OpenAI 公开规范里,已经能看到这些设计:

  • previous_response_id
  • conversation
  • store

这意味着开发者可以更方便地把后续调用和前面的响应、会话关联起来,而不是总是手工拼接所有历史消息。

更准确地说:

OpenAI 正在把“对话上下文”从客户端手工拼接,部分转移到服务端管理。

这也是为什么它更像“任务接口”,而不是单纯“聊天接口”。


九、Anthropic 为什么还坚持以 message 为主

Anthropic 的 Messages API 仍然非常典型,甚至可以说是 message 接口形态最清晰的代表之一。

原因在于:

  • Claude 最初就非常强调对话体验
  • message 结构天然适合聊天和指令跟随
  • 对很多应用来说,message 已经足够清晰
  • Anthropic 后续是在这个基础上继续增加工具调用、文件、agent 能力,而不是彻底推翻它

这说明一件事:

message 并没有过时,只是它不再是唯一答案。


十、如果用一句最通俗的话来区分 message 和 response

你可以这样记:

message

像“你发给模型的每一句话”。

response

像“模型这次任务处理完以后,给你的完整回包”。

再简单一点:

  • message 管“聊什么”
  • response 管“做完以后返回什么”

十一、这对开发者和企业意味着什么

对开发者

如果你只会写 Prompt,还停留在“怎么问模型”。

但一旦进入应用开发,你必须开始理解:

  • 请求怎么组织
  • 上下文怎么传
  • 工具怎么接
  • 结果怎么解析
  • 状态怎么续接

这时,接口比 Prompt 更接近真正的工程问题。

对企业

企业接 AI,不只是接一个模型能力,更是接一套接口协议。

接口是否支持:

  • 多轮上下文
  • 工具调用
  • 文件输入
  • 结构化输出
  • 状态恢复
  • 会话管理

会直接决定 AI 能不能真正进入业务系统。


十二、结尾:接口的变化,说明大模型正在从聊天工具变成应用基础设施

很多人看大模型,会先看模型能力。

但在真实世界里,模型强不强只是第一步。

更重要的是:

它能不能被方便地接入产品、流程和系统。

从这个角度看,接口不是技术细节,而是大模型走向应用的基础设施。

Anthropic 的 Messages API 和 OpenAI 的 Chat Completions API,让我们学会了怎么和模型聊天; OpenAI 的 Responses API,则让我们开始学会怎么把模型接进任务和系统。

这也是为什么,DeepSeek v4 pro 支持多种接口形态,会被值得关注。

因为它说明大模型竞争,已经不只是“谁更会回答”,而是“谁更容易被接进真实世界”。