Create Message
最近更新:2026年8月31日
Anthropic Messages 协议的推理端点,兼容官方 SDK,可调任意支持该协议的模型。
这个端点兼容 Anthropic 的 Messages 接口,可直接配合官方 SDK 使用,只需把 base_url 指过来。
鉴权用 Anthropic 的原生方式:x-api-key: <你的 Amux 密钥>。
下表列出主要请求参数,包含取值范围、跨协议调用时的处理方式,以及使用上的前置条件。Anthropic 原生字段在直连时会尽量保留,但计费相关字段和跨协议不兼容项仍可能被拦截、归一化或丢弃。
https://gateway.amux.ai/v1/messages鉴权
headerAuthorizationstring必填控制台创建的 Amux 密钥。这是 Anthropic SDK 原生发送的鉴权头; Authorization: Bearer 同样接受。
Content-Typestring必填默认 "application/json"固定为 application/json。
请求
application/jsonmodelstring必填规范 ID,形如 厂商/模型。冒号后缀可锁定供应商(:供应商)或指定路由策略(:@price 等),两者不能同时写。见概览。
messagesarray<object>必填对话消息列表。角色只有 user 与 assistant,系统提示词不在这里,走顶层 system。
›messagesarray<object>
role"user" | "assistant"必填消息角色。Anthropic 的系统提示词不在这里,走顶层 system。
contentstring必填消息内容。多模态模型可传内容块数组,每项形如 { type: "text" | "image" }。
max_tokensinteger必填最大输出 token 数。这个端点要求它必须为正整数;缺失或非法时会在入口直接拒绝。 从别的协议转过来时若没给,我们按模型上限填入。
systemstring顶层系统提示词。可以是字符串,也可以是带 cache_control 的文本块数组。
temperaturenumber采样温度,0–1(不是 0–2)。从 Chat / Gemini 转过来时超过 1 的值会被压到 1。
⚠️ Anthropic 已把这三个采样参数标为废弃:Claude Opus 4.6 之后发布的模型上,temperature 只接受 1、 top_p 只接受 ≥0.99、top_k 直接拒收。我们不替上游拦(拦了就等于替你决定哪个模型算"新"), 所以打到新模型上时由上游报错。这条链路上真正可靠的做法是不发它们。
top_pnumber核采样。开启 thinking 时会被移除——Anthropic 推理模式不接受它。新模型上的废弃情况见 temperature。
top_kintegertop-k 采样。OpenAI 系协议没有这个参数,转过去时丢弃。开启 thinking 时同样会被移除。
⚠️ Gemini → Anthropic 这条链路要留意:Gemini 的 topK 会被转成这里的 top_k,而 Opus 4.6 之后的模型 拒收 top_k,于是整个请求 400。不带 topK 可避免。
stop_sequencesarray<string>停止词。转到 Chat 时最多 4 条、Gemini 最多 5 条,超出会截断并留说明。
streamboolean默认 false以 SSE 流式返回。Anthropic 的事件序列要求严格配对,我们在收尾时会补齐未闭合的块。
toolsarray<object>可调用的工具,{ name, description, input_schema }。注意 schema 字段叫 input_schema,不是 parameters。
tool_choiceobject{ type: "auto" | "any" | "none" | "tool" }。any 对应 OpenAI 的 required。并行开关也挂在这里 :disable_parallel_tool_use。
thinkingobject扩展思考。从 OpenAI 系的 reasoning_effort 转过来时,档位会换算成这里的 token 预算。 预算会被自动调整到 max_tokens 之内;实在放不下时我们关闭思考,而不是让上游拒绝整个请求。
›thinkingobject
type"enabled" | "disabled" | "adaptive"enabled 要配 budget_tokens;adaptive 让模型自己决定想多久;disabled 关掉。
budget_tokensinteger思考的 token 预算,下限 1024,且计入 max_tokens。只在 type: enabled 时有意义。
display"summarized" | "omitted"思考内容回摘要(summarized,默认)还是不回(omitted)。我们不建模,原样透传。
output_configobject输出配置。effort 是档位式的推理强度,和 thinking.budget_tokens 的 token 预算是两种量纲;format 是结构化输出约束 ({ type: "json_schema", schema })。
原样透传,跨协议时不传递。注意它和 OpenAI 的 reasoning_effort 档位相近但我们目前不互转——从 OpenAI 系转过来的 reasoning_effort 仍然换算成 thinking.budget_tokens。
›output_configobject
effort"low" | "medium" | "high" | "xhigh" | "max"档位式的推理强度。和 thinking.budget_tokens 的 token 预算是两种量纲,目前我们不在两者之间互转。
formatobject结构化输出约束,{ type: "json_schema", schema }。
cache_controlobject顶层缓存断点,自动打在最后一个可缓存块上。ttl 会改变缓存写入的单价(5 分钟 1.25×、1 小时 2×), 但这一类我们不拦:用量回来时两种写入是分开计的(cache_creation.ephemeral_5m_input_tokens 与 ..._1h_...), 按实际发生的那一档计价就是对的。合并统计才会少收。
›cache_controlobject
type"ephemeral"目前只有 ephemeral 一种。
ttl"5m" | "1h"缓存的存活时间。两档的写入单价不同(5 分钟 1.25×、1 小时 2×),用量里两者是分开计的,按实际发生的那一档计价。
containerobject容器复用,可以是字符串 ID,也可以是 { id, skills: [{ skill_id, type, version }] }(最多 20 个 skill)。 Anthropic 独有,原样透传——它是上游侧的状态,只在锁定了供应商时可靠。
inference_geo"global" | "us"推理运行的地域。不支持——我们不会把它转发给任何上游,两条路径都摘。 ⚠️ 有合规地域要求的话不要依赖这个参数:摘掉之后推理走 global 路由,而不是仅限美国基础设施。需要限定地域请锁定供应商(:供应商 后缀),并选一条本身就限定地域的渠道。摘了什么会告诉你:非流式在响应体的 amux.droppedParams,流式在 x-amux-dropped-params 响应头。
metadataobjectmetadata.user_id 是终端用户标识,对应别家的 user。
›metadataobject
user_idstring终端用户标识,对应别家的 user。别放姓名、邮箱这类可识别信息——上游只拿它做滥用检测,用不透明 ID 就够。
service_tier"auto" | "standard_only"服务档位。不支持——我们不会把它转发给任何上游,两条路径都摘。 实际影响很小:auto 本来就是 Anthropic 的默认值。摘了什么会告诉你:非流式在响应体的 amux.droppedParams,流式在 x-amux-dropped-params 响应头。
响应
200response推理成功。model 返回的是规范 ID,与请求时写的是同一个值。
402response余额不足。这类错误不重试,也不影响任何供应商的健康度。
三处和 OpenAI 协议不同
max_tokens必填。 缺失或不是正整数时,这个端点会先拒绝请求。- 系统提示词在顶层
system,不是messages里的一条。 input_tokens不含缓存读取部分,和 OpenAI 的prompt_tokens口径相反。按 OpenAI 的理解去加会重复计算。
错误
错误按 Anthropic 的错误体形状返回,type 取值与重试语义见错误与重试。
curl https://gateway.amux.ai/v1/messages \
-H "x-api-key: $AMUX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'{
"id": "msg_01ABC",
"type": "message",
"role": "assistant",
"model": "anthropic/claude-opus-5",
"content": [
{
"type": "text",
"text": "Hello!"
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"cache_read_input_tokens": 0
}
}