简介:本文系统对比工具驱动检索与向量RAG两类方案:从架构、接入、性能、安全、运维、成本与适用边界逐项拆解,澄清“向量库已死”的误读,给出可条件化的选型依据、典型场景判断与迁移注意事项,帮助技术负责人做出可解释、可落地的架构决策。
“向量数据库已死”是一个传播力很强、但技术上并不准确的表述。更贴近事实的描述是:向量检索并没有失效,它只是从过去几年被默认为“知识增强的默认选项”,降级为众多检索策略中的一种备选。真正发生变化的是工程界的默认选择顺序——越来越多的代码智能体类产品与多智能体研究系统,开始把“工具驱动的检索”放在第一位,把“向量召回”放在第二位甚至更靠后的位置。
这一转变背后有几条可观察的线索:一些代码智能体产品相继弃用向量索引、改走工具驱动的检索路径;某研究机构的多智能体系统在内部评测中显著优于单一大模型的表现;某学术论文的评测显示,仅使用关键词类工具的智能体在忠实度指标上达到了向量 RAG 方案的较高比例,且全程不依赖向量库。这些线索指向同一个结论:检索的形态在分化,而不是某一种形态在消亡。
本文对比的两类对象是:
需要说明的是,二者并非互斥关系,而是可以组合的检索策略。本文的重点不是判定谁优谁劣,而是说明差异来自哪里、在什么条件下应优先选择哪一种。
工具驱动检索把“找信息”这件事从一次性的相似度匹配,变成智能体的一段可控流程。模型根据当前任务状态,决定调用哪个工具、用什么参数、是否需要继续追问。典型工具包括:
核心特征是检索动作由模型在运行时决策,因此支持多轮、可回溯、可组合的检索路径。它解决的是“问题本身不确定、需要边查边想”的场景。
向量 RAG 把非结构化文本映射到稠密向量空间,用近似最近邻搜索召回语义相近的片段。它的优势在于语义泛化:用户提问与文档原文措辞不一致时,仍可能召回相关内容。它解决的是“海量非结构化文本中快速定位语义相关内容”的问题,工程形态成熟、链路稳定、易于横向扩展。
用伪代码表示两者在调用形态上的差异:
# 向量 RAG:一次召回,链路固定chunks = vector_search(query, top_k=N)answer = llm(prompt, context=chunks)# 工具驱动检索:多轮决策,路径动态state = taskwhile not state.done:tool, args = llm_decide(state) # 模型选择工具与参数result = call_tool(tool, args) # 关键词/文件/符号/DB 查询state = update(state, result)answer = llm(prompt, context=state.evidence)
在讨论差异之前,需要先明确两者的共同目标与技术交集,避免把对比做成对立叙事。
向量 RAG 的链路包含:文档解析 → 切块 → 嵌入模型 → 向量索引 → 召回 → 重排 → 拼接。它引入了向量数据库这一独立组件,需要处理索引构建、增量更新、分片与副本、维度与模型版本一致性等问题。架构边界清晰,但也意味着多一个有状态服务需要运维。
工具驱动检索的链路是:工具注册与描述 → 模型决策 → 工具执行 → 结果回填。它通常复用已有的搜索服务、文件服务、数据库等基础设施,不必然引入新的存储组件,但对“工具接口设计”和“模型调用工具的可靠性”要求更高。
向量 RAG 的接入成本集中在数据侧:需要建立切块流水线、选择嵌入模型、维护索引与原文的同步。对于已有大量非结构化文档的团队,这部分工作量不小,但一旦建成,查询侧接口相对简单。
工具驱动检索的接入成本集中在接口侧:需要把内部能力封装成模型可理解、参数可校验的工具,并编写清晰的工具描述。对已有 API 和搜索能力的团队,这部分是“包装”而非“重建”,但工具数量增长后,工具选择本身会成为新的复杂度来源。
向量 RAG 擅长语义近似匹配,对措辞差异容忍度高;但对精确匹配类需求(如查某个具体标识符、某个配置项、某个函数名)表现往往不如关键词检索,且召回片段的边界由切块策略决定,容易切断上下文。
工具驱动检索擅长精确查询与可验证查询:关键词工具能精确命中,符号工具能定位定义与引用,文件工具能读取完整上下文。它对“需要多步确认”的任务更友好。但它的能力上限高度依赖工具集的覆盖度——工具没覆盖的数据源,智能体就查不到。
向量 RAG 的延迟主要由嵌入计算与向量检索构成,链路短、可预测,适合高并发、低延迟的在线问答。工具驱动检索的延迟取决于决策轮数,多轮调用会累积延迟,且存在路径不确定性,更适合对时延不敏感、对准确性要求高的任务。
需要强调:这里讨论的是结构性特征,不涉及任何具体数值。实际表现与数据规模、工具实现、模型能力密切相关,应通过自身评测集验证。
向量 RAG 的权限控制可以下沉到索引层,通过元数据过滤实现按租户、按密级隔离,边界相对集中。但切块后片段脱离原文语境,存在“片段被越权召回”的风险,需要在召回阶段做强过滤。
工具驱动检索的权限控制分布在每个工具内部,天然贴近业务系统的原有权限模型,审计粒度更细(可记录每次工具调用的参数与结果)。但工具数量增多后,权限矩阵变复杂,需要统一治理,防止出现“某个工具成为绕过权限的后门”。
向量 RAG 的运维对象是索引:重建、扩容、模型升级导致的重新嵌入、索引与源数据的一致性校验。成本结构以存储与计算资源为主,人力成本集中在数据流水线。
工具驱动检索的运维对象是工具集:接口变更、参数兼容、返回格式稳定性、工具描述与模型能力的匹配度。成本结构以开发与治理人力为主,资源成本通常较低(复用既有服务)。两类方案的长期维护成本都不低,只是分布在不同环节。
| 维度 | 工具驱动检索 | 向量 RAG |
|---|---|---|
| 检索决策 | 模型运行时多轮决策 | 链路固定,一次召回 |
| 核心优势 | 精确、可验证、可组合 | 语义泛化、链路稳定 |
| 主要依赖 | 工具集设计与模型调用能力 | 嵌入模型与向量索引 |
| 延迟特征 | 随轮数累积,路径不确定 | 短链路,相对可预测 |
| 权限控制 | 分散在各工具,贴近业务权限 | 可集中于索引层,需防片段越权 |
| 运维重点 | 工具治理与兼容性 | 索引一致性与重建 |
| 典型短板 | 工具未覆盖则查不到 | 精确匹配弱、切块割裂上下文 |
| 适用任务 | 多步确认、代码/配置/结构化查询 | 海量非结构化文本的语义问答 |
优先考虑工具驱动检索的场景:
优先考虑向量 RAG 的场景:
组合使用的场景: 把向量检索封装为智能体可调用的一个工具,同时提供关键词与结构化查询工具,由模型按任务选择。这是当前较常见的折中路径,代价是系统复杂度上升。
从向量 RAG 迁移到工具驱动检索,或反向迁移,都需要评估以下风险:
“向量数据库已死”是一个情绪化的结论,技术上更准确的判断是:向量检索从默认选项回归为可选组件。工具驱动检索与向量 RAG 的差异,本质上来自检索决策由谁做出、在何时做出——前者把决策交给模型在运行时多轮完成,换取精确性与可验证性;后者把决策固化在链路中,换取语义泛化与稳定延迟。
选型不应停留在“哪个更新”的判断上,而应回到任务特征:需要精确、多步、可追溯,倾向工具驱动;需要语义泛化、高并发、链路稳定,倾向向量 RAG;两者都重要时,用组合方案并以评测集驱动默认顺序的调整。架构决策的价值不在于追随趋势,而在于让每一分复杂度都有明确的收益对应。