Claude Messages
全部 18 个请求参数、内容块类型与流式事件。Claude 家族的原生入口
POST /v1/messages
Claude 系模型的原生协议。Claude 模型请优先用这个端点——它是唯一能完整拿到 thinking 块的路径。从 Chat Completions 调 Claude 也能通,但那是网关做的 协议转换,thinking 会在转换中丢失,工具调用只保核心字段。
网关上还有一批国产模型也走这个端点接入(glm、kimi、qwen、deepseek 等), 具体见模型与入口。
基本调用
建议用官方 SDK 而不是自己拼 HTTP——SSE 解析、工具参数分片拼接、超时与重试都由它处理,能避开大部分常见问题。安装与环境变量配置见快速开始。
curl -N -X POST "https://www.vibeapi.cn/v1/messages" \
-H "Authorization: Bearer $API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 1024,
"system": "你是一个简洁的助手。",
"messages": [
{"role": "user", "content": "用一句话解释什么是幂等。"}
],
"stream": true
}'import anthropic
client = anthropic.Anthropic(
base_url="https://www.vibeapi.cn",
api_key="YOUR_API_KEY",
)
with client.messages.stream(
model="claude-opus-5",
max_tokens=1024,
system="你是一个简洁的助手。",
messages=[{"role": "user", "content": "用一句话解释什么是幂等。"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://www.vibeapi.cn",
apiKey: "YOUR_API_KEY",
});
const stream = await client.messages.create({
model: "claude-opus-5",
max_tokens: 1024,
system: "你是一个简洁的助手。",
messages: [{ role: "user", content: "用一句话解释什么是幂等。" }],
stream: true,
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}认证
Authorization: Bearer <API_KEY>
anthropic-version: 2023-06-01
Content-Type: application/jsonbase_url 是 https://www.vibeapi.cn——注意 Messages 的完整路径是 /v1/messages,
Anthropic 官方 SDK 填 base URL 时通常不带 /v1。
流式要求
请求超时上限 120 秒。非流式请求在生成完成前没有数据下行,单次生成超过这个时间会被 中断。短输出不受影响;推理型号要等整段思考结束才返回首字节,容易触发上限。
官方 SDK 也有同类保护:max_tokens 给得很大时会要求走流式,以避免 HTTP 超时。
建议默认开启流式,需要完整文本时在客户端拼接 text_delta。
与 Chat 的差异
以下三处差异较大:
max_tokens 是必填的,不像 Chat 可以省略。忘了带直接 400。
系统提示是顶层的 system 字段,不是 messages 里的一个角色。messages 只放
user 和 assistant,而且需要交替出现。
响应是内容块数组,不是一个字符串。 content 里每项有自己的 type——text、
thinking、tool_use 各是一种块。取正文要过滤 type == "text"。
| Chat Completions | Messages | |
|---|---|---|
| 系统提示 | messages 里的 system 角色 | 顶层 system 字段 |
| 输出上限 | max_completion_tokens,可省略 | max_tokens,必填 |
| 产出位置 | choices[0].message.content 字符串 | content 内容块数组 |
| 结束原因 | finish_reason | stop_reason |
| 停止序列 | stop | stop_sequences |
请求参数
参数名、类型与语义对齐 Anthropic Messages API。每个参数先给官方定义,再以「网关」标注本网关的实测行为;
标了「分组敏感」的参数在 auto 类 key 上会被静默忽略(返回 200,不报错),详见分组差异。
必填
modelstring必填为提示词补全的模型。可用模型见模型与入口。
max_tokensinteger必填停止生成前允许产出的最大 token 数。模型可能在达到上限之前就停止,该参数只规定绝对上限;不同模型的最大取值不同。 设为
0可只预热提示缓存而不生成。 思考模型的思考预算计入这个上限。网关 · 分组敏感,影响费用。 官方满血 key 精确执行(要 16 就返回 16,
stop_reason为max_tokens);autokey 不执行这个上限,要 16 实际产出 145~159,stop_reason仍为end_turn。用auto时以usage.output_tokens对账。messagesarray必填输入消息。模型按
user与assistant轮次交替工作:请求里给出此前的轮次,模型生成下一条Message; 连续的同角色轮次会合并成一轮。每条消息是{role, content},content可以是字符串,也可以是内容块数组(文本、图片、文档、工具结果混排)。 若最后一条是assistant,响应会直接从它的内容接着往下写,可用来约束回复的开头。
系统提示与输出
systemstring | array系统提示,用于给模型提供上下文与指令,例如设定目标或角色。给数组时每项是一个
text块,可逐块附加cache_control。streamboolean默认false是否以 server-sent events 增量返回响应。
网关。 单次请求上限 120 秒,思考模型建议设为
true,见流式要求。stop_sequencesarray自定义停止序列。模型正常结束时
stop_reason为end_turn;命中自定义序列时stop_reason为stop_sequence,stop_sequence字段回显命中的那一条。网关 · 分组敏感。 官方满血 key 生效;
autokey 忽略它,输出照常跑完,stop_reason仍是end_turn。output_configobject输出配置。
effort取low/medium/high/xhigh/max,控制模型投入的算力;format为{"type": "json_schema", "schema": {...}}时约束输出为该结构,见结构化输出。网关 · 分组敏感。 官方满血 key 返回纯 JSON;
autokey 退化成普通文本,返回带```包裹的代码块,直接json.loads会失败。 schema 里type: object须显式带additionalProperties,否则 400——该校验只在官方满血 key 上执行。
思考
thinkingobject扩展思考配置。开启后响应里包含
thinking内容块,展示模型给出最终答案前的思考过程。 三种写法:{"type": "adaptive"}由模型自行决定思考深度;{"type": "enabled", "budget_tokens": N}指定思考预算,须 ≥ 1024 且小于max_tokens;{"type": "disabled"}关闭。display可设omitted,思考内容不返回但保留签名以维持多轮连续性。不同代次的模型接受的写法不同:Claude 4.7 及以后只接受
adaptive,显式enabled+budget_tokens会被拒绝;旧型号相反。 跨型号的代码不要写死一种。网关。 对新型号传
enabled会被改写为adaptive并删掉budget_tokens,请求成功但预算不生效,见参数改写规则。autokey 上claude-sonnet-5不返回 thinking 块,见分组差异。
工具调用
toolsarray模型可以使用的工具定义。每个工具包含
name、description和描述参数的input_schema;模型决定调用时返回tool_use内容块, 你执行后以tool_result内容块回传。也可以放服务端执行的内置工具(如web_search_20250305)。网关 · 分组敏感。 自定义工具在两类 key 上都完整;服务端内置工具在
autokey 上不保证,见分组差异。tool_choiceobject模型如何使用提供的工具:
{"type": "auto"}自行决定;{"type": "any"}必须用某个工具;{"type": "tool", "name": "..."}指定工具;{"type": "none"}不用。auto/any可加disable_parallel_tool_use: true,让模型最多只发起一次工具调用。 注意与 Chat Completions 不同,这里是对象不是字符串。
缓存
cache_controlobject提示缓存标记。顶层
cache_control自动作用于请求里最后一个可缓存块;也可以在system、messages、tools的内容块上逐个设置{"type": "ephemeral"}。 把稳定不变的前缀(长系统提示、工具定义、文档)标为可缓存,后续命中时usage里出现cache_read_input_tokens。网关 · 分组敏感。
autokey 上不生效,usage里不会出现缓存字段;官方满血 key 正常。
采样
三个采样参数官方已标记为弃用:晚于 Claude Opus 4.6 发布的模型只接受 temperature: 1.0 与 top_p ≥ 0.99,不接受 top_k,其他取值返回 400。
temperaturenumber默认1.0注入响应的随机程度,
0.0–1.0。分析类、选择题类任务取值靠近0.0,创作类靠近1.0;即使为0.0结果也不完全确定。网关。 新型号上不等于
1.0的值会被删除,见参数改写规则。top_pnumber核采样:按概率降序累计,达到
top_p即截断。仅建议高级用法使用,与temperature通常只调其一。网关。 新型号上小于
0.99的值会被删除。top_kinteger每个 token 只从概率最高的 K 个候选里采样,用于去掉低概率的长尾。仅建议高级用法使用;Chat Completions 没有这个参数。
网关。
claude-fable-5上会被删除。
标识与其他
metadataobject请求元数据。
user_id为终端用户的外部标识,应是 uuid、哈希等不透明值,不要放姓名、邮箱、电话。service_tierstringauto/standard_only,选择优先容量还是标准容量。网关。 由网关自行路由,该字段无意义。
containerobject代码执行容器的复用标识。
网关。 不提供代码执行工具,无效。
inference_geostring推理处理的地理区域。
网关。 不保证生效。
响应字段
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "claude-opus-5",
"content": [
{ "type": "text", "text": "同一个操作执行多次和执行一次效果相同。" }
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": { "input_tokens": 24, "output_tokens": 17 }
}contentarray内容块数组,类型是混排的。开了思考的模型会在前面多出
{"type":"thinking"}块, 用工具时会有{"type":"tool_use"}块。直接取content[0]在这些情况下会拿到思考内容 或工具调用,不是正文——务必按type过滤。stop_reasonstringend_turn自然结束 ·max_tokens撞到输出上限 ·stop_sequence命中停止序列 ·tool_use等待工具结果。stop_sequencestring命中的是哪一条停止序列,未命中为
null。usageobjectinput_tokens/output_tokens。用了提示缓存时还会有缓存读写的 token 统计, 对账时要一并看。
流式事件
整体以 message_start 开始、message_stop 结束;中间每个内容块有自己的
content_block_start → 若干 content_block_delta → content_block_stop,
块之间用 index 区分。
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"同一个"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"先确认定义…"}}增量在 delta 里,delta.type 决定它属于哪种块:
text_deltadelta 类型正文增量。绝大多数情况只需要认这一种。
thinking_deltadelta 类型思考增量。
input_json_deltadelta 类型工具调用参数的增量 JSON 片段,需自己累积拼接成完整 JSON 再解析。
message_delta事件类型顶层字段的变更,
stop_reason和最终的usage从这里来。
用工具时事件之间可能出现明显停顿,因为参数是攒够一组键值才发出来的,这是正常现象。
参数改写规则
这几个型号只接受自适应思考,显式思考预算在官方那里会直接 400。与其把这个错误丢给你, 网关在转发前将这类参数改写为等价的合法形式,请求因此成功,但原始取值不生效。 下表列出改写发生的条件。
| 触发条件 | 网关的动作 |
|---|---|
thinking.type 为 enabled | 改写为 adaptive,并删除 thinking.budget_tokens |
temperature 不等于 1.0 | 删除该字段(1.0 保留) |
top_p 小于 0.99 | 删除该字段(≥ 0.99 保留) |
claude-fable-5:总是 | 删除 top_k |
claude-fable-5:thinking.type 为 disabled | 删除整个 thinking |
claude-opus-5:thinking.type 为 disabled 且 output_config.effort 为 xhigh / max | 改写 thinking.type 为 adaptive |
适用型号:claude-opus-5、claude-sonnet-5、claude-opus-4-8、claude-opus-4-7、
claude-fable-5。
最要紧的一条是 thinking。 你传 {"type": "enabled", "budget_tokens": 4096}
会拿到 200,但 budget_tokens 已经被丢掉了,思考长度由模型自己决定。要控制思考成本,
用 max_tokens 留出的空间去间接约束,别依赖 budget_tokens。
这几个型号只接受 temperature = 1.0 与 top_p >= 0.99(Anthropic 对晚于 Opus 4.6
发布的模型的兼容边界),其他取值上游会直接 400。网关把不合规的值删掉,请求因此成功——
但你设置的自定义 temperature / top_p 在这些型号上不会生效。claude-opus-4-6、
claude-sonnet-4-6、claude-haiku-4-5 等旧型号不套用此规则,采样参数原样透传。
分组差异
key 分两类:auto(可以调用全部模型)和 Claude 官方满血版。Claude 系模型
在这两类上有实测差异,全部返回 200,没有任何报错或警告:
| 能力 | auto | Claude 官方满血版 |
|---|---|---|
提示缓存 cache_control | 不可用,usage 里不返回缓存字段 | 返回 cache_creation_input_tokens / cache_read_input_tokens |
| 服务端执行的内置工具 | 不保证,响应形状可能不符合官方约定 | 正常 |
thinking(claude-sonnet-5) | 不返回 thinking 块,显式要求也不返回 | 返回 |
thinking(claude-opus-5) | 返回,但输出(含思考)明显更短 | 完整 |
max_tokens 上限 | 不执行,要求 16 实际产出 145~159 | 精确执行,stop_reason 为 max_tokens |
stop_sequences | 被忽略,输出照常跑完 | 生效,stop_reason 为 stop_sequence |
output_config 结构化输出 | 退化成 markdown 代码块 | 返回纯 JSON |
| 可用模型 | 不含 claude-fable-5 / claude-fable-5-1 | 含 |
以上差异在 auto 上均表现为静默忽略:请求返回 200,响应内容正常,设置的约束不生效。
常规对话与代码生成用 auto 即可。只要你的代码依赖参数被真正执行——限制输出长度、
停止序列、结构化输出、提示缓存、服务端工具、claude-sonnet-5 的 thinking——就必须换
官方满血 key,改参数没有用。
如何验证生效
不要用 HTTP 状态码判断,上面两类情况都返回 200。看响应体:
- 思考是否生效 ——
content数组里有没有{"type": "thinking"}块。 - 缓存是否生效 ——
usage里有没有cache_creation_input_tokens/cache_read_input_tokens。没有这两个字段就是没生效,不管你怎么标cache_control。 - 参数有没有被改写 —— 把可疑参数换一个明显不同的值再发一次,看输出是否真的变化。 两次没差异,多半是它没被送到模型那里。
国产模型兼容度
网关上的国产模型(glm / kimi / qwen / deepseek / MiniMax)两套协议都能调通,
工具调用也都可用,但对 max_tokens、停止序列、结构化输出的遵循程度逐个模型不同,
同一模型在 Messages 协议和另一套协议上还可能表现不同。逐项实测结果见
模型与入口。
其中 deepseek-v4-pro 与 kimi-k3 不执行 max_tokens,且仍将结束原因报为已截断。
使用这两个模型时,以 usage 中的实际 token 数对账。
真实响应示例
下面是从生产网关真实抓取、脱敏后的响应。注意 content 是内容块数组:
请求 POST /v1/messages
{ "model": "claude-opus-5", "max_tokens": 900, "messages": [ { "role": "user", "content": "9.11 和 9.9 哪个大?简答" } ]}响应
{ "model": "claude-opus-5", "id": "msg_XXXXXXXX", "type": "message", "role": "assistant", "content": [ { "type": "thinking", "thinking": "", "signature": "…(签名已省略)" }, { "type": "text", "text": "**9.9 更大。**\n\n9.11 的小数部分是 0.11,9.9 的小数部分是 0.90,0.90 > 0.11,所以 9.9 > 9.11。" } ], "stop_reason": "end_turn", "stop_sequence": null, "stop_details": null, "usage": { "input_tokens": 47, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": { "ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0 }, "iterations": [ { "input_tokens": 47, "output_tokens": 114, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0, "cache_creation": { "ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0 }, "type": "message" } ], "output_tokens": 114, "output_tokens_details": { "thinking_tokens": 49 } }, "context_management": { "applied_edits": [] }}真实调用抓取并脱敏 · 2026-09-09
模型决定调用工具时,会多出一个 tool_use 块:
请求 POST /v1/messages
{ "model": "claude-opus-5", "max_tokens": 300, "messages": [ { "role": "user", "content": "北京天气怎么样?用工具查" } ], "tools": [ { "name": "get_weather", "description": "查询天气", "input_schema": { "type": "object", "properties": { "city": { "type": "string" } }, "required": [ "city" ] } } ]}响应
{ "model": "claude-opus-5", "id": "msg_XXXXXXXX", "type": "message", "role": "assistant", "content": [ { "type": "tool_use", "id": "toolu_XXXXXXXX", "name": "get_weather", "input": { "city": "北京" }, "caller": { "type": "direct" } } ], "stop_reason": "tool_use", "stop_sequence": null, "stop_details": null, "usage": { "input_tokens": 395, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": { "ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0 }, "iterations": [ { "input_tokens": 395, "output_tokens": 49, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0, "cache_creation": { "ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0 }, "type": "message" } ], "output_tokens": 49, "output_tokens_details": { "thinking_tokens": 0 } }, "context_management": { "applied_edits": [] }}真实调用抓取并脱敏 · 2026-09-09
流式的事件序列(中间事件已省略):
请求 POST /v1/messages
{ "model": "claude-opus-5", "max_tokens": 200, "stream": true, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ]}响应
event: message_startdata: {"type": "message_start", "message": {"model": "claude-opus-5", "id": "msg_XXXXXXXX", "type": "message", "role": "assistant", "content": [], "stop_reason": null, "stop_sequence": null, "stop_details": null, "usage": {"input_tokens": 39, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 8}}}event: content_block_startdata: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": "", "signature": ""}}event: pingdata: {"type": "ping"}event: content_block_deltadata: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "", "estimated_tokens": 50}}event: content_block_deltadata: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "", "estimated_tokens": null}}… 中间的增量事件省略 …event: message_deltadata: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null, "stop_details": null}, "usage": {"input_tokens": 39, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 151, "output_tokens_details": {"thinking_tokens": 89}, "iterations": [{"input_tokens": 39, "output_tokens": 15 … }event: message_stopdata: {"type": "message_stop"}真实调用抓取并脱敏 · 2026-09-09
国产模型的真实响应
以下为各国产模型在 Messages 协议上的真实调用与响应。注意 kimi-k3 会返回
thinking 块,usage.output_tokens_details.thinking_tokens 是其消耗。
▸glm-5.3
请求 POST /v1/messages
{ "model": "glm-5.3", "max_tokens": 200, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ]}响应
{ "id": "11322f14f6b8472b9c568bc1b5abc48a", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "幂等性指同一操作执行一次和多次的效果完全相同,例如 n=1 和 n>1 时 f^n(x)=f(x)。" } ], "stop_reason": "end_turn", "model": "glm-5.3", "usage": { "input_tokens": 8, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 64, "output_tokens": 32, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0, "billing_usage": { "source": "oai_chat", "semantic": "openai", "openai_usage": { "prompt_tokens": 8, "completion_tokens": 32, "total_tokens": 99, "prompt_tokens_details": { "cached_tokens": 64, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0 }, "completion_tokens_details": { "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0, "reasoning_tokens": 0 }, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0, "cost": 1e-05 } } }}▸kimi-k3
请求 POST /v1/messages
{ "model": "kimi-k3", "max_tokens": 200, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ]}响应
{ "id": "msg_XXXXXXXX", "type": "message", "role": "assistant", "content": [ { "type": "thinking", "thinking": "Explain idempotency in one sentence, in Chinese.", "signature": "…(签名已省略)" }, { "type": "text", "text": "幂等是指同一个操作无论执行一次还是重复执行多次,产生的结果(副作用)都完全相同,例如把账户余额\"设为100元\"执行多次效果一样,而\"余额加100元\"则不具备幂等性。" } ], "model": "kimi-k3", "stop_reason": "end_turn", "stop_sequence": null, "usage": { "input_tokens": 0, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 91, "output_tokens": 74, "output_tokens_details": { "thinking_tokens": 11 } }}▸qwen3.8-max
请求 POST /v1/messages
{ "model": "qwen3.8-max", "max_tokens": 200, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ]}响应
{ "id": "chatcmpl-XXXXXXXX", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "\n\n幂等是指对同一对象重复执行同一操作,结果与执行一次相同。" } ], "stop_reason": "end_turn", "model": "qwen3.8", "usage": { "input_tokens": 57, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "output_tokens": 43, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0, "billing_usage": { "source": "oai_chat", "semantic": "openai", "openai_usage": { "prompt_tokens": 57, "completion_tokens": 43, "total_tokens": 100, "prompt_tokens_details": { "cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0 }, "completion_tokens_details": { "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0, "reasoning_tokens": 0 }, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0 } } }}▸deepseek-v4-pro
请求 POST /v1/messages
{ "model": "deepseek-v4-pro", "max_tokens": 200, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ]}响应
{ "id": "02178898172708996188f7c040816dd3fe5310871d7143ab32d04", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "幂等是指同一个操作执行多次与执行一次产生的效果完全相同。" } ], "stop_reason": "end_turn", "model": "deepseek-v4-pro-ga-260813", "usage": { "input_tokens": 88, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "output_tokens": 93, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0, "billing_usage": { "source": "oai_chat", "semantic": "openai", "openai_usage": { "prompt_tokens": 88, "completion_tokens": 93, "total_tokens": 181, "prompt_tokens_details": { "cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0 }, "completion_tokens_details": { "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0, "reasoning_tokens": 78 }, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0 } } }}▸glm-5.3 · 工具调用
请求 POST /v1/messages
{ "model": "glm-5.3", "max_tokens": 300, "messages": [ { "role": "user", "content": "北京天气怎么样?用工具查" } ], "tools": [ { "name": "get_weather", "description": "查询天气", "input_schema": { "type": "object", "properties": { "city": { "type": "string" } }, "required": [ "city" ] } } ]}响应
{ "id": "f9b09a80ba7f4d64b3ddb2ece4a3465d", "type": "message", "role": "assistant", "content": [ { "type": "tool_use", "id": "call_XXXXXXXX", "name": "get_weather", "input": { "city": "北京" } } ], "stop_reason": "tool_use", "model": "glm-5.3", "usage": { "input_tokens": 148, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 192, "output_tokens": 12, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0, "billing_usage": { "source": "oai_chat", "semantic": "openai", "openai_usage": { "prompt_tokens": 148, "completion_tokens": 12, "total_tokens": 219, "prompt_tokens_details": { "cached_tokens": 192, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0 }, "completion_tokens_details": { "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0, "reasoning_tokens": 0 }, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0, "cost": 1e-05 } } }}以上为真实调用抓取并脱敏 · 2026-09-09
能力边界
- 只保证核心能力:消息、流式、thinking、基本的工具调用。批处理、文件上传、 代码执行容器这些端点不在提供范围内。
thinking的写法不能跨代次通用,写死一种会在另一代次上 400。container/inference_geo/service_tier无效,见参数表。- 非流式不适合推理型号。
在线调试
填入你自己的 API Key 即可直接发起请求,参数表与响应结构由接口定义生成。
Authorization
BearerAuth
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
In: header
Header Parameters
Anthropic API 版本
Anthropic API Key (可选,也可使用 Bearer Token)
Request Body
application/json
1 <= value0 <= value <= 1Response Body
application/json
curl -X POST "https://www.vibeapi.cn/v1/messages" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-3-opus-20240229", "messages": [ { "role": "user", "content": "string" } ], "max_tokens": 1 }'{
"id": "string",
"type": "message",
"role": "assistant",
"content": [
{
"type": "string",
"text": "string"
}
],
"model": "string",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
}官方文档
本页只写与本网关有关的部分,参数语义的权威定义以官方为准: