
我喜欢同时用好几个 Terminal CLI 工具来开发,甚至在同一个项目上混着用。 一方面是想跟上各家的最新特性,另一方面也是想保持技术敏感度毕竟每个工具的思路和擅长点都不太一样,多用 用能学到不少东西。 但体验过程中,不同 CLI 之间的通信和同步一直困扰着我。
GitHub 地址: https://github.com/Alenryuichi/openmemory-plus
安装很简单,一行命令:
npx openmemory-plus install 会自动检测你用的 IDE ( Augment/Claude/Cursor/Gemini ),配置好双层记忆系统。
如果你本地没有 Docker/Qdrant/Ollama ,它也会引导你安装,或者直接用 Docker Compose 一键部署。
场景一:Git worktree 开发
我习惯用 worktree 并行开发多个功能分支。问题来了:
[main 分支] 我花了半小时教会 Claude 这个项目的部署流程: - Vercel 项目 ID 是 prj_xxx - 环境变量要从 .env.production 读 - 部署前要跑 pnpm build:check - 有个坑:要先 invalidate CDN 缓存 [新建 worktree: feature/payment] 我:帮我部署到测试环境 Claude:好的,请问你用什么部署平台? 我:......我刚才不是说了吗 Claude:抱歉,我没有这个上下文 worktree 是干净的工作目录,不会带上之前对话的任何记忆。每次新建分支,都要重新教一遍。
场景二:让 AI 自动部署
上周我让 Claude 帮我配置了一套自动部署流程,改了 GitHub Actions ,配了环境变量,调了半天终于跑通了。
这周我想改点东西:
我:上次的部署配置,我想加个 Slack 通知 Claude:请问你目前的部署配置是怎样的? 我:就是上周你帮我配的那个啊 Claude:抱歉,我没有之前对话的记录。能否描述一下当前的部署流程? 它完全不记得自己做过什么。我得翻 Git 历史,一点点告诉它当时改了哪些文件、为什么这么改。
场景三:多 CLI 切换
[Gemini CLI] 早上 我:我习惯用 TypeScript ,包管理器用 pnpm Gemini:好的,记住了! [Augment] 中午 我:帮我创建一个新组件 Augment:请问你用 Javascript 还是 TypeScript ? 我:......TypeScript Augment:用 npm 还是 yarn 还是 pnpm ? 我:...... [Claude Code] 下午 Claude:你好!请问你的技术栈偏好是? 我:我真的累了 每个工具都是独立的记忆孤岛。每天都在重复自我介绍。
场景四:用 BMAD/OpenSpec 做需求管理
我试过用 BMAD 、OpenSpec 这类方法论让 AI 帮我管理需求,生成 Epic 、Story 、Proposal 文档。
一开始挺好的,AI 会帮你拆解需求、生成规范的文档结构。
但用了一个月之后:
项目根目录: ├── _bmad-output/planning-artifacts │ ├── epic-user-auth.md # 三周前的 │ ├── epic-user-auth-v2.md # 两周前改过 │ ├── epic-payment.md # 上周的 │ ├── epic-payment-draft.md # 这是草稿还是正式的? │ ├── story-login-flow.md # 这个做完了吗? │ ├── story-login-flow-old.md # 为什么有个 old ? │ ├── proposal-refactor-api.md # 这个提案通过了吗? │ └── ...还有二十几个文件 问题来了:
没有自动清理 - 完成的任务、废弃的提案、过时的 Epic 全堆在那里,越积越多
新任务被旧文档干扰 - 我说"帮我做支付功能",AI 读到了三周前那个半成品的 epic-payment-draft.md ,开始基于错误的上下文工作
不知道什么是当前状态 - 哪些 Story 完成了?哪些 Proposal 被否决了?没有地方记录,全靠人脑记
版本混乱 - v2 、draft 、old 、final 、final-v2......命名全靠自觉,三天后自己都看不懂
后来我想,mem0/openmemory 不是号称能解决 AI 记忆问题吗?
试了一下,确实能跨工具共享记忆了。但新的问题来了:
所有信息都往一个地方塞 - 用户偏好、项目配置、部署记录全混在一起,搜索的时候一团糟
项目切换很痛苦 - 我有 5 个项目,每个项目的部署方式都不一样,但 openmemory 不区分项目
没有版本控制 - 部署配置改了,没有 Git 记录,下次想回滚都不知道之前是什么
要手动调用 - 每次都要主动告诉它"记住这个",但谁会在配置部署的时候还想着"我要让 AI 记住这个"?
所以我花了几周时间,在 openmemory 基础上做了一层增强:OpenMemory Plus
核心思路很简单:双层记忆架构 + 生命周期管理
用户级记忆 (openmemory) 项目级记忆 (_omp/memory/) ├── 我喜欢 TypeScript ├── 部署在 Vercel ,项目 ID 是 xxx ├── 我用 pnpm ├── 部署前要跑 build:check ├── 我熟悉 React/Node.js ├── 有个 CDN 缓存的坑要注意 └── 我偏好函数式风格 └── 上周加了 GitHub Actions ↑ ↑ 跨项目共享 跟着 Git 走,worktree 也能读到 项目级记忆存在 _omp/memory/ 目录下,是普通的 Markdown/YAML 文件,会被 Git 追踪。
这意味着:
针对 BMAD/OpenSpec 那种文档爆炸的问题,我加了几个机制:
ROT 自动清理 - 识别冗余(Redundant)、过时(Obsolete)、琐碎(Trivial)的信息,定期提醒清理
状态追踪 - 每条记忆都有生命周期状态,完成的任务自动标记,不会干扰新任务
时间衰减 - 基于 Ebbinghaus 遗忘曲线,长期不用的记忆权重自动降低,搜索时不会优先出现
冲突检测 - 发现矛盾信息时主动提醒,比如"你之前说用 MySQL ,现在又说用 PostgreSQL ,以哪个为准?"
1 sn0wdr1am 8 小时 22 分钟前 用 AI 规范文件去规范。 |
2 yukinotech 8 小时 21 分钟前 场景一:Git worktree 的例子 ``` 花了半小时教会 Claude 这个项目的部署流程: - Vercel 项目 ID 是 prj_xxx - 环境变量要从 .env.production 读 - 部署前要跑 pnpm build:check - 有个坑:要先 invalidate CDN 缓存 ``` 好奇,这个是否把部署流程,1,2,3,4 和坑点都写到`部署流程 skills`文件存到项目里就行了。 场景二:确实是个痛点,这个可能就是要沉淀类似 spec 的原因,需要把 ai 做过的功能用个文档记录一下。方便向前检索过去做过的功能和当时的实现路径,方便 ai 接着改。当然我觉得最重要的是有哪些 spec 是需要保留的,这个需要人来关注一下,把握好进度和项目管理 |
3 metalvest 7 小时 9 分钟前 Ebbinghaus 遗忘曲线纯粹是仿生吧,有什么必要非得模仿这个曲线吗? |
4 alenryuichi OP @sn0wdr1am 会有膨胀问题,需要引入渐进式。 所以要有一个地方管理渐进式的部分 |
5 alenryuichi OP @yukinotech 却是是的,部署的部分是可以放到 skill ,做渐进式加载。 我这个方案也能顺便解决这个问题 |
6 alenryuichi OP @metalvest 没有太多可借鉴的方案,大佬有什么建议么 |
7 alenryuichi OP @yukinotech 其实这个部署流程放到 workflow 里面可能更好,skill 是启动时读入,是被动的。 用 workflow(比如 bmad),可以用 slash command |