当前位置:

首页 > 编程开发 > 如何在 LangChain ReAct Agent 中集成向量嵌入检索能力

如何在 LangChain ReAct Agent 中集成向量嵌入检索能力

如何在 LangChain ReAct Agent 中集成向量嵌入检索能力 本文详解如何将 pinecone 等向量数据库的检索能力作为工具注入 langchain 结构化聊天 agent,使 react 智能体既能自主规划调用工具,又能实时获取外部知识库中的语义相关上下文。 想让你的LangCha

如何在 LangChain ReAct Agent 中集成向量嵌入检索能力

本文详解如何将 pinecone 等向量数据库的检索能力作为工具注入 langchain 结构化聊天 agent,使 react 智能体既能自主规划调用工具,又能实时获取外部知识库中的语义相关上下文。

如何在 LangChain ReAct Agent 中集成向量嵌入检索能力

想让你的LangChain智能体变得更“博学”吗?一个常见的挑战是:如何让一个能自主规划、调用工具的ReAct Agent,同时具备实时查询外部知识库的能力。好消息是,这并不需要复杂的架构改造,核心思路其实相当直接。

关键在于理解LangChain的设计哲学。像create_structured_chat_agent这类ReAct Agent,其本身并不直接接收检索器或向量索引。但它的强大之处在于,支持接入任何符合LangChain Tool协议的工具。这意味着,你只需要把向量检索器“包装”成一个标准工具,就能让它无缝融入Agent的决策与执行流程。这样一来,智能体就能在推理过程中,自主决定何时去知识库“查资料”了。

整个实现路径非常清晰:利用create_retriever_tool函数,将vector_store.as_retriever()转换成一个具备名称、描述和可调用接口的Tool对象,然后把它丢进Agent的工具列表里。剩下的事情,Agent会自己搞定。

下面,我们就来拆解具体的实现步骤。

✅ 步骤 1:准备 LLM 与向量检索器

首先,准备好你的大语言模型和已经构建好的向量检索器。这里以OpenAI和Pinecone为例。

from langchain_openai import ChatOpenAI
from langchain_community.vectorstores import Pinecone

llm = ChatOpenAI(temperature=0.1, model_name="gpt-4")
# 假设 vector_store 已连接 Pinecone 索引
retriever = vector_store.as_retriever(
    search_type="similarity",
    search_kwargs={"k": 3}  # 检索 top-3 相关文档
)

✅ 步骤 2:将检索器封装为 Agent 工具

接下来是最关键的一步:把检索器“变身”为Agent能识别的工具。这里要用到create_retriever_tool

from langchain.tools.retriever import create_retriever_tool

retriever_tool = create_retriever_tool(
    retriever=retriever,
    name="knowledge_base_search",
    description=(
        "用于查询公司内部知识库的语义检索工具。"
        "当用户问题涉及产品文档、API 说明、历史案例或领域专有概念时,应使用此工具。"
        "输入应为简洁、明确的自然语言查询词(无需添加前缀如'请检索...')。"
    )
)

⚠️ 这里有几点必须注意:

  • 工具名称(name)必须是一个合法的标识符(只包含字母、数字、下划线),并且不能和其他工具重名。
  • 工具描述(description)至关重要,它直接决定了Agent能否正确理解何时该调用这个工具。务必清晰地说明适用场景和输入格式。
  • 如果需要从多个来源检索(比如同时查文档库和数据库),完全可以创建多个不同的retriever_tool,然后一起加入到工具列表中。

✅ 步骤 3:构建并运行结构化聊天 Agent

工具封装好后,构建Agent就水到渠成了。从Hub拉取预设的提示模板,传入工具列表,创建执行器,然后就可以提问了。

from langchain import hub
from langchain.agents import create_structured_chat_agent, AgentExecutor

prompt = hub.pull("hwchase17/structured-chat-agent")
tools = [retriever_tool]  # ✅ 关键:此处传入封装好的检索工具
agent = create_structured_chat_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

result = agent_executor.invoke({
    "input": "LangChain v0.1 中 DocumentLoader 的异步加载方式有哪些?",
    "chat_history": chat_history
})
print(result["output"])

运行后,你将看到Agent自动执行以下完美协作:
1. 分析问题语义 → 判断当前问题需要查阅知识库。
2. 调用检索工具 → 自动选择并调用knowledge_base_search工具,并将原始问题作为查询词传入。
3. 接收检索结果 → 获取返回的相关Document列表(包含内容和元数据)。
4. 整合信息并生成回答 → 将检索到的文档内容作为上下文,辅助LLM给出最终准确、有据的回答。

✅ 补充建议

为了让这个方案更强大,这里有几个进阶优化思路:

  • 提升检索质量:可以在检索器(retriever)中启用重排序(如CohereRerank)或混合搜索(结合关键词和向量),以获取更精准的结果。
  • 处理长上下文:如果返回的文档片段较长,建议在工具描述中明确提示Agent“返回结果已按相关性排序,请优先参考前两条”,引导其高效利用信息。
  • 优化查询本身:可以结合RunnablePassthrough或自定义Tool,在检索前对用户查询进行预处理,比如重写或同义词扩展,这能有效提升召回率。

通过这套方案,你不再需要在功能单一的问答链(ConversationalRetrievalChain)和“手无寸铁”的ReAct Agent之间艰难抉择。现在,你的Agent成为了一个既懂检索、又会推理、还能行动的统一智能接口,能力边界得到了实质性的拓展。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
C++动态数组初始化怎么写?常用语句与代码示例
C++动态数组初始化怎么写?常用语句与代码示例

深入解析C++中动态数组的初始化机制,涵盖new操作符的不同用法、基本类型与类对象的初始化差异,以及为何在现代C++开发中应优先使用std::vector。

好衣库售后怎么样?把保障体系拆开看
好衣库售后怎么样?把保障体系拆开看

好衣库售后全程由平台统一受理,绝不甩给店主,店主零售后负担。物流合作顺丰、京东、菜鸟三大优质快递,退货运费险由人保、众安保承保。消费者全面享直购标准,退换货由平台全额兜底,买卖双方均安心省心无忧。

全电作业新标杆!2026款长安猎手K50上市,14.19万起重塑皮卡体验
全电作业新标杆!2026款长安猎手K50上市,14.19万起重塑皮卡体验

2026款长安猎手K50增程皮卡上市,售价14.19万至17.89万元。搭载2.0T超级大增程系统,双电机峰值功率240kW,百公里加速5.9秒。配备宁德时代2C电池,纯电续航192公里,总电力储备239kWh,支持30kW+3.3kW双功率供电,实现全场景用电覆盖。

2026年车市新势力崛起:新车型成销量担当,零跑A10单月破2万领跑
2026年车市新势力崛起:新车型成销量担当,零跑A10单月破2万领跑

2026年5月,国内乘用车出口78.4万辆,同比增长75.1%,占厂商总销量35%。新车型成为增长核心引擎,零跑A10以2.2万辆登顶新车型冠军。消费者需求加速从功能满足转向体验升级,汽车产业进入高速迭代周期,推动行业洗牌。

十七载深耕智能领域,长安“天枢领航”亮相车展引领安全出行新体验
十七载深耕智能领域,长安“天枢领航”亮相车展引领安全出行新体验

长安汽车在重庆车展发布“天枢领航”辅助驾驶系统,从安全防护、减轻压力到智能交互三个维度升级出行体验。该系统基于十七年技术深耕,依托天枢智能实验中心积累超40万虚拟场景,实测500万公里覆盖185类典型场景,形成技术-场景-用户闭环优化机制。

《2025年度北京历史文化名城保护大事记》发布
《2025年度北京历史文化名城保护大事记》发布

2025年度北京历史文化名城保护大事记发布,收录94项代表性事件。关键进展包括《北京中轴线世界文化遗产保护条例》施行、先农坛校址腾退实现空间贯通、长辛店老镇启动区开街、路县故城遗址公园试运行等,标志保护工作从被动抢救转向主动规划。

DBeaver 25.3.3 发布
DBeaver 25.3.3 发布

DBeaver25.3.3发布,优化SQL编辑器响应速度与资源占用,AI辅助自动禁用不兼容模型的temperature参数。数据编辑器默认对SELECT查询自动统计行数,修复数据迁移对话框尺寸异常。重构自动提交逻辑,升级UI布局,修正事务状态显示及macOS欢迎画面。数据库适配增强:ClickHouse修复空格解析,Sybase修复双击表打开,DuckDB新

REDMI 17与Note 17系列通过认证 Note 17系列或7、8月发布
REDMI 17与Note 17系列通过认证 Note 17系列或7、8月发布

红米十七与Note十七系列已经通过多项国际认证。红米十七搭载骁龙六sGen二四G版,含日本专属版本和POCO联名版C九五Pro。Note十七系列由三款机型组成,均基于骁龙平台,预计二零二六年七至八月率先在中国上市。

美股科技板块剧烈震荡:心片股集体承压 ARM跌超6%
美股科技板块剧烈震荡:心片股集体承压 ARM跌超6%

当地时间6月9日,美股三大指数走势分化,纳指与标普500双双收跌。科技板块调整明显,半导体ETF盘中最大跌幅超7%,费城半导体指数一度大跌逾8.6%。ARM跌超6%,Coherent跌逾11%,部分AI相关个股也显著回调。

macOS Golden Gate调整菜单设计 移除菜单项图标
macOS Golden Gate调整菜单设计 移除菜单项图标

macOSGoldenGate更新后移除了菜单项图标,回归简洁纯文字布局。此前Tahoe版本引入图标但辨识度低,反而拖慢浏览效率。此次调整遵循简洁原则,显著提升可读性与操作效率,是对用户反馈的理性精简。这一改动减少视觉干扰,菜单栏更清晰,用户可快速定位功能。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。