Claude Code 接入第三方模型指南

[注:本文由AI根据实际操作流程整理并生成,作者人工审核修改后发布]

Claude Code 是 Anthropic 推出的命令行 AI 编程助手,默认使用 Claude 系列模型。但通过其环境变量配置,我们可以将它接入任何兼容 Anthropic Messages API 的第三方模型。本文介绍完整的配置流程。

原理

Claude Code 启动时会读取 ~/.claude/settings.json 中的 env 字段,将其作为环境变量注入运行时。我们只需修改 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN,就能把请求指向第三方 API。

核心是 Anthropic Messages API 兼容协议——DeepSeek、阿里云百炼等平台都提供了兼容该协议的端点,Claude Code 无需修改即可直接对接。

关键环境变量

变量 说明
ANTHROPIC_BASE_URL API 端点地址,改为第三方服务地址
ANTHROPIC_AUTH_TOKEN API Key / Token
ANTHROPIC_MODEL 默认使用的模型名称
ANTHROPIC_DEFAULT_OPUS_MODEL Opus 级别模型
ANTHROPIC_DEFAULT_SONNET_MODEL Sonnet 级别模型
ANTHROPIC_DEFAULT_HAIKU_MODEL Haiku 级别模型
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 设为 1 禁用非必要网络请求(建议开启)

Claude Code 区分三个模型级别(Opus > Sonnet > Haiku),Fast/Think 模式走 Opus,普通模式走 Sonnet,轻量任务走 Haiku。如果第三方只提供一个模型,把三个值设成同一个即可。

绕过登录验证(必须)

Claude Code 启动时会检查你是否完成了 Anthropic 官方的登录引导,未完成则强制进入登录流程。使用第三方 API 时,需要手动跳过此检查。

编辑 ~/.claude.json(Windows 路径:C:\Users\<用户名>\.claude.json),添加或修改:

{
  "hasCompletedOnboarding": true
}

如果该文件已有其他内容,只需确保 hasCompletedOnboarding 字段存在且为 true,不要覆盖其他字段。

做完这一步,Claude Code 就不会再要求登录 Anthropic 账号了。

接入 DeepSeek

DeepSeek 提供了原生的 Anthropic 兼容端点。

~/.claude/settings.json 中配置:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的DeepSeek-API-Key",
    "ANTHROPIC_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash[1m]",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}

获取 API Key:platform.deepseek.com

接入千问(阿里云百炼)

通过阿里云百炼平台的模型服务接入千问模型。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的千问Token",
    "ANTHROPIC_MODEL": "qwen3.6-plus",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3.6-plus",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3.6-plus",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen3.6-plus"
  }
}

获取 Token:阿里云百炼控制台 → 模型服务 → Anthropic 兼容接口。

多环境管理:cenv

如果你和我一样同时用多个模型,手动改 JSON 很烦。我写了一个小脚本 cenv,两步切换环境。

安装

第一步:创建脚本文件

touch ~/.claude/cenv
chmod +x ~/.claude/cenv

第二步:复制以下代码到 ~/.claude/cenv

#!/usr/bin/env bash
set -euo pipefail

CLAUDE_DIR="$HOME/.claude"
SETTINGS_FILE="$CLAUDE_DIR/settings.json"

list_envs() {
  local current=""
  if [[ -L "$SETTINGS_FILE" ]]; then
    current=$(basename "$(readlink "$SETTINGS_FILE")")
  fi

  echo "可用环境:"
  for f in "$CLAUDE_DIR"/claude-settings-*.json; do
    [[ -f "$f" ]] || continue
    local filename=$(basename "$f")
    local name="${filename#claude-settings-}"
    name="${name%.json}"
    local marker="  "
    [[ "$filename" == "$current" ]] && marker="* "
    echo "${marker}${name}"
  done
  echo ""
  echo "当前: ${current:-未设置}"
}

switch_env() {
  local name="$1"
  local target="$CLAUDE_DIR/claude-settings-${name}.json"
  if [[ ! -f "$target" ]]; then
    echo "错误: 环境 '$name' 不存在"
    exit 1
  fi
  rm -f "$SETTINGS_FILE"
  ln -s "$target" "$SETTINGS_FILE"
  echo "已切换到: $name"
}

case "${1:-}" in
  ls|list) list_envs ;;
  use)     switch_env "${2:?请指定环境名称}" ;;
  *)       echo "用法: cenv <ls|use <name>>" ;;
esac

第三步:将 ~/.claude 加入 PATH

~/.zshrc 末尾添加(bash 用户改 ~/.bashrc):

export PATH="$HOME/.claude:$PATH"

**第四步:让zshrc生效

source ~/.zshrc` 

目录结构示意

以上步骤完成后,你的 ~/.claude 目录应类似:

~/.claude/
├── cenv                        # 切换脚本
├── settings.json               # 软链接 → 指向当前激活的配置
├── claude-settings-ds.json     # DeepSeek 配置
├── claude-settings-qw.json     # 千问配置
└── claude-settings-xxx.json    # 未来新增的任何配置
# 还有一些别的自动生成的配置,不重要

使用

只有两条命令:

cenv ls          # 列出所有环境,* 标注当前激活
cenv use qw      # 切换到千问

切换后直接 claude 启动即可,不需要重启终端。

原理

cenv 做的事情非常简单:cenv use qw 执行时,它删除 settings.json,然后创建一个同名的软链接指向 claude-settings-qw.json。Claude Code 启动时无感读取,始终只认 settings.json,实际内容由软链接决定。

命名约定: cenv use xx 中的 xx 必须对应 claude-settings-xx.json 的文件名。例如:

cenv use ds       →  claude-settings-ds.json
cenv use qw       →  claude-settings-qw.json
cenv use qianfan  →  claude-settings-qianfan.json

cenv ls 会自动扫描 ~/.claude/ 下所有 claude-settings-*.json 文件并提取名称,所以新增模型配置时只需按 claude-settings-<名称>.json 命名放进去,脚本不用改。

注意事项

第三方 API 支持程度不一

不同厂商的 Anthropic 兼容实现深度不同,实际体验可能有差异。建议所有模型级别(Opus/Sonnet/Haiku)都指向同一个模型,避免行为不一致。

Token 消耗

Claude Code 是对话密集型工具,token 消耗较大。使用第三方模型前,确认账户额度充足。

非必要流量

建议开启 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1,避免 Claude Code 向 Anthropic 服务器发送遥测数据(在非官方 API 下这些请求会失败并产生错误日志)。

参考链接

posted @ 2026-05-11 01:08  溯光独立开发  阅读(166)  评论(0)    收藏  举报