[控场AI]
· 6 分钟阅读· 3,478 字

用开放权重模型运行Claude Code:美国托管与零日志实践

用开放权重模型运行Claude Code:美国托管与零日志实践

通过 ANTHROPIC_BASE_URL 将 Claude Code 接入第三方开放权重模型 API 的配置与注意事项。

本文介绍如何将 Claude Code 重定向到 ScaledThought 提供的开放权重模型 API,该服务兼容 Anthropic Messages API、美国托管、承诺零日志并采用预付费计费。配置步骤包括用 CLI 初始化密钥、设置 ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL 及 HAIKU 模型变量后运行 claude。实测读取文件、编辑代码和运行 shell 命令均可正常执行。文中还说明了注意事项:开放模型可能自称 Claude;Claude 模型名请求也由开放模型回答;切换别名需配置 Sonnet/Opus 变量;Anthropic 服务器端工具和 PDF 会返回 400 错误。最后指出这一方案反映编码代理与底层模型解耦的趋势。

Claude Code 通过 Anthropic Messages API 与模型通信,而 ANTHROPIC_BASE_URL 环境变量允许用户将请求重定向到任何兼容该协议的端点。这意味着,只要目标 API 遵循相同的接口规范,Claude Code 的工具链、权限系统和工作流都可以保持不变,而背后执行推理的模型可以完全不同。

本文基于 ScaledThought 联合创始人的技术分享,该服务提供 OpenAI 与 Anthropic 双兼容的开放权重模型 API,托管在美国境内,并承诺不存储或记录任何提示与补全内容——每个响应都携带 x-st-data-retention: none 标头。据作者在 Claude Code 2.1.296 版本上的实际测试,读取文件、编辑代码和运行 shell 命令均可正常工作。

Run Claude Code on open-weight models, hosted in the US

配置步骤:从获取密钥到启动 Claude Code

获取 API 密钥

推荐使用 CLI 在项目目录中初始化密钥,也可以交给 AI 代理自动完成:

npx -y scaledthought@0.3 init --region us --source org-devto --email "you@example.com"

该命令会将 ST_API_KEY 和 ST_BASE_URL 写入 ./.env 文件(权限模式 0600,并自动加入 .gitignore),且不会在终端打印密钥。计费采用预付费模式,从 10 美元起充,无需订阅。每个密钥可设置每日预算上限,防止失控会话产生意外费用。如果偏好浏览器操作,也可以在 ScaledThought 官网注册并在控制台创建密钥。

启动 Claude Code

将以下环境变量配置好后直接运行 claude 即可:

set -a; . ./.env; set +a

**Anthropic Messages API 是什么**

Anthropic Messages API 是 Anthropic 为其 Claude 模型提供的 HTTP 接口规范,核心端点为 `/v1/messages`,采用 POST 请求,请求体包含 `model`、`messages`、`max_tokens`、`system`、`tools` 等字段,响应中返回 `content` 块(文本、工具调用)和 `usage` 统计。它与 OpenAI 的 `/v1/chat/completions` 在结构上并不相同,例如 system 提示是独立字段而非消息角色,工具调用使用 `tool_use`/`tool_result` 内容块。正因为这套接口有清晰、稳定的语义,第三方服务只要实现相同的请求与响应格式,就能被 Claude Code 直接调用,从而让 `ANTHROPIC_BASE_URL` 的重定向成为可能。

**ANTHROPIC_MODEL 与 HAIKU 模型环境变量**

`ANTHROPIC_MODEL` 指定 Claude Code 主对话使用的模型 ID;`ANTHROPIC_DEFAULT_HAIKU_MODEL` 则指定用于小型后台任务(如生成简短标题、快速分类)的轻量模型。Claude Code 内部按模型档位(Haiku/Sonnet/Opus)路由不同任务,因此当主模型换成开放权重模型时,仍需显式指明各档位对应的模型 ID,否则某些后台请求会失败或回落到默认值。类似地,若通过 `/model` 命令切换别名,就需要同步设置 `ANTHROPIC_DEFAULT_SONNET_MODEL` 和 `ANTHROPIC_DEFAULT_OPUS_MODEL`。
# 将 ST_API_KEY 载入环境变量
export ANTHROPIC_BASE_URL=https://api.us.scaledthought.com
# 注意:不加 /v1,Claude Code 会自动追加 /v1/messages
export ANTHROPIC_AUTH_TOKEN="$ST_API_KEY"
export ANTHROPIC_MODEL=deepseek-v4-1-flash
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-1-flash
# 用于 Claude Code 的小型后台任务
claude

配置完成后,Claude Code 的读取文件、编辑代码和运行命令等工具调用都会通过该 API 正常执行。这一方案的核心价值在于:开发者可以在不改变既有工作流的前提下,灵活切换底层推理模型。

实际使用中的注意事项

模型身份与上下文管理

Claude Code 的系统提示词会告知模型"你是 Claude",因此开放权重模型可能会以 Claude 的身份自我介绍。实际回答问题的模型名称可以通过 npx -y scaledthought@0.3 usage 命令或每个响应的 model 字段来确认。

以 Claude 模型名发送的请求(Claude Code 会使用 Haiku 处理小型后台任务)同样由开放模型回答。如果通过别名切换模型,还需要设置 ANTHROPIC_DEFAULT_SONNET_MODEL 和 ANTHROPIC_DEFAULT_OPUS_MODEL。此外,Claude Code 可能警告不认识该模型 ID,但这不影响使用——它只是默认假设 200k token 的上下文窗口用于自动压缩。

功能边界与限制

Anthropic 的服务器端工具(如网页搜索)在此方案下不可用,因为这些工具运行在 Anthropic 一侧。PDF 文件和 Anthropic 定义的工具会返回 400 错误。

计费按 token 计量,基于模型服务器报告的使用量。当前支持的模型和价格可在 ScaledThought 定价页面查看,或运行 npx -y scaledthought@0.3 models --live 获取实时列表。完整指南(包括在 Claude Code 内管理密钥、预算和计费的 MCP 服务器)可参考 ScaledThought 官方文档。

服务器端工具与 400 错误的成因

Anthropic 的服务器端工具(如 web search、computer use)以及 PDF 文件解析,是由 Anthropic 在后端配合其自有模型执行的,并不属于 Messages API 的通用请求格式。当 Claude Code 把这些工具定义或 PDF 内容块发送给第三方端点时,对方接口无法识别这些非标准字段,通常直接返回 HTTP 400(Bad Request)。因此在接入开放权重模型时,需要避免触发这些服务器端能力,或在配置中禁用相关工具。相反,Claude Code 的本地工具(读取文件、编辑、运行 shell)是由客户端编排、以标准 tool_use 块往返的,所以可以正常工作。

开放权重模型接入编码代理的意义

这一方案折射出 AI 编码工具生态的一个趋势:编码代理(coding agent)正在与底层模型解耦。Claude Code 之所以能接入第三方模型,本质上是因为 Anthropic Messages API 已经成为一种事实上的接口标准。当协议层统一后,模型选择就变成了一个可替换的配置项。

对于关注数据主权的团队,美国托管加上零日志承诺提供了合规层面的保障。预付费和每日预算机制则解决了成本可控性问题。不过需要注意的是,该服务与 Anthropic 及任何模型发布方均无关联或背书关系,Claude 与 Claude Code 是 Anthropic 的商标。

从实践角度看,这种配置方式让开发者能够根据任务复杂度灵活选择模型——简单任务用轻量模型控制成本,复杂任务切换到更强的开放权重模型,而整套工具链和权限体系始终保持一致。

分享:

相关推荐