Anthropic Messages
Claude 原生内容块、工具和推理
端点与请求头
POST https://www.yunqiai.chat/v1/messages
x-api-key: <API_KEY>
anthropic-version: 2023-06-01
Content-Type: application/jsonAnthropic SDK 的 base URL 使用 https://www.yunqiai.chat,由 SDK 拼接 /v1/messages。
请求体
{
"model": "claude-opus-5-5",
"max_tokens": 8192,
"messages": [{"role":"user","content":[{"type":"text","text":"仅回复 READY"}]}]
}model、max_tokens、messages 为必填项。系统提示词放在顶层 system;messages 使用 user / assistant 消息,不接收 role=system。
推理与预算
max_tokens 包含推理与正文。预算耗尽时,响应可能以 stop_reason=max_tokens 结束,且没有可见文本。正文需遍历 content[],拼接所有 type=text 内容块;首块可能是推理内容。
claude-opus-5-5 始终使用自适应推理,不支持关闭,也不接受旧的 thinking.type=enabled 与 budget_tokens 配置。推理强度使用 output_config.effort,可用值见型号页。该型号不支持 tool_choice.type=any 或强制指定工具名。
claude-fable-5 同样不支持旧式关闭推理配置。新型号可能省略可见的 thinking 文本,但仍会进行推理。
工具与历史
工具格式为 {"name":"lookup","description":"...","input_schema":{"type":"object","properties":{}}}。返回 type=tool_use 内容块时,校验 name、input,执行工具后按以下顺序续接:
- 将原响应的完整 content 放入 assistant 消息,保留 thinking、signature 等内容块。
- user 消息包含
{"type":"tool_result","tool_use_id":"原 tool_use.id","content":"工具结果"}。 - 多个工具调用全部匹配返回;执行错误可设置
is_error:true。
thinking 内容块及其签名需随原对话保存,不能修改、伪造或跨型号使用。结合 stop_reason 和内容块判断是否还需执行工具。不支持强制工具选择的推理配置使用默认自动选择。
图片与 PDF
图片块:
{"type":"image","source":{"type":"base64","media_type":"image/png","data":"<BASE64>"}}PDF 块:
{"type":"document","source":{"type":"base64","media_type":"application/pdf","data":"<BASE64>"}}data 仅放 Base64 正文,不加 data:...;base64, 前缀。多张图片放多个独立 image 块。文字、图片和 PDF 可以共同组成 user 的 content 数组。
本页采用内联上传,不依赖 /v1/files。Messages 使用自己的内容块格式,不接收 OpenAI 的 input_file、image_url。纯文本文件解码后放入 text;document 在此用于 PDF,不直接接收 Word、Excel、视频或音频。
流式事件
使用 stream:true。处理 message_start、content_block_start、content_block_delta、content_block_stop、message_delta、message_stop、error。工具 input_json_delta 需按内容块索引拼接;推理签名增量也要保留。HTTP 200 后仍可能出现 error 事件。