最近在搭一个个人知识库Agent,用LangChain+Chroma存对话历史,打算让Agent有“记性”。我是按时间窗口切块存的,每条记录带时间戳和session_id,查询时用similarity_search加上filter过滤。但实际用下来发现两个问题:一是隔几天问同样的问题,它经常召回很旧且不相关的片段,反而把最近的对话漏了;二是两个不同项目的讨论内容会互相干扰,感觉向量上太像了。我试过调top_k和score_threshold,但要么召回太少要么跑偏。是不是我元数据设计有问题?还是说单纯用向量相似度做记忆召回本来就不够,需要配合重排或者时间衰减?求有经验的大佬指点下方向,谢谢。