LZLZL/AI 工具链/接入层 · 原理
免费中 · 实践 二阶 接入层主心骨

中转 API 到底是什么:
一个 base_url 的事

2026-08-21 · 这条线的主心骨:学一次,后面每个工具都在复用

这是整条线最该读懂的一篇。读完你会发现所谓「接中转」根本不是一项技能, 而是三个旋钮的事——而且后面每换一个工具(编辑器、常驻 agent、消息网关), 拧的都是同样这三个。

本文写什么原理、三个旋钮、它做不到的事、你交出去了什么、怎么自己验。 本文不做任何中转服务之间的对比或排名,理由在第七节。 本文也不写我们自己连的是什么。

先把神秘感去掉:它们在发 HTTP 请求

Claude Code、Codex、以及后面要讲的常驻 agent,在调用模型这件事上做的是同一件朴素的事: 往某个地址 POST 一段 JSON,等一段 JSON 回来。

这段请求里只有三样东西是「可变」的:

发到哪里 · 你是谁 · 要哪个模型URL · KEY · MODEL

知道这一点,「中转」就没什么可神秘的了——它就是你把第一样换成了别的地址。 那个地址后面的服务收下请求、转给真正的模型、把结果转回来。

为什么换个地址就能换供应商

因为请求的形状是公开协议,不是哪家的私有格式。目前实际在用的主要是两系:

协议系谁在用说明
OpenAI 系大量服务声称「OpenAI 兼容」内部还分 chat-completionsresponses 两种线,不是一回事,见第四节
Anthropic 系Claude 的消息接口Claude Code 走这一系

「兼容」的准确含义是:它接受同样形状的 JSON,返回同样形状的 JSON。 客户端并不知道、也不关心对面是谁——它只检查形状对不对。

所以「中转」这个中文词有点误导

它听起来像某种代理或绕行。实际上从客户端的角度看, 那就是一个正常的 API 端点,和官方端点在协议层面没有区别。 差别只在于:这个端点背后的服务,替你把请求送到了别处。

三个旋钮,在每个工具里叫什么

这张表是整条线的骨架。后面每一篇要接端点,都回来看这张表。

工具① 地址② key③ 模型写在哪
Claude CodeANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_MODEL / 设置里的 model环境变量,或 settings.jsonenv
Codexbase_urlenv_key(指向某个环境变量)顶层 model~/.codex/config.toml[model_providers.X]
Hermesbase_urlOPENAI_API_KEYmodel~/.hermes/config.yaml,key 落 ~/.hermes/.env

三个工具、三种文件格式,但概念完全一样。Hermes 甚至把这件事挑明了—— 它的文档说,每个模型槽位(主模型、辅助任务、压缩、兜底)用的都是同一组三个键。

具体每个工具怎么落地,在下一篇逐个走一遍。

⚠ 它做不到的四件事

① 补不齐协议差异

OpenAI 系内部分 chat-completionsresponses 两条线。 端点只支持前者、而客户端按后者发,结果通常不是干净的报错, 而是奇怪的字段错误、空回复、或者工具调用整个失灵。

Codex 把这件事做成了一个显式的键 wire_api,就是因为这个坑够常见。 接任何非官方端点,先确认它支持哪套协议。这比调别的参数都重要。

② 保证不了模型真是它说的那个

返回体里的模型名是对面写的字符串,客户端只是照单显示。 换句话说,「我配的是 A,界面显示 A」什么都证明不了。

怎么验见第六节。但先记住:这一层是靠信任撑着的,不是靠协议撑着的。

③ 不改变计费与条款的主体

你和中转服务之间是一份新的关系,和原厂之间的关系并不因此消失或转移。 额度、条款、责任分别归谁,换端点这个动作一个字都没改

④ 不让你的数据变得更私密——恰恰相反

这是最要紧的一条,单独一节讲。

你实际交出去了什么

agent 类工具的请求里装的不是一句问题,是一堆上下文: 它读过的源文件、目录结构、报错信息、你的项目记忆文件、你打的每一句话。

这些内容对中转服务是明文可见的。这不是缺陷,是转发这个动作的定义—— 它得看得懂请求才能转发。

所以选择标准不该是「便宜」

正确的问法是:「我愿不愿意让这条链路上的每一方看到这些内容?」

一个可操作的分法——按活分路,而不是全都走同一条:

🟢 开源项目、公开文档、练手代码 → 走哪条都行
🟡 自己的私有项目 → 想清楚再选,至少知道对方是谁
🔴 公司代码、客户数据、含密钥的环境先过合规,不是先过技术

顺带一提,这条判据对编辑器自带的「填自己的 key」同样适用—— 那条路也会改变数据处理的归属方。

怎么自己验:三个动作

怎么做看什么
通不通发一个最小请求(一句话、不带工具)能不能拿到形状正确的返回。先排除协议问题,再谈别的
工具调用行不行让它做一件必须动工具的事(读个文件)很多端点「聊天能通、工具调用挂」,而这恰恰是 agent 的命根子
长上下文行不行喂一个大文件有的端点在长上下文上会截断或变慢,短请求测不出来
⚠ 别用「你是哪个模型」来验模型

这是最常见的无效验证。模型对自己身份的自述本来就不可靠—— 它可能答错、可能答的是训练数据里的旧名字、可能被系统提示覆盖。 拿这个当证据,正反两个方向都会得出错误结论。

真要判断,只能靠能力侧写:拿几道你熟悉的、不同档次模型表现明显不同的任务 跑一遍,看行为像不像。这也不是铁证,但比问它自己强得多。

为什么本站不做中转横评

本站有一条写死的规矩:不宣称中立,就不必披露;一旦文章本身讲的就是这门生意的利益结构,就必须披露。

横评是最典型的「宣称中立」。而我们自己就在用其中一条链路—— 这种情况下做横评,无论排序结果如何都不干净。

所以做法是:这一篇给原理和判据,让你自己排; 下一篇给操作,并且如实说明我们自己那层用的是哪家。 事实层可以说,结论层不替你下。

三个旋钮的键名 Claude Code:ANTHROPIC_BASE_URL · ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY · ANTHROPIC_MODEL, 可写进 settings.jsonenv 块。 Codex:~/.codex/config.toml[model_providers.ID]base_url / env_key / wire_api,顶层 modelmodel_provider。 Hermes:每个模型槽位统一三键 provider / model / base_url, 官方说明 base_url「指向自定义 OpenAI 兼容端点,使用 OPENAI_API_KEY 认证」。 三家官方文档,2026-08-21 核。
协议两系 Codex 的 wire_api 取值 responseschat-completions, 这是「OpenAI 兼容」内部存在分线的直接证据。
局限 「哪些端点支持哪套协议」没有权威清单,只能一家家试; 本文给的是排查顺序,不是兼容性表格。
本文不提供的 任何中转服务之间的对比或推荐,以及我们自己连的是什么。

相关接着读什么

二阶 · 接入层
四个客户端接中转:配置位在哪
二阶 · 接入层
账号是怎么没的,以及被封前该备份什么
二阶 · 接入层
token 成本账:钱到底烧在哪
三阶 · 常驻
Hermes Agent:OpenClaw 的下一站
本文是教育与工程记录,不是任何第三方产品的推荐或测评。命令、配置键、价格与条款均以各家官方文档为准, 本文标注考证日期,随时可能变更 —— 照抄前请自己核一遍。 自建与自托管的安全责任在部署者本人:密钥、账号与数据的后果由你承担。