05 从记账本到档案卡:Agent 记忆的存与管

大家好,我是邵奈一,一个爱折腾的实战派技术博主。

文章对你有帮助是我的荣幸,欢迎评论区交流。


0x00 教程内容

上篇我把"记忆长什么样"立了一把尺子:基础回忆 → 多会话检索 → 主动服务,三层标尺。尺子有了,接下来要动手存了------可记忆不是往仓库里一倒就完事。

存,有"存得对"的问题:同一条信息,存成一行流水账,还是存成带背景的档案卡,效果天差地别。管,有"管得住"的问题:记忆越攒越多会爆炸、越攒越敏感会泄密。

这一篇把"存"和"管"拆开讲:先讲四种存法(从记账本一路演进到档案卡),再讲三件管理活(用框架管、压掉冗余、挡住泄密)。


0x01 存之前,先分清三层

动手存之前,先搞清楚记忆该往哪放。按"活多久、给谁看"分三层:

轨迹是单次会话的流水账,用户长期记忆是跨会话提炼出的档案,业务状态是任务走到哪一格的进度牌。这篇要讲的"用户记忆",主要指中间这一层------用户长期记忆。


0x02 四种存法:从记账本到档案卡

同一条信息,可以存成不同"粒度"。从简到繁有四种格式(见下图):

细节对比如下:

核心洞察一句话:同一条信息,在不同场景下可能是完全不同的意思,脱离情境就理解错。

所以工程上的取舍很实在:关键且少量 的数据,用 Advanced JSON Cards 把检索性拉满;大量且非关键的对话事实,用 Simple Notes 控成本;多数生产系统两种混着来。

再补一个"存什么"的维度。认知科学把记忆分三类,正好能对上 Agent 的场景:

到这里,"放哪里(层次)、怎么存(格式)、存什么(类型)"三套体系就齐了,它们互不冲突、可以自由组合------一条"偏好靠窗"的语义记忆,用 Simple Notes 存进用户长期记忆,完全成立。


0x03 进阶:把记忆当代码写

前面四种格式,本质都是文本。文本擅长召回单条事实,却有个短板:聚合、冲突检测、约束执行这些"算出来的"活,只能丢给 LLM 去心算。

有一种更稳的存法叫 User as Code :把用户状态做成带类型的数据对象 ,把规则写成普通函数。表示和推理用同一种可验证的介质,该算的交代码算,不靠模型心算。

它借鉴了数据库那句老话------"预写日志 + 检查点":会话结束先把事实追加 到只增不改的日志里(保留原始证据),再定期从完整日志重建带类型的状态(拿到可查询、可执行的派生态)。

这类确定性函数干的就是这些活,比如聚合跨年旅行次数:

python 复制代码
count(trip for trip in state.trips
      if trip.is_international and year(trip.departure_date) == 2025)  # => 2

同样的思路还能干更多:交叉比对当前用药与过敏史、发现同药类冲突;给国际航班检查护照有效期不足 180 天就预警。这些交给代码,比让模型"读一遍再心算"可靠得多。

一句话收束:文本记忆擅长"召回",代码记忆擅长"算准"------真正复杂的个性化,往往两者都要。


0x04 存完要管:框架、压缩与脱敏

存法选好了,接下来是三件"管"的活。

用框架管:两个开源项目的取舍。 有一个值得借鉴的演进来自 Mem0------一个做"个性化 AI 记忆层"的开源项目。它最有意思的一点是:消歧这件事,从"写入时"挪到了"检索时"

这个转向很启发人:与其在写的时候急着"消除冲突"(还容易删错),不如把不同说法的原始事实都留着、带上时间,等查的时候再按时间判谁最新。

另一个项目 Memobase 把重心偏到另一边:它自称"为用户记、不为 Agent 记",聚焦"用户画像"这一具体形态------把用户拆成一堆可配置的槽位(按"主题---子主题"两级组织,如 basic_info→姓名、interest→兴趣偏好),再配一条"事件记忆"时间线,回答"我们上次聊预算是什么时候"。为省成本,它给每个用户配一个缓冲,攒够一批再批量提取,摊薄 LLM 调用。

压缩整理,防止记忆爆炸。 简单累积会越存越多、越存越糊。三个动作:重要性评分筛选(按访问频率、时间衰减、情感强度、信息独特性给每条打分,低于阈值的压缩或删除)、聚类摘要(相似记忆归组、每组出一条代表,原始细节归档到二级存储)、抽象泛化(从具体情景里提规律,升成语义或程序记忆)。

日志脱敏,防止泄密。 记忆越全越敏感。一个可行的做法是用本地小模型先做 PII 检测与脱敏------例如通义千问 Qwen3 的 0.6B 版本,消费级设备的 CPU 就能跑,能识别身份证号、银行卡号这类结构化信息,也能识别"我的密码是 abc123"这种自然语言里的敏感表达。坚持本地不联网的模型,本身就是为了"连脱敏这一步都不把原始日志送上云端"。


0xFF 总结

  1. 存前先分层:轨迹 / 用户长期记忆 / 业务状态,讲的"用户记忆"主要指中间层。
  2. 四种存法从简到繁:Simple Notes → Enhanced Notes → JSON Cards → Advanced JSON Cards,核心是"同一条信息在不同场景含义不同",关键少量用高级格式、海量非关键用简单格式。
  3. User as Code 把记忆当代码写:带类型状态 + 确定性函数,算准不靠心算。
  4. 存完三件管的事:用框架管(Mem0 把消歧从写入挪到检索、Memobase 聚焦用户画像)、压缩防爆炸、脱敏防泄密。

记住一句:会存只是第一步,会管才算记得住。

邵奈一 三百篇原创沉淀,十万+读者同行。感谢你的阅读,咱们下篇接着聊。


相关推荐
跨境联盟1 小时前
概念解读|家庭健康官是什么?赋能普通家庭的基层健康服务体系落地价值
大数据·人工智能·产品运营·健康管理·精准营养
Mr数据杨1 小时前
二手车价格预测实战案例 从 Kaggle 回归赛题到可落地估价建模
人工智能·数据分析·kaggle竞赛
richard_first1 小时前
Transformer与大语言模型:第18章 向量数据库
数据库·人工智能·自然语言处理·transformer·embedding
Cho1yon1 小时前
【AI Agent 第十五期: AI Agent 从 0 到 1 系统学习大纲】
javascript·人工智能·学习
空堂与归1 小时前
ChatGPT的视觉模型:ChatGPT Images 2.5:快与准拆成两个模型
人工智能·gpt·ai·chatgpt
XLYcmy1 小时前
ReasoningBank: Scaling Agent Self-Evolving with Reasoning Memory论文阅读
论文阅读·google·llm·agent·记忆·harness·自进化
Behaviour1 小时前
DeepSeek V4.1 Flash 发布开源,Harness v0.1.5同日适配
人工智能·语言模型·开源·aigc·ai编程
降临-max1 小时前
从零开始快速开发一个 AI 辅助测试设计智能体(附完整源码)
软件测试·人工智能·大模型·agent·ai测试智能体
武子康1 小时前
SGLang 和 vLLM,拿自己的请求测一轮再选
人工智能·llm·agent