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 標註能觸發上游快取。