
最近半年一边做AI SaaS产品一边逐渐迭代出一个适合SAAS产品的AI Agent框架。只不过这个框架在记忆系统上一直做的不太好。最近也是因为产品的需要专门对这个AI Agent框架做了一些迭代增强了记忆系统。总结一下。固定记忆与动态记忆的分离原来的memory都是存在一起的。AI agent需要迭代memory的时候就直接自动修改一下。但这也带来了一些不可控的因素原本有一些内容是无论如何都不能修改的很有可能会被agent改掉。所以这次迭代把memory分成了两个独立的部分。一个是固定记忆只要用户不主动修改它就不会被修改。另一个是动态记忆完全由Agent控制按Agent的需要去增加、减少或者修改内容。这样一来就约束了Agent的权限不至于一不小心就改了影响全局的固定记忆。如何遗忘比如何记忆更重要如何保持生成内容的一致性和连续性之前一直把重点放在了动态上下文。虽然各种优化但对于生成的内容和次数多了之后还是会出问题。所以动态记忆就成了一个很有必要的事情。通过固定记忆动态记忆动态获取上下文来保障下一次生成的内容的连续性和一致性。而对于动态记忆尤其是在生成的内容对一致性和连续性要求较高时如何遗忘就成了一件比如何记忆更重要的事。就以写小说的agent为例。如果要写一部数百章的篇幅。每生成一章就在动态记忆中增加这章的关键要点这样可以大幅度提升下个章节的连续性。但随着生成的章节越来越多动态记忆的内容也会越来越庞大不仅会让提交给AI的上下文因为过大而无法处理而且也很浪费Token。更重要的是动态记忆中的很多太前序的章节不仅没有必要再作为上下文而且还会污染上下文导致生成的内容质量下降。所以如何“遗忘”掉这些没用的记忆就成了一件值得思考的事情。