API 参考
Messages(Anthropic 协议)
POST /v1/messages 的请求字段与响应结构,以及用 Anthropic 协议调用任意厂商模型时的行为。
POST https://api.tokrouter.dev/v1/messages
x-api-key: sk-…
anthropic-version: 2023-06-01
Content-Type: application/json请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 id;可以是任意厂商的模型 |
max_tokens | integer | 是 | Anthropic 协议要求必填 |
messages | array | 是 | role 为 user / assistant,内容可以是字符串或内容块数组 |
system | string / array | 否 | 系统提示词(与 OpenAI 的 messages[0].role=system 等价) |
stream | boolean | 否 | SSE 流式 |
temperature | number | 否 | |
tools | array | 否 | Anthropic 形态的工具定义 |
stop_sequences | array | 否 |
curl https://api.tokrouter.dev/v1/messages \
-H "x-api-key: $TOKROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 512,
"system": "你是一个简洁的助手",
"messages": [{"role": "user", "content": "你好"}]
}'响应
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "claude-opus-5-5",
"content": [{"type": "text", "text": "你好"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 14, "output_tokens": 3}
}与 OpenAI 协议的差异
| 差异点 | Anthropic | OpenAI |
|---|---|---|
| 系统提示词 | 顶层 system | messages 里的 system 角色 |
| 输出上限 | max_tokens 必填 | 可选 |
| 响应文本位置 | content[0].text | choices[0].message.content |
| 鉴权头 | x-api-key | Authorization: Bearer |
用 Anthropic 协议调用非 Anthropic 模型时,响应仍然是 Anthropic 结构 —— 客户端不需要按厂商分支。