乐于分享
好东西不私藏

你的 AI 编程助手为什么越用越「笨」?瓶颈不在模型,在上下文

你的 AI 编程助手为什么越用越「笨」?瓶颈不在模型,在上下文

省流版简介: 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,有人用得顺滑,有人用得崩溃,差距往往不在模型,而在是否意识到上下文是最稀缺的运行时资源——它有限、消耗快,且消耗过程完全无感知。学会像管理内存一样管理上下文,是比「等下一代模型」便宜得多的升级。

三个今天就能做的动作:

  1. 打开当前会话,看看它已经跑了多久、跨了几个任务——超过两个无关任务,就 /clear

  2. 检查 CLAUDE.md 行数——超过 200 行就动手删减,只留 Claude 猜不到的约定;

  3. 下次让 AI「先看看这个项目」之前,先想想这句话值几万 token——能不能让 subagent 去看。


参考来源

  • Anthropic 官方文档:Claude Code Best Practices(https://code.claude.com/docs/zh-CN/best-practices,2026-07)