当前位置: 首页 > 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.rkmt.cn/news/1466007.html

相关文章:

  • Altium Designer新手必看:PCB设计里那些烦人的绿色报错,到底怎么一键搞定?
  • 深入glibc源码:图解_dl_fixup如何解析动态链接函数(附ret2dlresolve利用原理)
  • 零基础入门:在快马平台上手YOLOv8目标检测第一课
  • 告别卡顿与闪退:Quartus II 13.1在Win10/Win11下的稳定运行与性能优化配置全攻略
  • MATLAB行星齿轮动力学仿真脚本:含ode45求解器与完整系统建模函数
  • 别再只调参了!遗传算法解VRP时,这3个编码细节才是性能关键
  • MinerU2.5 Pro技术解析:1.2B参数SOTA PDF解析模型,完整部署教程(Transformers/vLLM/SGLang/Docker)
  • 给Jetson Nano B01换颗‘中国心’:手把手教你配置清华源并安装Python全家桶
  • C#上位机开发笔记:封装一个稳定可靠的欧姆龙NX PLC通信类库(附源码)
  • 用NodeMCU和Blinker自制万能红外遥控器,手把手教你让旧家电秒变智能(附完整代码)
  • Anaconda安装后必做的三件事:验证、配环境变量、创建你的第一个Python 3.8虚拟空间
  • 别再死磕D-H参数了!用Matlab Robotic Toolbox 10.4快速复现一个四轴机械臂(附完整代码)
  • LLM投毒:大模型数据层精准攻击与七道防御体系
  • 保姆级教程:用ROS和MAVROS搞定PX4 Offboard模式(附避坑指南)
  • 正统传承视角下的汕头高端私房菜核心技术标准拆解 - 奔跑123
  • 从漏洞原理到安全加固:手把手带你分析并修复ActiveMQ 5.x的Fileserver漏洞
  • 从自动驾驶到商品推荐:聊聊Smooth L1 Loss为何成了YOLO、Faster R-CNN的‘心头好’
  • MCP会成为AI时代的新中间件吗?
  • 挑选好用的固体饮料贴牌公司可以参考哪些参考依据?
  • 2026上海浦东可长短租的服务公寓!商务家庭租住全能适配 - 资讯速览
  • 真空脱泡搅拌机常见问题解答(2026最新专家版) - 资讯速览
  • 2026贵阳近郊烧烤山庄与团建聚餐一站式服务深度指南 - 企业名录优选推荐
  • HFSS新手避坑指南:手把手教你搞定威尔金森功分器仿真(附参数文件)
  • 从云端到边缘:基于土星云SE110S的智能视频分析轻量化部署方案(下)
  • 2026杭州室内游玩乐园新地标TOP5|室内浪漫避雨避晒,城市秘境成热门首选 - 资讯速览
  • HR系统选型第一步不是看产品,是做这件事|90%的人顺序搞反了
  • 2026年宜宾高县水上赛事完全选购指南 - 企业名录优选推荐
  • 提升学历,为什么一定要选正规函授站?本部、中介、函授站到底差在哪? - 奔跑123
  • 从0到1:打造99.99%高可用在线CRM系统的技术架构与实践
  • Web渗透之SQL注入-文件读写-木马植入