You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让LangChain Agent的输出同时包含检索模块获取的相关文档信息?

如何让LangChain Agent的输出同时包含检索模块获取的相关文档信息?

其实这个需求很好实现,核心就是调整你的extract_QA函数返回值,把检索到的相关文档内容和最终答案一起返回就行,具体可以这么做:

第一步:修改extract_QA函数,返回包含答案和相关文档的结构

你现在的函数只返回了result["answer"],可以改成返回一个字典(或者字符串形式的结构化内容),把检索到的summaries(也就是你提到的最相关文档)也包含进去:

def extract_QA(docsearch: Pinecone, message:str, company: str, language: str = "spanish", info: str = ""):
    result = docsearch(inputs={"message": message, "question": message, "company": company, "language": language})
    related_docs = result.get("summaries", "")
    final_answer = result["answer"]
    # 返回结构化的字典结果,方便后续解析
    return {
        "answer": final_answer,
        "related_documents": related_docs
    }
    # 如果希望直接返回可读的字符串,也可以这么写:
    # return f"问题答案:{final_answer}\n\n参考的相关文档:{related_docs}"

第二步:适配Agent的输出逻辑

因为你的QA工具设置了return_direct=True,Agent会直接把工具的输出作为最终结果返回。如果返回的是字典,你后续可以直接解析这个字典拿到答案和相关文档;如果是拼接好的字符串,用户能直接看到两者的内容。

要是你不想改动工具的返回格式,也可以通过自定义回调或者扩展memory来捕获检索到的文档信息,但这种方式会复杂不少。相比之下,直接修改extract_QA的返回值是最直接高效的方案。

另外要注意,你用的是AgentType.OPENAI_FUNCTIONS,OpenAI的函数调用本身就支持返回结构化数据,所以返回字典完全没问题,不会出现格式兼容的问题。

备注:内容来源于stack exchange,提问作者Carlo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:57:59