聊太久会变笨:ClaudeCode的上下文问题

admin 2026-04-02 04:52:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文主要探讨了在使用AI模型(如ClaudeCode)进行长时间对话时,可能因上下文限制而导致性能下降的问题,并提供了相应的解决方案。核心观点是,过长的对话会占用AI的上下文空间,导致其变慢或‘忘记’之前的内容。为解决此问题,文章介绍了两种记忆文件:MEMORY.md和CLAUDE.md,并建议用户主动管理这些文件来保存关键信息,从而在新的对话中保持记忆。同时,文章强调了每次对话目标应明确单一,完成后整理记忆并重新开始,以确保AI处于最佳工作状态。 综合评分: 85 文章分类: AI安全,技术标准,解决方案,安全工具,实战经验


cover_image

聊太久会变笨:Claude Code 的上下文问题

原创

lisiting01 lisiting01

TongGuanLabs

2026年3月22日 08:48 北京

最近身边越来越多朋友开始用 Claude Code,他们经常来问我:

  • 为什么用着用着越来越慢了?

  • 它怎么忘记之前说过的事了?

  • 它怎么越来越蠢了?

  • 它怎么把之前改好的内容又改错了?

这些情况可能有很多原因,但有一个很常见、也很容易被忽视的——上下文限制。这篇文章只讲清这个概念,再给你一个简单应对办法,希望能帮你改善这些情况。

Claude Code 不是微信聊天,请保护好你的上下文空间

在目前的大模型技术框架下,聊天越长,AI 每次需要参考的内容就越多,所以会逐渐变慢,也更容易抓不住重点、搞混之前说过的内容。而 Claude Code 也不例外。

而当对话即将到达最大上下文限制时,Claude Code 会自动压缩对话历史来继续工作——但压缩之后,之前对话中的一些细节,也会被”忘记”。

你可以通过在对话中输入 /context 来查看还剩多少上下文空间。

VS Code 插件版本

命令行终端版本

所以,保持适当长度的上下文,AI 才能处于最佳状态——它了解足够多的细节、目的明确、内容还没有被压缩。

那么如何保证适当长度的上下文呢?最简单的方法,就是当你完成一件事的时候,将必要的内容存入 Claude Code 的记忆系统,然后重开一个对话(或者使用 /clear 命令清空上下文),再开始下一件事。

Claude Code 的记忆系统:两个「笔记本」

Claude Code 提供了两个像笔记本一样的文件,来帮助 AI 获得连续的记忆,MEMORY.md 和 CLAUDE.md。这两个文件本质上就是普通的文本文件(和 Word、txt 差不多)。

对于 MEMORY.md,Claude Code 会在对话中自行判断是否更新 MEMORY.md 来保持记忆。

而对于 CLAUDE.md,你则需要手动创建以及主动维护。

每次新开对话时,Claude Code 会把这两个文件的内容一起带上,从而让 Claude 获得之前积累的记忆。

实践建议:主动更新记忆

由于 MEMORY.md 的自动记录并不总是可靠,因此实践中建议主动管理 Claude 的记忆。

最简单的方式,就是直接告诉 AI 要记住什么,例如:

请记住,称呼我为阿姆斯特朗回旋加速喷气式阿姆斯特朗夫斯基。

当你在对话中主动要求记忆时,会触发 Claude 把这件事记进 MEMORY.md

不过 MEMORY.md 容量有限,只能储存 200 行文字。

所以,CLAUDE.md 文件是你更重要、更常用的维持记忆手段——将你觉得需要它记住的内容,主动写入 CLAUDE.md 中。

注意,CLAUDE.md 默认是没有的,你需要自己在项目中创建它。例如,下面是一个空项目,我在其中创建了 CLAUDE.md,并写入:

你叫鲁迅,用他的口吻和我说话

当我启动新对话的时候,Claude Code 就会按照 CLAUDE.md 里写的来工作。

很多的网上的教程中,推荐在对话中使用 /init 命令来初始化创建 CLAUDE.md,但在新手并未学会如何维护CLAUDE.md的阶段,我非常建议手动创建 CLAUDE.md 来学会控制 Claude Code,这样对后续理解 Skill、Subagent 等基于文件系统的特性有非常积极的帮助

例如,如果你没有编程经验,你可以将这个背景记录到 Claude Code 的记忆中:

我完全没有编程经验,我提的需求我无法判断是否能够实现,你需要积极引导我,辅助我做出最佳抉择,而且要用我看的明白的词语与我交流

当然,大多数情况下,你可以在对话中更新 CLAUDE.md,而不是手动修改这个文件。

例如,当 Claude 解决了某个让你吃亏的问题时:

不要再踩这个坑了,记录在 CLAUDE.md 中

但要注意的是,CLAUDE.md 也要保持简洁。官方建议控制在 200 行以内;根据实践经验,超过 500 行之后,Claude Code 会变得不那么听话。

如果你觉得不够用,应该将专项内容记录在独立的文件,然后在 CLAUDE.md 中注明这个文件的存在,例如:

创建一个”业务应知应会”文档,在 CLAUDE.md 中创建链接,我们约定以后我提到应知应会相关的内容记录在这里

在一些场景下,你也可以不直接指定修改内容:

例如我在开发项目中,在完成了一次工作任务后,结束对话前最常用的一段话是:

CLAUDE.md 是你的记忆文件,README.md 是项目文档,回顾当前的修改,检查是否需要更新这两个文件。遵循以下原则:

  • 记忆文件尽量简洁,保持记录必要内容即可,记忆用于指导你了解项目,并不是了解细节

  • 如果当前的记忆并没有遵循简洁原则,你也可以进行优化

  • 如果当前记忆已经满足需求,可以不进行修改

  • 如果想储存详细的内容,可以存在 README.md 中

  • 允许清除过时内容

典型工作流程

第一步:想清楚这次要做什么,然后开始对话

目标越具体,AI 越能帮到你。不用写得很正式,哪怕只是心里先想清楚”这次我要做的事是什么”,就够了。

第二步:过程中遇到值得记住的,随时叫 Claude 记下来

碰到这些情况就可以记一下:

  • 踩了个坑,以后不想再踩:”记到 CLAUDE.md,下次别这样做”

  • 你的个人背景或偏好:”我没有编程经验,记住这一点”

  • 项目里的特殊约定或设定

第三步:一件事做完,整理记忆,重开对话

完成任务后,可以让 Claude 先做一次检查:

回顾这次对话,有什么需要更新到 CLAUDE.md 的?

确认没有遗漏之后,重开对话,再开始下一件事。


需要说明的是,不必过分担忧上下文限制问题——Claude Code 的自动压缩策略也是非常优秀的。

你要做的,只是养成一个习惯:每次对话就像去银行办一件事,目标明确、事项单一。主动更新笔记,然后重开对话。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:TongGuanLabs lisiting01 lisiting01《聊太久会变笨:Claude Code 的上下文问题》

评论:0   参与:  0