模型能力

与 Chat Completions API 对比

查看 Markdown

Responses API 是与 xAI 模型交互的推荐方式。下面将它与旧版 Chat Completions API 进行对比:

功能Responses APIChat Completions API(已弃用)
有状态对话通过 previous_response_id无状态:必须重新发送完整历史
服务端存储响应存储 30 天不存储,需要自行管理历史
推理模型完整支持加密推理内容不返回推理内容
智能体工具原生支持工具(搜索、代码执行、MCP)仅支持函数调用
计费优化自动缓存对话历史每个请求都按完整历史计费
未来功能所有新能力优先在此提供旧版端点,更新有限

主要 API 变化

参数映射

Chat CompletionsResponses API说明
messagesinput消息对象数组
max_tokensmax_output_tokens要生成的最大 token 数
previous_response_id继续已存储的对话
store控制服务端存储(默认值:true
include请求其他数据,例如 reasoning.encrypted_content

响应结构

两个 API 的响应格式不同:

Chat Completionschoices[0].message.content 中返回内容:

JSON

{
  "id": "chatcmpl-123",
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Hello! How can I help you?"
    }
  }]
}

Responses APIoutput 数组中返回带类型的项目:

JSON

{
  "id": "resp_123",
  "output": [{
    "type": "message",
    "role": "assistant",
    "content": [{
      "type": "output_text",
      "text": "Hello! How can I help you?"
    }]
  }]
}

多轮对话

使用 Chat Completions 时,每个请求都必须重新发送完整对话历史。使用 Responses API 时,可以通过 previous_response_id继续对话:

Python

# First request
response = client.responses.create(
    model="grok-4",
    input=[{"role": "user", "content": "What is 2+2?"}],
)

# Continue the conversation - no need to resend history
second_response = client.responses.create(
    model="grok-4",
    previous_response_id=response.id,
    input=[{"role": "user", "content": "Now multiply that by 10"}],
)

迁移路径

从 Chat Completions 迁移到 Responses API 很直接。下面介绍各 SDK 的代码更新方式:

Vercel AI SDK

xai() 替换为 xai.responses() 中返回内容:

JavaScript

  model: xai('grok-4'),
  model: xai.responses('grok-4'),

OpenAI SDK(JavaScript)

client.chat.completions.create 替换为 client.responses.create,并将 messages 替换为 input 中返回内容:

JavaScript

const response = await client.chat.completions.create({
const response = await client.responses.create({
    messages: [
    input: [
        { role: "user", content: "Hello!" }
    ],
});

OpenAI SDK(Python)

client.chat.completions.create 替换为 client.responses.create,并将 messages 替换为 input 中返回内容:

Python

response = client.chat.completions.create(
response = client.responses.create(
    messages=[
    input=[
        {"role": "user", "content": "Hello!"}
    ],
)

cURL

将端点从 /v1/chat/completions 替换为 /v1/responses,并将 messages 替换为 input 中返回内容:

Bash

curl https://api.x.ai/v1/chat/completions \
curl https://api.x.ai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{ "model": "grok-4", "messages": [{"role": "user", "content": "Hello!"}] }'
  -d '{ "model": "grok-4", "input": [{"role": "user", "content": "Hello!"}] }'

这适用于大多数使用场景。如果有特殊集成,请参阅 Responses API 文档获取详细指导。


最后更新:2026 年 5 月 16 日