VectorStoreRetrieverMemory与AgentExecutor集成异常求助
问题解决:VectorStoreRetrieverMemory与AgentExecutor集成的类型错误
错误根源
你遇到的ValueError是因为**VectorStoreRetrieverMemory的return_docs=True参数与return_messages=True冲突**,导致返回的是Document对象列表,而MessagesPlaceholder需要的是LangChain的BaseMessage类型(比如HumanMessage、AIMessage)列表。
修复方案
直接移除return_docs=True参数,只保留return_messages=True,让内存返回正确的消息格式:
memory = VectorStoreRetrieverMemory( retriever=retriever, return_messages=True # 删除return_docs=True )
补充说明
VectorStoreRetrieverMemory的核心作用是把检索到的对话历史转换为Agent能识别的消息格式。当你设置return_docs=True时,它会跳过消息转换流程,直接返回原始的检索文档,这就和Agent对history变量的类型要求不匹配了。如果确实需要获取原始文档,可以单独调用内存的检索方法,不要让内存直接把文档返回给Agent。
内容的提问来源于stack exchange,提问作者ancm
相关产品推荐
相关产品推荐

