Logo Vincent
返回文章列表

Claude Code /context:你的上下文都被什么吃了?

Claude
Claude Code /context:你的上下文都被什么吃了?

什么是 /context

用 Claude Code 时间一长,你一定遇到过这种情况:

  • 对话进行到一半,突然提示”上下文快满了”
  • 执行了几次大文件读取后,Claude 的回答质量明显下降
  • 不知道到底是什么在占用上下文空间

/context 就是上下文的”仪表盘”。 它用一张彩色网格和详细的分类统计,告诉你当前的上下文窗口被什么占了、占了多少、还剩多少——以及怎么优化。

怎么用

在 Claude Code 交互模式下输入:

/context

不需要任何参数。它会立刻展示当前上下文的完整分析。

你会看到什么

彩色网格

⛁⛁⛁⛁⛁⛁⛁⛀⛀⛀
⛁⛁⛁⛁⛀⛀⛀⛀⛀⛀
⛀⛀⛀⛀⛀⛀⛀⛶⛶⛶
⛶⛶⛶⛶⛶⛶⛶⛶⛶⛶
⛶⛶⛶⛶⛶⛶⛶⛶⛶⛶
...

这是上下文使用量的直观可视化:

符号含义
(彩色)已使用的空间(占比 >= 70%)
(彩色)已使用的空间(占比 < 70%)
(彩色)自动压缩缓冲区
(暗色)剩余可用空间

网格大小会根据你的终端宽度和模型上下文大小自适应:

  • 200K 模型:10x10 网格(窄屏 5x5)
  • 1M 模型:20x10 网格(窄屏 5x10)

分类统计

网格右边是详细的分类图例,每一项都显示了 Token 数量和占比:

分类说明
System Prompt基础系统提示词
System Tools内置工具定义(Bash、Edit、Read 等)
MCP ToolsMCP 服务器的工具定义
Custom Agents自定义 Agent 定义
Memory FilesCLAUDE.md 和记忆文件
Skills已加载的技能定义
Messages对话消息(用户输入、Claude 回复、工具调用和结果)
Free Space剩余可用空间
Autocompact Buffer为自动压缩预留的缓冲区

详细信息

在统计下方,还会展示各分类的具体内容:

  • MCP Tools:列出每个 MCP 服务器加载了多少工具、延迟加载了多少
  • Custom Agents:按来源分组(Project/User/Managed/Plugin/Built-in)
  • Memory Files:列出每个 CLAUDE.md 文件的路径和 Token 占用
  • Skills:列出已加载的技能

每个详细项旁边都有跳转提示,比如 - /mcp- /agents- /memory,方便你直接跳转到相关命令管理。

优化建议

/context 还会根据分析结果给出针对性的优化建议。比如:

  • 上下文已满 80% 以上:“建议运行 /compact 来控制保留哪些内容”
  • 某次工具调用结果过大:“Bash/Read/Grep 等返回了大量内容,考虑缩小查询范围”
  • 记忆文件过大:“CLAUDE.md 文件占用了较多空间,考虑精简”
  • 未启用自动压缩:“建议在 /config 中启用,或手动运行 /compact”

上下文窗口的基本知识

窗口大小

模式大小
默认200,000 Tokens
1M 模式1,000,000 Tokens(Sonnet 4.6 / Opus 4.6 可选)

1M 模式需要模型支持,可以在模型名后加 [1m] 后缀来启用(如在 /model 中选择)。

上下文里都有什么

一个典型的 Claude Code 会话中,上下文由这些部分组成:

┌─────────────────────────────────┐
│  System Prompt(系统提示词)      │  固定开销
│  Tool Definitions(工具定义)     │  固定开销
│  Memory Files(CLAUDE.md 等)    │  半固定
│  Skills / Agents(技能/Agent)   │  半固定
├─────────────────────────────────┤
│  Message 1(用户输入)           │
│  Message 2(Claude 回复)        │
│  Message 3(工具调用 + 结果)     │  动态增长
│  Message 4(用户追问)           │
│  ...                            │
├─────────────────────────────────┤
│  Autocompact Buffer(缓冲区)    │  预留 13,000 Tokens
│  Free Space(剩余空间)          │
└─────────────────────────────────┘

“固定开销”是每次对话都存在的基础成本,“动态增长”的部分会随着对话进行不断膨胀。当动态部分接近上限时,就需要压缩了。

什么最吃上下文

根据实际使用经验,最容易”吃掉”上下文的是:

  1. 大文件读取——读一个 1000 行的文件,一次就能消耗数千 Token
  2. Bash 命令输出——npm installgit log、build 输出等往往很长
  3. 多轮工具调用——每次工具调用(输入 + 输出)都会累积
  4. MCP 工具定义——如果你加载了很多 MCP 服务器,光工具定义就可能占不少空间

/context 和 /compact 的关系

/context/compact 是一对搭档:

命令作用
/context诊断——看清上下文被什么占了
/compact治疗——压缩对话历史,释放空间

典型工作流:

  1. 感觉 Claude 回复变慢或质量下降
  2. 运行 /context 看看上下文使用情况
  3. 如果快满了,运行 /compact 压缩
  4. 再运行 /context 确认释放了多少空间

自动压缩

如果你在 /config 中开启了自动压缩(autocompact),Claude Code 会在上下文接近上限时自动触发压缩,不需要你手动操作。

自动压缩的触发阈值是:有效上下文窗口 - 13,000 Tokens

/context 网格中的 “Autocompact Buffer” 就是这 13,000 Token 的预留空间——它确保在触发自动压缩时,还有足够的空间让 Claude 完成当前回复。

如果自动压缩连续失败 3 次,会自动停止(断路器机制),此时你需要手动运行 /compact

状态栏中的上下文提示

除了 /context 命令,Claude Code 还在两个地方实时显示上下文信息:

状态栏

屏幕底部的状态栏会显示当前上下文使用百分比,让你时刻了解剩余空间。

输入框上方的警告

当上下文接近上限时,输入框上方会出现警告提示:

状态提示内容
自动压缩开启”X% until auto-compact”(暗色显示)
自动压缩关闭”Context low (X% remaining) - Run /compact”(黄/红色警告)
支持 1M 升级提示可以切换到 1M 上下文模式

实用技巧

技巧一:定期检查上下文

长时间的会话中,建议每隔一段时间运行 /context 看看使用情况。不要等到 Claude 提示你上下文不够了才去看——那时候可能已经丢失了一些重要的对话历史。

技巧二:控制工具输出大小

/context 的优化建议会告诉你哪些工具调用消耗了大量 Token。常见的优化手段:

  • 读文件时指定行范围,不要一次读整个大文件
  • Bash 命令用 | head| tail 限制输出
  • 搜索时用更精确的模式减少结果数量

技巧三:精简 CLAUDE.md

如果 /context 显示 Memory Files 占了很多空间,说明你的 CLAUDE.md 可能太长了。保留关键信息,删除冗余内容。记住:CLAUDE.md 是每次对话都会加载的固定开销。

技巧四:善用延迟加载

MCP 工具支持延迟加载(deferred loading)。如果你加载了很多 MCP 服务器但不是每个都常用,延迟加载可以显著减少上下文中工具定义的占用。/context 会分别显示已加载和延迟加载的工具数量。

技巧五:考虑 1M 上下文

如果你经常遇到上下文不够用的情况,Sonnet 4.6 和 Opus 4.6 都支持 1M Token 的上下文窗口。在 /model 中切换到 1M 模式,上下文空间直接翻五倍。

当然,更大的上下文也意味着更多的 Token 消耗和更高的费用,按需选择。

写在最后

上下文窗口是你和 Claude Code 协作的”工作台”——台面越整洁,工作效率越高。

/context 让你看清这个工作台的状态:什么东西占了多少地方,哪些可以清理,剩余空间还能支持多久。把它当作定期体检——不一定每次都有问题,但知道状态总比不知道好。

如果上下文快满了,用 /compact 压缩;如果总是不够用,考虑升级到 1M 模式;如果某些固定开销太大,精简你的 CLAUDE.md 和 MCP 配置。

管理好上下文,就是管理好你和 AI 的协作效率。

更多同类文章

© 2026 vincentqiao.com . 保留所有权利。