用户跑来问「Claude Code 能直接用 MonkeyAI 这种 OpenAI 兼容网关吗」,最省事的答案是「能,把 Base URL 改了就行」。但这是错的,至少是过度乐观的。Claude Code 官方 LLM Gateway 模式走 Anthropic Messages,需要单独设置 ANTHROPIC_BASE_URL;OpenAI 兼容地址只是其中一个可选入口,不是默认入口。先把边界讲清楚,再决定要不要走 Cline / Roo Code,反而更快、更不容易吵架。
OpenAI 兼容网关并不自动意味着「Claude Code 可以直接用」。Claude Code 至少会按下面两条预期工作:
/v1/messages、/v1/messages/count_tokens),路由由 ANTHROPIC_BASE_URL 决定,不是 OpenAI 客户端的 OPENAI_BASE_URL。x-api-key 或 ANTHROPIC_AUTH_TOKEN;用 apiKeyHelper 时也会落到 x-api-key。仅靠 Authorization: Bearer 通常不被官方 Gateway 模式接受。所以回答用户时,第一句应该是:「先确认 Gateway 同时支持 Anthropic Messages 协议,再谈 OpenAI 兼容」。这句话比「改 Base URL 就行」更接近事实,也更容易把用户带到可执行的步骤上。
| 检查项 | 该看到什么 | 常见的失败 |
|---|---|---|
| ANTHROPIC_BASE_URL | 指向 https://monkeytheme.com(不要带 /v1,Claude Code 自己拼路径) | 直接照 OpenAI 兼容客户端习惯填了 https://monkeytheme.com/v1,Claude Code 再拼 /v1/messages 就变成 /v1/v1/messages |
| 认证头 | x-api-key: <你的 MonkeyAI Key> 或 ANTHROPIC_AUTH_TOKEN | 只填了 Authorization: Bearer,协议层校验就被挡在 401 |
| anvilropic-version / anthropic-beta | 原样转发,不要私自改写 | 网关在中间层把它们重写或丢掉了,Claude Code 报 400 |
| 模型发现 | /v1/models 能返回包含 Claude 系列的模型列表 | 网关只暴露 OpenAI 兼容模型名(如 gpt-5.4),Claude Code 完全看不到目标模型 |
2026-08-09 用无效测试凭据对生产接口做了脱敏探测,结果如下(不是端到端会话,只验证路由可达与认证边界):
| 探测项 | 响应 | 可以确认的事实 |
|---|---|---|
GET /v1/models,无 Key | 401 JSON(API_KEY_REQUIRED) | 路由可达,认证检查先行 |
POST /v1/messages,无效 x-api-key | 401 JSON(INVALID_API_KEY) | Anthropic Messages 路径已就位,且按 x-api-key 校验 |
| 用真实 Key 跑一次 Claude Code 会话 | 本轮未执行 | 不能据此承诺流式输出、工具调用、token 计数、beta 能力 |
也就是说:协议层骨架是对的(路由 + 认证头都被认),但完整能力边界要等到真实会话跑通。拿这个事实去回答用户,比「改 Base URL 就行」更可信。
ANTHROPIC_BASE_URL。」POST /v1/messages 已经能被路由到(无 Key 返回 401),所以协议骨架是有的;但完整能力要在你的账号上跑一条真实 claude 会话验证。」/v1 OpenAI 兼容端点,路径更直接、字段对齐更稳。」https://monkeytheme.com/v1 同时填进 ANTHROPIC_BASE_URL 和 OPENAI_BASE_URL,结果 Claude Code 拼出 /v1/v1/messages,404。~/.claude.json 或 claude.ai 会话)和 Gateway 凭据混为一谈。官方文档明确:只设 ANTHROPIC_BASE_URL 不会替换已保存的订阅凭据。/v1/messages 路径就直接让用户去改客户端,应该先用一次脱敏探测把可达性落到日志上。不一定。Claude Code 官方 LLM Gateway 模式默认走 Anthropic Messages,需要单独设置 ANTHROPIC_BASE_URL;只有 OpenAI 兼容地址并不能保证 Claude Code 把它认成目标 Gateway。
优先推荐已确认支持 OpenAI Compatible Provider 的客户端,例如 Cline 或 Roo Code;它们对 /v1/chat/completions 与 /v1/responses 的字段对齐更直接,验证也更快。
是的。官方文档把路由(ANTHROPIC_BASE_URL)和凭据(ANTHROPIC_AUTH_TOKEN 或 apiKeyHelper)分开;只设置 Base URL 不会替换已经保存的 claude.ai 订阅凭据。
脱敏生产探测确认 /v1/messages 路由可达并按 API Key 校验(无效 x-api-key 返回 401 INVALID_API_KEY),但本轮没有用真实 Key 跑完整 Claude Code 会话,因此不承诺完整兼容。
两者都要,但顺序是:先把边界讲清,再用一次 /v1/messages 或 /v1/models 的脱敏探测把可达性落到日志上,最后才推荐客户端路径。这样对话不会停在抽象争论里。
把上面的边界表逐项核对:ANTHROPIC_BASE_URL、x-api-key 认证头、anthropic-version、/v1/models 可见模型,再决定是否继续。
不想折腾 Anthropic Messages 兼容时,用 Cline 或 Roo Code 直接接 MonkeyAI 的 /v1 OpenAI 兼容端点,是更稳的兜底。
MonkeyAI 当前实测的 /v1 端点列表:哪些支持(401-auth-first)、哪些 404、认证头接收顺序。一次写完不必再猜。
如果 Claude Code 报「model not found」,先用同 Key 调一次 /v1/models,再用返回的精确 model id,而不是凭印象写模型名。