跳转到内容
简体中文

Anthropic Messages

支持上线后,Claude Code 和 Anthropic SDK 应使用原生 Messages 协议。不要把 OpenAI 的 /v1 Base URL 配给 Anthropic 客户端。

POST https://api.nexinfer.com/v1/messages
Terminal window
curl https://api.nexinfer.com/v1/messages \
-H "x-api-key: $NEXINFER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "YOUR_CLAUDE_MODEL_ID",
"max_tokens": 256,
"messages": [{"role":"user","content":"Reply with OK."}]
}'

max_tokens 是 Messages 请求的必填字段。模型名必须在当前 Key 的权限范围内。

Messages 使用顶层 system 字段,不要在 messages 数组中添加 role: "system"

{
"model": "YOUR_CLAUDE_MODEL_ID",
"max_tokens": 256,
"system": "Answer concisely.",
"messages": [{"role":"user","content":"Explain health checks."}]
}

NexInfer 不主动注入或覆盖 System Prompt。

设置 "stream": true 后返回 SSE。客户端应按 Anthropic 事件类型处理,例如 message_startcontent_block_deltamessage_deltamessage_stop,不要把它当作 OpenAI 的流式格式解析。

tools 中声明工具及输入 Schema。Claude 返回 tool_use 内容块后,客户端执行工具,并在后续用户消息中发送与调用 ID 对应的 tool_result

{
"name": "get_weather",
"description": "Get weather for a city",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}

始终校验模型生成的工具参数。涉及写操作时,应设计确认步骤和幂等机制。

支持缓存的模型可以在 system、消息内容块或工具定义等位置使用 cache_control。缓存能力、最小内容长度和计费以具体模型及模型供应商规则为准。

NexInfer 不会主动删除 cache_control,但这不代表所有 Claude 模型都提供相同缓存能力。

支持该能力的模型可使用 thinking 配置。它与 max_tokens、工具调用和模型版本之间存在约束,应遵循所选模型的 Anthropic 官方要求。

NexInfer 不主动修改 thinking 或降低推理配置;不支持的组合仍可能由模型供应商返回 400

  • 400:检查 max_tokens、顶层 system、内容块结构和模型能力。
  • 401/403:检查 x-api-key、模型权限和 Base URL。
  • 流式解析失败:确认使用 Anthropic SSE 事件,而非 OpenAI chunk 结构。
  • 工具循环中断:检查 tool_use.idtool_result.tool_use_id 是否匹配。

官方参考:Messages API · 流式 · 工具调用 · Prompt caching · Extended thinking