# Anthropic Messages API — 原生对话 Source: https://ofox.io/zh/docs/api/anthropic/messages 通过 Anthropic 原生协议创建 Claude 对话。OfoxAI 完全兼容 Anthropic Messages API,你可以直接使用官方 SDK。 **推荐使用 Anthropic 原生协议调用 Claude 模型。** 相比 OpenAI 兼容协议转发,原生协议具备以下优势: - **原生 Prompt Caching** — `system` 指令独立传递,自动享受 Anthropic 原生缓存机制,多轮对话前缀命中率更高,可节省最高 90% 输入 token 费用 - **完整特性支持** — 原生支持 Extended Thinking、Citations、PDF 输入等 Claude 独有能力,无协议转换损耗 - **更低延迟** — 无需 OpenAI → Anthropic 协议转换,请求直达上游 ## 端点 ```http POST https://api.ofox.io/anthropic/v1/messages ``` ## 认证 Anthropic 协议使用 `x-api-key` Header: ```bash x-api-key: <你的 OFOXAI_API_KEY> anthropic-version: 2023-06-01 ``` ## 请求参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | `model` | string | ✅ | 模型标识,如 `anthropic/claude-sonnet-5.5` | | `max_tokens` | number | ✅ | 最大生成 token 数 | | `messages` | array | ✅ | 消息数组 | | `system` | string | — | 系统提示词 | | `temperature` | number | — | 采样温度 0-1 | | `top_p` | number | — | 核采样参数 | | `top_k` | number | — | Top-K 采样 | | `stream` | boolean | — | 是否启用流式响应 | | `tools` | array | — | 工具定义 | | `tool_choice` | object | — | 工具选择策略 | ### Message 格式 ```typescript interface Message { role: 'user' | 'assistant' content: string | ContentBlock[] } type ContentBlock = | { type: 'text'; text: string } | { type: 'image'; source: { type: 'base64'; media_type: string; data: string } } | { type: 'tool_use'; id: string; name: string; input: object } | { type: 'tool_result'; tool_use_id: string; content: string } ``` ## 请求示例 **cURL** ```bash filename="Terminal" curl https://api.ofox.io/anthropic/v1/messages \ -H "x-api-key: $OFOX_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "anthropic/claude-sonnet-5.5", "max_tokens": 1024, "system": "你是一个专业的编程助手。", "messages": [ {"role": "user", "content": "用 Python 写一个快速排序"} ] }' ``` **Python** ```python filename="anthropic_chat.py" showLineNumbers import anthropic client = anthropic.Anthropic( base_url="https://api.ofox.io/anthropic", api_key="<你的 OFOXAI_API_KEY>" ) message = client.messages.create( model="anthropic/claude-sonnet-5.5", max_tokens=1024, system="你是一个专业的编程助手。", messages=[ {"role": "user", "content": "用 Python 写一个快速排序"} ] ) print(message.content[0].text) ``` **TypeScript** ```typescript filename="anthropic_chat.ts" showLineNumbers import Anthropic from '@anthropic-ai/sdk' const client = new Anthropic({ baseURL: 'https://api.ofox.io/anthropic', apiKey: '<你的 OFOXAI_API_KEY>' }) const message = await client.messages.create({ model: 'anthropic/claude-sonnet-5.5', max_tokens: 1024, system: '你是一个专业的编程助手。', messages: [ { role: 'user', content: '用 Python 写一个快速排序' } ] }) console.log(message.content[0].text) ``` ## 响应格式 ```json { "id": "msg_abc123", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "以下是 Python 快速排序的实现..." } ], "model": "anthropic/claude-sonnet-5.5", "stop_reason": "end_turn", "usage": { "input_tokens": 25, "output_tokens": 200 } } ``` ## 流式响应 **Python** ```python filename="anthropic_stream.py" showLineNumbers with client.messages.stream( model="anthropic/claude-sonnet-5.5", max_tokens=1024, messages=[{"role": "user", "content": "讲一个故事"}] ) as stream: for text in stream.text_stream: print(text, end="", flush=True) ``` **TypeScript** ```typescript filename="anthropic_stream.ts" showLineNumbers const stream = client.messages.stream({ model: 'anthropic/claude-sonnet-5.5', max_tokens: 1024, messages: [{ role: 'user', content: '讲一个故事' }] }) for await (const event of stream) { if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') { process.stdout.write(event.delta.text) } } ``` ## 支持的模型 | 模型 | 说明 | |------|------| | `anthropic/claude-opus-5.5` | Claude Opus 5.5 — 最强能力 | | `anthropic/claude-sonnet-5.5` | Claude Sonnet 5.5 — 均衡性能 | | `anthropic/claude-haiku-5.5` | Claude Haiku 5.5 — 快速响应 | OfoxAI 的 Anthropic 协议支持全部原生功能,包括 Vision、Tool Use、Prompt Caching、Extended Thinking 等。