上下文窗口的查看、压缩与模型切换
你还没开口,上下文就已经用掉一截了。搞清楚被什么占着、什么活得过压缩,比一味换更大的窗口有用。
「上下文」就是它这一轮能同时记住的全部内容。满了就得腾地方,而腾地方是有损失的。
这一节讲三件事:怎么看、怎么腾、什么会丢。
你还没开口,它已经用掉一截了
会话一启动,下面这些就已经装进去了:
| 装了什么 | 说明 |
|---|---|
| 系统提示词 | 它的基础行为规则,你看不到 |
| 自动记忆的索引 | 它自己攒下来的东西,见下文 |
| 环境信息 | 工作目录、系统、shell、git 状态 |
| 工具清单 | MCP 工具默认只加载名字,用到时才加载完整说明 |
| 技能的一行描述 | 完整内容用到时才加载 |
你的 CLAUDE.md |
用户级 + 项目级,全文加载 |
注意「全文加载」四个字。
CLAUDE.md不管多长都会整篇进去,而且是每一轮都在。官方的建议是控制在 200 行以内。 写太长不只是占地方——内容越多,它对每一条的遵守度越低。 见CLAUDE.md 的编写与加载规则。
怎么看
/context
它会给你一张彩色的占用分布图,按类别拆开,并且告诉你哪些 CLAUDE.md 和记忆文件被加载了。
想看得更细,用 /context all。
养成一个习惯:开始一件大活之前先看一眼。这比撞满之后再想办法便宜得多。
什么时候会自动压缩
这一点经常被误解。
自动压缩不是按百分比触发的,是按一个具体的 token 数。
不设置的话,默认就在模型的上限那里。你可以把这个数改小,让它提前压缩:
/autocompact 500k
接受 100K 到 1M 之间的值,写法可以是 500k、200000,或者直接一个 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
档位从低到高是 low、medium、high、xhigh、max。默认是 high。
⚠️ 这两条命令有一个坑:
/effort和/model的图形面板会写进全局配置文件,影响你其他正在开着的窗口。带参数的
/model sonnet不会。 这个坑值得单独看一节:多会话并行时的配置冲突。
换模型的时机
不要在一个跑了很久的会话中途换。
如果新模型的窗口比旧的小,已有的内容会一下子超出新窗口,直接触发压缩或截断,而且没有任何提示。
要换就先 /compact 压下去再换。
一份日常纪律
| 什么时候 | 做什么 |
|---|---|
| 开始一件大活之前 | /context 看一眼 |
| 换一件不相干的事 | /clear |
| 同一件事做得太长 | /compact 加一句重点 |
| 要读一大堆材料 | 派子代理 |
| 觉得它开始丢东西 | /autocompact 调小一点 |
本节事实查证日期:2026-08-05。 依据:官方 Explore the context window 与 Model configuration。