最近在搭一个客服Agent,用的RAG方案。目前做法是把用户query和检索到的文档一起丢给LLM,但多轮对话一长就出问题:用户说“那第二个方案呢”,系统完全不知道指代什么。我试过把对话历史拼进query再检索,结果召回的全是历史里的噪声,相关性反而变差。也试过单独维护一个记忆模块做重写,但重写后的query跟原文语义差太多,检索结果很飘。想请教各位,实际生产里多轮对话的上下文是怎么跟RAG结合的?是单纯拼历史,还是先做指代消解再检索?有没有更工程化的做法(比如滑动窗口+重排序)?另外,对话历史的embedding要不要单独存?跟知识库的向量混在一起会不会污染索引?