New API 的协议转换能力:为什么它能用 Claude 官方 SDK 直连

教程 发布于 2026-09-29 98 次阅读 API指南针
各家接口的「方言差异」是中转站最大的技术痛点。本文说明协议转换到底转了哪三样东西,以及为什么它决定了你的客户端能不能直接接。

问题的起点:三套「方言」

如果你的项目要同时用 OpenAI、Claude、Gemini,你会遇到这样的事:同一个功能,三家接口写三遍。

差异不在参数名字这种表面层,而在三个更深的地方:

一、消息结构

OpenAI:messages 数组,system 是其中一条 role 为 system 的消息。 Anthropic:system 是顶层独立字段,不在 messages 里;messages 只能有 user / assistant。 Gemini:contents 数组,role 是 user / model(注意是 model 不是 assistant),而且不支持交替以外的消息排列。

二、流式响应格式

OpenAI:SSE,每个 chunk 是 data: {...},以 data: [DONE] 结束。 Anthropic:SSE 但事件类型是分层的(message_start / content_block_delta / message_stop 等),delta 结构也不同。 Gemini:又是另一套。

三、函数调用 / 工具描述

OpenAI:tools + tool_choice,返回 tool_calls。 Anthropic:tools 结构不同,返回的是 content 数组里的 tool_use 块。 Gemini:functionDeclarations。

协议转换在转什么

所谓「协议抹平」,就是把上面三件事双向翻译。以 New API 为例,它提供的是多向转换,而不是单向归一:

  • OpenAI 格式 ↔ Claude messages 格式
  • OpenAI 格式 → Gemini
  • Gemini → OpenAI 格式

关键差别在于「能不能反过来」:

能力单向归一(One API 路线)多向转换(New API 路线)
用 OpenAI SDK 调 Claude✓✓
用 Anthropic 官方 SDK 调任意上游✗✓
用 Claude Code / Cursor 等原生 Anthropic 协议客户端需垫一层✓ 直接指向
用 Claude 官方格式访问非 Anthropic 模型✗✓

第二、三行是实质价值:你的客户端可以完全不改,只换 base_url。

对 Claude Code 这类只认 Anthropic 协议的客户端尤其重要 —— 它不接受 OpenAI 格式的端点,如果网关只做单向归一,你就必须额外跑一个转换代理。

转换最容易出问题的三个地方

这三点不是理论风险,是实际排查中最常见的三类故障:

1. 流式分块的对齐

不同上游的 SSE 分块粒度不同。有的按 token 流,有的攒一批再发。转换层如果按「一个上游 chunk 对一个输出 chunk」来写,会出现:

  • 输出里出现重复 token(增量没算对)
  • 输出缺字(多字节字符被切在两个 chunk 之间)

测试方法:让模型输出一段包含中文、emoji、代码块的混合内容,观察是否出现乱码或重复。这是最有效的单点测试。

2. 工具调用的协议漂移

Anthropic 的 tool_use 块和 OpenAI 的 tool_calls 结构差异较大,转换时如果对 input(Claude)与 arguments(OpenAI,是 JSON 字符串)的处理不一致,会出现:

  • 工具在测试里成功、在真实会话里静默地把参数写坏
  • 多轮工具调用时上下文丢失

行业里讨论 Claude Code 路由器时反复提到的一句经验是:优先选「请求透传、最少改写」的实现。改写越多,协议漂移的风险越高。

3. 参数的静默丢弃

上游不支持某个参数时,有两种处理:报错,或者悄悄忽略。

忽略更危险 —— 你以为设置了 temperature: 0、实际上按默认值跑了;你以为开了 response_format、其实没有约束。这类问题不会报错,只会让结果「时好时坏」。

测试方法:故意传一个非法值(如 temperature: 99),观察返回的是错误还是正常结果。返回正常结果,说明这个参数被忽略了。

对使用者的实际意义

如果你在选站

「支持 Claude 原生协议」是一个值得单独确认的能力项。判断方法很简单:用 Anthropic 官方 SDK,把 base_url 指向它,调一次。能通,说明它做了真转换;报 404 或结构错误,说明它只做单向归一。

如果你在自建

New API 在这个维度上的能力是它相对 One API 最实在的差异。如果你的使用方包括 Claude Code、Cursor、任何原生 Anthropic 协议的客户端,这个能力会直接省掉一层代理。

如果你在排查问题

遇到「同一个 prompt 换一家站结果不同」时,先别怀疑模型。按「流式对齐 → 工具调用 → 参数丢弃」的顺序查一遍,这三类问题的概率远高于模型差异。

本站的《常见报错对照表》与《怎么判断是谁的问题》两篇可以配合本篇使用。

这篇文章对你有帮助吗?如果你在实际使用中发现了文中没提到的情况,欢迎 提交纠错或补充,我们会核验后更新到正文里。

相关文章

视频生成接口进中转:三种形态、四个计量陷阱,以及一份验收清单

2026-10-19

MCP 经中转站:哪些能通、哪些一定不通,以及怎么在十分钟内测出来

2026-10-19

中转站选型决策树:从你的场景倒推到站点

2026-10-07

日志与对账:把 token 消耗算到项目维度

2026-10-06

灰度切换供应商:不中断业务地换掉一家 API 站

2026-10-06

自建探针:二十行脚本监控你的 API 供应商

2026-10-06

文中提到的模型,在这些站点可以调用

按文章提到的模型系列筛出,排序依据是综合评分与可用率,不构成推荐。点击可查看该站的可用率、延迟与接口核验结果。

完整清单见 中转站导航,或按 模型系列 浏览。