当前位置: 首页 > news >正文

Claude Code 接入第三方模型指南

绍完整的配置流程。

原理

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

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

关键环境变量

变量说明
ANTHROPIC_BASE_URLAPI 端点地址,改为第三方服务地址
ANTHROPIC_AUTH_TOKENAPI Key / Token
ANTHROPIC_MODEL默认使用的模型名称
ANTHROPIC_DEFAULT_OPUS_MODELOpus 级别模型
ANTHROPIC_DEFAULT_SONNET_MODELSonnet 级别模型
ANTHROPIC_DEFAULT_HAIKU_MODELHaiku 级别模型
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 消耗较大。使用第三方模型前,确认账户额度充足。

http://www.jsqmd.com/news/1106229/

相关文章:

  • ASP.NET Core 之 Identity 入门(一)
  • React Hooks开发实践
  • 集成,持续交付,持续部署,敏捷开发,DevOps的关系
  • 2026年AI论文软件盘点:12款神器助你高效完成初稿生成、排版和降AI率
  • Android开发转AI Agent:第12天——Function Calling,让LLM从“说话“变成“做事“
  • Spring MVC开发实践教程
  • Python装饰器开发实践
  • step1. 调用摄像头
  • 给阿嬤一封来自云端的信(上)
  • NestJS框架教程
  • STM32与MAX9744实现高效音频放大系统设计
  • 量子计算中的基态制备与经典储层方法解析
  • 终极Win11系统优化指南:免费工具让你的Windows 11运行如飞
  • 游戏编程十年总结(下)
  • AI应用GEO排名优化指南:提升搜索可见性
  • 如何提取 Word 文档中的表格并导出为 Excel(Python 教程)
  • 第5章 Function Call 与工具调用框架《AI Agent 开发平台资深技术专家 AI Agent 应用架构师 CTO 面试题库详解》
  • 微架构安全:MDAV问题与防御机制集成挑战
  • JSON数据格式解析与应用
  • 【安全】Sql注入漏洞的危害和防御
  • Medisca在创始人Antonio Dos Santos的引领下开启发展新篇章
  • GPU监控与进程管理:科研必备的nvidia-smi详解
  • 6DoF运动跟踪技术:从IMU到姿态解算的实践指南
  • 【C++并发系列】第十二章:CPU cache line 和 false sharing
  • 打包带在高温环境下会变形吗?
  • Python代码重构最佳实践
  • Zephyr RTOS入门:设备树(DTS)与Kconfig配置体系——设备树、配置系统
  • 实测 Claude Sonnet 5 vs Claude Sonnet 4.6:别只看发布公告,API 跑起来才知道差距
  • Python集合使用技巧解析
  • 《代码随想录》刷题打卡day28:动态规划part01