文本Anthropic 格式
Messages
创建消息 — 完全兼容 Anthropic Claude Messages API,支持流式、工具调用、思考(Thinking)、提示缓存等
根据对话历史创建 Claude 模型响应。完全兼容 Anthropic 原生 Messages API,支持流式 / 非流式响应、工具调用(Tool Use)、思考输出(Extended Thinking)、提示缓存(Prompt Caching)、内置 Web Search 工具等能力。
| 项目 | 值 |
|---|---|
| 请求方法 | POST |
| 请求路径 | /v1/messages |
| 完整 URL | https://api.amux.ai/v1/messages |
| 请求格式 | application/json |
| 响应格式 | JSON 或 SSE(stream=true 时) |
本接口完全对齐 Anthropic Messages 协议,可直接使用 @anthropic-ai/sdk 或 Python 版 anthropic SDK 调用,仅需替换 baseURL 与 API Key。
请求头
Prop
Type
请求体参数
Prop
Type
透传策略:amux-api 对未在上方列出的字段会原样透传至上游 Anthropic / 兼容渠道。temperature 等未传值时由上游自行使用其默认值,amux-api 不在网关层强制填充默认值。
Message 结构
Prop
Type
ContentBlock 类型
content 数组中每个元素的 type 字段决定其结构:
Prop
Type
所有内容块均可附加 cache_control: { "type": "ephemeral" } 以启用提示缓存。
Tool 结构
Prop
Type
内置 Web Search 工具
Prop
Type
ToolChoice 结构
Prop
Type
Thinking 结构
Prop
Type
请求示例
curl https://api.amux.ai/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AMUX_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "你好,请用一句话介绍 Amux API。"}
]
}'import os
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.amux.ai",
api_key=os.environ["AMUX_API_KEY"],
)
message = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system="You are a helpful assistant.",
messages=[
{"role": "user", "content": "你好,请用一句话介绍 Amux API。"}
],
)
print(message.content[0].text)import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
baseURL: 'https://api.amux.ai',
apiKey: process.env.AMUX_API_KEY,
});
const message = await client.messages.create({
model: 'claude-sonnet-4-5',
max_tokens: 1024,
system: 'You are a helpful assistant.',
messages: [
{ role: 'user', content: '你好,请用一句话介绍 Amux API。' },
],
});
console.log((message.content[0] as { type: 'text'; text: string }).text);const stream = await client.messages.create({
model: 'claude-sonnet-4-5',
max_tokens: 1024,
messages: [{ role: 'user', content: '写一首关于春天的诗' }],
stream: true,
});
for await (const event of stream) {
if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
process.stdout.write(event.delta.text);
}
}响应示例
{
"id": "msg_01XXXXXXXXXXXXXXXXXXXXXX",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-5",
"content": [
{
"type": "text",
"text": "Amux API 是一个统一、稳定的企业级大模型接口网关。"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 24,
"output_tokens": 18,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
}响应字段
Prop
Type
Usage 字段
Prop
Type
流式响应
stream=true 时使用 SSE 格式按事件推送:
event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx","type":"message","role":"assistant","model":"claude-sonnet-4-5","content":[],"stop_reason":null,"usage":{"input_tokens":24,"output_tokens":1}}}
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":"Amux"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" API"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":18}}
event: message_stop
data: {"type":"message_stop"}常见事件:
| 事件 | 说明 |
|---|---|
message_start | 消息开始,含初始 usage(input_tokens 等) |
content_block_start | 新内容块开始(含 index 与初始 content_block) |
content_block_delta | 内容块增量(delta.type 可为 text_delta / input_json_delta / thinking_delta / signature_delta) |
content_block_stop | 内容块结束 |
message_delta | 消息级增量(更新 stop_reason 与累计 usage) |
message_stop | 消息结束 |
ping | 保活心跳 |
error | 流式过程中的错误事件 |
错误响应
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "..."
}
}| HTTP 状态码 | 含义 |
|---|---|
200 | 请求成功 |
400 | 请求参数错误(invalid_request_error) |
401 | API 密钥无效或缺失(authentication_error) |
403 | 权限不足(permission_error) |
404 | 模型不存在(not_found_error) |
413 | 请求体过大(request_too_large) |
429 | 触发速率限制或额度不足(rate_limit_error) |
500 / 502 / 529 | 服务端异常或上游过载 |