主流 LLM API 风格详解:Chat Completions、Messages 与 Responses

目前主流大模型 API 大致有三种风格:OpenAI 的 Chat Completions / Responses(新版本)和 Anthropic 的 Messages
很多模型平台同时兼容三种格式,本质上是为了兼容不同生态。

Chat Completions:传统聊天接口

Chat Completions 是目前兼容性最广的 API 风格,核心就是:

历史消息 → 模型 → 下一条 Assistant 消息

请求通常是:

{
    "model": "xxx",
    "messages": [{ "role": "user", "content": "你好" }]
}

它的核心抽象是 Message。开发者需要自己保存完整的聊天记录,每次请求时重新提交 messages。Function Calling、图片、音频等能力也是围绕 Message 扩展。

因此,它非常适合普通聊天、文本生成和现有应用接入。目前大量国产模型和第三方平台都提供 OpenAI Chat Completions 兼容接口。

Messages:Anthropic 风格的聊天接口

Messages API 与 Chat Completions 本质上属于同一类接口:

历史消息 → 模型 → Assistant 消息

最大的区别不是能力,而是数据模型。Anthropic 更强调 Content Block,一条消息可以由文本、图片、工具调用、工具结果等多个内容块组成:

Message
 ├── Text
 ├── Image
 ├── Tool Use
 └── Tool Result

因此,Messages 更适合统一表达多模态和工具调用。但从业务开发角度看,它和 Chat Completions 没有本质革命:两者都是以“聊天消息”为核心的 API,只是协议设计不同。

Responses:面向模型执行和 Agent

Responses API 才是真正改变了 API 的抽象层级。

Chat Completions 可以理解为:

messages → Assistant Message

而 Responses 更像:

input → 模型执行 → Response

一次 Response 不只是生成一段文本,还可能包含:

Response
 ├── Message
 ├── Reasoning
 ├── Function Call
 ├── Web Search
 ├── File Search
 └── Computer Use

也就是说,它的核心对象不再是 Message,而是一次完整的 模型执行结果。Responses 还支持通过 previous_response_id 或 Conversation 管理多轮上下文,并提供 Web Search、File Search、Code Interpreter、Computer Use、MCP 等 Agent 能力。OpenAI 将其定位为面向新一代 Agent 应用的统一 API,并推荐新项目优先使用 Responses。

总结

三者可以简单理解为:

API 核心抽象 定位
Chat Completions Message 传统聊天 API
Messages Message + Content Block Anthropic 聊天 API
Responses Response + Output Items Agent / 模型执行 API

所以,Chat Completions 和 Messages 主要是协议生态差异,可以归为同一类;Responses 则是从“生成一条消息”升级为“执行一次模型任务”。

对于普通 LLM 应用,Chat Completions 仍然最简单、兼容性最好;对于多工具调用、推理、多轮任务和 Agent,新项目更适合采用 Responses API。

如果你有魔法,你可以看到一个评论框~