跳到主要内容

Anthropic Messages API (原生协议)

通过 Anthropic 原生 /v1/messages 接口调用 Claude 系列模型。

选择协议

Claude 模型同时支持两种协议:

  • 本页面 — Anthropic 原生协议 (/v1/messages),适合已有 Anthropic SDK 集成的项目
  • OpenAI 协议 — 查看聊天补全 (OpenAI 协议),适合统一调用多厂商模型

请求

POST https://api.clawdrouter.com/v1/messages

请求头

名称必填类型说明
x-api-keystring你的 API Key
anthropic-versionstringAPI 版本,如 2023-06-01
Content-Typestringapplication/json
认证方式

Anthropic 原生协议使用 x-api-key 请求头进行认证(而非 Authorization: Bearer),与 Anthropic 官方 API 保持一致。

请求体

参数类型必填默认值说明
modelstring模型标识,参考模型列表
messagesarray对话消息列表
max_tokensinteger生成的最大 Token 数
systemstring系统提示词
streambooleanfalse是否启用流式输出(SSE)
temperaturenumber1采样温度,取值 0~1
top_pnumber核采样参数
top_kinteger仅采样概率最高的前 K 个 Token
stop_sequencesarray停止序列列表
toolsarray工具定义列表
tool_choiceobject工具调用控制
metadataobject请求元数据,如 user_id

Messages 格式

[
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!有什么可以帮助你的?"},
{"role": "user", "content": "介绍一下量子计算"}
]

content 支持字符串和数组两种格式:

{
"role": "user",
"content": [
{"type": "text", "text": "描述这张图片"},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "base64_encoded_data..."
}
}
]
}

请求示例

基础请求

curl https://api.clawdrouter.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "你好,请介绍一下你自己"}
]
}'

带系统提示词

curl https://api.clawdrouter.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": "你是一个专业的翻译助手,将中文翻译为英文。",
"messages": [
{"role": "user", "content": "今天天气真好"}
]
}'

流式请求

curl https://api.clawdrouter.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-N \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"stream": true,
"messages": [
{"role": "user", "content": "写一首关于春天的诗"}
]
}'

响应

非流式响应

{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{
"type": "text",
"text": "你好!我是 Claude,一个 AI 助手。很高兴认识你!有什么我可以帮助你的吗?"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 58,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
}

响应字段说明

字段类型说明
idstring消息唯一标识
typestring固定为 message
rolestring固定为 assistant
modelstring实际使用的模型
contentarray回复内容列表,每项包含 typetext
stop_reasonstring停止原因:end_turn(正常结束)/ max_tokens(达到上限)/ stop_sequence(命中停止序列)/ tool_use(调用工具)
usageobjectToken 用量统计

流式响应

流式模式下,响应以 SSE 格式返回多个事件:

event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx","type":"message","role":"assistant","model":"claude-sonnet-4-6","content":[],"stop_reason":null,"usage":{"input_tokens":12,"output_tokens":0}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"你好"}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"!"}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":58}}

event: message_stop
data: {"type":"message_stop"}

使用 Anthropic Python SDK

pip install anthropic
import anthropic

client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.clawdrouter.com",
)

# 基础调用
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "用简单的话解释量子计算"}
],
)
print(message.content[0].text)

流式调用

with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "写一篇关于人工智能的短文"}
],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

带系统提示词

message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是一个专业的代码审查专家。",
messages=[
{"role": "user", "content": "请帮我审查这段 Python 代码的安全性"}
],
)

使用 Anthropic Node.js SDK

npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.clawdrouter.com",
});

async function main() {
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "你好,请介绍一下你自己" },
],
});

console.log(message.content[0].text);
}

main();

与 OpenAI 协议的对比

对比项OpenAI 协议Anthropic 原生协议
端点/v1/chat/completions/v1/messages
认证头Authorization: Bearer KEYx-api-key: KEY
系统提示词放在 messagesrole: "system"独立的 system 参数
响应格式choices[0].message.content (string)content[0].text (array)
停止原因finish_reasonstop_reason
Token 统计prompt_tokens / completion_tokensinput_tokens / output_tokens
支持的模型所有厂商仅 Claude 系列