最近在做一个基于本地知识库的问答Agent,用的LangChain + Chroma。单轮检索回答还行,但一旦涉及多轮对话,或者用户问的问题需要结合上下文(比如“刚才说的那个方案,换到B场景行不行”),效果就特别差。我试过把历史对话直接塞进query,但检索出来的chunk经常是重复或者不相关的。也试过用ConversationBufferMemory,但感觉和向量库是两套逻辑,没有真正融合。想请教一下大家,Agent的短期记忆(对话)和长期记忆(知识库)在设计上应该怎么分层?有没有比较成熟的实践模式或者论文可以参考?还是说其实应该用GraphRAG那套思路来解决?现在有点迷茫,感觉每个组件单独都懂,但组合起来就很不智能。