OpenCode之长期记忆体-化简为繁:我用本地 MD 文件替代了 OpenMemory 记忆体
如果你对之前介绍的 OpenMemory 方案感兴趣,建议先看看那篇。本篇讲的是另一条路——用本地 Markdown 文件做记忆体。
这篇的目标很简单:用你每天都在写的 Markdown 文件,给 OpenCode 装上长期记忆。
先说个真事。
写这篇之前,我一直在用 OpenMemory——一个需要 Docker + Ollama + MCP 协议 + 插件才能跑起来的记忆体系统。装完那一刻确实很爽,AI 能记住我在不同会话里说过的信息。
但我很快就发现几个问题:
- 每次启动要三步:先开 Ollama,再 docker compose up,再打开 OpenCode
- 记忆查不到的时候排查麻烦:是插件没连上?是 MCP 配置不对?还是阈值设太高了?
- 改记忆不方便:得用
记住:XXX的格式让 AI 存进去,想批量修改或删除很费劲
最关键的是——我本来就在 Obsidian 里写 Markdown 笔记,这些笔记本身就是我的记忆。为什么非要转一道手存到 OpenMemory 里?
于是我把记忆体方案换成了最朴素的方式:本地 MD 文件 + AGENTS.md 引用。
效果?不仅省掉了 Docker 和 Ollama 的开销,记忆管理还变得更直观了——打开文件夹直接编辑,想改哪改哪。
一、原理:MD 文件为什么能当记忆体
OpenCode 在启动时会读取 AGENTS.md 里的指令。利用这个机制,你可以让 AI 知道:
“我的记忆都放在
记忆/目录下,开始对话时先去读一下。”
这不需要任何插件、不需要搭服务、不需要装模型。一个文件夹 + 几行配置就搞定了。
┌─────────────────┐
│ OpenCode │ ← 启动时读取 AGENTS.md
│ (AI 编程助手) │
└────────┬────────┘
│ 根据 AGENTS.md 指令
┌────────▼────────┐
│ 记忆/ │ ← 本地 MD 文件,直接读取
│ ├── 项目状态.md │ 不用 Docker,不用 Ollama
│ ├── TODO.md │ 当前待办和重点任务
│ ├── 客户管理.md │ 客户信息和沟通记录
│ └── 当前重点.md │ 当前 TODO 和近期动态
└─────────────────┘
相比 OpenMemory 的四层架构(OpenCode → 插件 → OpenMemory → Ollama),这个方案就一层:OpenCode 直接读 Markdown 文件。
二、配置方法
2.1 在 AGENTS.md 里告诉 AI 你的记忆在哪
打开项目根目录的 AGENTS.md(没有就新建一个),加上这些指令:
## 记忆系统
AI 每次对话开始前:
1. 先读取 `记忆/` 目录下的文件,了解当前状态
2. 根据对话内容,在 `记忆/` 中查找相关信息
AI 每次对话结束时(如果状态变化):
1. 更新 `记忆/当前重点.md` 中的 TODO
2. 更新 `记忆/项目状态.md` 中的变更
3. 更新其他相关记忆文件
2.2 创建记忆目录结构
在项目根目录创建 记忆/ 文件夹,按需放几个 Markdown 文件:
记忆/
├── 当前重点.md ← 当前 TODO 和近期动态(AI 每次更新)
├── 项目状态.md ← 项目进展和阻塞项
├── 客户管理.md ← 客户信息和沟通记录
└── 决策记录.md ← 重要决策及理由
每个文件用 YAML frontmatter 标注创建和修改时间:
---
tags:
- 记忆
- 项目
created: 2025-10-15
modified: 2025-12-01
---
# 项目状态
## 商城系统
- 状态:已上线
- 版本:v2.3
2.3 写入需要用到的内容
写清楚 AI 每次对话应该怎么做。比如:
**每次对话开始时**:
1. 读取 `记忆/当前重点.md` 了解当前最要紧的事
2. 根据对话内容按需查阅其他文件
**写入规则**:
- 获取到新客户信息 → 写入 `客户管理/客户管理.md`
- 项目状态变更 → 写入 `记忆/项目状态.md`
- 重大决策 → 写入 `记忆/决策记录.md`
- 当前 TODO 变更 → 写入 `记忆/当前重点.md`
三、举个例子
假设你在做一个电商项目,记忆文件大概长这样:
记忆/当前重点.md
# 当前重点
## 🎯 目标
Q4 前上线会员系统
## 📋 当前待办
| 优先级 | 事项 | 状态 |
|:-----:|:----|:----:|
| 🔴 高 | 会员等级数据库设计 | 🚧 进行中 |
| 🟡 中 | 积分规则接口对接 | 📝 待开始 |
| 🟢 低 | 文档补充 | ⏳ 待定 |
记忆/项目状态.md
# 项目状态
| 模块 | 状态 | 备注 |
|:----|:----:|:----|
| 订单系统 | ✅ 已上线 | 稳定运行 |
| 支付模块 | 🚧 开发中 | 接入微信支付 |
| 旧版后台 | ❄️ 冻结 | 等迁移排期 |
四、对比两种方案
| 维度 | OpenMemory | 本地 MD 文件 |
|---|---|---|
| 依赖 | Docker + Ollama + 插件 | 无 |
| 启动步骤 | 3 步 | 0 步(直接开 OpenCode) |
| 记忆查看 | 浏览器界面或 API | 直接打开文件夹 |
| 批量编辑 | 不支持 | 直接搜替换 |
| 版本管理 | 不支持 | Git 管理,可回溯 |
| 搜索 | 向量语义搜索 | grep / Obsidian 搜索 |
| 跨项目记忆 | 支持 | 需要统一 AGENTS.md 规范 |
| 学习成本 | 中高 | 零 |
如果你需要跨项目的语义搜索,OpenMemory 是更好的选择,可以看OpenMemory那篇的详细配置教程。
五、几个实用技巧
5.1 用 Git 管理记忆变更
记忆文件加进 Git 仓库,每次 AI 更新完记忆,你能看到它改了啥:
git diff 记忆/当前重点.md
比 OpenMemory 的黑盒存储透明得多。
5.2 用 Obsidian 双链关联
在记忆文件里用 [[wikilinks]] 关联到项目文档:
参见 [[docs/数据库设计规范.md]]
AI 读到 [[...]] 格式时,会去读对应文件。
5.3 定期整理归档
记忆文件会越来越厚。建议按季度归档。
记忆/
├── 当前重点.md ← 当前季度在用
├── 存档/
│ ├── 项目状态-2026Q1.md
│ └── 决策记录-2026Q1.md
已经过时的决策、已结项的项目,移到存档文件夹,不让 AI 读到过时信息。
5.4 结构尽量扁平,不要嵌套太深
有人把记忆文件放在 记忆/项目/2026/商城/会员模块/ 这种深度嵌套的路径里。AI 读目录时层级太多容易迷路。
建议保持两层: 记忆/ 下直接放文件,最多分一个 存档/ 子目录。
最后说两句
从 OpenMemory 换到本地 MD 文件,最大的感受是:
你不需要给每个问题配一个工具。有时候最笨的办法,反而是最好维护的办法。
Markdown 文件 + git + grep 这套组合,已经存了人类过去几十年的知识。给 AI 的记忆也是知识,没必要搞特殊化。
下次你觉得某个功能"是不是得装个新工具",先问自己一句:“用 Markdown 能不能干?”
答案往往是能的。
另外,如果你确实想要完整的语义搜索和跨项目记忆能力,别纠结——去看OpenMemory那篇,方案跑通之后也很有价值。选适合你的就行。
如果这篇文章对你有帮助:
- 点个在看,让更多人知道可以这样简化 AI 记忆
- 收藏起来,配置的时候直接照着抄
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)