1、MindSave简介
MindSave 是一个面向 AI 编程助手的跨平台认知状态持久化 Skill。它解决了 AI 编码 Agent 最头疼的问题——会话切换或平台切换后,之前积累的失败经验全部归零,同一个错误一犯再犯。MindSave 通过在项目文件系统中建立一个三层状态快照体系,让 AI 助手在不同的会话、甚至不同的编程工具之间,都能记住“该做什么”和“不该做什么”。适合重度依赖 AI 编码工具的开发者使用,尤其是同时使用 Claude Code、Trae、Cursor 等多款工具的人。
2、使用场景
我为什么想做它
我在日常开发中同时使用 Claude Code 处理复杂架构任务、Trae 做前端组件、CodeBuddy 做代码审查。每次在 Claude Code 里花了 10 轮对话跟 AI 磨出一个决策——比如“用户不喜欢 Tailwind,用 CSS Modules 替代”——换到 Trae 后,AI 又会信心满满地提议引入 Tailwind。这种重复调教的成本极高且极影响心情。
核心痛点
AI Agent 失败的原因,很少是忘了聊过什么,而是重复了已经被明确拒绝的方案。传统记忆方案要么存全量对话(Token 恢复成本 > 重做成本),要么只存成功经验,不存失败路径。这就像一位工程师只写“最佳实践”却不写“避坑指南”。
能省掉的重复劳动
MindSave 上线后,我不用在每次切换会话或切换工具时重新交代项目约束;不用反复纠正 AI 不要重复尝试已失败的技术方案;上下文占用到临界点时,自动快照让工作无缝接续。粗略估算,每周省掉约 3-5 次、每次 5-10 轮的重复调教对话。
3、创作过程
MindSave 的设计灵感来自 CPU 多级缓存架构——信息密度 > Token 数量是贯穿始终的设计哲学。不是所有 Token 的信息密度都一样:一个 5 Token 的约束 "不要用 Tailwind",比 500 Token 的工具日志更能防止返工。
3.1 三层架构设计
这是 MindSave 的骨架——把 Agent 的状态按信息密度和访问频率分成三层:
| 层级 | 类比 | 何时读取 | Token 预算 |
|---|---|---|---|
| L1:执行寄存器 | CPU 寄存器 | 每次恢复 | ≤300 |
| L2:认知缓存 | L1/L2 缓存 | 按需恢复 | ≤500 |
| L3:冷存档 | 磁盘存储 | 仅调试 | 无限制 |
恢复总成本 ≤800 Token,而传统方案恢复整个对话历史动辄数千 Token。
L1——执行寄存器(始终恢复):
goal: "实现 JWT 鉴权并支持刷新令牌轮换"
state: "调试刷新令牌失效逻辑"
next_action: "在 useAuth hook 中添加 Token 过期检查"
active_files:
- "src/hooks/useAuth.ts"
- "src/lib/token.ts"
blocker: "刷新令牌没有在 API 请求失败前触发重新鉴权"
L2——认知缓存(按需恢复,最核心的负向认知记忆层):
constraints:
- "必须自托管鉴权服务,不能用外部服务"
- "用户偏好 httpOnly cookies,不要用 localStorage"
decisions:
- "Access Token 15分钟,Refresh Token 7天并支持轮换"
failure_graph:
localStorage_tokens:
rejected_by: user
reason: "XSS 漏洞风险"
repeat_count: 2
confidence: high
scope: project
alternatives: ["httpOnly cookies"]
L3——冷存档(只写不读,仅供追溯):工具调用日志、文件变更记录、已完成的步骤列表——这些信息只用于出了问题回溯,永不自动恢复。
3.2 Failure Graph:从“扁平列表”到“结构化失败图谱”
这是 MindSave 最原创的模块,也是从 v3.4 到 v3.5 的核心进化。旧版 excluded_paths 只是一个字符串列表:
# v3.4 - 扁平列表
excluded_paths:
- "不要用 Tailwind —— 导致样式冲突"
问题在于:没有重复次数,没有置信度,没有关联项,没有替代方案。AI 在下一个会话里不知道这个失败有多“严重”。
v3.5 的 Failure Graph 将每个失败项结构化为节点:
failure_graph:
Tailwind:
rejected_by: user
reason: "与现有 CSS 变量体系冲突"
repeat_count: 3 # 被拒绝了 3 次
confidence: high # 置信度:高
scope: project # 作用域:项目级 / 全局级
related: ["Bootstrap", "utility-first CSS"]
alternatives: ["CSS Modules", "原生 CSS + 变量"]
scope: global 的失败项会同步到 ~/.mindsave/global/,被所有项目、所有平台共享加载。这意味着你在项目 A 里用 Claude Code 踩过的坑,在项目 B 里换了 Trae 这个工具,AI 仍然不会重蹈覆辙。
3.3 自适应压力检测——告别“死守 80% 上下文”
传统方案在上下文达到固定比例(如 80%)时触发保存。MindSave 引入了基于上下文增长速度 × 任务复杂度的动态阈值系统:
| 增长模式 | 特征 | 倍率 | 实际 WARNING | 实际 CRITICAL |
|---|---|---|---|---|
| 慢(Q&A) | ≤2 次工具调用/5分钟 | ×1.2 | 72% | 96% |
| 正常(编码) | 3~6 次/5分钟 | ×1.0 | 60% | 80% |
| 快(重构) | ≥7 次/5分钟 | ×0.8 | 48% | 64% |
关键洞察:快速增长的高复杂度会话可能在 2-3 轮内溢出,必须更早保存;而安静的 Q&A 会话可以安全运行更久。
3.4 自动触发系统——零配置,零打扰
MindSave 不需要手动输入命令才能保存。它通过 6 种信号自动触发快照:工具调用超过 10 次未保存、子任务完成、从重复失败中恢复、用户说出结束语(“done”“结束”“先这样”)、做出关键架构决策、用户纠正 AI。
同时内置了防冗余机制:两次自动快照之间至少间隔 5 分钟或 10 轮对话,防止密集触发信号导致的快照洪流。
4、使用步骤
方式一:纯文件配置(推荐,零依赖)
# 1. 克隆仓库
git clone https://github.com/Ringlingo/mindsave.git
cd mindsave
# 2. 复制到你的项目
cp CLAUDE.md your-project/
cp -r .mindsave/ your-project/
# 3. 开始使用——在对话中直接输入命令
方式二:SDK 安装(可选)
# Python
pip install mindsave
mindsave list # 列出所有快照
mindsave stats # 查看统计
mindsave clean # 清理旧快照
# TypeScript
npm install mindsave
命令速览
| 命令 | 作用 | 操作层级 |
|---|---|---|
/save | 完整检查点保存 | L1+L2+L3 |
/load | 恢复最近状态,进入续传模式 | L1+L2 |
/load --verify | 恢复 + 校验工作区文件是否匹配 | L1+L2 |
/recall "关键词" | 搜索历史快照中的关键字 | L3(只读) |
/snapshots list | 列出所有快照及状态 | — |
/snapshots stats | 查看 L1/L2/L3 分布统计 | — |
/auto-snapshot | 仅保存 L1(上下文溢出保护) | L1 |
跨平台迁移(以 Trae 为例)
# 从 Claude Code 迁移到 Trae
mindsave export --platform trae # 生成 trae 兼容配置
mindsave export --scope global # 导出全局 Failure Graph
# 在新机器 / 新平台导入
mindsave import # 导入全局 Failure Graph
多平台兼容性一览
| 平台 | 使用方式 |
|---|---|
| Claude Code | 复制 CLAUDE.md 到项目根目录 |
| Trae | 将 CLAUDE.md 复制到项目根目录(自动加载) |
| Cursor | 将 CLAUDE.md 内容添加到 .cursorrules |
| Windsurf | 将 CLAUDE.md 内容添加到 .windsurfrules |
| 任何支持系统提示的 LLM | 将 CLAUDE.md 内容粘贴到系统提示 |
5、效果展示
场景一:跨会话恢复(Claude Code ↔ Trae)
场景二:跨平台 Failure Graph 全局生效(Claude Code → Trae 不同项目)
[项目 A — Claude Code] 用户拒绝 Tailwind,记录到 Failure Graph (scope: global)
[项目 B — Trae,完全不同项目] AI 读取全局 Failure Graph,知道 Tailwind 已被全局拒绝,
直接建议使用 CSS 变量方案,无需用户再次纠正
性能对比
| 指标 | 传统全量记忆 | MindSave |
|---|---|---|
| 恢复 Token 成本 | 2000-5000+ | ≤800 |
| 跨平台能力 | 无 | 原生支持(含 Trae) |
| 失败记忆 | 不保留 | Failure Graph 结构化存储 |
| 平台锁定 | 强 | 零 — 纯文件,Git 友好 |
| 部署依赖 | npm/pip 包 + API Key | 零依赖 |
6、Skill 链接
- GitHub 仓库:github.com/Ringlingo/m…
- 许可证:MIT — 完全开源
- 语言支持:英文 + 中文双语 README.md
7、总结与思考
效率提升
MindSave 上线后,我每周在“重复调教 AI”上节省的时间大约在 20-30 分钟,但更重要的是心智负担的下降——不用每次换工具(比如从 Claude Code 切到 Trae)都担心 AI 又开始推已被否决的方案,这种“状态跟着项目走”的安全感很难量化,但体验过就回不去了。
最满意的地方
Failure Graph 的 scope: global 机制是 MindSave 最“破圈”的设计。它不仅仅是跨会话的记忆,而是跨项目、跨平台的全局失败知识库——你在项目 A 里用 Claude Code 发现“WebSocket 重连在移动端不稳定,改用轮询”,这个教训在项目 B 里用 Trae 时也会自动生效。这等价于一个随着你使用不断成长的“全局避坑指南”。
对 AI 工作方式的感悟
做 MindSave 让我重新理解了 Agent 记忆问题:大多数方案在解决“存什么”和“怎么检索”,但真正的问题可能是“什么不该存”。不是所有 Token 的信息密度都一样——这个洞察是 MindSave 的灵魂。传统记忆系统把 Agent 当成需要翻聊天记录的学生,MindSave 把它当成需要快速访问寄存器和缓存的 CPU。