"知道该遗忘什么是更难的。"
大多数Agent记忆系统只做一件事:摄入。加更多文档、建更多embedding、抽取更多实体——图只涨不跌。
但从不遗忘的记忆不是真正有用的记忆。过时节点和未使用的连接堆积,检索噪声越来越大,Agent花费算力遍历几个月都没意义的路径。
真正的记忆需要双向运动:强化被使用的,遗忘不被使用的。
核心问题:静态图无法区分路径优先级
以客服Agent为例:产品文档和退款政策的边被持续访问,HR相关的边几乎不动。静态图对两者一视同仁,但流量模式已经告诉你哪些路径值得优先。
自优化记忆的四个信号
1. 追踪哪些路径被检索 记录每次检索实际走过的边,这是真实的使用数据。
2. 强化带来正确答案的边 一次成功的检索,背后是某条特定的边起了作用。把这条边的权重提高。
3. 让未使用的节点自然衰减 长期没有被检索到的节点,边权重逐渐降低,最终淡出检索范围。
4. 从重复使用模式推断新连接 当某两条边反复被一起访问,系统自动推断它们之间存在隐性关联。
Cognee的实现:RL启发优化
Cognee的memify()函数对图运行一轮类RL优化pass,基于真实流量调优边权重,而非假设每条连接同等重要。
随时间推移:
- Agent实际需要的路径变得更快、更可靠
- 陈旧分支淡出检索范围
- 记忆图对特定用例形成自己的"重点感知"
核心转变
从"存储知识的仓库"→"从使用模式中学习的记忆"
默认技术栈:embedded(SQLite + LanceDB + Kuzu),可切换到Postgres、Qdrant或Neo4j上线生产环境。
pip install即可体验,GitHub:topoteretes/cognee。