当前位置: 首页 > news >正文

[智能体-255]:Retriever:RAG 核心底座、实现各类 RAG 的统一标准组件

一、定位

Retriever是 LangChain 顶层抽象接口(BaseRetriever),统一所有数据源的查询规范,不管是 Chroma/FAISS 本地向量库、Milvus 远端向量库、ES、文档目录、MCP 远程知识库,对外都统一.invoke(query:str) → List[Document]

所有 RAG 本质:Query → Retriever → 召回文档 → 拼上下文 →LLM

也就是发生在信息提交给大模型之前!!!

二、两种 RAG 用法(关键区分:固定链 / Agent 按需检索)

1. 固定 LCEL-RAG(Retriever作为链路节点,有程序员决定什么时候查,非 Tool

全量请求强制检索,不能跳过检索:

python

运行

rag_chain = ( {"question": RunnablePassthrough(), "context": retriever | format_docs} | prompt | llm )
  • 特点:L3 级 Copilot,流程写死、简单稳定、企业标准知识库。

2. Agent-RAG(Retriever 包装成 Tool,LLM 自主决定查不查

create_retriever_tool(retriever,name,desc)→ 转为标准BaseTool塞进agent 工具列表

python

运行

from langchain_core.tools.retriever import create_retriever_tool kb_tool = create_retriever_tool(retriever,"企业知识库","查内部制度") agent = create_tool_calling_agent(llm,[kb_tool],prompt)
  • 特点:L4 级 Agent,常识问题直接回答、私有资料才触发检索,节约向量库算力。也就是说,并不是固定的节点查询向量库,而是根据大模型的判断后再决定是否需要查询

三、Retriever 常见实现分类

  1. 向量检索 Retriever(最常用)Chroma、FAISS、Milvus、PGVector 等向量库:db.as_retriever(k=3),向量相似度召回。
  2. 关键词检索 Retriever:ElasticsearchRetriever、BM25Retriever,关键词匹配。
  3. 混合检索 Retriever:EnsembleRetriever:向量 + BM25 多路召回合并,提升召回精度。
  4. 远程MCP-Retriever(分布式架构)向量服务部署 MCP Server,远端通过 MCP 工具实现检索,LangChain 客户端靠 MCP Tool 间接调用检索能力。
  5. 父文档检索、多 Query 改写 RetrieverParentDocumentRetriever、MultiQueryRetriever(查询扩写多条再检索,RAG-Fusion 实现)。

四、Retriever 在 ReAct/FunctionCall Agent 无差别兼容

不管 ReActAgent 还是 FunctionCallAgent:

Retriever → create_retriever_tool → 标准 Tool → 直接入 tools 数组:两种 Agent 接入 RAG 代码完全一致,底层只是模型输出格式不同。

五、为什么说 Retriever 是 RAG 神器

  1. 解耦:更换向量引擎只需要换Retriever 实例,上层 RAG/Agent 代码不动;
  2. 双形态兼容既能嵌入 LCEL 固定链路,又能包装 Tool 给 Agent 动态调用;
  3. 生态统一:LangChain 所有增强 RAG(多路召回、查询优化、分层检索)全部基于 Retriever 扩展;
  4. 无缝对接 MCP分布式知识库

六、极简总结

  • 不用 Retriever:手写 SQL / 接口查库,代码绑定存储,换库全改;
  • 使用 Retriever:一套代码适配全数据库,随意切换固定 RAG / 智能 Agent-RAG。
http://www.jsqmd.com/news/954387/

相关文章:

  • 航空制造大模型人工智能AI系统软件设计方案
  • 应用型AI落地实战:从Web服务思维到物理世界系统工程
  • LangChain实战入门:从零搭建可运行可修改的AI聊天机器人
  • 别再死记公式了!用Python+Matplotlib可视化理解吸收率、反射率和透射率
  • 靠谱的运营公司对于企业的发展起着至关重要的作用
  • 工程师如何用AI“伪造”高影响力痕迹?(非黑产,是合规影响力工程,含GitHub/Confluence/钉钉实操模板)
  • 深入glibc源码:图解_dl_fixup如何解析动态链接函数(附ret2dlresolve利用原理)
  • 数据分析时代终结?不,是决策增强新范式崛起
  • AWVS新手避坑指南:手把手教你配置DVWA靶场登录序列,避免扫描失败
  • 手机蓝牙发送指令STM32串口接收控制 LED 亮灭
  • 零基础入门:在快马平台上手YOLOv8目标检测第一课
  • vue2 + vue3差异点
  • 【X5】快速调试验证MIPI摄像头
  • 告别卡顿与闪退:Quartus II 13.1在Win10/Win11下的稳定运行与性能优化配置全攻略
  • MATLAB行星齿轮动力学仿真脚本:含ode45求解器与完整系统建模函数
  • 别再只调参了!遗传算法解VRP时,这3个编码细节才是性能关键
  • 你的产品能过EMC认证吗?一文搞懂CS/RS传导辐射抗扰、ESD静电、EFT群脉冲测试要求
  • 企业AI编程解决方案:2026最新权威AI编程工具必看开篇
  • 遗传算法工业实战:四大核心杠杆调优指南
  • 2026 张家界防水补漏三家品牌横向测评:厨卫屋面地下室修缮哪家靠谱?吉修匠 99.8 分五星稳居榜首 - 吉修匠
  • 给Jetson Nano B01换颗‘中国心’:手把手教你配置清华源并安装Python全家桶
  • MinerU2.5 Pro技术解析:1.2B参数SOTA PDF解析模型,完整部署教程(Transformers/vLLM/SGLang/Docker)
  • DenseNet实战:用TensorFlow 2.x在小型数据集上做图像分类,参数少效果也不错
  • 嵌入式新手福音,用快马生成带详解的dma示例代码,轻松攻克直接内存访问
  • 跳出传统 Agent 桎梏,浅析代码即智能体的底层运行逻辑与落地实践
  • 计算机毕业设计之基于Django和Vue的汽车销量数据分析系统的设计与实现
  • 不只是驱动问题:深度解析TI XDS100仿真器EEPROM数据损坏的根源与预防
  • C#上位机开发笔记:封装一个稳定可靠的欧姆龙NX PLC通信类库(附源码)
  • 新手福音:基于快马平台轻松上手吴恩达claude中文手册实践
  • 从‘炼丹’到‘工程’:深度学习中权重初始化和输入归一化的实战避坑指南