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,不会修改你的请求。