DeepAgents : 检索(Retrieval)

DeepAgents : 检索(Retrieval)
DeepAgents : 检索Retrieval大语言模型LLM虽能力卓越却受两大固有制约上下文窗口有限——无法一次性处理大规模语料知识时效性固化——训练数据截止后即不再更新。为突破这些限制检索机制让模型能在推理时动态获取外部知识而检索增强生成RAG则进一步将检索与生成结合产出有据可依的答案。1. 知识库构建知识库是检索系统的数据底座可由文档、结构化数据等构成。LangChain 提供丰富的文档加载器和向量存储基于私有数据快速搭建知识库。已有数据库、CRM 或内部文档系统的则无需重复建设可直接将其作为工具接入实现智能体式 RAGAgentic RAG让 Agent 自主决定检索时机与方式两步 RAG2‑Step RAG固定先检索后生成流程清晰可预测。检索流水线一个标准的检索流程通常包含以下模块化步骤各组件均可灵活替换各构建模块加载器、分割器、嵌入模型、向量库等均解耦设计便于按需组合。2. RAG 架构选型根据业务对控制力、灵活性和延迟的要求可选择不同架构架构特点控制力灵活性延迟典型场景两步 RAG固定检索顺序生成前必检高低稳定、快FAQ、文档问答机器人智能体式 RAGAgent 自主决定检索时机与工具低高不固定取决于推理路径需调用多种工具的研究助手混合 RAG融合两者加入验证与重试环节中中不固定对答案质量有严格要求的领域系统3. 两步 RAG2‑Step RAG该模式简单直接每次回答前必须执行检索将检索结果作为生成上下文。它适用于大多数对流程稳定性要求高的场景。4. 智能体式 RAGAgentic RAG此模式让 LLM 驱动的 Agent 在推理过程中自主判断是否检索、检索什么以及如何使用检索结果。只需为 Agent 配备一个或多个检索工具如文档加载器、网页抓取、SQL 查询等即可赋予其动态获取外部知识的能力。代码示例基础工具定义importrequestsfromlangchain.toolsimporttoolfromlangchain.chat_modelsimportinit_chat_modelfromlangchain.agentsimportcreate_agenttooldeffetch_url(url:str)-str:获取指定 URL 的文本内容responserequests.get(url,timeout10.0)response.raise_for_status()returnresponse.text system_prompt当你需要从网页获取信息时使用 fetch_url 工具并引用相关片段。agentcreate_agent(modelclaude-sonnet-4-6,tools[fetch_url],system_promptsystem_prompt,)实战面向 LangGraph 文档的智能体问答以下 Agent 会先读取llms.txt内含文档索引再根据用户问题动态调用fetch_documentation获取并解析相关页面importrequestsfromlangchain.agentsimportcreate_agentfromlangchain.messagesimportHumanMessagefromlangchain.toolsimporttoolfrommarkdownifyimportmarkdownify ALLOWED_DOMAINS[https://langchain-ai.github.io/]LLMS_TXThttps://langchain-ai.github.io/langgraph/llms.txttooldeffetch_documentation(url:str)-str:从指定 URL 抓取文档并转为 Markdownifnotany(url.startswith(domain)fordomaininALLOWED_DOMAINS):returnf错误URL 不在允许范围内必须以{, .join(ALLOWED_DOMAINS)}开头。responserequests.get(url,timeout10.0)response.raise_for_status()returnmarkdownify(response.text)# 预先加载文档索引无需每次经 LLMllms_txt_contentrequests.get(LLMS_TXT).text system_promptf 你是一位资深的 Python 技术专家专注于 LangGraph 生态。 工作原则 1. 凡涉及 API 用法、配置或行为的问题**必须**使用 fetch_documentation 查阅官方文档。 2. 引用文档时需给出总结和关键上下文。 3. 禁止访问非允许域名下的 URL。 4. 若获取失败请告知用户并基于已有知识尽力作答。 可用文档索引如下{llms_txt_content}tools[fetch_documentation]modelinit_chat_model(claude-sonnet-4-6,max_tokens32_000)agentcreate_agent(modelmodel,toolstools,system_promptsystem_prompt,nameAgenticRAG)responseagent.invoke({messages:[HumanMessage(content写一个使用预置 create_react_agent 的 Agent用于查询股票价格。)]})print(response[messages][-1].content)5. 混合 RAGHybrid RAG该架构融合前两种模式在检索前后增加中间处理步骤例如查询增强改写模糊问题、生成多版本查询或添加上下文检索验证判断初次检索是否充分不足则优化后二次检索答案验证校验生成答案的准确性与完整性不符合则修正或重生成。它适合查询条件不明确、涉及多源数据或需要严格质量把控的复杂场景。