省流版简介: Claude Code 越用越“笨”,未必是模型退化,更可能是上下文窗口被对话、文件、搜索结果和日志挤满。上下文是有限的运行时资源:填充后容易遗忘早期约定、重复犯错、质量下降。可用
/clear、subagent、/compact、路径范围规则和更具体的提示来减少消耗;真正需要长期保留的约定,应写入 CLAUDE.md。

很多人用 Claude Code 都有这样的经历:上午刚开会话时它聪明得惊人,下午就开始「失忆」——明明一小时前说好的项目约定,它忘得一干二净;刚修过的 bug,换了个文件又原样犯一遍。
第一反应通常是:模型不行,是不是该换更强的了?
Anthropic 官方文档给出的答案恰恰相反:问题大概率不在模型,而在你让它读了太多东西。原话是——「Claude 的 context window 填充速度很快,随着填充,性能会下降。」「当 context window 即将满时,Claude 可能会开始『遗忘』早期的指令或犯更多错误。」(Anthropic Claude Code Best Practices,2026-07)
一个被忽视的真相:上下文是消耗品
Context Window(上下文窗口)是模型一次能「看到」的全部内容:你的对话历史、它读取的文件、命令输出、CLAUDE.md 里的项目约定、加载的各种规则文件——全部挤在同一个空间里。
关键在于,AI 编程 Agent 和手动聊天完全不同。和 ChatGPT 聊天,一轮对话消耗几百 token;而 Claude Code 会自主行动:探索代码库时读十几个源文件、grep 输出几千行搜索结果、跑测试贴回完整的报错日志。一次「帮我看看这个项目哪里有问题」的探索,可能悄悄吃掉几万个 token。
四种最典型的「上下文杀手」:
| 场景 | 什么在占用上下文 | 出现的症状 |
|---|---|---|
| 代码库探索 | 多个源文件、搜索输出、目录结构 | 后段修改时忘掉项目约定 |
| 反复调试 | 错误日志、测试输出、多轮修正记录 | 同一错误修了又犯 |
| 多任务混用 | 上午的文献整理 + 下午的脚本修改挤在一个会话 | A 任务的指令串到 B 任务 |
| 巨型配置文件 | 启动即加载的超长 CLAUDE.md、规则文件 | 关键规则被淹没在文本海洋里 |
上下文填满之后的症状很统一:遗忘早期指令、重复犯错、输出质量肉眼可见地下滑。而你盯着同一个模型,只会觉得「它变笨了」。
官方推荐的 5 个管理策略
Anthropic 在最佳实践文档里给了一套完整的上下文管理工具箱。按使用频率排序,最推荐这 5 个。
1. /clear:任务之间果断重置。 做完一个任务、开始下一个无关任务时,直接清空会话。很多人舍不得清——「万一后面还要参考前面的内容呢?」这个心态正是上下文污染的根源。真正需要长期保留的约定,应该写进 CLAUDE.md,而不是靠对话历史维持。
2. Subagents:把「探索」关进隔离间。 研究代码库、搜索资料、验证方案这类「读得多、说得少」的工作,派给子代理去做。子代理在独立的上下文里翻完几十份文件,只把结论带回来——主会话上下文只增加几百 token,而不是几万。
3. /compact:主动压缩,别等爆炸。 长会话中段,主动让 Claude 压缩早期消息、保留关键信息。代价是可能丢失细节——所以重要约定同样要落到 CLAUDE.md 里,而不是指望压缩后的摘要。
4. 路径范围规则:让规则「按需加载」。 项目变大后,不要把所有规则塞进一个巨型 CLAUDE.md。拆成按路径生效的规则文件——处理前端代码时只加载前端规范,改 Python 脚本时只加载 Python 约定。启动时不吃的上下文,才是最省心的上下文。
5. 具体提示:一次说清,减少回合。 「帮我把这个函数改好」会引发多轮反复澄清,每轮都在消耗上下文。「把 validateEmail 函数改成拒绝纯数字域名,改完运行测试」一轮到位。描述结果而非步骤,既是提示词技巧,也是上下文经济学。
一个决策树,今天就能用
开始新任务?
├── 与旧任务无关 → /clear 重置
└── 与旧任务相关 → 先 /compact,再继续
当前任务需要大量探索?
├── 是 → 派 subagent 做研究,结论回来再动手
└── 否 → 直接执行,提示写具体
项目越来越大?
├── 是 → CLAUDE.md 拆成路径范围规则
└── 否 → 保持 CLAUDE.md 在 200 行以内
Claude 开始重复犯错?
├── 上下文快满了 → /compact 或 /clear
└── 上下文没满 → 检查 CLAUDE.md 是否太抽象
从「选最强模型」到「管理最稀缺资源」
大模型的军备竞赛给我们灌输了一个直觉:产出质量 ≈ 模型排名。但对 Agent 类工具来说,这个等式漏掉了关键一项:模型能力决定上限,上下文管理决定你能多接近这个上限。
同一个 Claude,有人用得顺滑,有人用得崩溃,差距往往不在模型,而在是否意识到上下文是最稀缺的运行时资源——它有限、消耗快,且消耗过程完全无感知。学会像管理内存一样管理上下文,是比「等下一代模型」便宜得多的升级。
三个今天就能做的动作:
打开当前会话,看看它已经跑了多久、跨了几个任务——超过两个无关任务,就
/clear;检查 CLAUDE.md 行数——超过 200 行就动手删减,只留 Claude 猜不到的约定;
下次让 AI「先看看这个项目」之前,先想想这句话值几万 token——能不能让 subagent 去看。
参考来源
Anthropic 官方文档:Claude Code Best Practices(https://code.claude.com/docs/zh-CN/best-practices,2026-07)
夜雨聆风