文档导航
API 与协议

Claude Messages

使用 Anthropic Messages 协议调用 Claude 模型。

本页目录
  1. 先分清地址和认证
  2. 第一步:准备 Key 和 Claude 模型
  3. 第二步:发送最小 Messages 请求
  4. 第三步:读取响应
  5. 第四步:使用 Python Anthropic SDK
  6. 第五步:使用 Node.js Anthropic SDK
  7. 第六步:增加 system 指令
  8. 第七步:配置 Claude Code
  9. 完成检查
  10. 常见错误

Claude 模型可以通过 Anthropic Messages 协议调用。Claude Code 也使用这套协议,因此建议先把本页最小请求跑通,再配置 Claude Code。

先分清地址和认证

项目 填写内容
服务根地址 https://api.zcloudapi.com
Messages 接口 https://api.zcloudapi.com/v1/messages
API Key Header x-api-key: sk-你的-ZCloudAPI-Key
Anthropic 版本 anthropic-version: 2023-06-01

直接调用 Messages API 时使用完整接口 https://api.zcloudapi.com/v1/messages。配置 Claude Code 时,ANTHROPIC_BASE_URL 只填 https://api.zcloudapi.com,Claude Code 会自己拼接路径。

第一步:准备 Key 和 Claude 模型

macOS / Linux:

export ZHICLOUD_API_KEY="sk-你的-ZCloudAPI-Key"

Windows PowerShell:

$env:ZHICLOUD_API_KEY="sk-你的-ZCloudAPI-Key"

查询模型:

curl "https://api.zcloudapi.com/v1/models" \
  -H "Authorization: Bearer $ZHICLOUD_API_KEY"

从 data[].id 中复制一个 Claude 模型。下面以 claude-sonnet-4-6 为例。

第二步:发送最小 Messages 请求

macOS / Linux:

curl -i "https://api.zcloudapi.com/v1/messages" \
  -H "x-api-key: $ZHICLOUD_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 64,
    "messages": [
      {"role": "user", "content": "只回复:Claude 连接成功"}
    ]
  }'

Windows PowerShell:

$body = @{
  model = "claude-sonnet-4-6"
  max_tokens = 64
  messages = @(
    @{ role = "user"; content = "只回复:Claude 连接成功" }
  )
} | ConvertTo-Json -Depth 5

curl.exe -i "https://api.zcloudapi.com/v1/messages" `
  -H "x-api-key: $env:ZHICLOUD_API_KEY" `
  -H "anthropic-version: 2023-06-01" `
  -H "content-type: application/json" `
  -d $body

成功时状态码为 200。

第三步:读取响应

典型响应:

{
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Claude 连接成功"
    }
  ],
  "usage": {
    "input_tokens": 22,
    "output_tokens": 8
  }
}

处理方式:

  1. 遍历 content 数组。
  2. 对 type: text 的项读取 text。
  3. 对工具调用等其他类型单独处理,不要当作普通文本。
  4. 从 usage.input_tokens 和 usage.output_tokens 读取用量。

第四步:使用 Python Anthropic SDK

  1. 安装 SDK:
python -m pip install --upgrade anthropic
  1. 新建 claude_demo.py:
import os

from anthropic import Anthropic

client = Anthropic(
    api_key=os.environ["ZHICLOUD_API_KEY"],
    base_url="https://api.zcloudapi.com",
    timeout=60.0,
    max_retries=2,
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=64,
    messages=[
        {"role": "user", "content": "只回复:Claude 连接成功"},
    ],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

print(message.usage)
  1. 运行:
python claude_demo.py

第五步:使用 Node.js Anthropic SDK

  1. 安装 SDK:
npm install @anthropic-ai/sdk
  1. 新建 claude-demo.mjs:
import Anthropic from '@anthropic-ai/sdk'

const client = new Anthropic({
  apiKey: process.env.ZHICLOUD_API_KEY,
  baseURL: 'https://api.zcloudapi.com',
  timeout: 60_000,
  maxRetries: 2,
})

const message = await client.messages.create({
  model: 'claude-sonnet-4-6',
  max_tokens: 64,
  messages: [{ role: 'user', content: '只回复:Claude 连接成功' }],
})

for (const block of message.content) {
  if (block.type === 'text') console.log(block.text)
}

console.log(message.usage)
  1. 运行:
node claude-demo.mjs

第六步:增加 system 指令

Anthropic Messages 的系统指令使用顶层 system 字段,不要把它写成 role: system 消息:

{
  "model": "claude-sonnet-4-6",
  "system": "你是企业内部知识助手,只根据已提供资料回答。",
  "max_tokens": 256,
  "messages": [
    {"role": "user", "content": "总结这段资料。"}
  ]
}

基础对话成功后,再增加工具调用、图片内容块或流式输出。

第七步:配置 Claude Code

本页 curl 成功后,再进入「配置 Claude Code」。Claude Code 配置时要注意:

  • ANTHROPIC_BASE_URL=https://api.zcloudapi.com,不添加 /v1。
  • Key 放入 ANTHROPIC_AUTH_TOKEN。
  • 模型名从当前 Key 的 /v1/models 复制。
  • 修改环境变量后重新打开终端再启动 Claude Code。

完成检查

  • /v1/models 中能看到目标 Claude 模型。
  • /v1/messages 返回 200。
  • content 中有 type: text 的正文。
  • usage 有输入和输出 Token。
  • 控制台「使用日志」出现对应请求。

常见错误

现象 处理步骤
401 检查 x-api-key、Key 完整性和停用状态
404 直接调用使用 https://api.zcloudapi.com/v1/messages;Claude Code 根地址使用 https://api.zcloudapi.com
模型不存在 从 /v1/models 复制 Claude 模型名
按 choices 读取不到正文 Anthropic 响应读取 content,不是 OpenAI 的 choices
system 消息返回参数错误 把系统指令移到顶层 system 字段
curl 成功但 Claude Code 失败 继续检查 Claude Code 的环境变量、版本和冲突 Provider