一份关于 agent 记忆的拆解,标题说记忆设计能把 token 成本砍九成。开头那个场景很真实:你的 agent 每天早上重读同样的 12 个文件,得出同样的结论,再收你一次钱——模型两年里聪明了十倍,会话一结束照样什么都不记得。
它把记忆分成五层,我按原意整理如下:
工作记忆,就是现在的上下文窗口:窗口满了,旧内容掉出去,多数 agent 一辈子只活在这一层。情景记忆,是带时间戳的完整交互日志:周二凌晨三点那次部署为什么挂,解释一次就够,日志替你记住。
语义记忆,是知识图谱里的事实与关系:比如"这个用户偏好 TypeScript",要能跨会话存活。程序记忆,是做法的沉淀:三种试法里管用的那种固化成可复用的 skill,下一次运行从这里开始。
第五层是遗忘——刻意删除。什么都记的 agent 会积累矛盾:你换了城市,它还在推荐旧餐厅。
给出的数字是:Mem0 每次查询 1,800 tokens,而不用它时是 26,000——约九成三的削减,延迟降 91%。这里要按清楚口径:这是单次查询的对比(每次只带相关的那部分,而不是把整段历史再读一遍),不是说整轮任务的账单直接少九成;"砍九成"成立的前提,是你的 agent 确实在重复喂同样的背景。这个前提在多数团队里都成立——成本的大头从来是重复读入,不是输出。
五层对应的落地件也很直白:工作记忆是窗口本身,情景记忆是日志库,语义记忆是带关系的存储或知识图谱,程序记忆是你的 skills 目录,遗忘是一条定期跑的清理任务。多数团队缺的不是新模型,而是把这五样接起来的那层薄工程——它不要大算力,要的是约定:什么写进日志、什么进图谱、什么下次直接复用、什么到期就删。没有约定,五层就是五个孤岛,agent 照样每天早上把同样的文件再读一遍。
五层里最容易被忽略的其实是第五层。多数实现只加存储、不加删除,结果记忆越长矛盾越多、上下文越贵、检索越不稳。判断一个记忆方案好不好,先问它怎么删、什么时候删,而不是能记多少——一个不会遗忘的 agent,最后会被自己的历史压垮。
两个数字的出处要留意:1,800 与 26,000 是 Mem0 的对比口径,任务集和配置没有公开,横向比较请拿自己的查询模式跑一遍。这份拆解没附完整文档链接,可核的就是上面五层与两个数字。












