POST
https://api.wylon.cn/v1/messages
Messages
与 Anthropic Messages 协议兼容;可直接使用 Anthropic SDK(将 base_url 指向 https://api.wylon.cn)。流式输出与 工具调用 通过请求参数控制。
cURL:最小调用
curl https://api.wylon.cn/v1/messages \
-H "x-api-key: $WYLON_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "ZhipuAI/GLM-5.3",
"max_tokens": 512,
"messages": [{"role": "user", "content": "用一句话解释 KV 缓存。"}]
}'鉴权
x-api-key
string · header
必填
wylon API 密钥。可前往 控制台 创建 API 密钥,并将其保存为环境变量
$WYLON_API_KEY。Anthropic SDK 会通过 x-api-key 请求头发送该密钥;网关同时接受 Authorization: Bearer <key>。
anthropic-version
string · header
必填
Anthropic API 版本号,例如
2023-06-01。请求参数
Content-Type: application/json
messages
array
必填
有序的对话轮次。注意:系统提示不属于
messages,请使用顶层 system 字段。
role
enum
必填
取值
user 或 assistant。
content
string · array
必填
纯文本字符串,或内容块数组。每个内容块形如
{type:"text", text} 或 {type:"image", source:{...}} 等。
max_tokens
integer
必填
本次生成的最大 Token 数。Messages API 要求必填;不可超过模型的上下文窗口。
system
string · array
可选
系统提示 / 指令,在顶层传入(而非放入
messages)。可为字符串或内容块数组。
temperature
number
可选
采样温度,范围
0-1。值越高回答越随机。
top_p
number
可选
核采样阈值,范围
0-1。仅从累计概率达到 top_p 的最小候选集合中采样。
top_k
integer
可选
每步从概率最高的 K 个候选中采样。
stop_sequences
array
可选
自定义停止序列;命中任一字符串即停止生成。
stream
boolean
false
为
true 时以 SSE(text/event-stream)形式逐事件流式返回消息。
tools
array
可选
tool_choice
object
可选
控制工具调用:
{type:"auto"} 由模型决定;{type:"any"} 强制至少调用一个工具;{type:"tool", name:"..."} 强制调用指定工具;{type:"none"} 禁用工具。注意 Anthropic 使用 "any" / "tool",与 OpenAI 的取值不同。
metadata
object
可选
请求元数据,形如
{user_id: "..."},用于滥用监控与审计。
thinking
object
可选 · wylon/Anthropic 扩展
扩展思考(extended thinking)。形如
{type:"enabled", budget_tokens: 1024},budget_tokens 控制思考阶段的 Token 预算。响应结构
非流式:返回 Anthropic Message 对象(与 OpenAI 形态不同)。
流式(stream=true):以 SSE 形式返回一系列消息事件。
idstring
本次消息的唯一标识,形如
msg_...。typestring
固定为
message。rolestring
固定为
assistant。contentarray
内容块数组。
type:"text"object
文本块,形如
{type:"text", text}。type:"tool_use"object
工具调用块,形如
{type:"tool_use", id, name, input}。type:"thinking"object
扩展思考块,形如
{type:"thinking", thinking}。modelstring
实际服务该请求的模型 ID。
stop_reasonenum
end_turn / max_tokens / stop_sequence / tool_use。stop_sequencestring · null
命中的停止序列;未命中时为
null。usageobject
Token 用量统计(采用 Anthropic 命名,而非
prompt/completion_tokens)。input_tokensinteger
输入 Token 数。
output_tokensinteger
输出 Token 数。
示例响应
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"model": "ZhipuAI/GLM-5.3",
"content": [
{ "type": "text", "text": "KV 缓存把已计算的键值张量缓存起来,避免重复计算。" }
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 24,
"output_tokens": 31
}
}
流式(stream=true)时,SSE 事件类型依次为:message_start、content_block_start、content_block_delta、content_block_stop、message_delta、message_stop,期间可能穿插 ping 事件。
参数错误、鉴权失败或触发速率限制。响应体为 Anthropic 错误信封:{"type":"error","error":{"type":"...","message":"..."}}。
typestring
固定为
error。error.typestring
错误大类,如
invalid_request_error、authentication_error、rate_limit_error、overloaded_error、api_error。error.messagestring
人类可读的错误说明。
示例:429 限流
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Number of request tokens has exceeded your rate limit."
}
}
服务端瞬时故障或过载。建议带抖动的指数退避重试。
示例:529 / 503 过载
{
"type": "error",
"error": {
"type": "overloaded_error",
"message": "Overloaded, please retry shortly."
}
}