Claude Code 换用其他模型:端点替换怎么做、哪些能力会掉
Claude Code 说到底是在跟一个 HTTP 端点通信。正是这一点让"换模型"这件事成立:这个工具并没有被焊死在某一家供应商上,它被焊死的是 Anthropic Messages API 这个请求形状。任何能把这个形状伺候好的服务,都可以坐在它后面。
下面讲清楚:端点替换具体怎么做、哪些能力换完还在、以及怎么判断一个替代模型是真能干活,还是仅仅能返回一段响应。
端点替换是怎么工作的
Claude Code 从环境变量里读取端点地址和凭据。把这两个变量指向另一个 base URL,客户端就会把同样的请求发到别处:
ANTHROPIC_BASE_URL——负责处理请求的端点基础地址。ANTHROPIC_AUTH_TOKEN——该端点接受的凭据。
在启动工具的那个 shell 里设好这两个变量,之后每一个请求都会发往新目的地。客户端其他部分不需要改。整个机制就这么多。所以真正值得问的问题不是"能不能换",而是"对面那个端点到底实现了多少"。
这里有两件事都被叫作"换模型",但表现完全不同:
同样的 Anthropic 模型,走不同的线路。 同一个模型家族,通过网关、云厂商托管服务或中转端点访问。行为基本不变,因为模型就是那个模型;变的是计费、延迟和可用性。
另一个模型家族,套一层协议转换。 一个非 Anthropic 的模型被包装成能接收 Messages API 请求。请求形状对上了,但底下的模型并没有 Claude 那套针对智能体循环的训练,真正的差异就出在这里。
换完之后,什么还在、什么掉了
按实际出问题的频率排序:
工具调用是第一个要验的。 Claude Code 是一个智能体循环——它靠依次调用工具来读文件、跑命令、改代码。一个原则上支持工具调用、但调得不精准的模型,会让循环卡住、反复重试或者发出格式错误的调用。这是"技术上连上了、实际上用不了"最常见的原因。
长上下文比基准测试成绩更重要。 真实会话会不断累积文件内容、命令输出和之前的对话。一个标称窗口很大、但在后半程质量明显下滑的模型,前十分钟感觉良好,之后就开始忘记早先定下的决定。
Prompt 缓存本来是计费问题,直到它缺席。 智能体会话每一轮都会重发一大段稳定前缀。不支持缓存的端点每次都按完整前缀计费,长会话里这部分能主导总成本。
System prompt 的处理方式各不相同。 Claude Code 会发送相当长的系统指令。转换层有时会拼接、截断或重排它们,症状是模型无视明明已经告诉过它的项目约定。
流式与停止行为。 不完整或非标准的流式实现,表现为输出一阵一阵地冒出来,或者循环识别不出"已完成"。
五步验收
在把真活交给一个替代模型之前先跑这五步,每一步对应上面一个失效模式。
- 单次工具调用。 让它读某个指定文件并报告其中一个事实。如果调用格式错了或者干脆跳过,到此为止。
- 链式调用。 要求一个需要先读、再改、再验证的改动。调用不精准的问题会在这一步暴露。
- 长会话记忆。 跑二十来轮之后,不重述地引用一个很早做出的决定,看它还记不记得。
- 每轮成本。 对比第一轮和第十轮的计费输入 token。如果每轮都是一个又大又平的数字,说明缓存没有生效。
- 出错时的表现。 给它一条会报错的命令。能用的模型会读错误信息并调整;不合适的会把同一个调用再发一遍。
五步全过的模型可以用。只过了第一、二步的,做短小、范围清晰的改动没问题,稍长一点就会让人难受。
什么时候不该换
如果换的理由是省钱,先拿"算上缓存之后的价格"来比——一个命中缓存的 Anthropic 会话,可能比一个没有缓存的便宜模型还便宜,因为前缀占了大头。账单到底被什么推高,见 Claude API 价格。
如果换的理由是访问问题而不是模型偏好,那变量是端点,不是模型。把请求路由到同一个模型的另一个端点,行为完全一致,访问问题本身就解决了——几条线路的对比见国内怎么用 Claude Code。
如果活是长时间运行的智能体任务,对工具调用不精准的容忍度很低,一个会把循环卡住的便宜模型并不便宜。
常见问题
Claude Code 能用 Claude 以外的模型吗?
可以,前提是它指向的端点提供 Anthropic Messages API 形状的服务。客户端不限制端点后面是什么模型;实际的限制来自模型处理工具调用和长上下文的能力。
怎么把 Claude Code 指到另一个端点?
在启动工具的 shell 里,把 ANTHROPIC_BASE_URL 设为端点的基础地址,把 ANTHROPIC_AUTH_TOKEN 设为该端点接受的凭据。
为什么替代模型连上了却干不了活?
几乎总是工具调用的问题。把请求形状伺候好很容易;在一个长循环里持续发出格式正确、顺序正确的工具调用,很难。
换模型能省钱吗?
有时能,但比预期少。智能体会话会重发一大段稳定前缀,所以一个支持 prompt 缓存的端点,经常比名义上更便宜、却没有缓存的那个更划算。
替代模型的行为会完全一样吗?
不会。只有"同一个模型走不同线路"时行为才一致。另一个模型家族套一层转换层,对上的是接口,不是行为。