GitHub 项目:记忆工程生态导读
边学边练请访问 7 天学会 Memory Engineering:首页记忆分层可视化、/learn 七天课表、/lab 五个本地沙盒、社区与资源矩阵。
不要「收藏式 star」。每接触一个仓库,至少跑通 Quickstart,并写三句话:它解决什么、不解决什么、如何嵌入你的写/读路径。本文不引用星标数(波动快且易误导)。
如何用开源学记忆工程
按能力层选仓库,而不是按热度:
- Agent 记忆运行时(分页、core/archival)
- 记忆中间件(自动抽取偏好、会话记忆 API)
- 编排与检查点(图状态、thread)
- 索引与检索(向量、混合、重排)
- 图存储与多跳
- 研究原型(HippoRAG 等思想)
1. Letta(原 MemGPT 路线)
是什么
把 LLM 上下文当作稀缺「主存」,外部消息与档案当作「磁盘」,由 Agent 通过工具决定换入换出、自我编辑核心记忆。Letta 是该思想的工程化延续。
为什么重要
它直接回答 Day1/Day2 的痛点:窗口有限时如何持续对话而不靠你手工截断。分页、中断、core memory 与 archival memory 的分离,是记忆工程的操作系统隐喻教科书。
怎样发展
MemGPT 论文提出 OS 隐喻与分页调度 → 社区实现与托管演进 → Letta 强调 Agent 运行时与记忆管理一体化。学习时抓住「谁决定换页」:是框架策略还是模型发工具调用。
何时用 / 何时不用
| 适合 | 不适合 |
|---|---|
| 需要长期人格/档案的个人 Agent | 只要简单 FAQ 检索 |
| 想研究 self-managed context | 强合规、写路径必须确定性规则引擎 |
| 教学演示 Working vs LTM | 已有严格 BPM 工作流且禁止模型自改记忆 |
学习任务
- 跑官方快速开始,观察 core 与 archival 的读写工具。
- 故意塞超长历史,记录何时触发外存检索。
- 对比:关闭自我编辑,仅允许规则写入,行为差在哪里。
- 画一张与你自研
pack()的对照表(谁做预算、谁做换页)。
2. Mem0
是什么
面向应用的记忆层:从对话中抽取可持久事实/偏好,提供添加、搜索、更新、删除等 API,常挂在现有 ChatBot / Agent 外。
为什么 / 何时用
当你已有编排(自研或 LangGraph),缺的是「自动沉淀用户记忆」而不是再造运行时。适合产品快速加个性化。
| 适合 | 边界 |
|---|---|
| SaaS 助手要跨会话偏好 | 深度分页调度仍需自管 Working |
| 多项目复用同一记忆后端 | 复杂图谱推理需另接 KG |
| 托管与自托管选项评估 | 抽取质量依赖模型,需评测集 |
学习任务
用同一组对话:「我叫…」「我过敏…」「以后用表格回复」→ 检查写入条数、是否去重、错误事实如何 update/delete。把结果记入你的记忆评测表。
3. Zep
是什么
会话与长期记忆服务方向:强调对话历史管理、摘要、检索,以及面向 Agent 的记忆基础设施(具体模块以官方文档为准)。
为什么 / 何时用
适合「会话 STM + 自动摘要 + 可检索 LTM」一体化,减少自建滑动窗口与巩固任务的样板代码。
学习任务
- 建两条 thread,验证隔离。
- 长对话后查看摘要是否可追溯到原文证据。
- 测延迟:写入后多久可被下一轮检索到(对在线产品关键)。
4. LangGraph Checkpointer
是什么
LangGraph 把 Agent 做成状态图;Checkpointer 把图状态(含消息列表)按 thread_id 持久化,支持恢复、人机协同中断。
为什么重要
它解决的是 STM / 工 作流状态,不是完整 LTM 平台。很多团队误以为「有了 checkpointer 就有记忆工程」——其实你仍需向量/KG/门禁。
| 它解决 | 你仍需自建 |
|---|---|
| 线程级消息与状态恢复 | 跨线程用户画像 |
| 时间旅行调试 | 混合检索与重排 |
| 与节点编排一体 | 多租户命名空间策略 |
学习任务
最小图:chatbot 节点 + MemorySaver / SqliteSaver → 重启进程续聊 → 再外挂一个 search_memory 工具读向量库,体会「状态」与「记忆」分层。
5. LlamaIndex
是什么
索引与检索抽象层:Document → Node → Index → Retriever → Query Engine;亦有记忆、Agent 相关模块。强项是把异构数据变成可查询索引并与 LLM 合成答案。
何时用
文档型知识 + 对话记忆混合时,用同一套 retriever 接口做实验;快速对比分块与重排策略。