CodeBuddy Code
CodeBuddy 的 base URL 覆盖走的是 Anthropic 协议 —— 这一条同时决定了 URL 形状和你能选哪些模型。
CodeBuddy Code 的端点覆盖是一个 Anthropic 协议的覆盖。这一个事实决定了本页其余全部内容。
配置
export CODEBUDDY_API_KEY="sk-..." # 你的 RouteMux key
export CODEBUDDY_BASE_URL="https://api.routemux.com"
export CODEBUDDY_MODEL="anthropic/claude-sonnet-5"codebuddy --model anthropic/claude-sonnet-5官方文档列出的变量:
| 变量 | 文档原话 |
|---|---|
CODEBUDDY_BASE_URL | 覆盖 API 端点地址,通常与 CODEBUDDY_API_KEY 配合使用 |
CODEBUDDY_API_KEY | API 密钥。设置此密钥用于模型接口调用。在非交互模式(-p)下始终使用此密钥 |
CODEBUDDY_MODEL | 覆盖默认代理模型 |
CODEBUDDY_BIG_SLOW_MODEL | 覆盖 reasoning(推理增强)场景变体的模型 |
CODEBUDDY_SMALL_FAST_MODEL | 覆盖 lite(轻量快速)场景变体的模型 |
CODEBUDDY_CONFIG_DIR | 自定义 CodeBuddy Code 存储配置和数据文件的位置 |
同样这些变量也可以写进 settings.json 的 env 块,每个会话自动应用 —— 团队统一配置很方便。
这里要选 Claude 模型,不是 OpenAI 的
因为这个覆盖走 Anthropic 协议,你填的模型必须在 Anthropic Messages 上提供。
anthropic/claude-* 是;openai/*、google/gemini-*、xai/grok-* 并非都在那上面 ——
挑 slug 之前先看兼容矩阵。
填一个不在该协议上的模型会返回
400 MODEL_PROTOCOL_UNSUPPORTED。
base URL 的形状
CodeBuddy 官方文档里两种写法都出现过 —— 通用示例带 /v1、某厂商示例不带 —— 且没有给出规则,
所以后缀取决于该服务商自己的期待。对 RouteMux,用裸 origin https://api.routemux.com:
Anthropic 客户端会自己追加 /v1/messages。如果你那个版本追加的方式不同、最终落到
/v1/v1/messages,我们这边照样会正确路由。
BIG_SLOW / SMALL_FAST 这对分档直接关系花费
CodeBuddy 会把后台与轻量任务放在 small-fast 那一档上。你要是把它留在一个大模型上,
日常琐碎回合就按那个模型的单价计费。显式把 CODEBUDDY_SMALL_FAST_MODEL 设成便宜的那个。
关于 CODEBUDDY_INTERNET_ENVIRONMENT
文档把它描述为网络环境选择器,internal 用于中国版、ioa 用于 iOA 企业版。
文档里两个第三方端点示例都没有设置它,也没有给出「与第三方端点同时使用」的任何指引。
如果你设了它而请求到不了我们这里,可以试着取消它 —— 但这属于值得一试,不是有文档依据的行为。
OpenAI 兼容的模型走另一条路
对于不在 Anthropic 协议上的模型,CodeBuddy 用的是本地 models.json 声明,而不是这个 base URL
覆盖 —— 每个模型一条,带完整 url、key 与上下文上限。本页不覆盖那条路;
要用 OpenAI 协议的模型,找一个原生就有 OpenAI 供应商的客户端更省事。
排查
| 现象 | 原因 |
|---|---|
400 MODEL_PROTOCOL_UNSUPPORTED | 你填的模型不在 Anthropic Messages 上提供。 |
| 每条请求都 404 | base URL 形状。先试裸 origin。 |
| 琐碎回合花了意外的钱 | CODEBUDDY_SMALL_FAST_MODEL 还指着一个大模型。 |
| 非交互运行用了错的 key | -p 模式始终取 CODEBUDDY_API_KEY,与交互式登录无关。 |
422 BILLING_INSUFFICIENT_CREDITS | 钱包余额不足。失败请求不计费。 |