Claude Code

在 Claude Code 中使用平台的模型:安装、settings.json 配置、模型映射、上下文窗口与常见报错的处理。

更新于 2026-10-24阅读约 6 分钟

查看 .md

Claude Code 通过 Anthropic Messages 格式(POST /v1/messages)调用平台的模型,平台上的对话模型均可使用。配置前先完成编程工具概览「准备」中的三步。

安装

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

输出版本号表示安装成功。Windows 需先安装 WSL 或 Git for Windows。

配置

#

Claude Code 从 settings.json 的 env 字段读取环境变量,写在这里对所有终端生效:

系统文件路径
macOS / Linux~/.claude/settings.json
WindowsC:\Users\<用户名>\.claude\settings.json

文件不存在时新建。写入以下内容,将 YOUR_API_KEY 换成 SciRouter 的 Key、YOUR_MODEL_ID 换成平台的模型 id:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.scirouter.cn",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
    "ANTHROPIC_MODEL": "YOUR_MODEL_ID",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "YOUR_MODEL_ID"
  }
}

文件中已有其他设置时,只合并 env 中的这几项。ANTHROPIC_BASE_URL 不带 /v1:Claude Code 在其后拼接 /v1/messages。

也可只在当前终端设置,不写入文件:

bash
export ANTHROPIC_BASE_URL="https://api.scirouter.cn"
export ANTHROPIC_AUTH_TOKEN="$SCIROUTER_API_KEY"
export ANTHROPIC_MODEL="YOUR_MODEL_ID"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="YOUR_MODEL_ID"
claude

环境变量

#
环境变量取值说明
ANTHROPIC_BASE_URLhttps://api.scirouter.cn不带 /v1
ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEYSciRouter 的 API Key设置其一。前者以 Authorization: Bearer 发送,后者以 x-api-key 发送
ANTHROPIC_MODEL平台的模型 id启动时使用的模型
ANTHROPIC_DEFAULT_HAIKU_MODEL平台的模型 idhaiku 别名对应的模型;Claude Code 执行后台小任务时也使用它
ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL平台的模型 idsonnet、opus 别名对应的模型,见多个模型
CLAUDE_CODE_SUBAGENT_MODEL平台的模型 id子代理未另行指定模型时使用的模型,见多个模型
CLAUDE_CODE_MAX_OUTPUT_TOKENS所选模型的输出上限见输出上限
CLAUDE_CODE_MAX_CONTEXT_TOKENS所选模型的上下文窗口见上下文窗口
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY1见模型发现
CLAUDE_CODE_ATTRIBUTION_HEADER0不发送归因块,见归因块
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS1见上游为其他厂商的兼容接口

ANTHROPIC_AUTH_TOKEN 与 ANTHROPIC_API_KEY 的变量名由 Claude Code 定义,取值为 SciRouter 控制台创建的 API Key(以 sk-sr- 开头),不能使用 Anthropic 官方的 Key。两者都设置且不是同一个 Key 时,请求返回 401;其中一个为空串时(发出空的 Authorization: Bearer)按未携带处理。shell 中已设置 ANTHROPIC_API_KEY 为官方 Key 的,删除该变量或改为 SciRouter 的 Key。

启动

#
bash
cd my-project
claude

首次进入目录时选择信任该目录。发送一条消息,收到回答即接入成功;该请求出现在控制台调用日志中,调用格式为 Anthropic。

首次启动仍出现登录引导时,在 ~/.claude.json(Windows 为 C:\Users\<用户名>\.claude.json)中加入以下一项后重新启动。文件已存在时只加这一项,不覆盖其他内容:

json
{
  "hasCompletedOnboarding": true
}

多个模型

#

haiku、sonnet、opus 三个别名可分别映射到平台的不同模型,在会话中输入 /model 切换:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.scirouter.cn",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
    "ANTHROPIC_MODEL": "YOUR_MODEL_ID",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "YOUR_MODEL_ID",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "YOUR_MODEL_ID",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "YOUR_MODEL_ID",
    "CLAUDE_CODE_SUBAGENT_MODEL": "YOUR_MODEL_ID"
  }
}
  • haiku 用于后台小任务(生成标题、摘要等),宜映射到响应快、单价低的模型。
  • Claude Code 在检索代码、规划任务时会启动内置的子代理(如 Explore、Plan)。子代理所用的模型没有映射到平台的模型 id 时,请求可能返回 404 model_not_found;设置 CLAUDE_CODE_SUBAGENT_MODEL 后,未另行指定模型的子代理改用它。
  • 切换到未映射的别名时,Claude Code 请求 Anthropic 的模型名;平台没有为该名称配置别名时返回 404 model_not_found。

VS Code 与 JetBrains

#

Claude Code 的 IDE 插件使用同一份 settings.json,完成上文配置后在 IDE 的插件市场搜索 Claude Code 安装即可。

输出上限

#

Claude Code 不识别平台的模型 id 时,默认每次请求 32000 个输出 token。超过模型或套餐的单次上限时,平台按上限发出,不返回错误,处理方式见 Messages(Anthropic 格式)「max_tokens」。回答达到上限时 stop_reason 为 max_tokens,与厂商截断时相同。

将 CLAUDE_CODE_MAX_OUTPUT_TOKENS 设为模型的输出上限后,Claude Code 按真实上限规划。上限见模型中心的详情页。

上下文窗口

#

Claude Code 对不识别的模型 id 一律按 20 万 token 计算压缩对话的时机。所选模型的窗口更小时,用 CLAUDE_CODE_MAX_CONTEXT_TOKENS 写明真实窗口(见模型中心的详情页),Claude Code 才会按时压缩。

未设置时由平台兜底:输入、或输入加 max_tokens 放不进窗口的请求,平台在发出前返回 400 context_window_exceeded,Claude Code 根据 message 处理后重发。

情况message 包含Claude Code 的处理
输入超过窗口prompt is too long: N tokens > M maximum按两个数字压缩历史后重发
输入未超过窗口,加上 max_tokens 后超过input length and `max_tokens` exceed context limit调小 max_tokens 后重发

兜底方式每次多一个往返,建议设置 CLAUDE_CODE_MAX_CONTEXT_TOKENS。

模型发现

#

设置 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 后,Claude Code 启动时读取一次平台的模型列表并放入 /model,只保留 id 中含 claude 或 anthropic 的模型。其他模型通过 ANTHROPIC_MODEL 与别名映射直接填写平台的模型 id。

归因块

#

Claude Code 在 system 开头带一块归因信息(客户端版本与提示指纹)。使用非 Anthropic 的模型时,可设置 CLAUDE_CODE_ATTRIBUTION_HEADER=0 不发送。未设置时,平台走其他入口转换时去掉该块,响应头 X-SciRouter-Param-Actions 中记 reshaped=…。

厂商服务端工具

#

WebSearch 是厂商的服务端工具,平台不支持,请求返回 400,details.reason 为 server_tool_unsupported。Claude Code 自身的 WebSearch / WebFetch 不受影响。

上游为其他厂商的兼容接口

#

Claude Code 发送 Claude 官方接口支持的全部字段:thinking 的 adaptive、对话中途的 system 消息、context_management、output_config。线路背后是其他厂商的 Anthropic 兼容接口时,请求原样转发,厂商不支持这些字段时返回 400:

  • 前几项由 Claude Code 自行去掉后重试。
  • context_management 等提示类参数:厂商的报错中能识别出参数名时,平台去掉该参数,在同一条线路重发一次,X-SciRouter-Param-Actions 中记 healed=context_management;识别不出时仍返回 400。
  • 400 context_management: Extra inputs are not permitted 一类报错反复出现时,设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。

转换方式(线路没有 Anthropic 入口)不受影响:context_management 中的 clear_tool_uses_* 由平台补实现,其余编辑去掉并留痕。

平台拒绝请求时的两种标记(capability_rejected、policy_blocked)及 Claude Code 的处理见 Messages(Anthropic 格式)「错误」。

  • 开始

  • 接入编程工具

  • 接口

  • 专题

  • 网页端指南

↑ ↓ 选择 · Enter 打开 · Esc 关闭

请验证你的身份

为了保护你的账户,这个操作需要再验证一次。

验证码已发送到你绑定的手机号。5 分钟内的其他敏感操作不会再问。

Cookie 偏好

您可以随时回到这里修改。页脚有常驻入口。

必要

维持登录状态、记住主题与语言偏好。没有它们本站无法正常工作,因此无法关闭。

统计

了解哪些功能有人用、用户在哪一步流失。只收集维度(页面、操作类型、计数),不收集您输入的任何内容。

本站不加载任何第三方统计脚本,也不做会话录屏。完整说明