maolon
20 天前
长期记忆一般分为几种做法
1. 个人 profile ,这种提取信息结构化存 json ,一个用户有且只有一个,读的时候固定读取,用 rdb 就行了
2. 知识库/摘要信息,这种就是你现在用 es 在做的事,但是更常见的做法是存 vector db(然后走 rag 那一套),或者走 graph db 那一套(知识提取为三元组,具体看是哪种类型的知识),这两种市面上都有很多开源库的实现
3. 行为记忆/日程,也就是最近有什么 events/日程之类的,一般用于 recall 用户最近行为(而且需要准确 recall ),很多人会把这个功能合并到知识库里(但是这种一般是 time sensitive ,所以直接合并知识库其实不是特别好管理)
然后在此之上,就是记忆的读取/业务层,比如语义检索,关键字检索,retreive ,trim, summary function 之类的东西,这个看你们业务怎么做了,都是自由发挥
记忆读取出来都是拼接回当前的 context 内(你可以简单理解为 prompt ,但是我更愿意叫他 context ),然后调用模型 api