OpenClaw 失忆怎么办?上下文超限、会话断链的完整解决手册(2026)

核心结论: OpenClaw「失忆」有三种完全不同的原因,对应三套不同的解决方案。盲目重启只能解决其中一种。读完本文,你能区分症状、精准施药,而不是每次都从头喂一遍背景。

openclaw失忆怎么办-img1


什么是「OpenClaw 失忆」?

在中文 AI 圈,「虾失忆了」指 OpenClaw(基于 Claude Code 架构的 AI Agent)在工作过程中忘记了你之前说过的话、设置过的规则或交代过的背景。这不是 Bug,而是大语言模型的结构性特征:

Claude Code 每个会话都从一个全新的上下文窗口开始。

换言之,虾天生是「鱼的记忆」——你关掉终端,它忘;上下文塞满,它也忘。理解这一点,才能从根本上解决问题。


三种「失忆」症状,三套不同方案

不同原因的失忆,处理方式完全不同:

症状 触发原因 核心特征 解决方向
症状 A:回复越来越差 上下文窗口即将满 回复变短、开始重复、逻辑混乱 /compact 压缩上下文
症状 B:新开会话什么都不记得 会话关闭,上下文清零 重新打开终端后完全陌生 --continue 接续 / CLAUDE.md 预加载
症状 C:一直记不住我说过的规则 规则只在对话里说,未写入持久化文件 每次都要重新交代同一件事 写入 CLAUDE.md 或 Auto Memory

诊断第一步: 先确认你属于哪种症状,再对应操作。


急救方案:失忆了怎么立刻恢复

症状 A 急救:上下文即将爆满 → /compact

当虾开始答非所问、回复越来越短,说明上下文窗口接近上限。

/compact

/compact 会将当前对话智能压缩成摘要,释放上下文空间,同时保留对话的关键信息。执行后 Claude 会重新读取你的 CLAUDE.md,从压缩后的起点继续工作。

重要/compact 之后,CLAUDE.md 里的内容完整保留;但只在对话中口头交代的规则(没写进 CLAUDE.md 的)会丢失。这是症状 A 转变为症状 C 的常见陷阱。


症状 B 急救:会话关闭后接续 → --continue / --resume

方式一:接上最近一次会话

claude --continue

在同一项目目录下运行,自动恢复最近的会话,完整的消息历史、工具调用记录、上下文一并还原。

方式二:从会话列表选择

claude --resume

打开交互式会话选择器,显示所有保存的会话(含时间、消息数、git 分支),支持搜索和预览,用方向键选择后回车恢复。

方式三:从 PR 恢复关联会话

claude --from-pr 123

如果你创建过与 PR 关联的会话,可通过 PR 编号直接恢复。

会话选择器快捷键:

  • P 预览会话内容
  • R 重命名会话
  • / 搜索过滤
  • B 只显示当前 git 分支的会话

症状 C 急救:规则总被遗忘 → 写入 CLAUDE.md

口头交代的规则 = 写在沙上的字。唯一的解法是把它写进 CLAUDE.md。

# 快速生成初始 CLAUDE.md
/init

/init 会分析你的代码库,自动生成包含构建命令、测试规范和项目约定的 CLAUDE.md。之后手动补充你需要虾永久记住的规则:

# 我的项目规则

- 代码缩进用 2 个空格,不用 Tab
- 提交前必须运行 `npm test`
- API handlers 放在 `src/api/handlers/` 目录
- 回答时用中文,代码注释用英文

CLAUDE.md 文件优先级:

位置 路径 作用域
企业级 /Library/Application Support/ClaudeCode/CLAUDE.md 所有用户
个人级 ~/.claude/CLAUDE.md 所有项目
项目级 ./CLAUDE.md./.claude/CLAUDE.md 当前项目(可提交 Git)

更具体的位置优先级更高。常用做法:项目规范写进项目级,个人偏好写进个人级。


预防失忆的两大机制

openclaw失忆怎么办-img2

机制一:CLAUDE.md(你来写)

CLAUDE.md 是你主动写给虾的「长期记忆手册」。每次会话开始时自动加载到上下文。

写好 CLAUDE.md 的四条原则:

  1. 保持在 200 行以内:超出会消耗过多上下文,降低规则遵守率
  2. 具体可验证:写「用 2 空格缩进」不要写「格式规范」
  3. 消除矛盾:多个 CLAUDE.md 之间的冲突指令会让虾随机选一条执行
  4. @ 引用大文件:参考文档太长,用 @docs/reference.md 按需引入
# 推荐的 CLAUDE.md 结构

## 项目背景
- 这是一个 React + TypeScript 的 SaaS 项目
- 后端 API 文档见 @docs/api-spec.md

## 编码规范
- 使用 2 空格缩进
- 函数命名用驼峰式

## 工作流程
- 修改前先用 `git status` 检查
- 提交前运行 `npm run test && npm run lint`

机制二:Auto Memory(虾自己写)

Auto Memory 是 Claude Code v2.1.59+ 的内置功能(默认开启),让虾根据你的纠正和偏好自动记笔记

存储位置: ~/.claude/projects/<项目>/memory/MEMORY.md

每次会话开始时,自动加载 MEMORY.md 的前 200 行。当虾「学到」新东西(比如你纠正了它的某个习惯),它会自动写入这个文件。

查看和管理 Auto Memory:

/memory

运行 /memory 可以:

  • 查看当前会话加载了哪些 CLAUDE.md 和规则文件
  • 开关 Auto Memory
  • 浏览 Auto Memory 存储的内容

如果不想让虾自作主张记什么,可以关闭:

// ~/.claude/settings.json
{
  "autoMemoryEnabled": false
}

CLAUDE.md vs Auto Memory:如何配合使用

维度 CLAUDE.md Auto Memory
谁来写 虾自动写
内容类型 规则和规范 学到的偏好和模式
适合写什么 项目架构、代码规范、工作流程 构建命令、调试经验、习惯偏好
作用范围 项目/个人/组织 当前项目的工作区
控制粒度 完全由你掌控 自动积累,可随时编辑

最佳实践: 把「硬性规则」写进 CLAUDE.md(如代码风格、提交流程),让 Auto Memory 自然积累「软性偏好」(如你喜欢什么格式的回答、常用的调试方法)。


进阶:命名会话,彻底告别「找不到上次对话」

# 开始时给会话命名
claude -n auth-refactor

# 或中途命名
/rename feature-payment-v2

# 之后精准恢复
claude --resume auth-refactor

命名会话的价值在于:处理多个并行任务时,「payment-integration」比「解释这段代码」容易找到 100 倍。

七牛云的 LinClaw(桌面版 OpenClaw)在此基础上还提供多轮记忆智能压缩功能,在上下文接近上限时自动执行压缩并保留关键信息,适合需要长时间持续运行 Agent 的企业场景。


常见问题 Q&A

Q:/compact 之后虾还记得我们之前说过的话吗?
A:记得大意,但不记得细节。/compact 会生成一份对话摘要,保留任务进展和关键决策,但逐字逐句的对话历史会被压缩掉。写进 CLAUDE.md 的规则不受影响,每次 /compact 后都会重新完整加载。

Q:Auto Memory 会记住敏感信息吗?
A:Auto Memory 的文件是纯文本 Markdown,存在本地 ~/.claude/projects/ 目录,不上传到云端。你可以随时用 /memory 查看和删除内容。建议避免在对话中输入 API Key 等敏感信息,因为它们有可能被记入记忆文件。

Q:团队协作时 CLAUDE.md 怎么用?
A:把 ./CLAUDE.md./.claude/CLAUDE.md 提交到 Git,团队所有成员自动共享同一套指令。个人特有的偏好放到 ~/.claude/CLAUDE.md,不影响他人。

Q:CLAUDE.md 写了但虾好像没遵守?
A:先运行 /memory 确认文件是否被正确加载(文件会出现在列表中)。若已加载但不遵守,通常是指令太模糊或存在互相矛盾的规则。将指令改为具体可验证的表述(「使用 2 空格」而不是「规范代码格式」),并检查不同 CLAUDE.md 文件之间是否有冲突。

Q:我的 CLAUDE.md 要写多详细?
A:目标是200 行以内。规则越多,虾遵守的概率越低——这是 token 竞争的现实限制。把最重要的 5–10 条规则写进去,其他细节按需用 @ 引用外部文件,或分解到 .claude/rules/ 目录,按文件类型按需加载。


总结

OpenClaw 失忆问题按场景处理,三步定位:

  1. 诊断:是上下文满了(症状 A)、会话关了(症状 B)、还是规则没写进持久化文件(症状 C)?
  2. 急救:症状 A 用 /compact,症状 B 用 --continue/--resume,症状 C 立即写 CLAUDE.md。
  3. 预防:CLAUDE.md 写硬规则 + 开启 Auto Memory 让虾自学,两者配合,失忆概率降至最低。

核心心法: 对话里说过的话 = 忘记;写进 CLAUDE.md 的规则 = 永远记得。

本文基于 Claude Code 2026 年 3 月官方文档(code.claude.com/docs)整理,Auto Memory 功能要求 Claude Code v2.1.59 或更高版本。


延伸资源

posted @ 2026-03-17 10:59  七牛云行业应用  阅读(430)  评论(0)    收藏  举报