Monoize
API 使用指南

Anthropic Messages

用 Anthropic Messages 协议调用 LynShen 中的 Claude 和其他模型。

Messages 是 Anthropic 的协议。Claude Code、Anthropic SDK 和很多 Agent 框架使用它。网关可以把 Messages 请求转发给任意聊天模型,不限于 Claude。

  • 端点:POST https://api.lynshen.org/v1/messages
  • SDK 的 Base URL:https://api.lynshen.org(不带 /v1)
  • 认证:x-api-key: sk-... 或 Authorization: Bearer sk-...
  • anthropic-version 请求头可以发送,也可以省略。

基本请求

curl https://api.lynshen.org/v1/messages \
  -H "x-api-key: $LYNSHEN_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "system": "你是一名简洁的技术助手。",
    "messages": [{ "role": "user", "content": "解释 TCP 三次握手。" }]
  }'

SDK 的 Base URL 不要写成 https://api.lynshen.org/v1。SDK 会再拼接 /v1/messages,结果请求 /v1/v1/messages,网关返回 404。

常用请求字段

字段说明
model必填。可以是 Claude,也可以是其他模型。
messages必填。user 和 assistant 交替。
max_tokens输出上限。省略时,Messages 上游收到 128000。建议显式设置。
system系统指令。字符串或文本块数组。
stream设为 true 时返回 SSE 流。
tools、tool_choice工具调用。
thinking、output_config推理设置。见思维链(推理)。
output_config.format结构化输出。
temperature、top_p、top_k、stop_sequences采样参数。新 Claude 模型有限制,见下文。

图片和文档输入

{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "image", "source": { "type": "base64", "media_type": "image/png", "data": "iVBORw0KGgo..." } },
        { "type": "image", "source": { "type": "url", "url": "https://example.com/chart.png" } },
        { "type": "text", "text": "比较这两张图。" }
      ]
    }
  ]
}

PDF 文档使用 document 块,source 可以是 Base64 或 URL。URL 文档必须能证明是 PDF,例如以 .pdf 结尾。

响应

{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-5",
  "content": [
    { "type": "thinking", "thinking": "……", "signature": "mz2...." },
    { "type": "text", "text": "TCP 三次握手的过程是……" }
  ],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 12, "output_tokens": 20, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0 }
}
  • content 是有序的块数组。块类型有 text、thinking、redacted_thinking、tool_use。
  • stop_reason 可能是 end_turn、max_tokens、tool_use、stop_sequence 等。
  • 只有开启推理时才会出现 thinking 块。

调用非 Claude 模型

Messages 协议可以调用 GPT、DeepSeek、GLM 等模型。网关在内部转换请求和响应:

curl https://api.lynshen.org/v1/messages \
  -H "x-api-key: $LYNSHEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4-pro","max_tokens":1024,"messages":[{"role":"user","content":"你好"}]}'

上游返回的原始推理文本会变成 thinking 块。上游只返回加密推理时,网关返回 thinking 为空字符串、带 signature 的块,这是 Anthropic 的“省略思考”格式。

错误格式

Messages 端点使用 Anthropic 的错误格式:

{
  "type": "error",
  "error": { "type": "invalid_request_error", "message": "invalid token" },
  "request_id": "3de56e8f-d3ad-4299-a8fb-844678e77042"
}

这个格式没有 code 字段。请根据 HTTP 状态码和 message 判断原因。状态码的含义见错误码与限制。

限制和注意事项

  • 网关不提供 POST /v1/messages/count_tokens,请求它返回 404。Claude Code 等工具会改用本地估算。
  • 开启推理时,Claude 模型要求 temperature 为 1 或不传,top_k 不传,top_p 不传或在 0.95 到 1 之间。tool_choice 不能是 any 或 tool。
  • Opus 4.7 及以后、Sonnet 5 及以后、Fable 5 等模型只接受默认采样参数,与是否开启推理无关。
  • budget_tokens 必须至少为 1024,并且小于 max_tokens。
  • 不满足以上规则时,网关在发送前返回 HTTP 400,不会修改你的请求。

本页目录