# Anthropic Messages 接口

https://modelportal.ai/docs/anthropic-messages?lang=zh

Anthropic 兼容接口让 Claude Code 和 Anthropic SDK 不改代码就能接入，可以调用目录里的任意文本模型，不限于 Claude。

## 接入

- 基础地址填 `https://modelportal.ai`，不带 `/v1`；SDK 会自己拼出 `https://modelportal.ai/v1/messages`。
- 密钥放在 `x-api-key` 请求头，或 `Authorization: Bearer`。
- `/anthropic/*` 下的旧地址已停用，返回 410，错误信息指向新地址。

```python
import anthropic

client = anthropic.Anthropic(base_url="https://modelportal.ai", api_key="YOUR_API_KEY")
message = client.messages.create(
    model="MODEL_ID",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}],
)
print(message.content[0].text)
```

## 与 OpenAI 格式不同的地方

- `max_tokens` 必填。
- 支持 `thinking`、工具调用和 `cache_control`，按报价的能力声明处理，见[推理控制](/docs/reasoning)、[工具调用](/docs/tool-calling)、[提示缓存](/docs/prompt-caching)。
- 多轮工具调用时回传的带签名 thinking 块，会让后续请求固定在产生签名的报价上。
- 路由偏好用请求头 `X-ModelPortal-Provider-Preferences` 传，见[供应商选择](/docs/provider-routing)；`metadata.user_id` 会被当作会话标识，用于[会话亲和](/docs/default-routing)，转发前删除。
- 错误体是 `{"type": "error", "error": {"type", "message"}}`，没有机器可读的错误码；响应头 `x-should-retry` 告诉你是否值得重试。

接口与字段见 [Anthropic 兼容接口参考](/docs/api-anthropic)。
