Anthropic Messages API Bridging (/v1/messages)
本页目录
①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 标注能触发上游缓存。