复杂架构的取舍:Agentic RAG、LLM Wiki 与 Multi-Agent

这一篇和前面几篇不一样:前面讲「怎么把一件事做对」,这篇讲**「该不该做这件事」**。面试到 L3,考的是取舍判断力,而不是堆功能的能力。


一、导语:架构题考的是「减法」#

初级工程师听到「RAG 不够好」,反应是「再加一层」------加 reranker、加 query rewrite、加多路检索、加多 Agent。高级工程师听到同样的话,第一反应是归因:到底是哪一层不够好?能不能用更简单的方式解决?

这一篇要建立的判断力是:

每一个「更复杂的架构」,都必须回答一个问题------它换来了什么单 Agent 给不了的东西?换不来的,就是纯粹的复杂度负债。

我们用三个具体问题来练这个判断力:Agentic RAG 什么时候停、LLM Wiki 和 RAG 怎么选、Multi-Agent 什么时候才值得。


二、问题来源:复杂度是负债,不是资产#

先立一个基本盘:架构复杂度本身是成本。它带来:

  • 通信损耗:Agent 之间传递信息,必然有信息丢失和格式转换。
  • 状态不一致:多个执行体看到的世界可能不同步。
  • 错误放大:一环出错,下游全错,且难定位。
  • 成本倍增:每个 Agent 都有自己的上下文和模型调用。
  • 调试地狱:一次失败要跨多个 Agent 的 trace 才能还原。

所以「拆」不是免费的。任何拆分方案要成立,它换来的收益必须显著超过这些负债。而绝大多数「看起来需要多 Agent」的场景,其实单 Agent 加一个好工具就够了。

面试里最怕的答案是「Multi-Agent 更强大 / 更接近人类组织」。这是把「拟人」当成了「工程论证」。下面我们逐个拆。


三、讲透 Q1:Agentic RAG------把检索从「预处理」变成「工具」#

3.1 普通 RAG vs Agentic RAG#

普通 RAG 的检索是一次性的、在生成之前的固定步骤 :先检索,再生成。它的致命限制在第 10 期已经点破------多跳无力:答案分散在文档 1 和文档 3,一次检索只能返回「跟原始 query 最像的块」,它没法「先找 A、再拿 A 去查 B」。

Agentic RAG 的核心变化只有一句:

把「检索」注册成一个工具,让模型自己决定什么时候查、查什么、查几次。

模型不再是被动接收检索结果,而是像调用任何工具一样调用检索:先查「A 是什么」,看到结果后,再决定「我需要用 A 去查 B」,于是发起第二次检索。检索从「流水线的一道工序」变成了「Agent 循环里的一个动作」。

3.2 关键难点:什么时候停?#

把检索交给模型,立刻带来一个新问题:它可能一直查下去(每次都「再确认一下」),成本失控。所以 Agentic RAG 的工程核心不是「怎么让它查」,而是**「怎么让它停」**。

停止判据有两类,缺一不可:

  1. 软判据(信息收敛) :本轮检索带来的新增信息量趋零。如果这一轮召回的块跟上一轮高度重复、或与已掌握的上下文没有新信息,说明「再查也没用了」,该停。
  2. 硬兜底(max_rounds) :无论软判据怎么说,必须有一个 max_rounds 硬上限。因为软判据本身依赖模型判断,模型可能误判「还有新信息」。硬兜底是最后的安全网。

面试加分点:能说出软判据 + 硬兜底必须同时存在。只有软判据 → 模型误判就无限循环;只有硬兜底 → 信息早就收敛了还在白烧钱。

3.3 代价#

Agentic RAG 不是白拿的:

  • 延迟:多轮检索是串行的,每轮都要一次模型调用,延迟随轮数线性增长。
  • 成本:每轮检索 + 每次决策都是 token 消耗。
  • 不可预测:轮数不定,导致 P99 延迟和成本都不好估。

所以它的适用面很明确:需要多跳推理、且查询复杂度差异很大的场景 。对于「简单事实问答」占绝大多数流量的系统,Agentic RAG 是过度设计------用一根固定流水线就够。


四、讲透 Q2:LLM Wiki vs 向量 RAG------两条知识路线#

4.1 本质区别:碎片检索 vs 预编译导航#

这是本期最有价值的对比。两者都在解决「让模型用上外部知识」,但路线完全相反:

维度 向量 RAG LLM Wiki
知识形态 碎片(chunk) 预编译的结构化文档
组织方式 向量空间(隐式、无结构) 显式目录 / 章节 / 交叉链接
检索方式 相似度召回 Top-K 导航(先读目录,再定位章节)
知识来源 原始文档切块 由 LLM 预先整理、归纳、去重、串联
更新成本 低(增量插入) 高(要重新整理受影响的章节)
适用知识 海量、异构、长尾 中等规模、高价值、需要整体理解

LLM Wiki 的核心思想 :与其在查询时从碎片里「拼」答案,不如离线用 LLM 把知识整理成一份结构清晰、可导航的文档(像一个 Wiki)。查询时,先让模型读目录/摘要定位到相关章节,再读那一章。

这为什么有时更优?因为碎片检索丢掉了知识的结构关系 。文档 A 说「X 依赖 Y」,文档 B 说「Y 依赖 Z」,向量检索可能只召回 A,模型就不知道 Z。而 Wiki 在离线整理时,已经把「X→Y→Z」这条链写进了同一段叙述里。结构是预编译进去的,不需要查询时现场拼。

4.2 成本结构:前移 vs 后移#

这是关键的工程差异:

  • RAG 走「成本后移」 :离线索引便宜(切块 + 编码),查询时才花力气(编码 + ANN + rerank)。随查询量线性增长。
  • Wiki 走「成本前移」 :离线整理贵(LLM 反复阅读、归纳、重写),查询时极便宜(读一份现成文档)。离线成本固定,与查询量无关。

于是存在一个盈亏平衡点:查询量少的系统,RAG 更划算(不用预先大投入);查询量大的系统,Wiki 更划算(离线投入被摊薄)。

4.3 怎么选#

  • 知识海量、异构、长尾、高频更新 → RAG(碎片检索的扩展性和增删便利无可替代)。
  • 知识中等规模、高价值、需要整体理解、查询量巨大 → LLM Wiki(离线整理的结构化收益能覆盖成本)。
  • 两者结合:用 Wiki 组织「核心概念与关系」,用 RAG 兜住「长尾细节」,查询时先导航 Wiki 再到 RAG 取细节------这也是很多知识密集型产品的真实形态。

五、讲透 Q3:Multi-Agent------唯一正当的理由是「隔离与收敛」#

5.1 先破题:错误理由 vs 正确理由#

面试官问「什么时候需要多 Agent」,最想听的是你能不能否掉那些错误理由:

错误理由 为什么错
「人多力量大 / 更接近人类组织」 拟人不是工程论证。组织成本在多 Agent 里被放大而非缩小
「任务复杂所以要拆」 复杂不等于要拆,单 Agent + 好工具常更优
「每个 Agent 专注自己的领域」 专注本身不产生收益,除非因此隔离了上下文或权限
「并行更快」 多数 Agent 任务是串行依赖的,并行只在真正独立时成立

唯一正当的理由 ,是拆分成多个 Agent 能带来单个 Agent 给不了的隔离 / 收敛:

  1. 上下文隔离 :某个子任务的中间过程极度冗长(比如爬 50 个页面、跑一次大数据分析),如果塞进主 Agent 的上下文,会污染主上下文、挤占预算。把它隔离到一个子 Agent,只有它的最终结论回流主上下文,中间过程不外泄。这是最硬的收益。
  2. 权限隔离 :不同子任务需要不同权限(一个只读检索、一个可写数据库)。从系统层面隔离执行体和权限,比在一个 Agent 里靠 prompt 约束可靠得多。
  3. 职责收敛:某个子任务的指令极其专门、会和主任务指令打架时,隔离成一个专职 Agent 能避免指令冲突(这与第 09 期「指令无强制力」相呼应------隔离是系统手段,不是 prompt 手段)。

5.2 五种拓扑#

拓扑 结构 适合 主要问题
Supervisor 一个主管 Agent 派活给多个执行 Agent 任务可清晰切分、需统一调度 主管成为瓶颈与单点
Sequential Agent 串成流水线,前一个输出是后一个输入 有明确先后阶段 无回头路,前段错误放大
Group Chat 多 Agent 同处一个对话,轮流发言 需要多方讨论/辩论 极易失控、成本爆炸
Blackboard 共享一块「黑板」状态,各 Agent 读写 松耦合协作 状态一致性难保证
Hierarchical 多层 Supervisor 嵌套 超大规模任务 层级越深,损耗越大

生产里最常见、也最实用的是 Supervisor:一个主 Agent 负责规划和汇总,把「重且独立」的子任务外包给子 Agent,子 Agent 只回传结论。这恰好对应 5.1 的「上下文隔离」收益。

5.3 代价的量化意识#

Multi-Agent 的 token 消耗是单 Agent 的约 1.46 倍,为什么更贵?因为:

  • 每个 Agent 都有自己的系统提示 + 上下文(重复开销);
  • Agent 之间传递结论本身要消耗 token(handoff relay);
  • Supervisor 要额外读所有子结论来汇总。

这正是回答「为什么不用一个强模型直接解决」的关键------很多人以为强模型能替代拆分,但强模型解决的是「单点智能上限」,解决不了「上下文污染」和「权限隔离」。哪怕你有一个无限聪明的模型,把 50 个页面的抓取过程塞进它的上下文,一样会污染、一样会烧钱、一样拿不到权限分级。所以:

Multi-Agent 的正当性来自「隔离」,而不是「智能」。想清楚要隔离什么,再决定拆不拆。

如果子上下文本来就小,拆分的重复开销可能压过隔离收益,这时多 Agent 反而可能更便宜------所以结论不是「多 Agent 一定更贵」,而是「要看被隔离的上下文有多大」。


六、深入讨论:子 Agent 结果校验#

拆出子 Agent 之后,一个新问题出现了:主 Agent 怎么信任子 Agent 回传的结论?

子 Agent 可能:跑偏了、幻觉了、输出格式不对了。如果主 Agent 无条件接受,错误会直接污染主任务。所以必须有结果校验:

  • 格式校验:子 Agent 的返回必须符合约定 schema(结构化输出)。
  • 合理性校验:主 Agent 要检查结论是否与已知事实矛盾、是否在合理范围内。
  • 可追溯:子 Agent 的关键结论应附带证据(它读了哪些源、做了什么推导),便于主 Agent 或人工复核。

跨 Agent 的信任边界,本质和第 09 期「工具的信任边界」是同一件事------只要一个执行体的输出会成为另一个执行体的输入,就必须校验。


七、常见错误认识#

  • 「复杂任务就该多 Agent」 ------ 复杂 ≠ 该拆。单 Agent + 好工具常常更简单、更便宜、更好调。
  • 「Multi-Agent 更强大」 ------ 它增加的是隔离能力,不是智能上限;且默认更贵。
  • 「Agent 越多越专业」 ------ 每个 Agent 的重复上下文开销、handoff 损耗、错误放大都是实打实的成本。
  • 「Agentic RAG 总是比普通 RAG 好」 ------ 只在多跳场景好;简单事实问答用它等于给每次查询都加了不确定的轮数。
  • 「让模型自己决定查几次就行」 ------ 没有硬兜底,模型会「再确认一下」到天荒地老,成本失控。
  • 「Wiki 只是另一种 RAG」 ------ 路线相反:一个查询时拼碎片,一个离线预编译结构;成本一个后移一个前移。
  • 「强模型能替代架构拆分」 ------ 强模型解决单点智能上限,不解决上下文污染与权限隔离。

八、概念速查#

概念 一句话
Agentic RAG 把检索注册成工具,让模型自己决定查什么、查几次
软判据(信息收敛) 本轮新增信息趋零则停
硬兜底(max_rounds) 无论软判据如何都必须存在的轮数上限
LLM Wiki 离线用 LLM 把知识整理成可导航的结构化文档
成本前移 vs 后移 Wiki 离线贵查询便宜;RAG 离线便宜查询贵
盈亏平衡点 查询量超过某阈值后,Wiki 的离线投入被摊薄而占优
Multi-Agent 多个独立执行体协作;正当性来自隔离与收敛
上下文隔离 子任务中间过程不外泄,只回传结论到主上下文
权限隔离 不同子任务分属不同执行体与权限,系统级而非 prompt 级
Supervisor 拓扑 主管 Agent 派活 + 汇总,生产最常用
handoff Agent 之间传递结论的消耗
子 Agent 结果校验 对子 Agent 输出做格式/合理性/可追溯校验
错误放大 一环出错导致下游全错的链式效应

九、一句话总结#

Agentic RAG 的价值在多跳、代价是不确定性;LLM Wiki 用离线成本换查询效率,有盈亏平衡点;Multi-Agent 的唯一正当理由是上下文与权限隔离------解决不了这个,就别拆。

相关推荐
付威20231 小时前
【pi-rust源码拆解】Agent 源码看不懂?先跟着一条消息走一遍--万字长文
人工智能
Maynor9961 小时前
让 AI 编程助手学会做视频、做 PPT:Agent Skills 入门与安装全指南
人工智能·aigc·ai编程·效率工具·cursor·claude code
C++ 老炮儿的技术栈1 小时前
sizeof操作符
c语言·c++·人工智能·mfc·c
柯南46681 小时前
【AI工程师精讲】KV Cache 精讲:为什么 AI 越聊越慢,以及长上下文真正的成本在哪
人工智能·ai编程
QCoding1 小时前
Spring AI Alibaba Graph实战:从ReAct Agent到Workflow,企业AI复杂流程该如何编排?
java·人工智能
小蒋观天下1 小时前
端侧大模型在安防摄像头部署实操(上)|行业痛点、架构选型、落地思路解析
大数据·人工智能·安全·计算机视觉·ai大模型
hzxxxz2 小时前
端到端测速数据采集实战:从节点部署到指标口径的完整链路
人工智能
林伽一2 小时前
能力趋同、账单分化,技术选型正在从榜单转向负载|2026年10月06日
人工智能·科技·安全·ai
Jooolin2 小时前
把 GitHub Issue 的第一轮脏活交给 AI:做一个 Issue 分诊助手
人工智能·github