https://github.com/grpcer/ownmem
👍彦祖们走过路过可以点个 Star 吗
起因是手头有个百万行代码的项目,每天从家里和公司的电脑轮换开发
git pull
→ 得到代码
→ 同时得到这个项目积累的工程经验和记忆
claude codecodexAgvGrokCursor在本地通过 Exact、Unicode-aware BM25F、多查询 RRF 等方式检索。
完整编译层还支持 n-gram、fuzzy、graph 和 embedding,你还可以在控制台接入siliconflow或Cloudflare 的 bge-m3 模型做强力语义查询。
.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 | 📄 一课一文件 | 保存症状、证据、根因和正确做法 |
每条记忆不仅要写结论,还需要说明:
| 必须写明 | 为什么重要 |
|---|---|
| 什么症状应该触发它 | 下次才能被找回来 |
| 适用于哪些模块 | 避免误伤无关代码 |
| 相关代码路径和符号 | 能对照活代码核对 |
| 证据是什么 | 结论不是拍脑袋 |
| 上次什么时候验证过 | 知道它还新不新 |
| 会不会过期 | 过期的经验比没有更危险 |
| 有没有替代旧记忆 | 防止新旧两套说法并存 |
| 要不要定期复核 | 让记忆自己会代谢 |
如果让 Agent 不受控制地写记忆,最后一定变成另一座垃圾堆。
所以 OwnMem 给记忆加上了类似代码质量门禁的机制:
| 门禁 | 拦住什么 |
|---|---|
| Schema 校验 | 结构不完整的记忆 |
| 证据检查 | 只有结论、没有依据 |
| 过期检查 | 早该失效却还在误导 |
| 近重复检测 | 同一件事写了三遍 |
supersedes 冲突检查 |
新旧记忆互相打架 |
| 数量和体积配额 | 无限膨胀的第二座 Wiki |
| L2 路由检查 | 有记忆,但找不到入口 |
| archive 归档 | 该退场的经验退场 |
能进仓库的,不只是「看起来像经验」,还得过得了门。
你只需要跟 Agent 说人话:
🗣️ 「记住:这个发布错误来自 npm 2FA ,不是包权限。」
后面这些,它自己走完:
1️⃣ 判断这件事值不值得成为长期记忆
2️⃣ 写成一份结构化 Markdown
3️⃣ 补上用户以后可能用到的查询措辞
4️⃣ 记下代码证据和验证结果
5️⃣ 跑一遍 audit
6️⃣ 通过 Git 提交进仓库
下次再遇到类似发布失败,不必把这段历史重新讲一遍。 先查项目记忆,再动手改。
其实市面上已经有很多优秀的用户记忆、向量记忆和时序知识图谱系统。
OwnMem 选择的是一个更窄的方向:
让一个代码仓库保存那些不应该再踩第二次的工程教训。
其他系统努力让 Agent 记住更多。
OwnMem 更关心:
如何让仓库记得更正确😄
它不是跨项目的个人记忆,也不是百万文档规模的向量数据库。
它是一套面向 Coding Agent 的 Git-native 工程记忆系统:
感谢各位老铁支持啦~🙏
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.