Claude Code 自定义 API 配置:第三方网关与中国开源模型
Claude Code 自定义 API 配置:第三方网关与中国开源模型
Claude Code 可以配置为连接 Anthropic 兼容端点,而不是直接使用某个供应商的默认端点。这样,开发者就可以测试由网关管理的开发工作流,并使用网关当前暴露的模型 ID。ECAIX 当前模型目录中包含 DeepSeek、Qwen、GLM、Kimi、MiniMax、Seed 等中国开源模型。
本文介绍的是一种供应商或网关特定的第三方兼容工作流。Anthropic 官方 Claude Code gateway 文档明确说明,Anthropic 不支持通过 gateway 将 Claude Code 路由到非 Claude 模型。ECAIX 不会把这种配置描述成 Anthropic 官方支持,也不保证非 Claude 模型可以提供 Claude Code 的全部能力。
配置前请先确认
本文用于理解 endpoint 配置和兼容性测试。Anthropic 官方文档不支持通过 gateway 将 Claude Code 路由到非 Claude 模型。ECAIX 也不宣称所有 Claude Code 功能都能在所有非 Claude 模型上工作。向生产环境发送代码或业务数据前,请先检查你使用的 Claude Code 版本、网关、模型供应商的文档和服务条款。
快速开始
如果你已经理解兼容性边界,可以先按下面的最短路径操作:
- 打开 ECAIX 当前模型目录,选择一个有效的 model ID。
- 创建 ECAIX API Key,不要提交到代码仓库。
- 将
ANTHROPIC_BASE_URL设置为https://ecaix.com/api/ai/v1/anthropic。 - 运行下面的诊断请求,并记录 HTTP 状态码。
- 在只读测试项目中使用
claude -p运行 Claude Code。 - 分别测试工具调用、流式输出、上下文限制和权限行为。
发布时验证状态
| 范围 | 状态 | 证据边界 |
|---|---|---|
| 公开模型 ID | 已测量 | 2026-10-23 查询 ECAIX 公开模型目录 |
| Endpoint 路径 | 已测量 | 与 ECAIX 已发布的 Anthropic 兼容文档一致 |
| 使用真实 Key 的直接 API 请求 | 本文未验证 | 请使用你授权的 Key 在本地运行诊断命令 |
| Claude Code 端到端会话 | 本文未验证 | 必须针对你安装的 Claude Code 版本单独测试 |
| 工具调用、流式、长上下文 | 未验证 | 需要单独测试;文本兼容不等于功能兼容 |
这里有意区分配置示例和实际兼容性测试结果。
这套配置改变了什么
整个工作流可以拆成四部分:
- Claude Code:创建编码任务并发出请求的客户端。
- Anthropic 兼容网关:接收 Anthropic 风格请求的 endpoint。
- 模型 ID:选择网关当前暴露的上游模型。
- API Key:决定账户、额度和权限的认证信息。
修改 endpoint 并不会让非 Claude 模型变成 Claude。它只改变了请求被发送到哪个兼容 API。工具调用、上下文处理、模型别名、流式输出和权限流程,可能因为客户端版本和网关实现不同而发生变化。
开始前需要准备什么
你需要准备:
- 支持通过环境变量或设置文件配置 endpoint 的 Claude Code。
- 一个 ECAIX API Key。
- 一个当前存在于 ECAIX 模型目录中的模型 ID。
- 一个可以执行最小测试请求的终端,并且不会把 API Key 提交到代码仓库。
模型目录会变化。在把模型 ID 复制到配置文件前,请打开 ECAIX 模型目录,确认模型仍然有效,并且适用于你准备使用的 API 风格。
配置网关 endpoint
很多 Claude Code 安装会使用 ~/.claude/settings.json。具体设置格式可能随版本变化,下面的配置应作为起点,并与当前版本的文档对照。
{
"env": {
"ANTHROPIC_BASE_URL": "https://ecaix.com/api/ai/v1/anthropic",
"ANTHROPIC_API_KEY": "YOUR_ECAIX_API_KEY",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT": "1"
},
"model": "deepseek-v4.1-flash"
}
不要把真实 API Key 提交到公开仓库。如果只是测试,可以使用本地环境变量;生产环境应使用安全的密钥管理方式。
也可以在测试期间通过 shell 环境变量配置:
export ANTHROPIC_BASE_URL="https://ecaix.com/api/ai/v1/anthropic"
export ANTHROPIC_API_KEY="YOUR_ECAIX_API_KEY"
export ANTHROPIC_MODEL="deepseek-v4.1-flash"
如果当前 Claude Code 版本不读取 ANTHROPIC_MODEL,请按照该版本文档确认模型配置位置。最终仍然需要确保网关能够识别最终发送的 model ID。
先验证 Anthropic 兼容 endpoint
在启动交互式编码会话之前,先发送一条小请求。下面的命令会把响应 header 和响应 body 分开保存,并打印 HTTP 状态码。真实 API Key 只应在本地授权环境中使用。
curl -sS -D /tmp/ecaix-anthropic-headers.txt \
-o /tmp/ecaix-anthropic-response.json \
-w '\nHTTP %{http_code}\n' \
"${ANTHROPIC_BASE_URL}/messages" \
-H "x-api-key: ${ANTHROPIC_API_KEY}" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"max_tokens": 128,
"messages": [
{"role": "user", "content": "Reply with one short sentence."}
]
}'
状态码可以这样理解:200 先检查响应结构;401/403 先检查 Key、header、账户和权限;404 检查 base URL 和 /messages;400 先缩小到最小请求;5xx 或 timeout 则记录时间和响应,区分网关、上游和客户端问题。
成功响应只证明本次 Key、endpoint、请求格式和 model ID 能够配合工作,不代表 Claude Code 的所有功能都兼容。
如何选择模型 ID
ECAIX 模型目录包含来自不同中国供应商的模型系列。选择模型时,不要只看模型名称,要根据具体任务验证。
编程和通用开发
可以从当前目录中可用的 DeepSeek、Qwen、GLM、Seed 编程模型开始。例如目录可能包含 deepseek-v4.1-flash、qwen3.8-flash、glm-5.3、seed-2.0-code 等 ID。模型状态和能力会变化,文章发布时仍然要重新检查模型页面。
长上下文和代码仓库分析
如果要处理大型代码仓库或长技术文档,可以比较模型目录中显示的上下文长度。但上下文窗口更大,不代表仓库任务一定更好。还需要检查提示词结构、工具支持、输出上限和网关请求限制。
工具调用和 Agent 工作流
如果工作流依赖 Function Calling 或 tools,请同时检查模型和 endpoint 文档。有些供应商通过 OpenAI 兼容 API 提供工具调用,有些供应商的字段名或支持范围不同。在连接真实仓库或外部系统之前,先用一个简单函数进行测试。
中文开发任务
如果代码仓库、技术文档、issue 或团队沟通中包含中文,中国开源模型可以作为候选。不要只依赖通用排名,应该使用自己的提示词和代码仓库样本进行验证。
API 请求成功后测试 Claude Code
确认直接 API 请求成功后,先运行只读或低风险任务:
claude -p "Explain what this repository does without editing files."
接着测试一个范围很小的任务:
claude -p "List the likely entry points for the web application. Do not modify files."
建议按以下顺序增加测试强度:
- 普通文本响应。
- 短代码解释。
- 代码仓库导航。
- 在临时分支进行受控编辑。
- 工具调用或多步骤任务。
- 流式输出和长上下文。
一次文本响应成功,不代表权限提示、工具调用、流式输出、上下文限制或文件编辑一定和 Claude 模型会话一致。
如何选择 API 路径
Claude Code 只是其中一种客户端工作流,具体 API 路径取决于你使用的客户端和功能需求:
| 方式 | 适合场景 | 重点比较 |
|---|---|---|
| 官方 Claude API | 需要原生 Claude 支持和官方文档 | 官方条款、原生能力和计费 |
| 第三方 Anthropic 兼容网关 | 需要 Anthropic 风格请求和统一路由 | 协议覆盖、路由、限额、日志和非 Claude 限制 |
| 模型供应商原生 API | 需要供应商特定模型能力 | 原生字段、工具、上下文和 SDK |
| OpenAI 兼容网关 | 已经使用 OpenAI SDK 或相关工具 | base URL、字段转换、Responses 和工具语义 |
ECAIX 的 Anthropic 兼容路径请查看 Anthropic Messages 文档,OpenAI 兼容客户端请查看 Chat Completions 文档。当前模型和价格请以 模型目录 与定价页为准。
兼容性矩阵
下表是文章发布时的证据边界,不是完整兼容性认证:
| 测试项 | 本文证据状态 | 下一步 |
|---|---|---|
| API Key 认证 | 提供请求格式 | 使用授权 Key 记录状态码 |
| 模型路由 | 公开目录中的模型 ID | 检查响应中的模型或 usage 字段 |
| 普通文本生成 | 提供最小请求 | 保存真实响应 |
| 流式输出 | 本文未验证 | 测试事件格式和客户端解析 |
| 工具调用 | 本文未验证 | 测试一个无害的函数 schema |
| 多步骤 Agent | 本文未验证 | 在临时仓库中测试 |
| 长上下文 | 本文未验证 | 测量最大成功 prompt |
| 权限行为 | 本文未验证 | 分别测试只读和受控编辑 |
一次最小请求成功,不能被表述成完整的 Claude Code 兼容认证。
模型详情页与当前 ID
不要从旧文章复制模型名,请通过模型详情页确认当前信息:
模型可用性会变化,发布后仍需回到详情页确认。
常见错误
出现错误时,不要同时修改多个变量。建议按这个顺序排查:
- 保存 HTTP 状态码和响应 body。
- 确认 base URL 和 endpoint 后缀。
- 确认本地 Key 存在,并且账户具有预期权限。
- 在实时模型目录中确认准确的 model ID。
- 使用最小请求重试。
- 对比 Claude Code 发出的请求与直接 curl 请求。
- 最后再排查上游路由、timeout 或工具 schema。
这样可以区分模型拼写错误、模型权限不足、网关映射失败和上游供应商错误。对于 401/403,通常不应先修改模型;对于文本成功但工具失败,应优先检查工具 schema。
| 现象 | 可能原因 | 检查方式 |
|---|---|---|
401 或 403 | API Key 缺失、无效或没有权限 | Key、账户权限、请求 header |
| Model not found | 模型不在当前目录,或该 Key 无权使用 | /zh/models、拼写和模型权限 |
| Unsupported parameter | 网关或上游只支持 Anthropic 请求格式的一部分 | 去掉可选字段,先发送最小请求 |
| 工具调用为空或格式异常 | 工具 schema 或供应商映射存在差异 | 先测试一个简单函数 |
| Timeout | 上下文、输出、上游负载或客户端 timeout 过大 | 减小 prompt、输出上限或任务范围 |
| 客户端忽略模型设置 | Claude Code 版本改变了配置路径 | 查看对应版本的设置文档 |
| 文本能用但 Agent 任务失败 | 文本兼容不等于工具兼容 | 分别测试 tools、权限、流式和上下文 |
安全和数据处理
请把网关当成独立的服务边界。在发送源代码或客户数据前,需要确认:
- 哪个服务会接收 prompt 和文件内容。
- 请求和响应是否会被记录。
- API Key 如何保存、轮换和撤销。
- 当前路由是真实上游,还是另一个供应商的 fallback。
- 客户端能够调用哪些工具。
- 测试结束后是否能够立即禁用 Key。
不要把生产 API Key 放进公开 issue、文章、截图,或者会被他人共享的 shell history。
与 Claude Code 官方支持的区别
Claude Code 的支持范围应以 Anthropic 官方文档为准。第三方网关公开了兼容请求格式,并不等于 Anthropic 官方支持。对外描述时应区分:
- 这套网关配置已经验证的内容:endpoint、认证 header、模型 ID、ECAIX 实测功能。
- 不能自动保证的内容:所有 Claude Code 功能、非 Claude 模型行为、供应商特定的工具语义、未来客户端版本。
- 发生变化后需要重新验证的内容:模型可用性、请求字段、上下文限制、流式输出、工具调用和价格。
FAQ
使用这套工作流一定需要 Claude 订阅吗?
这取决于 Claude Code 安装方式、账户条件和网关配置。本文不会改变 Anthropic 的订阅或产品要求。请同时检查当前 Claude Code 官方文档和目标网关的服务条款。
模型目录里的所有模型 ID 都能用吗?
不能。你需要使用当前可见、有效,并且同时适用于 endpoint 和账户权限的 model ID。模型出现在目录中,并不代表所有 API 风格或所有 Key 都可以调用。
Anthropic 兼容 endpoint 是否一定支持工具调用?
不一定。协议兼容和工具行为需要分开验证。请先发送一个简单的 Function Calling 请求,并阅读当前模型的能力说明。
当前模型和价格去哪里看?
请查看 ECAIX 模型目录 和定价页面。当前可用模型和展示价格以实时页面为准,不要从本文复制过期模型 ID 或价格。
总结
推荐的安全验证顺序是:
- 阅读 Claude Code 和 gateway 的官方文档。
- 创建 ECAIX API Key,并避免公开。
- 在
/zh/models中选择当前可用的模型 ID。 - 在本地设置
ANTHROPIC_BASE_URL和 API Key。 - 向
/api/ai/v1/anthropic/messages发送最小请求。 - 使用 Claude Code 执行只读任务。
- 分别测试 tools、流式输出、上下文和权限。
- 客户端、网关、模型或 endpoint 变化后重新验证。
下一步可以查看 Anthropic Messages API 文档、当前模型目录 和 API Keys。