RAG 技术的下一站:Agentic RAG 和自主检索的未来
RAG 技术的下一站Agentic RAG 和自主检索的未来一、从一次检索到自主检索RAG 技术的进化2026 年初某法律 AI 平台对 RAG 系统进行了一次升级从固定检索 5 个文档升级到Agentic RAGAgent 自主决定检索几次、检索什么。结果回答准确率从 72% 提升到 89%但成本也增加了 40%。这个案例揭示了 RAG 技术的下一个进化方向从被动检索到主动、多步、自适应的检索。本文将深入分析 RAG 技术的未来趋势。二、阶段一Naive RAG当前主流典型实现# Naive RAG简单但不是最优 class NaiveRAG: 朴素 RAG 实现 def __init__(self, vector_db, llm): self.vector_db vector_db self.llm llm def query(self, user_query: str) - str: # 1. 向量检索固定 Top-5 query_embedding self.embed(user_query) docs self.vector_db.search(query_embedding, top_k5) # 2. 拼接上下文 context \n.join([doc[content] for doc in docs]) # 3. 生成回答 prompt f基于以下内容回答问题\n{context}\n\n问题{user_query} answer self.llm.generate(prompt) return answer问题三、阶段二Advanced RAG当前最佳实践核心改进混合检索向量 关键词Rerank重排序查询改写Query RewritingHyDE假设文档生成生产级实现class AdvancedRAG: 进阶 RAG 实现 def __init__(self, vector_db, keyword_index, llm): self.vector_db vector_db self.keyword_index keyword_index self.llm llm self.reranker CrossEncoder(BAAI/bge-reranker-v1.5) def query(self, user_query: str, history: List[Dict] None) - str: # 1. 查询改写基于历史 rewritten_query self._rewrite_query(user_query, history) # 2. 混合检索 vector_results self._vector_search(rewritten_query) keyword_results self._keyword_search(rewritten_query) # 3. 结果融合 merged self._merge_results(vector_results, keyword_results) # 4. Rerank reranked self._rerank(rewritten_query, merged) # 5. 上下文压缩 context self._compress_context(reranked[:5]) # 6. 生成回答 answer self._generate_answer(user_query, context, history) return answer def _rewrite_query(self, query: str, history: List[Dict]) - str: 查询改写 if not history: return query # 使用 LLM 改写考虑上下文 prompt f 基于以下对话历史改写用户的当前问题使其更明确 历史 {self._format_history(history)} 当前问题{query} 改写后的问题 rewritten self.llm.generate(prompt, max_tokens100) return rewritten.strip() def _vector_search(self, query: str, top_k: int 20) - List[Dict]: 向量检索 query_embedding self.embed(query) return self.vector_db.search(query_embedding, top_ktop_k) def _keyword_search(self, query: str, top_k: int 20) - List[Dict]: 关键词检索BM25 return self.keyword_index.search(query, top_ktop_k) def _merge_results(self, list1: List[Dict], list2: List[Dict]) - List[Dict]: 融合结果Reciprocal Rank Fusion scores {} for rank, doc in enumerate(list1, 1): doc_id doc[id] if doc_id not in scores: scores[doc_id] {doc: doc, score: 0} scores[doc_id][score] 1 / (60 rank) for rank, doc in enumerate(list2, 1): doc_id doc[id] if doc_id not in scores: scores[doc_id] {doc: doc, score: 0} scores[doc_id][score] 1 / (60 rank) merged sorted(scores.values(), keylambda x: x[score], reverseTrue) return [item[doc] for item in merged] def _rerank(self, query: str, docs: List[Dict]) - List[Dict]: 重排序 pairs [[query, doc[content]] for doc in docs] scores self.reranker.predict(pairs) # 排序 doc_score_pairs list(zip(docs, scores)) doc_score_pairs.sort(keylambda x: x[1], reverseTrue) return [doc for doc, _ in doc_score_pairs]Advanced RAG 的效果实测数据某客服场景方法准确率平均延迟成本tokens/queryNaive RAG72%1.5s800Advanced RAG85%2.8s1500结论Advanced RAG 明显更准但更慢、更贵。四、阶段三Agentic RAG未来趋势核心思想让 Agent 控制检索过程对比维度Advanced RAGAgentic RAG检索次数固定 1 次动态1-N 次检索策略预设Agent 决策适应性低高成本可控不可控可能多次调用 LLM生产级实现class AgenticRAG: Agentic RAGAgent 控制检索 def __init__(self, tools: List[Dict], llm): self.tools tools self.llm llm def query(self, user_query: str) - str: # 使用 ReAct 模式Reasoning Acting max_iterations 5 context [] for i in range(max_iterations): # 1. Reasoning判断是否已足够回答 prompt f 用户问题{user_query} 当前已检索的信息 {self._format_context(context)} 请判断 1. 如果信息已足够回答输出: FINAL_ANSWER: 答案 2. 如果还需要检索输出: SEARCH: 检索查询 response self.llm.generate(prompt) # 2. Acting执行检索如果需要 if response.startswith(FINAL_ANSWER:): # 生成最终答案 answer response.replace(FINAL_ANSWER:, ).strip() return answer elif response.startswith(SEARCH:): # 执行检索 search_query response.replace(SEARCH:, ).strip() # 调用检索工具 search_result self._call_tool(search, {query: search_query}) # 添加到上下文 context.append({ query: search_query, result: search_result }) else: # 解析失败重试 continue # 达到最大迭代次数基于当前上下文回答 final_prompt f 用户问题{user_query} 检索到的信息 {self._format_context(context)} 请基于以上信息回答问题 return self.llm.generate(final_prompt) def _call_tool(self, tool_name: str, params: Dict) - str: 调用工具 if tool_name search: # 混合检索 query params[query] vector_results self._vector_search(query) keyword_results self._keyword_search(query) merged self._merge_results(vector_results, keyword_results) return self._format_docs(merged[:3]) return def _format_context(self, context: List[Dict]) - str: 格式化上下文 parts [] for i, ctx in enumerate(context, 1): parts.append(f检索 {i}: {ctx[query]}) parts.append(f结果 {i}: {ctx[result]}) return \n\n.join(parts)Agentic RAG 的优势案例用户问对比 iPhone 15 和 Samsung S24 的摄像头Naive RAG检索 1 次iPhone 15 Samsung S24 摄像头可能检索到不相关的文档Agentic RAG第 1 次检索iPhone 15 摄像头规格第 2 次检索Samsung S24 摄像头规格第 3 次检索iPhone 15 vs Samsung S24 摄像头对比基于 3 次检索结果生成答案更准确成本优化Agentic RAG 的主要问题是成本高多次调用 LLM。优化方案class CostOptimizedAgenticRAG(AgenticRAG): 成本优化的 Agentic RAG def __init__(self, tools: List[Dict], llm, cheap_llm): super().__init__(tools, llm) self.cheap_llm cheap_llm # 用便宜的模型做推理 def query(self, user_query: str) - str: # 使用便宜模型做检索决策 # 使用贵模型生成最终答案 max_iterations 3 # 限制迭代次数 context [] for i in range(max_iterations): # 用便宜模型判断 should_continue self._should_continue_cheap(query, context) if not should_continue: break # 执行检索 search_query self._generate_search_query_cheap(query, context) result self._call_tool(search, {query: search_query}) context.append({query: search_query, result: result}) # 用贵模型生成最终答案 final_answer self.llm.generate( self._build_final_prompt(query, context) ) return final_answer def _should_continue_cheap(self, query: str, context: List[Dict]) - bool: 用便宜模型判断是否继续检索 prompt f基于当前信息能否回答 {query}(yes/no) response self.cheap_llm.generate(prompt, max_tokens10) return no in response.lower()结论RAG 技术的下一站Agentic RAG✅ 更准确自适应检索⚠️ 成本更高多次 LLM 调用 优化方向用便宜模型做决策未来方向2027-2028端到端优化的 RAG训练一个检索策略网络类似强化学习自动学习何时检索、检索什么多模态 RAG检索图片、视频、音频跨模态检索文本 → 图片实时 RAG支持流式数据更新检索延迟 100ms实施建议现在用 Advanced RAG混合检索 Rerank近期试点 Agentic RAG高价值场景长期关注端到端优化方案关键指标准确率 85%平均检索次数 3成本 $0.05/query

相关新闻

LENA-R8与PIC24FJ构建物联网定位通信系统实战

LENA-R8与PIC24FJ构建物联网定位通信系统实战

1. 项目背景与核心组件解析 在物联网和远程监控领域,全球连接与精确定位是两大核心需求。这个项目通过LENA-R8蜂窝模块与PIC24FJ256GA705微控制器的组合,构建了一个兼具通信与定位功能的嵌入式解决方案。我曾在一个跨国物流追踪项目中采用过类似架构&…

2026/7/29 13:22:07 阅读更多 →
Botty终极指南:如何通过像素级自动化技术实现D2R刷图效率提升300%

Botty终极指南:如何通过像素级自动化技术实现D2R刷图效率提升300%

Botty终极指南:如何通过像素级自动化技术实现D2R刷图效率提升300% 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty Botty是一款专为《暗黑破坏神2:重制版》(D2R)设计的开源像素级…

2026/7/29 13:22:07 阅读更多 →
电路板焊接入门到精通:工具选择、实战技巧与常见问题解决

电路板焊接入门到精通:工具选择、实战技巧与常见问题解决

1. 项目概述:从零开始,搞懂电路板焊接这件事 如果你刚拿到一块光秃秃的电路板,看着上面密密麻麻的焊盘和元器件,心里有点发怵,那这篇文章就是为你准备的。电路板焊接,说白了就是把电子元器件用焊锡“粘”到…

2026/7/29 13:22:07 阅读更多 →

最新新闻

紧急更新!SDXL 1.0光影引擎重大Bug致全局对比度坍缩,3行代码热修复方案已验证

紧急更新!SDXL 1.0光影引擎重大Bug致全局对比度坍缩,3行代码热修复方案已验证

更多请点击: https://intelliparadigm.com 第一章:SDXL 1.0光影引擎Bug现象与影响全景分析 SDXL 1.0光影引擎在实际部署中暴露出若干关键性渲染异常,集中表现为光照计算失真、阴影边缘锯齿化及全局光照(GI)收敛失败。…

2026/7/29 13:30:10 阅读更多 →
一文看懂LCD和DLP投影仪,附3000元内高性价比投影仪推荐

一文看懂LCD和DLP投影仪,附3000元内高性价比投影仪推荐

作为当前国内智能投影市场的两大主流技术路线,有人推崇DLP技术的画面色彩与黑位表现,也有人认可LCD技术的高清画质与高性价比。那么,LCD和DLP投影仪哪个好?事实上,脱离预算与使用场景空谈技术优劣并无实际意义&#xf…

2026/7/29 13:30:10 阅读更多 →
别再被“智能筛选”骗了!深度拆解3家头部科技公司AI简历系统的真实漏判日志(附审计清单)

别再被“智能筛选”骗了!深度拆解3家头部科技公司AI简历系统的真实漏判日志(附审计清单)

更多请点击: https://codechina.net 第一章:别再被“智能筛选”骗了!深度拆解3家头部科技公司AI简历系统的真实漏判日志(附审计清单) 当AI简历系统将一位拥有12年分布式系统经验、主导过Kubernetes核心组件优化的工程…

2026/7/29 13:30:10 阅读更多 →
C++ vector 核心机制实现:从内存管理到异常安全与移动语义

C++ vector 核心机制实现:从内存管理到异常安全与移动语义

1. 项目概述:从使用者到实现者的视角转变 最近在社区里看到不少关于C std::vector 的讨论,从基础的“如何创建二维数组”到进阶的“ std::move 是否真的移动了数据”,再到面试中高频出现的“ vector::erase 的迭代器失效”问题。作为一…

2026/7/29 13:30:10 阅读更多 →
Linux内核驱动编译实战:从环境搭建到交叉编译与问题排查

Linux内核驱动编译实战:从环境搭建到交叉编译与问题排查

1. 项目概述:为什么内核驱动编译是道坎?搞Linux驱动开发,或者仅仅是需要给特定硬件打上补丁的朋友,一定都绕不开“编译内核驱动”这个环节。这听起来像是资深工程师的专属领域,但实际上,无论是为了启用一块…

2026/7/29 13:30:10 阅读更多 →
Cursor 0.46.3 Agent模式规则配置实测:从上下文爆炸到Token降本40%的调优记录

Cursor 0.46.3 Agent模式规则配置实测:从上下文爆炸到Token降本40%的调优记录

Cursor 0.46.3 Agent模式规则配置实测:从上下文爆炸到Token降本40%的调优记录上周接到个需求,组里要把个维护三年的 Spring Boot 2.7 订单模块迁到 3.3.2,顺手把 JSR-303 校验层重写成 Jakarta 规范。代码量不大,约 1.2 万行&…

2026/7/29 13:29:09 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻