读 Claude Code 源码 - memory 机制

💡 原文中文,约7800字,阅读约需19分钟。
📝

内容提要

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 中添加指向该文件的指针。

🏷️

标签

➡️

继续阅读