上下文窗口的查看、压缩与模型切换

你还没开口,上下文就已经用掉一截了。搞清楚被什么占着、什么活得过压缩,比一味换更大的窗口有用。

约 9 分钟

「上下文」就是它这一轮能同时记住的全部内容。满了就得腾地方,而腾地方是有损失的。

这一节讲三件事:怎么看、怎么腾、什么会丢。

你还没开口,它已经用掉一截了

会话一启动,下面这些就已经装进去了:

装了什么 说明
系统提示词 它的基础行为规则,你看不到
自动记忆的索引 它自己攒下来的东西,见下文
环境信息 工作目录、系统、shell、git 状态
工具清单 MCP 工具默认只加载名字,用到时才加载完整说明
技能的一行描述 完整内容用到时才加载
你的 CLAUDE.md 用户级 + 项目级,全文加载

注意「全文加载」四个字。 CLAUDE.md 不管多长都会整篇进去,而且是每一轮都在。

官方的建议是控制在 200 行以内。 写太长不只是占地方——内容越多,它对每一条的遵守度越低。CLAUDE.md 的编写与加载规则

怎么看

/context

它会给你一张彩色的占用分布图,按类别拆开,并且告诉你哪些 CLAUDE.md 和记忆文件被加载了

想看得更细,用 /context all

养成一个习惯:开始一件大活之前先看一眼。这比撞满之后再想办法便宜得多。

什么时候会自动压缩

这一点经常被误解。

自动压缩不是按百分比触发的,是按一个具体的 token 数。

不设置的话,默认就在模型的上限那里。你可以把这个数改小,让它提前压缩:

/autocompact 500k

接受 100K 到 1M 之间的值,写法可以是 500k200000,或者直接一个 100 到 1000 之间的数(当作千)。

想回到默认:/autocompact auto

什么时候该调小? 如果你经常在一个长会话的后半段觉得它「变笨了」——它可能刚压缩过。提前一点压缩,每次丢掉的东西少一些。

手动腾地方:三种做法

一、/compact —— 同一件事做太长了

把迄今为止的对话压成一份结构化的摘要。

摘要里会留下:你的要求和意图、关键概念、看过和改过的文件(含重要片段)、遇到的错误和怎么解决的、待办事项、当前进展。

摘要会替换掉:完整的工具输出、中间的推理过程。

也就是说:压缩之后它还知道做过什么,但不再有它当时读到的原文。需要的话它会重新去读。

可以指定重点:

/compact 重点保留编码规则和已经处理完的那几份访谈

这一句能显著提高压缩质量。 不给指示,它只能按通用规则猜什么重要。

二、/clear —— 换一件不相干的事

直接清空,从头开始。

这一条被严重低估。 做完一件事之后不 /clear 就接着做下一件,旧对话会一直挤占空间,而且每一轮都在为它付费。

换任务就 /clear,这是最便宜的优化。

三、回退菜单里的「总结」 —— 只压掉一段

空输入时连按两次 Esc,选中某个位置,然后:

  • 「从这里往后总结」 —— 把一段冗长的排查过程压掉,保留你最初的交代
  • 「总结到这里为止」 —— 压掉前面的,保留后面的

这比 /compact 精准,因为你能指定压哪一段。详见中断、后台运行与检查点回退

什么活得过压缩

这张表决定了你该把重要的东西写在哪里。

内容 压缩之后
系统提示词 (它本来就不在对话历史里)
项目根目录的 CLAUDE.md ,从磁盘重新读一遍
自动记忆 ,重新读一遍
带路径限定的规则文件 ,直到又读到匹配的文件
子目录里的 CLAUDE.md ,直到又读到那个子目录里的文件
用过的技能内容 ,但有上限,超了从最旧的开始丢
技能清单 ——只有你实际调用过的会保留

实际含义只有一条:

必须一直生效的规则,写在项目根目录的 CLAUDE.md 里。 放在子目录里、或者加了路径限定的,压缩之后就不在了

派活出去,省自己的空间

子代理有独立的上下文空间。

它读了一堆材料、跑了一堆命令,这些全都不占你这边。回到你的对话里的只有最后那段结论

所以「读一大堆东西然后总结」这类活,应该派出去做。

典型场景:「把这 30 份访谈都过一遍,找出提到价格的段落」——自己读会把上下文撑爆,派出去只回来一份清单。

完整用法在第 05 章的子代理:任务隔离与主会话上下文保护

换更大的窗口

先确认你的入口和档位能拿到什么,见六个使用入口与三套系统提示词引擎里的那张表。

一句话版本

Pro 用户在 Claude Code 里用 Sonnet 5,就有完整的 1M 窗口,不需要额外购买。

同一个 Pro 账号用 Opus,Claude Code 里只有 200K,除非另买用量额度。

换模型和调档位

这是两件事,别混。

改的是什么
换模型 换一个脑子
调 effort 让同一个脑子多想一会儿

换模型:

/model sonnet

调档位:

/effort high

档位从低到高是 lowmediumhighxhighmax默认是 high

⚠️ 这两条命令有一个坑:/effort/model 的图形面板会写进全局配置文件,影响你其他正在开着的窗口。

带参数的 /model sonnet 不会。 这个坑值得单独看一节:多会话并行时的配置冲突

换模型的时机

不要在一个跑了很久的会话中途换。

如果新模型的窗口比旧的小,已有的内容会一下子超出新窗口,直接触发压缩或截断,而且没有任何提示

要换就先 /compact 压下去再换。

一份日常纪律

什么时候 做什么
开始一件大活之前 /context 看一眼
换一件不相干的事 /clear
同一件事做得太长 /compact 加一句重点
要读一大堆材料 派子代理
觉得它开始丢东西 /autocompact 调小一点

本节事实查证日期:2026-08-05。 依据:官方 Explore the context windowModel configuration

← 回到手册目录