Claude Code 上下文窗口从 200K 扩展到 512K 的解决过程

一、问题描述

用户使用 Claude Code(v2.1.133)时,发现上下文窗口只有 200K tokens,但使用的 DeepSeek V4 模型支持 1M 上下文。用户希望将上下文窗口扩展到 512K。


二、初始尝试(失败)

2.1 尝试通过环境变量 MODEL_CONTEXT_WINDOW_DEFAULT 设置

在 ~/.claude/settings.json 中添加:

"env": {
 "MODEL_CONTEXT_WINDOW_DEFAULT": "512_000"
}

结果:重启 Claude Code 后,输入 /context 仍然显示 200K:

❯ /context
  ⎿  Context Usage
     ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁   deepseek-v4-pro
     ⛁ ⛁ ⛀ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   24.4k/200k tokens (12%)
     ...
     Auto-compact window: 200k tokens

结论MODEL_CONTEXT_WINDOW_DEFAULT 不是有效的配置项。


三、解决过程

3.1 搜索 Claude Code 官方文档

通过 webfetch 工具访问 Claude Code 官方文档:

3.2 发觉相关环境变量

在环境变量文档中发现以下关键变量:

环境变量 作用
CLAUDE_CODE_AUTO_COMPACT_WINDOW 设置自动压缩计算的上下文容量,默认 200K(标准模型)或 1M(扩展上下文模型)
CLAUDE_CODE_MAX_CONTEXT_TOKENS 覆盖 Claude Code 假设的上下文窗口大小,需要同时设置 DISABLE_COMPACT
CLAUDE_CODE_DISABLE_1M_CONTEXT 设置为 1 可禁用 1M 上下文窗口支持

3.3 第二次尝试(失败)

设置 CLAUDE_CODE_AUTO_COMPACT_WINDOW

"env": {
 "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "512000"
}

结果:仍然显示 200K。

3.4 第三次尝试(成功)

根据文档说明:

CLAUDE_CODE_MAX_CONTEXT_TOKENS - Override the context window size Claude Code assumes for the active model.  Only takes effect when DISABLE_COMPACT is also set.

设置两个环境变量:

"env": {
 "CLAUDE_CODE_MAX_CONTEXT_TOKENS": "512000",
 "DISABLE_COMPACT": "1"
}

结果:成功!

❯ /context
  ⎿  Context Usage
     ⛁ ⛁ ⛁ ⛁ ⛀ ⛀ ⛀ ⛶ ⛶ ⛶   deepseek-v4-pro
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   24.4k/512k tokens (5%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   Estimated usage by category
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System prompt: 5.7k tokens (1.1%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System tools: 18k tokens (3.5%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Skills: 721 tokens (0.1%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Messages: 5 tokens (0.0%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Compact buffer: 3k tokens (0.6%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛀   ⛶ Free space: 484.6k (94.6%)

四、最终配置

~/.claude/settings.json 中的 env 配置:

"env": {
 "ANTHROPIC_AUTH_TOKEN": "sk-xxx",
 "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
 "ANTHROPIC_MODEL": "deepseek-v4-pro",
 "CLAUDE_CODE_MAX_CONTEXT_TOKENS": "512000",
 "DISABLE_COMPACT": "1"
}

关键点

  • CLAUDE_CODE_MAX_CONTEXT_TOKENS 设置上下文窗口大小
  • DISABLE_COMPACT 必须设置为 "1" 才能生效

五、验证

输入 /context 命令验证:

24.4k/512k tokens (5%)
Free space: 484.6k (94.6%)

上下文窗口已成功从 200K 扩展到 512K。


六、建议

以后遇到类似配置问题,建议用 AI(如 Claude Code)操作,原因:

  1. 文档检索效率高:AI 可以快速搜索官方文档、GitHub issues,比人工搜索快得多
  2. 二进制分析能力:当源码被编译时,AI 可以用 strings 命令从二进制文件中提取关键信息
  3. 试错成本低:AI 可以在 tmux 会话中快速测试不同配置,无需用户手动操作
  4. 过程可追溯:所有操作步骤和输出都有记录,便于复盘和分享

本次问题如果人工解决,需要:

  • 阅读大量文档
  • 尝试多个环境变量
  • 反复重启 Claude Code 验证

用 AI 操作,整个过程约 10 分钟完成。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐