仓库地址
https://github.com/grpcer/ownmem
👍彦祖们走过路过可以点个 Star 吗
背景
起因是手头有个百万行代码的项目,每天从家里和公司的电脑轮换开发
📢 经常要重复跟 AI 说:
- “服了你了,说了多少次,这个 bug 不要再犯了”
- “每次开发完,记得补充单元测试”
- “每次写完 SQL ,帮我检查索引”
🤔 于是我在想,有没有一套记忆系统,可以跨电脑记忆,随着 Git 可以提交,并且还有以下优势呢
1. 记忆跟随 Git 仓库流转
git pull
→ 得到代码
→ 同时得到这个项目积累的工程经验和记忆
2. 不依赖某个 AI ,同时支持
claude codecodexAgvGrokCursor
3. 语义召回不调用模型,不烧 token
在本地通过 Exact、Unicode-aware BM25F、多查询 RRF 等方式检索。
- 不调用额外模型
- 不请求网络
完整编译层还支持 n-gram、fuzzy、graph 和 embedding,你还可以在控制台接入siliconflow或Cloudflare 的 bge-m3 模型做强力语义查询。
4. 完整的 markdown 体系
.ownmem/
├── MEMORY.md ← L1 总目录
├── MEMORY-release.md ← L2 领域目录
├── MEMORY-database.md ← L2 领域目录
├── npm_publish_requires_2fa.md ← L3 一课一文件
├── sql_query_requires_index_review.md
└── connection_pool_timeout.md
结构故意做得很克制:
| 层 | 是什么 | 干什么 |
|---|---|---|
| L1 | 🧭 总目录 | 告诉 Agent:这个仓库有哪些记忆领域 |
| L2 | 📂 领域目录 | 把问题路由到正确的那一批记忆 |
| L3 | 📄 一课一文件 | 保存症状、证据、根因和正确做法 |
5. 每条记忆都有证据和生命周期
每条记忆不仅要写结论,还需要说明:
| 必须写明 | 为什么重要 |
|---|---|
| 什么症状应该触发它 | 下次才能被找回来 |
| 适用于哪些模块 | 避免误伤无关代码 |
| 相关代码路径和符号 | 能对照活代码核对 |
| 证据是什么 | 结论不是拍脑袋 |
| 上次什么时候验证过 | 知道它还新不新 |
| 会不会过期 | 过期的经验比没有更危险 |
| 有没有替代旧记忆 | 防止新旧两套说法并存 |
| 要不要定期复核 | 让记忆自己会代谢 |
6. 记忆也走 CI 和治理
如果让 Agent 不受控制地写记忆,最后一定变成另一座垃圾堆。
所以 OwnMem 给记忆加上了类似代码质量门禁的机制:
| 门禁 | 拦住什么 |
|---|---|
| Schema 校验 | 结构不完整的记忆 |
| 证据检查 | 只有结论、没有依据 |
| 过期检查 | 早该失效却还在误导 |
| 近重复检测 | 同一件事写了三遍 |
supersedes 冲突检查 |
新旧记忆互相打架 |
| 数量和体积配额 | 无限膨胀的第二座 Wiki |
| L2 路由检查 | 有记忆,但找不到入口 |
| archive 归档 | 该退场的经验退场 |
能进仓库的,不只是「看起来像经验」,还得过得了门。
➡️ 总流程
你只需要跟 Agent 说人话:
🗣️ 「记住:这个发布错误来自 npm 2FA ,不是包权限。」
后面这些,它自己走完:
1️⃣ 判断这件事值不值得成为长期记忆
2️⃣ 写成一份结构化 Markdown
3️⃣ 补上用户以后可能用到的查询措辞
4️⃣ 记下代码证据和验证结果
5️⃣ 跑一遍 audit
6️⃣ 通过 Git 提交进仓库
下次再遇到类似发布失败,不必把这段历史重新讲一遍。 先查项目记忆,再动手改。
👋 OwnMem 解决的不是“AI 如何记住一切”
其实市面上已经有很多优秀的用户记忆、向量记忆和时序知识图谱系统。
OwnMem 选择的是一个更窄的方向:
让一个代码仓库保存那些不应该再踩第二次的工程教训。
其他系统努力让 Agent 记住更多。
OwnMem 更关心:
如何让仓库记得更正确😄
它不是跨项目的个人记忆,也不是百万文档规模的向量数据库。
它是一套面向 Coding Agent 的 Git-native 工程记忆系统:
- 跟仓库走的记忆
- 用 Markdown 记录信息
- Git 负责流转
- Schema 和 audit 负责治理
- 本地检索负责召回
- Agent 负责核对代码并执行
感谢各位老铁支持啦~🙏