Claude Code /context 显示 200K 而非 1M - CC Switch Fix
Quick fix
在 Claude Code 里执行 /model claude-opus-4-8[1m] 手动切到带 [1m] 后缀的模型,或把 ~/.claude/settings.json 里的 ANTHROPIC_DEFAULT_OPUS_MODEL 改成 claude-opus-4-8[1m]。
Symptom
Section titled “Symptom”Claude Desktop声明了1M,在实际使用中只显示200K上下文窗口了这不是供应商不支持 1M,而是 CC Switch 与 Claude Code/Claude Desktop 之间的「能力声明 → 可选模型」桥接断了。CC Switch 的数据库里虽然已经给 claude-opus-4-8 这条 route 写了 supports1m: true,但它只在 /v1/models 里返回裸模型名,没有合成带 [1m] 后缀的独立模型项(如 claude-opus-4-8[1m])。Claude Code/Claude Desktop 的模型选择器里因此看不到 Opus 4.8 1M,默认仍按普通 200K 模型管理上下文。
对于 DeepSeek 等第三方 provider,还有一个变体:DeepSeek 流式响应的 message_start.model 字段返回的是 deepseek-v4-pro,而 CC Switch 没有把它反向映射回 claude-opus-4-8。Claude Desktop 内部按模型名查窗口大小表,deepseek-v4-pro 不在表里,于是回退到默认 200K。Codex 场景下则是另一回事:Codex 把历史 reasoning_content 全量算进 Chat Completions 上下文,多轮对话后轻易突破 1M,直接报「发送给 DeepSeek 的消息长度超过了模型允许的最大上下文长度」。
在 Claude Code 当前会话里执行 /model claude-opus-4-8[1m],把模型切到带 [1m] 后缀的逻辑变体。切换后模型栏应显示 Opus 4.8 1M,上下文圆环分母变为 1M。
如果想让以后所有新会话默认走 1M,编辑 Claude Code 用户级配置 ~/.claude/settings.json(Windows 上是 C:\Users\<用户名>\.claude\settings.json),把 ANTHROPIC_DEFAULT_OPUS_MODEL 从裸模型名改成带 [1m] 后缀的形式。
~/.claude/settings.json "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-8""ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-8[1m]"改完后重启 Claude Code/Claude Desktop,再开新会话,用 /context 或界面上的上下文圆环确认分母显示约 1M,而不是 200K。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 5 个真实 issue
- #3867Codex发送给 DeepSeek 的消息长度超过了模型允许的最大上下文长度。
- #4353Claude Desktop 模型未映射为1M上下文窗口
- #4525Claude Desktop 第三方网关模式下 DeepSeek 响应 model 字段未被反向映射,导致 Code 模式 /context 始终显示 200K
- #5947[Codex] 启用模型映射生成 model_catalog_json 后,apply_patch 等内置工具全部消失,Codex 审阅视图不触发
- #6192Codex app使用cc switch的deepseek v4 flash通用Responses配置异常导致实际费用翻倍
- 为什么 Claude Desktop 里已经勾了 1M,Code 模式还是 200K?
- Claude Desktop 3P 配置页的 1M 勾选只是声明这个 route 支持 1M,不会自动给 Claude Code 的模型选择器注入 claude-opus-4-8[1m] 这个逻辑模型项。Claude Code 必须实际选中带 [1m] 后缀的模型才会把上下文预算提到 1M,否则仍按 200K 管理。
- Codex 用 DeepSeek 聊两轮就提示超过最大上下文长度,怎么办?
- Codex 走 Responses API 时本来不把 reasoning 计入上下文,但 CC Switch 转换到 Chat Completions 格式后会把每轮的 reasoning_content 全量写回 assistant 消息。DeepSeek V4 Pro 这类推理模型单轮 thinking 可达 30K-80K tokens,几轮下来就爆 1M。目前 issue 中没有给出官方修复,社区建议改用 Anthropic 协议端接入,避免 reasoning 被重复记账。
- 有没有办法不改配置就让 CC Switch 自动显示 1M 模型?
- 目前 CC Switch 3.16.x-3.19.x 不会在 /v1/models 里自动合成 [1m] 后缀的模型 ID,这是已确认的缺陷。维护者在 #4525 中把问题归并到 #3003 集中跟踪,修复进展需关注该 issue。
- 手动切到 claude-opus-4-8[1m] 后,重启 Claude Code 又变回 200K 了?
- 手动 /model 切换只影响当前会话。新会话会继承 ~/.claude/settings.json 里的 ANTHROPIC_DEFAULT_OPUS_MODEL,如果那里还是裸 claude-opus-4-8,就会回到 200K。把配置改成 claude-opus-4-8[1m] 才能持久生效。
- CC Switch 的模型映射开了以后,Codex 的 apply_patch 工具消失了,和这个问题有关吗?
- 这是同一 cluster 里的另一个变体:开启模型映射生成 model_catalog_json 后,Codex 认为这些模型不是官方 GPT 模型,于是不再下发 apply_patch 等内置工具。维护者在 #5947 中说明根因在 Codex 客户端或供应商一侧,CC Switch 无法从根本上修复,建议升级到 4.0 新版后再验证。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。