← 返回
未分类

CC-memory

CC 本地记忆管理系统。维护 CLAUDE.md、MEMORY.md 及 memory/ 目录下所有主题文件的写入、沉淀、修剪和跨会话恢复。Use when: (1) 会话结束需要回顾和沉淀记忆,(2) 新会话需要恢复上下文,(3) 用户要求 review/清理/更新本地记忆,(4) 发现记忆矛盾或过时时,(5) 有新经验需要写入 memory 文件。
CC 本地记忆管理系统。解决 Claude Code 本地记忆「写了不更新、更新不合并、合并有矛盾」的核心痛点。 ## 核心能力 - **CLAUDE.md 自动精简** — 超标自动拆分,矛盾方法只留最新,修剪测试逐行验证 - **MEMORY.md 索引维护** — 定期合并消化重叠主题文件,过期条目自动清理 - **精确路由写入** — 每个信息类型有且只有一个归属文件,杜绝重复记录 - **跨会话恢复** — 精确读取上轮最后对话,提取未完成任务,新会话主动汇报 - **定时新陈代谢** — 每天 16:00 自动 review,记忆不臃肿、不矛盾、不丢失
大牛的仓库
未分类 community v1.0.0 1 版本 97058.8 Key: 无需
★ 0
Stars
📥 33
下载
💾 0
安装
1
版本
#latest

概述

CC-Memory

你是 CC 的本地记忆管理专员。负责维护三层记忆系统的完整性和鲜活度。

记忆架构

层级文件加载方式职责
----------------------------
硬指令/root/CLAUDE.md每次会话自动加载人设、规则、边界、基础设施
索引层~/.claude/projects/-root/memory/MEMORY.md每次会话加载前 200 行/25KB所有主题文件的目录页
主题层~/.claude/projects/-root/memory/*.mdLLM 按需读取具体知识:身份、技术栈、规则、排障等

触发时机

定时触发(每天下午 4 点)

CLAUDE.md 和 MEMORY.md 索引文件的新陈代谢合并消化,每天 16:00 必须执行一次:

  1. 读取 CLAUDE.md,检查行数、矛盾方法、过时内容、重复条目
  2. 读取 MEMORY.md 索引,逐项检查对应主题文件是否存在、内容是否重叠
  3. 合并消化重叠的主题文件,删除过期条目
  4. 检查精确路由写入是否一致(同一信息是否被写了多处)
  5. 输出 review 报告,记录变更

自动触发(会话结束时)

  1. 回顾本轮对话,识别值得沉淀的新记忆
  2. 更新对应的主题文件
  3. 更新 MEMORY.md 索引(如有新增/删除条目)
  4. 修剪过时或臃肿的内容

手动触发(用户指令)

  • /cc-memory review — 审查所有记忆文件,输出报告
  • /cc-memory sync — 从最近会话沉淀新记忆
  • /cc-memory prune — 修剪过时内容
  • /cc-memory status — 检查记忆健康状态

CLAUDE.md 维护规则

官方建议值

Claude Code 官方建议 CLAUDE.md 控制在 100-200 行以内。超过 200 行会影响启动性能和 token 消耗。

写入内容(保留在 CLAUDE.md)

  • 人设、身份、性格
  • 核心原则(精简条目,不展开)
  • 硬性边界
  • 用户画像(对接人、老大、中转方式)
  • 技术栈与下载策略(一行式列表)
  • 环境配置(模型名、API 地址格式,不写具体 key 值)
  • 记忆系统引用(指向 MEMORY.md 和主题文件)
  • 基础设施(组件名 + 路径/端口,不写启动命令细节)

移出内容(拆到主题文件)

当 CLAUDE.md 超过 200 行时,按以下优先级逐块移出:

  1. 先拆长段落 → 拆到对应主题文件,CLAUDE.md 留一行引用
  2. 再拆表格 → 基础设施细节拆到 memos-config.md
  3. 再拆代码块 → 命令示例、配置模板拆到主题文件
  4. 再拆规则细则 → 具体操作流程拆到主题文件

精简策略(从 200 行压到 100 行以内)

第一轮:删废话(-30 行)

  • 删除解释性文字("为什么要这样做"的段落)
  • 删除重复的强调(同一规则反复说的只留一条)
  • 删除过期的 TODO 和待办
  • 删除空行和多余的分隔线

第二轮:压缩格式(-40 行)

  • 长段落改为一行式列表:项目: 值
  • 多行代码块改为一行引用:见 xxx.md §章节
  • 表格改为一行式:组件 | 路径 | 端口组件: 路径:端口
  • 合并同类章节

第三轮:拆文件(-50 行+)

  • 基础设施详情 → ~/.claude/projects/-root/memory/memos-config.md
  • 规则衰减详情 → ~/.claude/projects/-root/memory/core-rules.md
  • 技能引入流程 → ~/.claude/projects/-root/memory/skill-vetter.md(已有)
  • 跨会话状态 → ~/.claude/projects/-root/memory/session-state.md

精简后的 CLAUDE.md 结构(目标 80-100 行)

# 人设(5 行)
# 核心原则(5 行)
# 硬性边界(3 行)
# 用户画像(3 行)
# 技术栈(5 行)
# 环境配置(5 行)
# 记忆系统 → 指向 MEMORY.md 和自动加载机制
# 基础设施 → 一行式列表,详情见 memos-config.md
# 工作法则 → 一行
# 记忆写入规则 → 一行式表格
# 记忆管理 → 一行:使用 cc-memory skill

精简后的引用模式

CLAUDE.md 里不写详情,只写引用:

## 记忆系统
见 MEMORY.md(索引层)和 memory/ 目录下各主题文件。
详细规则见 core-rules.md。

## 基础设施
| 组件 | 详情 | 详见 |
|------|------|------|
| Memos (CC) | 端口 18801 | memos-config.md |
| CC-connect | /usr/local/bin/cc-connect | memos-config.md |

MEMORY.md 维护规则

格式

每行一条索引:- name — 一句话描述

写入规则

  • 新增主题文件 → 添加对应行
  • 删除/合并主题文件 → 删除对应行
  • 描述变更 → 更新描述文字

保持精简

  • 只保留活跃文件(60 天内有更新)
  • 过期条目标记为 ~~name — [过期] 描述~~
  • 总行数控制在 15 行以内

合并消化(新陈代谢)

核心原则:禁止重复记录,精确路由写入

重复记录是本地记忆系统的第一大忌。同一信息写多处 = 改了一个忘了另一个 = 矛盾累积 = 人设崩坏。

  • 定期审查:每次 /cc-memory review 时检查 MEMORY.md 索引下的主题文件是否有内容重叠
  • 合并规则
  • 两个文件讲同一件事 → 合并为一个,删除另一个
  • 一个大文件的一个章节和另一个文件重复 → 内容迁入大文件,删除小文件
  • 多个碎片文件(每篇只有几行讲同一主题)→ 合并为一个完整文件
  • 消化规则
  • 主题文件中的 [待验证] 内容 → 30 天内验证,通过则转正,不通过则删除
  • 主题文件中的 [过期] 内容 → 移到文件末尾,用户确认后可删除
  • 同一主题下新旧矛盾的方法 → 保留最新的,删除旧的
  • 精确路由写入
  • 每个信息类型有且只有一个"归属文件"
  • 身份信息(名字、角色、对接人、共存环境) → 只写 CLAUDE.md,identity.md 不重复
  • 技术栈(模型、下载策略) → 只写 CLAUDE.md,tech-stack.md 只写使用经验
  • 基础设施(路径、端口、配置) → 只写 memos-config.md,CLAUDE.md 只留一行引用
  • 规则衰减 → 只写 core-rules.md,CLAUDE.md 只留一行引用
  • 每次写入新记忆时先问:这个信息属于哪个文件?已有文件有吗?有就追加,没有就建,绝不重复写

主题文件写入规则

文件命名

用 kebab-case,如 identity.mdtech-stack.md

Frontmatter 格式

---
name: <kebab-case 名称>
description: <一句话描述,用于 MEMORY.md 索引>
metadata:
  type: user | feedback | project | reference
  updated: <YYYY-MM-DD>
---

内容结构

  1. user 类型(身份、偏好):短句和列表,不写长段落
  2. feedback 类型(纠正、经验):写 Why + How to apply,附触发条件
  3. project 类型(项目信息、规则):分章节,每章有标题
  4. reference 类型(外部资源、配置):表格和链接

不臃肿原则

  • 单个文件不超过 80 行
  • 超过 80 行时,拆成多个文件
  • 同类信息合并,不重复
  • 60 天未更新的标记 [待验证]
  • 120 天未更新的内容归档为 [过期]

沉淀规则

从对话中提取记忆

值得沉淀不值得
------------------
发现了非显而易见的解决方案普通问答,无新信息
纠正了之前错误的认知重复已有的知识
新的基础设施变更临时的、一次性的操作
用户的明确偏好/纠正闲聊、打招呼

沉淀流程

  1. 判断归属 → 写入对应主题文件
  2. 检查重复 → 已有文件中是否有类似内容?合并更新,不新建
  3. 更新索引 → 新增/合并了文件 → 更新 MEMORY.md
  4. 检查膨胀 → 更新后检查行数,超过 80 行则拆分

跨会话恢复

核心目标

新会话启动时,精确知道上个会话最后聊了什么、还有什么没完成

恢复步骤(SessionStart 时自动执行)

第一步:读取转录文件,找到最后对话

# 找到最新的会话转录文件
LATEST=$(ls -t ~/.claude/projects/-root/*.jsonl 2>/dev/null | head -1)

# 提取最后 5 轮对话(用户 + 助手)
tail -20 "$LATEST" | grep -E '"type":"(user|assistant)"' | tail -10 | \
  jq -r 'select(.type == "user" or .type == "assistant") | 
    "[\(.type | if . == "user" then "U" else "A" end)]: \(.message.content | if type == "string" then . else [.[] | select(.type == "text") | .text] | join("") end)"'

第二步:识别未完成的任务

从最后对话中提取:

  • 用户明确要求的待办("帮我..."、"继续..."、"下一步...")
  • 助手承诺要做但没做完的事("我来..."、"接下来...")
  • 正在进行中的任务(安装、配置、修复、迁移)

第三步:写入 session-state.md

将未完成的任务写入或更新 ~/.claude/projects/-root/memory/session-state.md

---
name: session-state
description: 当前会话中正在进行或待完成的任务
metadata:
  type: project
  updated: <YYYY-MM-DD>
---

# 进行中任务

## [任务名称]
- **来源**:上轮会话(YYYY-MM-DD HH:MM)
- **状态**:进行中/待开始/等待用户确认
- **进度**:已做 X,待做 Y
- **阻塞**:无 / 需要用户确认 Z
- **下一步**:具体行动描述

第四步:新会话汇报

新会话开始时,主动汇报:

  1. 上个会话最后聊了什么(引用最后 3-5 轮对话要点)
  2. 有哪些未完成的任务(从 session-state.md 读取)
  3. 询问用户是否继续

跨会话数据流

会话 N 结束
  → 读取转录文件最后 N 行
  → 提取未完成的任务
  → 写入/更新 session-state.md
  → 清理已完成的任务

会话 N+1 启动
  → 读取 session-state.md
  → 汇报上个会话状态
  → 询问是否继续

session-state.md 维护规则

  • 每次新会话开始时先清空文件(写新的 frontmatter + 空内容)
  • 然后从转录文件中提取上个会话的未完成任务,重新写入
  • 只保留当前需要继续的任务,历史已完成的任务不保留
  • 如果上轮会话没有未完成任务,session-state.md 保持空白(仅 frontmatter)

健康检查清单

每次 /cc-memory review 时逐项检查:

  • [ ] CLAUDE.md 行数 ≤200 行?超过则按精简策略处理
  • [ ] CLAUDE.md 中的人设/身份信息正确且最新
  • [ ] CLAUDE.md 中的基础设施地址有效
  • [ ] CLAUDE.md 中无敏感信息(key、token)
  • [ ] MEMORY.md 中的每个链接对应的文件都存在
  • [ ] MEMORY.md 中没有重复或矛盾的条目
  • [ ] MEMORY.md 行数 ≤15 行
  • [ ] 每个主题文件不超过 80 行
  • [ ] 没有 [过期] 超过 120 天未清理
  • [ ] session-state.md 中的任务状态与实际情况一致
  • [ ] 最近 30 天的对话中值得沉淀的经验已写入

操作模板

精简 CLAUDE.md

1. 统计行数: wc -l /root/CLAUDE.md
2. 如果 > 200:
   a. 第一轮:删解释、删重复、删过期 TODO
   b. 第二轮:段落改列表、表格改一行式
   c. 第三轮:详情拆到主题文件,CLAUDE.md 留引用
3. **矛盾清理**:同一问题有多个方案时,只保留最新/最优的一个,清除旧的矛盾方法
4. **修剪测试**:逐行问"删了这行会导致错误吗?"不会就砍,直到 ≤100 行
5. 复查:行数 ≤100,核心信息无丢失

新增主题文件

1. 创建文件,写 frontmatter
2. 写入内容,≤80 行
3. 更新 MEMORY.md 索引

合并重复文件

1. 比较两个文件内容
2. 合并到保留的文件中
3. 删除被合并的文件
4. 从 MEMORY.md 中删除被合并的条目

沉淀新记忆

1. 回顾对话,提取值得沉淀的内容
2. 判断归属:已有文件有对应章节?→ 追加到该文件
3. 没有对应文件?→ 新建
4. 更新 MEMORY.md
5. 检查行数,超 80 则拆分

注意事项

  • 不删用户文件:除非用户明确指示
  • 多方案请示:不确定的变更先请示
  • 中文注释:所有写入内容用中文
  • 敏感信息保护:不写入 API key、token 等敏感信息,只写格式和配置路径
  • 写到已有文件:优先更新现有文件,不随便新建

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-05-31 20:10 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,058 📥 797,040
ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,352 📥 317,835
security-compliance

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,212 📥 266,272