1. 项目概述:当大模型学会"记笔记"
"planning-with-files"这个开源项目解决了一个看似简单却影响深远的问题——如何让大语言模型像人类一样拥有持续的记忆能力。想象一下,如果每次对话都像初次见面,你需要反复向ChatGPT解释你的需求背景,这种体验有多糟糕?这正是当前大模型面临的"金鱼记忆"困境。
传统的大模型交互就像沙滩上的字迹,潮水(新对话)一来就消失无踪。而该项目通过文件系统这个最朴素的存储介质,构建了一套记忆持久化方案。其核心创新点在于:
- 将对话历史、知识沉淀、操作记录等结构化存储为本地文件
- 通过动态文件索引实现记忆的快速检索与上下文重建
- 建立记忆更新机制避免信息过时
实测在持续多轮对话场景中,采用该方案的模型表现提升显著。例如在技术文档协作场景,模型能准确回忆三天前讨论过的API设计细节;在个人知识管理场景,可以连贯地基于数月前的笔记内容进行延伸创作。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构解析
2.1 记忆存储设计
项目采用分层存储架构,将记忆分为三个层级:
- 工作记忆层:当前会话的临时缓存(内存存储)
- 短期记忆层:近期的对话记录(SQLite数据库)
- 长期记忆层:知识库与重要结论(Markdown文件集)
这种设计借鉴了人类记忆系统的特点:
- 工作记忆相当于大脑的"内存",容量有限但响应极快
- 短期记忆采用数据库实现快速检索和过期清理
- 长期记忆用纯文本文件保证最大兼容性和可读性
关键技巧:Markdown文件命名采用
YYYYMMDD-subject.md格式,既方便时间排序又保留语义信息
2.2 记忆检索机制
项目开发了一套基于TF-IDF改进的文件索引算法,其工作流程如下:
- 对新生成的内容实时建立倒排索引
- 根据当前对话内容提取关键词向量
- 计算关键词与记忆文件的余弦相似度
- 返回相似度高于阈值的前N个文件
这种方案在树莓派4B上测试,能在0.3秒内完成10万份文档的检索。相比传统向量数据库,其优势在于:
- 零额外依赖,纯Python实现
- 索引文件可跨设备迁移
- 支持模糊匹配和同义词扩展
2.3 记忆更新策略
为避免记忆污染,项目实现了以下保护机制:
- 版本控制集成:自动将文件变更提交到Git
