Claude Code 接入 AnyRouter:anyr claude、Base URL、模型与 401/402 排错
简答:如果只是让 Claude Code 接入 AnyRouter,不需要先安装本地 Claude Code Router(CCR):优先使用 anyr claude;只有需要自己管理多个上游和本地路由规则时,才考虑 CCR。最短路径是先核验 Claude Code,再创建或准备 API Key,使用 anyr claude --dry-run 查看环境,最后用一个只读请求验证。手动配置时,Claude Code 使用 https://anyrouter.cfd/api,OpenAI 兼容 SDK 通常使用 https://anyrouter.cfd/api/v1,不能混填。
定义:Claude Code 接入 AnyRouter,是让 Claude Code 通过 AnyRouter 提供的 Anthropic 兼容入口发送请求,再由该网关按模型 ID 转发到可用模型;它与需要自行部署的 Claude Code Router(CCR)不是同一个组件。
先看三种方案:接入 AnyRouter 不等于安装 CCR
本文面向想把 Claude Code 接到 AnyRouter 的用户。本站不是 AnyRouter 官方站,文中的 AnyRouter 地址、命令、模型目录和额度信息均应以当前服务页面或文档为准;AnyRouter 自身的 agent 文档说明,Claude Code 使用 Anthropic 兼容地址,而 OpenAI SDK 使用另一套 Base URL 路径。查看 AnyRouter 的 AI coding agents 接入说明。
| 方案 | 是否需要安装 CCR | 地址与凭据 | 适用场景 |
|---|---|---|---|
| AnyRouter 托管网关 | 不需要 | Claude Code 使用 https://anyrouter.cfd/api;使用 AnyRouter API Key | 只想快速接入、切换模型或使用托管路由 |
| Claude Code 直连 Anthropic | 不需要 | 使用 Anthropic 自己的认证与地址 | 不需要第三方网关和多模型路由 |
| CCR 本地网关 | 需要安装和维护 CCR | Claude Code 指向本机网关,凭据和上游由 CCR 管理 | 需要自定义多个提供商、路由规则或本地统一入口 |
决策顺序:只接 AnyRouter,先用 anyr claude;不想安装 CLI,再手动设置环境变量;只有确认需要本地多提供商路由时,才研究 CCR。Anthropic 的 Claude Code 文档也将第三方网关定义为客户端与模型提供商之间的独立网关,并提醒第三方网关的部署、兼容性和维护由其自身负责。查看 Claude Code 的第三方网关说明。
推荐路径:先用 anyr claude 跑通 Claude Code
AnyRouter 的接入说明列出 anyr auth login、anyr claude 和 --dry-run 等命令。由于本文核验时 https://anyrouter.cfd/setup.sh 未能稳定抓取,不能把远程脚本安装命令当作已验证的无风险步骤;执行任何第三方脚本前,应先在浏览器或本地下载后检查脚本内容、来源、写入路径和权限范围。
- 确认 Claude Code 可运行:先在不接入 AnyRouter 的情况下执行
claude --help。如果命令不存在,先按 Claude Code 当前安装文档处理,本文不固定某个安装器或版本。查看 Claude Code CLI 参考。 - 准备 API Key:在你确认可访问的 AnyRouter 控制台中创建 API Key。AnyRouter 的 agent 文档示例说明,Key 形态以
sk-ar-开头;实际前缀、权限和创建入口仍应以当前页面为准。 - 安装并核验 anyr CLI:优先使用当前 AnyRouter 文档提供的安装方式,安装后执行
anyr --help。如果安装脚本无法访问或内容无法审阅,不要直接通过管道交给 Shell 执行。 - 登录或传入 Key:按 CLI 当前帮助执行
anyr auth login,不要把真实 Key 写入文章、仓库、截图或公共日志。 - 先预览环境:执行
anyr claude --dry-run,检查它准备注入的 Base URL、认证变量和模型变量;预览结果中的 Key 应脱敏。 - 启动 Claude Code:执行
anyr claude;需要指定模型时使用anyr claude --model "精确模型ID"。
成功判定不是“Claude Code 窗口打开”,而是能完成一次最小请求,并且响应来自预期的网关。若命令启动后仍使用原有 Anthropic 登录状态,先查看 --dry-run 输出和 Claude Code 的认证状态,再判断是否发生了路由。
手动配置:Base URL、Key 和模型怎么填
手动配置适合希望控制当前终端、项目或脚本环境的用户。AnyRouter 的接入说明将 Anthropic Messages 请求与 OpenAI 兼容请求区分开:Claude Code 使用 https://anyrouter.cfd/api,而 OpenAI SDK 的 Base URL 使用 https://anyrouter.cfd/api/v1。Claude Code 不要直接填 /api/v1,也不要把完整的 /messages 重复拼接到 Base URL 后面。核对 AnyRouter 的端点和认证说明。
macOS、Linux、Bash 或 Zsh 可先在当前终端测试:
export ANTHROPIC_BASE_URL="https://anyrouter.cfd/api"
export ANTHROPIC_API_KEY="sk-ar-your-key"
claude -p "只检查当前项目结构,不修改文件"
PowerShell 可使用:
$env:ANTHROPIC_BASE_URL="https://anyrouter.cfd/api"
$env:ANTHROPIC_API_KEY="sk-ar-your-key"
claude -p "只检查当前项目结构,不修改文件"
这些命令中的 Key 是占位符,不能原样使用。Claude Code 官方 CLI 文档确认,claude -p 可执行一次性查询;网关配置则依赖 ANTHROPIC_BASE_URL 和网关凭据。查看 CLI 参数。
| 配置项 | Claude Code 接入 AnyRouter 的写法 | 常见错误 |
|---|---|---|
| Anthropic Base URL | https://anyrouter.cfd/api,以当前接入文档为准 | 误填 /api/v1 或重复拼接 /messages |
| OpenAI SDK Base URL | https://anyrouter.cfd/api/v1 | 把 OpenAI 地址直接复制给 Claude Code |
| 认证变量 | 优先按网关文档使用 ANTHROPIC_API_KEY;如当前实现要求 Token,再按文档切换 | 同时混填多个 Key,导致无法判断实际生效凭据 |
| 模型 ID | 从当前模型目录复制完整字符串,例如文档列出的路由模型 ID | 凭显示名、旧别名或模型厂商名称猜测 |
模型选择:先复制精确 ID,再测试工具和流式能力
AnyRouter 的 agent 文档说明,模型 ID 通常采用 owner/model 形式,并建议从模型目录复制,不要凭名称猜测;文档还列出 anyrouter/auto 与 anyrouter/free 这类路由 ID。模型目录、可用性、额度和路由结果可能变化,因此本文不把具体模型名称、价格或长期可用性写成保证。查看模型目录获取方式。
- 先查目录:按当前文档访问模型列表,复制完整模型 ID。
- 先测默认或自动路由:如果当前目录仍提供
anyrouter/auto,可用anyr claude --model anyrouter/auto做初始链路测试。 - 再测指定模型:把模型 ID 作为
--model参数传入,不要先修改多个默认层级。 - 最后测高级能力:依次验证普通文本、工具调用、流式输出和长上下文;普通文本成功,不代表工具字段、流式事件和上下文窗口一定完全兼容。
如果模型调用成功但工具调用失败,先保留同一个模型和请求内容,只减少工具数量并改为纯文本测试。若纯文本正常而工具仍失败,应查看网关是否完整转发 Claude Code 所需的工具字段,而不是立即更换 Key 或反复修改 Base URL。
401、402、404、429 和请求仍直连时怎么查
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 401 | Key 是否为空、过期、带空格,变量是否真的进入当前进程 | 执行 anyr claude --dry-run,只保留脱敏结果;确认使用的是 AnyRouter Key |
| 402 insufficient_balance | 账户 credits、模型是否需要付费额度、请求是否误用了非免费模型 | 查看当前控制台余额和模型说明;不要把 402 当成 401,也不要只重复生成 Key |
| 404 | Base URL 路径、模型 ID 和协议是否匹配 | 重新对照当前模型目录与接口文档,不要在 /api、/api/v1 之间盲试 |
| 429 | 网关限流、账户额度限制、模型供应商限流或本地并发 | 读取响应体和 Retry-After;降低并发并记录请求时间 |
| 启动成功但请求仍直连原服务 | 环境变量优先级、项目配置、已有登录状态和 wrapper 是否生效 | 用 --dry-run 与 claude auth status 对照检查 |
| 超时或流式中断 | 网关是否收到请求、响应是否已开始、连接是否被客户端关闭 | 记录状态码、请求 ID、最后事件和脱敏错误体,再区分上游错误与网络断开 |
AnyRouter 的 agent 文档明确提到,付费模型在没有足够 credits 时可能返回 402 insufficient_balance;因此遇到 402 时应先核对账户额度和模型类型,而不是继续修改认证变量。具体额度、免费规则和账户状态以当前页面为准。查看 AnyRouter 当前错误与模型说明。
排错时不要把“管理页面能打开”当成“模型请求成功”。最小验证应至少包含:请求确实发出、响应体可解析、模型 ID 被接受、返回内容完整结束;流式场景还要记录最后一个事件或连接关闭原因。API Key 不应进入命令历史、前端代码、镜像层、仓库或未脱敏日志。
Windows、macOS、Linux 的长期配置与隔离做法
首次排查建议只设置当前终端变量,确认成功后再决定是否长期保存。macOS 和 Linux 可以将变量写入用户级 ~/.bashrc 或 ~/.zshrc,但这会影响之后启动的所有 Claude Code 会话;如果你仍需要原有 Anthropic 配置,更适合保留 wrapper 脚本或继续使用 anyr claude。
Windows PowerShell 的用户级持久化可使用 [Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL","https://anyrouter.cfd/api","User") 和对应的 Key 设置命令;写入后需要重新打开终端,并检查变量是否进入当前进程。真实 Key 不建议直接写进可共享的 PowerShell 历史、项目文件或脚本仓库。
更稳妥的隔离方式是:普通 claude 保留原配置,只有 anyr claude 或单独 wrapper 使用 AnyRouter。Claude Code 官方文档也提醒,网关凭据会影响请求实际使用的认证与计费归属,因此切换前应确认当前生效的凭据。查看 Claude Code 网关凭据说明。
常见问题
Claude Code 配置 AnyRouter 需要安装 Claude Code Router 吗?
不需要。如果目标只是让 Claude Code 通过 AnyRouter 发送请求,优先使用 anyr claude 或手动设置环境变量。只有需要自行管理多个上游、路由规则和本地网关时,才考虑安装 CCR。
Claude Code 的 Base URL 应该填 /api 还是 /api/v1?
按 AnyRouter 当前 agent 接入说明,Claude Code 使用 Anthropic 兼容入口时填 https://anyrouter.cfd/api;OpenAI SDK 通常使用 https://anyrouter.cfd/api/v1。两者对应不同协议,不能因为地址相似就互换。
anyr claude 安装脚本能不能直接用 curl 管道执行?
不建议在未审阅第三方脚本时直接执行。本文核验时 setup.sh 地址未能稳定抓取,因此应先按当前文档确认脚本来源、内容、权限和写入路径,再决定是否执行;也可以先使用手动环境变量完成小范围验证。
为什么会出现 402 insufficient_balance?
这通常表示请求涉及需要 credits 的模型或账户额度不足。先查看当前控制台余额、模型说明和账户状态;不要把 402 当成 Key 错误,也不要只重复生成 API Key。具体额度和规则以当前 AnyRouter 页面为准。
模型 ID 应该怎么填写?
从当前模型目录复制完整 ID,通常是 owner/model 形式。不要使用展示名称、旧别名或凭厂商名称猜测;模型目录和可用性可能变化,遇到 404 时先重新核对目录。
如何保留原来的 Claude Code 配置,只临时使用 AnyRouter?
优先使用当前终端变量、anyr claude 或 wrapper,而不是直接覆盖系统级配置。测试完成后关闭终端或退出 wrapper;如果使用持久化变量,应确认它不会影响其他项目和会话。