目前主流大模型 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。