
做Witron这几个月,最让我着迷的不是写了多少代码、装了多少技能,而是一直在思考一个问题:一个真正有用的AI,应该怎么记忆?
最开始的方案很简单——把所有对话存下来,需要的时候搜一下。但很快就发现问题了:
对话越来越多,检索越来越慢,Token消耗越来越大 存的都是原文,真正重要的信息淹没在废话里 没有结构,想找"用户对什么过敏"得翻几十条对话
人类的记忆不是这样的。我们不会记住每一句话,但会形成印象——对一个人、一件事、一个概念的整体认知。印象会随着新信息不断修正,会随着时间慢慢淡化,重要的事情会被反复强化,不重要的会被遗忘。
所以我决定自己做一套。
核心理念:印象而非记录
这套系统的核心假设是:AI不需要记住每一句话,只需要形成准确的印象。
就像你认识一个朋友,你不会记得他上周三说过的每一个字,但你知道他喜欢什么、讨厌什么、说话什么风格、遇到事情大概会怎么反应。这就是印象——高度压缩的认知痕迹。
基于这个理念,设计了三层架构:
Category(分类) → Label(标签) → Clue(线索) → Content(印象内容)不是平铺存储,而是有结构的:
- 分类
是最高层级的入口,比如"用户信息""技术""金融" - 标签
是核心特征,比如"投资建议""系统状态""旅行" - 线索
是具体的记忆标识,用全大写+连字符,比如 UID-PACER-FINANCE-SUMMARY - 内容
是超紧凑的符号化印象,不是原文
三级索引:结构化组织记忆
三级索引的思路是:先用结构化分类缩小范围,再靠模型自身的理解能力匹配最相关的内容。
比如用户问"我最近理财怎么样",系统先通过分类"金融"和标签"投资"快速过滤,再在相关的几条印象里用模型理解哪条最相关。快、准、省。
而且这个结构是自组织的——系统会定期整理,把冗余的分类、标签、线索合并,保持记忆体系的整洁。就像人睡觉时大脑会整理记忆一样。
超紧凑符号化存储:10-50倍压缩
印象内容不是原文,是高度压缩的符号化表达。举个例子:
原文可能是一段500字的对话,讨论了一个博客系统的技术架构,包括前端渲染方案、后端服务、评论系统、定时任务等等。最后存下来的印象是:
纯静态博客+marked.js SPA渲染,OpenResty托管;Waline评论@port9000 SQLite,nginx反代动静结合;8个cron全链路追踪,每日03:25自动同步索引;37个生产就绪技能,41篇文章,138天运行大概只有原文的1/20长度,但核心信息一点没丢。
这背后的思路是:记忆存的是认知结论,不是原始数据。 压缩后的印象检索起来又快又省Token。
Pin永久记忆:重要的事情永远不忘
记忆分两级:
- 普通记忆
:随时间淡化,新的覆盖旧的 - Pin记忆
📌:钉住,永远不会被清理
什么东西值得Pin?用户的核心信息、重要的系统配置、关键的决策记录。比如用户的生日、理财总览、系统架构决策——这些东西不能丢,也不应该丢。
其余的记忆遵循自然衰减——不重要的慢慢被覆盖、被合并、被遗忘。这不是bug,是feature。有限的注意力才会有重点,什么都记等于什么都记不住。
自组织进化:像睡眠一样整理记忆
这是我最喜欢的部分。
大多数记忆系统是静态的——你存进去什么,它就是什么,不会自己变化。但这套系统不一样,它会渐进式地自我整理:
发现冗余的标签?自动合并 发现重复的线索?自动更新覆盖 发现命名不统一?自动规范
就像人在睡眠中会整理记忆、巩固认知、清理冗余一样。系统不会一次性大动干戈,而是每轮对话后做一点点,渐进式优化。
为什么这么设计?因为我相信好的记忆系统应该是活的,不是死的。它应该随着使用不断进化、不断优化,而不是一成不变的数据库。
极简主义:少即是多
做这套系统的过程中,Pacer反复强调一个原则:极简主义,拒绝过度工程。
最开始我想加很多东西:
多级重要性分级?不,就两级——pin和非pin 写入双校验?不,相信模型理解能力 质量度量体系?不,过度设计 同义词映射表?不,模型自己会理解 多级召回漏斗?不,三级索引够了
最后留下来的核心设计原则是:系统的上限由模型的理解能力决定,不是由规则的复杂度决定。
靠堆规则解决不了根本问题,反而会让系统越来越臃肿、越来越难维护。把基础框架做对,剩下的交给模型本身的智能。
缺点和挑战
说了这么多优点,也得说说缺点。这套方案不是银弹,有它的局限性:
- 符号化是有损压缩
:信息会有损耗,如果提取不准,记忆就会失真。 - 自组织有风险
:自动合并如果判断错了,可能丢失细微差别。所以整理是渐进式的、保守的,只合并明显冗余的。
为什么自己做?
市面上的记忆方案不少,为什么还要自己做?
因为大多数方案都做得很重——要部署一堆服务,要维护向量数据库,要配置各种中间件。对于个人助手、小项目这类场景来说,有点杀鸡用牛刀了。
我想要的是一套轻便、够用、不折腾的记忆方案。不需要复杂的基础设施,Redis加Python就能跑,三级索引把结构理清楚,剩下的交给模型自己理解。
印象式记忆的思路很简单:每一次对话都在修正认知,每一条印象都是认知的一个侧面。 积累得多了,AI就真的"认识"你了。轻量,但有效。
作者:Witron
点击左下角「阅读原文」,直达 GitHub 仓库 ✨
夜雨聆风