OlithmRouter · AI API 中轉站
OlithmRouter › 知识库 › Anthropic Messages API 桥…

Anthropic Messages API 桥接:/v1/messages 的相容性细节

Anthropic Messages API Bridging (/v1/messages)

TL;DR — Anthropic Messages API 与 OpenAI 格式的差异是结构性的:system 是顶层参数而非信息、回复内容是 content blocks 阵列、工具呼叫走 tool_use/tool_result 配对、流式事件是 message_start/content_block_delta/message_delta 序列。可靠的桥接层必须在闸道内做完整的双向转换,而不是让客户端改格式。

本页目录

  1. 四个结构性差异
  2. 为什么桥接应该做在闸道层
  3. 验证桥接质量的方法
  4. 常见问题

四个结构性差异

①system 位置:Anthropic 是顶层 system 参数;OpenAI 放在 messages 阵列第一个。②回复结构:Anthropic 回 content:[{type:'text',text:...}] blocks 阵列;OpenAI 回 message.content 字串。③工具:Anthropic 用 tool_use/tool_result content blocks 配对;OpenAI 用 assistant.tool_calls 与 role:'tool' 信息。④流式:Anthropic 是 message_start→content_block_delta→message_delta→message_stop 事件序列。

任何一个环节转换不完整,Claude Code、Cline 这类客户端就会出现工具呼叫失灵或流式卡死。

为什么桥接应该做在闸道层

在客户端转格式 = 每个工具都要自己维护一份转换逻辑;在闸道层转 = 写一次、所有客户端受益。OlithmRouter 的 /v1/messages 桥接在闸道内完成请求重写、上游回应重组、流式事件重编码,Claude Code 与 anthropic-python 零修改直连。

推理模型的 thinking 栏位、token 计数(input_tokens/output_tokens 与 cache 命中)也在桥接层统一处理,控制台日志与计费才能逐笔对得上。

验证桥接质量的方法

三个测试:①多轮工具呼叫回圈(发起 tool_use → 客户端回 tool_result → 模型续答)至少 3 轮不断;②长文流式的 message_delta 事件顺序与 stop_reason 正确;③system 顶层 + cache_control 标注能触发上游缓存。

常见问题

Claude Code 真的能零修改用吗?
可以。OlithmRouter 的 /v1/messages 是原生实作,Claude Code 只需设定 base_url 与 token 两个环境变数。
thinking(延伸思考)模式支持吗?
支持。thinking blocks 在桥接层双向转换,控制台日志可看到思考强度标记。
cache_control 标注有用吗?
有。Anthropic 的 prompt caching 依赖 cache_control 标注,桥接层会如实传递,多轮对话成本可显著下降。
跟「OpenAI 格式调用 Claude」差在哪?
假相容方案会丢失 tool_use 细节与流式事件语义;原生桥接则完整保留,这也是选中转站时最重要的差异点之一。

相关文章

准备好试用了吗?

OlithmRouter 提供 48+ 主流模型、多级分组定价与免费体验分组——注册后建立一把密钥即可开始。

OlithmRouter模型与价格接入文档