开发了一套 AI 记忆系统: OwnMem,服帖的治理了百万行代码的项目,彦祖们可以一键三连吗?

发布于

### 仓库地址

[GitHub 地址](https://https//github.com/grpcer/ownmem)

> 👍彦祖们走过路过可以点个 Star 吗

### 背景

> 起因是手头有个百万行代码的项目,每天从家里和公司的电脑轮换开发。

### 📢 经常要重复跟 AI 说:

- “服了你了,说了多少次,这个 bug 不要再犯了”
- “每次开发完,记得补充单元测试”
- “每次写完 SQL ,帮我检查索引”

#### 🤔 于是我在想,有没有一套记忆系统,可以跨电脑记忆,随着 Git 可以提交,并且还有以下优势呢

### 1. 记忆跟随 Git 仓库流转

```
git pull
→ 得到代码
→ 同时得到这个项目积累的工程经验和记忆
```

---

### 2. 不依赖某个 AI ,同时支持

- `claude code`
- `codex`
- `Agv`
- `Grok`
- `Cursor`

---

### 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 负责核对代码并执行**

感谢各位老铁支持啦~🙏

---

原文链接:[点击查看](https://www.v2ex.com/t/1235040)

评论

暂无评论。

0.055454s