读 Claude Code 源码 - memory 机制
内容提要
Claude Code 的内存机制包括会话内存和自动内存。会话内存通过后台子代理维护 summary.md 文件,定期更新以提取关键信息。自动内存支持跨会话回忆,使用 MEMORY.md 作为索引,保存持久记忆。更新和提取过程遵循特定阈值和配置,以确保高效管理内存内容。
关键要点
-
Claude Code 的内存机制分为会话内存和自动内存。
-
会话内存通过后台子代理维护 summary.md 文件,定期更新以提取关键信息。
-
会话内存更新遵循特定阈值,包括最小上下文窗口令牌数和工具调用次数。
-
自动内存支持跨会话回忆,使用 MEMORY.md 作为索引,保存持久记忆。
-
MEMORY.md 负责做入口索引,每个条目应为一行,长度不超过 150 个字符。
-
保存记忆的过程分为两步:第一步是将记忆写入各自的文件,第二步是在 MEMORY.md 中添加指向该文件的指针。
延伸解读
会话内存的更新机制
Claude Code 的会话内存通过后台子代理定期更新 summary.md 文件,确保关键信息的提取。这一过程依赖于特定的阈值,如最小上下文窗口令牌数和工具调用次数,避免频繁更新导致的性能问题。用户在使用时应注意这些阈值,以优化会话的流畅性和信息的准确性。
自动内存的持久性
自动内存机制通过 MEMORY.md 文件实现跨会话的记忆保存,支持用户在不同会话中回忆之前的内容。每个记忆条目应简洁明了,长度不超过 150 个字符。这种设计使得用户能够快速检索相关信息,但也要求用户在记录时注意信息的精炼和准确性,以提高检索效率。
内存管理的风险
在 Claude Code 的内存管理中,过多的记忆条目可能导致性能下降,尤其是在 MEMORY.md 文件过大时。系统会在达到最大令牌数时提示用户进行压缩,因此用户应定期检查和整理记忆内容,以保持系统的高效运行。
延伸问答
Claude Code 的内存机制分为哪两种类型?
Claude Code 的内存机制分为会话内存和自动内存。
会话内存是如何维护的?
会话内存通过后台子代理维护 summary.md 文件,定期更新以提取关键信息。
自动内存的主要功能是什么?
自动内存支持跨会话回忆,使用 MEMORY.md 作为索引,保存持久记忆。
更新会话内存的条件是什么?
更新会话内存的条件包括最小上下文窗口令牌数和工具调用次数。
MEMORY.md 文件的作用是什么?
MEMORY.md 负责做入口索引,每个条目应为一行,长度不超过 150 个字符。
保存记忆的过程分为哪两步?
保存记忆的过程分为两步:第一步是将记忆写入各自的文件,第二步是在 MEMORY.md 中添加指向该文件的指针。