一些记忆架构的学习
记忆的流程符合:用户提问-拦截-检索-(修剪)-拼装-发送
长期记忆
1. 核心信息塞到 middleware 里
2. 细节信息用tool 调用
短期记忆
1. 在 session 内完成的记忆锚定
2. 需要高亮的可以分级为超短期记忆
长期记忆
1. 用 middleware 层调的是指文本拼接,先拿 query 去查然后返回后塞到 prompt 或者 context window 里,其好处是响应很快,坏处是会非常占用 token 和注意力。
2. 用 tool call 的是指在需要查询记忆的时候去查询记忆,好处是能让 context占用更少因此 token 利用率更高,同时只要 tool 的定义够精准就可以避免直接拿用户原话去做向量语义检索带来的匹配问题,因为通过 tool 的中间层能做到降噪提高匹配命中率。坏处是有可能会卡顿,调用 tool 会因为幻觉而失败,多次调用会产生多次 token 费
3. 除此之外还有参数化记忆通过 SFT直接塞到大模型里,亦或者把所有的上下文存在 context 里(2M token)。但是 SFT 更适合静态知识库,在动态记忆比较多的业务场景下,只能走 context 或 tool 路线
短期记忆:如果用户的提问并不能在短期记忆力被解决,就需要调用长期记忆。middleware 和 context 的核心区别是,context 是在 session 里而 middleware 是工程层面去解决的。同时,如果在用户的会话里存在需要高亮近期的 context,可以采取超短期记忆,至于是采取强制分界还是滑动分界这可以视情况而定。