Posts
read more
Agent 日记系列(四):构建 Agent 的记忆宫殿:持久化存储系统解析
Agent 没有记忆,就是"金鱼脑"——每次对话从头开始,重复犯错、忘记偏好。持久化记忆系统要解决的是:跨会话保留什么、怎么存、怎么取。
记忆分层
第一层:身份记忆(User Profile)
永久不变或极少变的信息:
- 用户姓名、时区、语言偏好
- 项目路径、技术栈、常用工具
- 沟通风格偏好(简洁/详细、中文/英文)
存储方式:纯文本文件,每轮注入系统提示。
第二层:经验记忆(Lessons Learned)
踩过的坑和解决方案:
- “NewAPI Groq 70B 只有 8K 上下文,不适合做压缩”
- “Hugo 0.161.1 需要覆盖 baseof.html 修复 locale 问题”
- “Hermes-lite 的 memory 上限 2200 字,要 replace 而非 add”
存储方式:结构化条目,带时间戳和标签。
第三层:会话上下文(Session State)
当前对话的实时状态:
- 最近 10 轮对话
- 当前任务进度
- 待办事项
存储方式:对话历史 buffer,压缩后丢弃细节。
存储方案对比
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 纯文本文件 | 零依赖、人类可读 | 无查询能力、并发不安全 | 身份记忆、小型博客 |
| SQLite | 轻量、单文件、SQL | 需维护 schema | 中等规模 Agent |
| Turso/libSQL | 分布式、边缘部署 | 需网络、有成本 | 多实例 Agent |
| Redis | 极快、支持 TTL | 内存贵、无持久化 | 会话缓存 |
实际实现:文件 + 索引
对于单 VPS 个人 Agent,最实用的是文件 + 索引方案: