返回博客
claude-codememoryhow-toclaude-mdcontext

怎么让 Claude Code 的记忆跨会话保留

Claude Code 每个会话都从全新的上下文窗口开始。有两种内置机制能把知识带到下一次会话:CLAUDE.md 和自动记忆。各自保存什么、存在哪里、有什么限制,以及运行一整支 agent 团队时该怎么办。

C
Crewly Team
阅读约 7 分钟
分享

目录

Claude Code 的每个会话都从全新的上下文窗口开始。你昨天解释过的东西:测试命令、从不碰的文件夹、你喜欢的提交信息写法,都会消失,除非有什么东西把它们带过去。Claude Code 有两种内置办法,而一旦你运行不止一个 agent,还会冒出第三个问题。本文三个都讲。

简短版

CLAUDE.md 文件自动记忆
谁来写你Claude
内容指令和规则学到的经验和模式
范围项目、用户或组织每个仓库,各 worktree 共用
加载每个会话每个会话(前 200 行或 25KB)

来源:Claude Code 的记忆文档,2026 年 10 月 9 日读取。两者都在每次对话开始时加载,Claude 把两者都当作上下文,而不是强制配置。

三列:新会话从全新的上下文窗口开始;CLAUDE.md 由你写、每个会话加载;自动记忆由 Claude 写、每个会话加载前 200 行或 25KB三列:新会话从全新的上下文窗口开始;CLAUDE.md 由你写、每个会话加载;自动记忆由 Claude 写、每个会话加载前 200 行或 25KB

哪些东西会带进新会话(示意图)。

1. CLAUDE.md:你想让 Claude 一直知道的事

CLAUDE.md 是一个写指令的 Markdown 文件。把你本来要反复说的东西放进去:怎么构建和测试、命名规范、禁区文件夹。

文档里要留意的几点:

  • 保持简短。 目标是每个文件不超过 200 行。更长的文件占用更多上下文,遵循度也会下降。只对部分代码有用的指令,放进 .claude/rules/ 里按路径限定的规则,它们只在 Claude 处理匹配的文件时才加载。
  • 导入能整理,不能瘦身。 CLAUDE.md 可以用 @path/to/file 导入其他文件,但被导入的文件也在启动时加载,占用的上下文一样多。
  • 要具体。 指令越具体、越简洁,Claude 遵循得越稳定。

2. 自动记忆:Claude 从你这里学到的

自动记忆是 Claude 根据你的纠正和偏好自己写的笔记。每个项目有一个目录 ~/.claude/projects/<project>/memory/,里面有一个 MEMORY.md 索引和每个主题一个文件。

  • 只在本机。 同一 git 仓库的所有 worktree 和子目录共用一个自动记忆目录。这些文件不会在不同机器或云环境之间共享。
  • 索引有上限。 每次对话开始时,加载 MEMORY.md 的前 200 行或前 25KB,以先到者为准。超出的部分在会话开始时不会加载。每条写一行,细节放进主题文件。
  • 会一直保留。 旧的会话记录在保留期过后会被清理,但记忆文件不在清理范围内,直到你或 Claude 编辑或删除它们。
  • 你可以查看和修改。 这些文件是纯 Markdown。运行 /memory 可以列出你的 CLAUDE.md 和记忆文件、打开自动记忆文件夹,或开关自动记忆。

四步:你纠正 Claude;Claude 保存笔记,每个主题一个文件;MEMORY.md 是索引,每条一行;新会话加载索引的前 200 行或 25KB四步:你纠正 Claude;Claude 保存笔记,每个主题一个文件;MEMORY.md 是索引,每条一行;新会话加载索引的前 200 行或 25KB

自动记忆放在哪,加载什么(示意图)。

一个可以先用起来的设置

  1. 在项目根目录写一个简短的 CLAUDE.md,放进你重复最多的五件事:构建命令、测试命令、规范、禁区文件夹、你希望怎么汇报工作。
  2. 运行 /memory,看 Claude Code 列出了哪些文件。你的 CLAUDE.md 应该在列表里。
  3. 确认自动记忆是开着的。 /memory 的开关会显示状态。如果是关的,就打开,除非某个项目设置是有意关掉它的。
  4. 用平常的话纠正 Claude 一次。 例如:“这个仓库里我们用 check 脚本跑测试,不用 test。”然后去记忆文件夹里找保存下来的笔记。
  5. 一周后修剪。 打开 MEMORY.md,删掉过时的行,合并重复的。索引保持简短,才能完整加载。

要记住的规则

  • 指令写进 CLAUDE.md,观察交给自动记忆。 如果你会把它写成规则,就自己写。
  • 两者都不是护栏。 如果某件事绝对不能发生,别靠记忆文件。文档指向 PreToolUse hook,它能不管 Claude 怎么决定都拦住某个操作。
  • 除非你提交,否则不会和别人共享。 项目的 CLAUDE.md 可以随仓库一起提交。自动记忆留在你的机器上。

当你运行一支 agent 团队

上面两种机制假设一个人同一时间只和一个 Claude Code 会话合作。一旦你运行多个 agent,有两件事会变:每个 agent 应该有自己的笔记,而且有些知识属于整个项目。

我们做的开源工具 Crewly,用 agent 调用的两个技能来处理:

  • remember 保存一条笔记。范围要么是 agent(只属于那个 agent),要么是 project(项目里所有 agent 共享),类别说明它是哪种笔记:事实、模式、坑,或决策。
  • recall 按问题搜索保存的笔记,也可以限定在某个项目里。
  • 取代旧笔记。 当一个决策取代了更早的决策,新笔记可以用 --supersedes 指向旧的,旧的会被标记为已取代,agent 不再把它当作当前答案。

记忆保存在你的机器上:agent 的记忆在 ~/.crewly/ 下,项目的记忆在项目自己的 .crewly/ 文件夹里。每个 agent 的启动流程会回忆它保存过的东西,所以重启后的 agent 不用从零开始。

它不做的事:它不替代 CLAUDE.md。Claude Code 仍会在每个 agent 的会话里读取它自己的 CLAUDE.md。Crewly 的笔记用于团队在工作中学到的东西,比如周二做的一个决策,周四另一个 agent 要用。

两列:单独用 Claude Code 是一个人一个会话,CLAUDE.md 和自动记忆在你的机器上;Crewly 多个 agent 有 remember、recall 和 supersedes,保存在你的机器上两列:单独用 Claude Code 是一个人一个会话,CLAUDE.md 和自动记忆在你的机器上;Crewly 多个 agent 有 remember、recall 和 supersedes,保存在你的机器上

一个会话,对比一支团队(示意图)。

试用 Crewly:请先安装 Node.js 22 或更新版本(nodejs.org 的安装包,或 Homebrew / 系统包管理器),再运行:

bash
curl -fsSL https://crewlyai.com/install.sh | bash

然后打开一个新的终端,运行:

bash
crewly start

想用 npm?如果你的 Node 来自 Homebrew 或 nodejs.org 安装包,npm install -g crewly 也可以。

完整的团队搭建见在 Claude Code 里同时运行多个 agent 的 4 种方法。

常见问题

Claude Code 会在会话之间记住东西吗?

每个会话都从全新的上下文窗口开始,但有两种机制把知识带过去:CLAUDE.md 文件,保存你写的指令;自动记忆,保存 Claude 自己写的笔记。两者都在每次对话开始时加载。

Claude Code 的自动记忆存在哪里?

在 ~/.claude/projects/<project>/memory/,里面有一个 MEMORY.md 索引和每个主题一个文件。它只在本机:同一 git 仓库的所有 worktree 共用,不会在不同机器之间共享。

MEMORY.md 能有多大?

每次对话开始时,加载前 200 行或前 25KB,以先到者为准。超出的部分在会话开始时不会加载,所以每条记忆写一行,细节放进主题文件。

怎么关掉自动记忆?

在会话里打开 /memory,用自动记忆开关,它会把 autoMemoryEnabled 保存到你的用户设置里。只想对某个项目关闭,就在该项目的设置里把 autoMemoryEnabled 设为 false。

CLAUDE.md 是硬性规则吗?

不是。Claude 把 CLAUDE.md 和自动记忆当作上下文,而不是强制配置。想不管 Claude 怎么决定都拦住某个操作,请改用 PreToolUse hook。

来源

Claude Code 的事实:How Claude remembers your project,2026 年 10 月 9 日读取。Crewly 的记忆:Crewly 仓库中的 remember 和 recall 技能定义、入门指南和 agent 启动恢复提示,2026 年 10 月 9 日核对。

准备好编排你的 AI 团队了吗?

开始使用 Crewly,把多个 Claude Code、Codex 或 Antigravity agent 组成一支协同工作的团队来运行。

curl -fsSL https://crewlyai.com/install.sh | bash阅读文档 →

然后打开一个新的终端,运行:

crewly start

相关文章