Lazy loaded image
Claude Code的三层记忆机制
字数 991阅读时长≈ 3 分钟
2026-10-5
type
Post
status
Published
date
Oct 5, 2026
slug
memory
summary
tags
Agent
category
icon
password
Claude Code的Memory,核心思想是把长期稳定信息和短期任务状态分开管理。
第一层是用户级长期偏好,如用户习惯、用户决策、特殊背景等。
第二层是项目级规则,通过 CLAUDE.md 持久化项目知识,
第三层是当前 Session 的短期上下文,包括任务状态和工具调用结果。
它通过文件化知识和动态 Context 注入保证 Coding Agent 的稳定性。
大致可以理解为:
传统Agent用的是对DB向量召回,Claude 是读取文件,选取几条重要信息拼入Context。

这三层Memory怎么跟LLM关联起来?

Global Memory:启动 Claude Code 时:
Project Memory:Claude Code 进入项目时:
Session Memory:
Session Memory 本质是运行时状态管理。
Agent 在一次任务执行过程中,把用户输入、模型输出、工具调用结果、关键中间状态保存在当前 Session Context 中,每轮推理时继续带入 LLM。
LLM每次输出完成都会自动对当前Session Memory进行摘要,当compact时,直接复用现成的摘要当作最新 Session Memory。

Memory 什么时候写入?

Memory 写入时机取决于信息是否具有长期价值。
像一次性的调试过程不会写入,只保留在 Session Memory;如果发现用户习惯、项目规范等稳定信息,会写入 Global Memory 或 Project Memory。

怎么写入的?

增量提取。
实现上主要通过修改本地配置文件和 CLAUDE.md 持久化。

Memory过多或者上下文爆炸怎么处理?

长期 Memory 通过分层和文件维护控制规模,定期整理:更新、去重、合并,只加载当前项目相关规则;
短期 Session Memory 通过上下文压缩,把历史对话和工具结果总结成关键状态,避免 Context 无限增长。
context 限制加载范围 + 缓存 + 人工维护。

为什么不像RAG那样检索Memory?

因为 Claude Code 的 Memory 主要保存的是稳定规则和当前状态,不是大量知识检索问题。
像项目规范、代码约束这种信息需要准确生效,用文件直接加载比 RAG 相似度检索更可靠,避免漏召回或召回错误。
RAG 更适合“从大量知识中找相关信息”,而 Memory 更关注“让 Agent 持续遵守规则、保持任务连续性”。

直接加载文件式检索Memory优缺点?

文件式 Memory 优点是可靠、可控,
缺点是随着规模增长会带来 Context 膨胀和人工维护问题,
回到首页