Agent 接入

Claude Code

在 macOS 和 Linux 上通过 APIPool 的 Anthropic 兼容 Messages API 接入 Claude Code。

本文说明如何在 macOS 或 Linux 上让 Claude Code 通过 Anthropic 兼容的 Messages API 接入 APIPool。Base URL 是 https://app.apipool.dev,Claude Code 会 自己追加 POST /v1/messages。

1. 安装 Claude Code

claude --version 已经可用时跳过:

npm install -g @anthropic-ai/claude-code
claude --version

2. 准备 API Key

在 API Key 页面创建一个所属分组包含目标模型的 Key,然后在 准备启动 Claude Code 的 shell 中设置:

export APIPOOL_API_KEY="YOUR_APIPOOL_API_KEY"

这只对当前终端会话生效。长期使用请交给操作系统密钥管理器或其他受保护的环境变量 机制。不要把真实 Key 写进项目文件、Claude 配置、命令参数、截图或客服消息。

3. 可用模型 ID

模型 ID 必须完整填写:

  • claude-fable-5-1
  • claude-opus-5-5
  • claude-fable-5
  • claude-opus-5
  • claude-sonnet-5
  • claude-opus-4-8
  • claude-opus-4-7
  • claude-opus-4-6
  • claude-sonnet-4-6
  • claude-haiku-4-5-20251001

访问权限由创建 Key 时选的分组决定,填写模型 ID 本身不会让 Key 拿到其他分组的 权限。请先在模型列表确认目标模型对该分组可用,再按下方步骤连接。

4. 运行 Claude Code

export ANTHROPIC_BASE_URL="https://app.apipool.dev"
export ANTHROPIC_AUTH_TOKEN="$APIPOOL_API_KEY"

claude --model "claude-sonnet-5"

换模型就改 --model 的值。

ANTHROPIC_BASE_URL 后面不要加 /v1 或 /v1/messages,Claude Code 会自己拼成 https://app.apipool.dev/v1/messages。

如果之前配过指向其他供应商的 ANTHROPIC_BASE_URL 或认证变量,先移除或改掉,否则 Claude Code 可能仍然走旧的 Endpoint。

5. 确认接通

接通的标志是模型返回了可用回复,而不只是 HTTP 成功——协议层成功也可能是拒答。发一条 输出确定的最短请求:

claude --model "claude-sonnet-5" -p "请只回复:APIPOOL-OK"

返回 APIPOOL-OK 就是通了,这次请求的扣费随后可以在用量页 看到。

常见问题

现象检查项
claude 命令不存在执行 which -a claude;必要时检查 npm prefix -g 并修正 PATH,再看版本。
401确认当前 shell 里 ANTHROPIC_AUTH_TOKEN 已设置,且 Key 仍是启用状态。
403 或找不到模型确认完整模型 ID 在模型列表中,且 Key 所属分组已开放该模型。
返回路由错误或 HTMLANTHROPIC_BASE_URL 必须正好是 https://app.apipool.dev,不要追加 /v1/messages。
Claude 仍在用其他供应商检查有没有已保存的 ANTHROPIC_BASE_URL 或认证变量指向别处。
HTTP 成功但没有可用答案看 stop reason 和响应内容;协议成功仍可能是拒答。
usage 或扣费对不上先停止后续付费请求,保留 request ID 和用量记录再联系我们。

排查:排除本地配置的干扰

怀疑已保存的 MCP、项目规范、skills、hooks 或权限配置影响了结果时,用一条隔离的最小 请求复现:

ANTHROPIC_BASE_URL="https://app.apipool.dev" \
ANTHROPIC_AUTH_TOKEN="$APIPOOL_API_KEY" \
claude --setting-sources '' --strict-mcp-config --tools "" \
  --safe-mode --no-session-persistence --permission-mode plan \
  --model "claude-sonnet-5" -p "请只回复:APIPOOL-OK"

这组参数仅用于排查,会暂时忽略已保存的 MCP 和自定义配置。若此命令成功而日常 命令失败,逐项检查本地配置;日常使用时恢复原有设置。

排查:区分 Claude Code 与 APIPool

以下 curl 仅适用于允许通用 API 客户端的分组。Claude Code 专用分组请使用上一节的真实 Claude Code 命令验证;普通 curl 即使请求 /v1/messages 也可能被拒绝。

返回 claude_code_client_required 时,表示当前分组仅支持 Claude Code,并非 Key 失效。请改用 Claude Code 或切换到支持当前客户端的分组。

对于允许通用客户端的分组,可用同一个 Key 发一条最小的 Messages 请求,辅助区分接口问题与客户端配置问题:

curl -sS https://app.apipool.dev/v1/messages \
  -H "x-api-key: $APIPOOL_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"请只回复:APIPOOL-OK"}]}'