Anthropic 风格 Messages API
Anthropic 风格代理路由适合已经发送 Anthropic Messages 请求,并希望由 AISIX 管理网关侧认证、模型别名、路由和策略的应用。
客户端保持 Anthropic 风格请求和响应格式。AISIX 成为客户端调用的端点,上游服务提供方可以是 Anthropic,也可以是其它受支持的服务提供方协议族。
本指南说明代理 API 行为。可运行的客户端集成请参见 Anthropic SDK。
客户端发送的内容
客户端会发送三个由 AISIX 管理的值:
- base URL 是 AISIX 网关 Origin,末尾不包含斜杠或端点路径。
- API Key 是 AISIX 调用方 API Key。
- model 值是 AISIX 模型别名,例如
claude-prod。
请求体保持 Anthropic Messages 格式,包括 messages、max_tokens、tools 和 stream。调用方使用 AISIX 调用方 API Key,而不是上游 Anthropic 服务提供方密钥。
对于会发送这种形态的客户端,AISIX 也接受 messages[] 中的 system role。当上游路径需要 Anthropic 原生格式时,AISIX 会将开头的 system messages 映射到 Anthropic 顶层 system 字段。
Anthropic SDK 会以 x-api-key 发送调用方 API Key。对于直接 HTTP 客户端,AISIX 也接受 Bearer Token。
导出以下示例使用的网关连接和请求值:
# AISIX_PROXY 末尾不含斜杠,也不包含 /v1 等端点路径。
# 本地快速入门使用 http://127.0.0.1:3000。
export AISIX_PROXY="YOUR_AISIX_GATEWAY_ORIGIN"
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
export AISIX_MODEL="claude-prod"
Messages 请求
通过 AISIX 发送 Messages 请求:
curl -sS -X POST "${AISIX_PROXY}/v1/messages" \
-H "x-api-key: ${AISIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "'"${AISIX_MODEL}"'",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Say hello from AISIX."
}
]
}'
成功响应使用 Anthropic Messages 格式。请求中的 model 值是 AISIX 模型别名,不一定是上游服务提供方模型 ID。
选择上游路径
与其它 AISIX 代理 API 一样,/v1/messages 让客户端请求格式在上游服务提供方变化时保持稳定。对于 Anthropic 风格请求,上游选择很重要,因为 Anthropic 上游模型会比转换后的上游保留更多 Anthropic 专属行为。
| 上游路径 | 能提供什么 | 适用场景 |
|---|---|---|
| Anthropic 上游模型 | 原生 Anthropic 请求和响应行为,同时由 AISIX 处理调用方 API Key、服务提供方密钥和模型别名。 | 应用依赖 thinking blocks、图片块、缓存控制或精确工具使用语义等 Anthropic 专属行为。 |
| 转换后的上游 | 客户端侧保持 Anthropic 风格,AISIX 背后接入非 Anthropic 上游。 | 应用需要保持 Anthropic 风格客户端,同时由 AISIX 将流量路由到另一个受支持服务提供方协议族。 |
转换路径端到端支持文本、视觉和工具调用流程。text、image(base64 和 URL)以及 document 块会转换为上游线路上的多模态内容部分。assistant 的 tool_use 历史会变成上游工具调用,tool_result 块会变成上游期望的工具响应轮次,因此多轮工具循环能够跨服务提供方保留历史。
thinking 和 redacted_thinking 历史块在转换时会被丢弃,因为其他厂商无法重放 Anthropic 的签名推理块。当应用依赖这些推理块或其他服务提供方专属请求字段时,建议优先使用 Anthropic 上游模型。