文档Claude Code

Claude Code

通过 Echo Token Station 把 Claude Code 连接到 Claude 模型的设置,以及已确认的问题。

Claude Code 是 Anthropic 的编程用 AI 工具,在终端和 VS Code 里运行。Claude Code 用 Anthropic 格式连接 Echo。

验证情况:Claude Code 2.1.278(2026-09-27,Echo 的验证环境)

开始之前

  • Claude Code 使用的是 Claude 的模型。Anthropic 不支持经由 Echo 这样的中转服务(网关)使用 Claude 以外的模型。Anthropic 也不推荐、不维护、不审核网关产品
  • 设置了 Echo 的密钥期间,不会使用 claude.ai 的订阅。费用从 Echo 的余额中扣除
  • 准备好 Echo 的 API 密钥,以及要用的 Claude 模型的 ID。提供的 Claude 模型及其 ID,可以在模型一览查看

设置

在终端里设置

设置下面的环境变量(设置在电脑上的、带名字的值)。把 sk-... 换成 Echo 的 API 密钥,把模型 ID 换成要用的模型的 ID。

bash
export ANTHROPIC_BASE_URL="https://token.echohub.io"
export ANTHROPIC_AUTH_TOKEN="sk-..."
export ANTHROPIC_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5"
变量含义
ANTHROPIC_BASE_URL接入地址。不加 /v1。Claude Code 会加上 /v1/messages
ANTHROPIC_AUTH_TOKENEcho 的 API 密钥。用 Authorization: Bearer 请求头发送
ANTHROPIC_MODEL要用的模型的 ID
ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL在 Claude Code 里选择「opus」「sonnet」时使用的模型的 ID
ANTHROPIC_DEFAULT_HAIKU_MODEL选择「haiku」时,以及后台处理(生成会话名等)使用的模型的 ID
  • 不设置模型 ID 时,Claude Code 会用它自己默认的模型 ID 调用。Echo 不提供那个 ID 时会出错,而且要 1 分钟以上才会显示错误(见下面的「已确认的问题」)
  • ANTHROPIC_DEFAULT_OPUS_MODEL 等 3 个变量,也要填 Echo 提供的模型的 ID。填了 Echo 不提供的 ID,用到那个模型时会出错
  • ANTHROPIC_API_KEY 里放着别的密钥(Anthropic 的密钥等)时,先删掉再设置。Claude Code 会用 x-api-key 请求头发送这个变量里的密钥

写进设置文件

不想每次都设置时,写进 ~/.claude/settings.json(Windows 是 %USERPROFILE%\.claude\settings.json)的 env。

JSON
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://token.echohub.io",
    "ANTHROPIC_AUTH_TOKEN": "sk-...",
    "ANTHROPIC_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
  }
}

在 shell 和设置文件里设置了同一个变量时,使用设置文件里的值。

注意:不要把密钥写进项目的 .claude/settings.json。这个文件会进入代码仓库,与其他人共享。

在 VS Code 扩展里使用

写进 VS Code 用户设置(用命令「Preferences: Open User Settings (JSON)」打开)的 claudeCode.environmentVariables。扩展会在启动前确认这个设置里的认证信息。

JSON
{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://token.echohub.io" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-..." },
    { "name": "ANTHROPIC_MODEL", "value": "claude-sonnet-5" }
  ]
}

确认能用

  1. 在设置了环境变量的终端里运行下面的命令。最后一行显示 200,上面显示包含 "type":"message" 的 JSON,就说明接入地址和密钥设置正确
bash
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-5", "max_tokens": 16, "messages": [{"role": "user", "content": "こんにちは"}]}'
  1. 在同一个终端里启动 claude,运行 /status。确认接入地址是 https://token.echohub.io,认证信息显示的是 ANTHROPIC_AUTH_TOKEN
  2. 随便问点什么,没有出错地返回回答就完成了。控制台的「呼び出し履歴」(调用记录)里也会出现记录

已确认的问题

以下是 2026-09-27 在 Echo 的验证环境中确认的行为。

情况在 Claude Code 里的表现处理方法
余额不足显示 Failed to authenticate. API Error: 403 Insufficient balance。虽然写着「认证失败」,原因不是密钥而是余额充值
密钥错误(401)、模型 ID 错误(503)、拥挤(429、529)显示错误之前会持续重试。验证时,有时 60 秒以上什么都不显示想尽快查明原因时,用上面的 curl 查看 HTTP 状态码和错误正文。重试次数可以用环境变量 CLAUDE_CODE_MAX_RETRIES(默认 10 次)减少
回答过程中,上游 API 返回错误或连接断开不显示错误,那一次的回答可能在中途结束或是空的把同样的指示再发一次。修复预定:[ ]
用到计算 token 数的 API(/v1/messages/count_tokens)时Echo 不支持这个 API,Claude Code 会改为按字数估算。/context 显示的是估算值不需要处理。不影响价格的计算

上游 API 返回错误的情况,以及错误正文的一览,见错误与处理。

不能正常使用时

症状原因处理方法
一启动就出现登录页面Claude Code 没有读到 Echo 的密钥在 shell 或 ~/.claude/settings.json 的 env 里设置 ANTHROPIC_AUTH_TOKEN
启动时出现有两份认证信息的警告claude.ai 的登录和 Echo 的密钥同时有效用 /logout 清除 claude.ai 的登录
长时间没有回答,之后出现 401 错误密钥错误、已停用、已过期,或使用上限已用完在控制台确认密钥的状态和使用上限
404 和 Invalid URL (POST /v1/v1/messages)ANTHROPIC_BASE_URL 加了 /v1改成 https://token.echohub.io
Failed to authenticate. API Error: 403 Insufficient balance余额不足充值
403 和 This API key has reached its spending limit密钥剩余的使用上限不够查看上限与速率限制
长时间没有回答,之后出现 503 和 The model … does not exist or is not available模型 ID 错误,或 Echo 不提供的模型确认 ANTHROPIC_MODEL 等变量的模型 ID
400 并出现 context_management 或 Extra inputs are not permitted 等上游 API 不接受 Claude Code 试验性功能的参数设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

Claude Code 会在请求里附上区分终端和会话的 ID。Echo 不做修改地把这个值传给上游的 Anthropic。详情见数据处理。

信息来源

内容来源确认日期
用接入地址和模型的环境变量连接,余额不足、重试、回答中途停止时的表现,加了 /v1 时的 404Echo 验证环境中的实测(Claude Code 2.1.278)。使用与正式环境相同的中转设置,并用返回测试响应的服务器代替上游 API2026-09-27
接入地址和密钥的环境变量、ANTHROPIC_API_KEY 用 x-api-key 发送、设置文件的优先顺序、VS Code 的设置、确认用的 curl 和 /status、错误处理表https://code.claude.com/docs/en/llm-gateway-connect2026-09-27
不支持 Claude 以外的模型、不推荐、维护、审核网关产品、不再使用订阅https://code.claude.com/docs/en/llm-gateway2026-09-27
没有 /v1/messages/count_tokens 时按字数估算https://code.claude.com/docs/en/llm-gateway-protocol2026-09-27
重试次数和 CLAUDE_CODE_MAX_RETRIEShttps://code.claude.com/docs/en/errors2026-09-27