Anthropic Messages API
/v1/messages endpoint、Anthropic 原生聊天、x-api-key 认证、facade 和 streaming。
Gateway 原生支持 Anthropic Messages protocol,因此 Claude Code、Claude CoWork 和 Claude Desktop 等客户端可通过与 OpenAI 兼容客户端相同的检查 pipeline。
Endpoint#
| 方法和路径 | 用途 |
|---|---|
| POST /v1/messages | Anthropic 风格 Messages;也可通过 facade 连接 OpenAI 风格 backend。 |
认证
Claude 客户端可使用:
- x-api-key: [key](console key);或
- Authorization: Bearer [key](OAuth 风格 token)。
Gateway 接受两者,按配置的认证模式处理,并向注册的 Claude backend 转发 anthropic-version: 2023-06-01 和解析后的 key(优先级 rule -> model -> global)。
标准请求
POST /v1/messages
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 4096,
"system": "You are a helpful assistant.",
"messages": [
{ "role": "user", "content": "Hello!" }
],
"stream": false
}响应使用标准 Anthropic schema,包括 content blocks、stop_reason 和 usage metadata。
模型协议元数据
每个注册模型带有 apiStyle:openai(默认)或 anthropic。
- claude- 开头的模型 ID 自动注册为 anthropic。
- 可在 Model Inventory 按模型修改协议。
Facades#
Gateway 可透明转换两种协议:
- Anthropic 客户端 -> OpenAI 模型:/v1/messages 转为 chat/completions,再将响应/SSE 转为 Messages 事件,如 content_block_delta。
- OpenAI 客户端 -> Claude backend:/v1/chat/completions 转为 Messages schema;system/developer 消息合并到初始 system;max_tokens 默认 4096;temperature 限定 0-1;响应转回 OpenAI 格式(tool_use -> tool_calls)。
两个方向都经过相同检查 pipeline;规则执行和语义层与协议无关。
Streaming#
stream: true 使用 Anthropic content_block_delta frame,逐 token 扫描。流中违规会以 guardrail_violation 错误事件终止 SSE;buffered 模式会在交付前扫描完整响应,违规返回 400。
错误格式
阻止请求返回 HTTP 400,并将错误转换为 Anthropic error schema;反向 facade 也会将 OpenAI 错误转为 Anthropic 格式,便于 Anthropic SDK 客户端统一解析。