Anthropic Messages API

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/messagesAnthropic 风格 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 客户端统一解析。

后续阅读

后续阅读