好,这一篇我要把 RAG 从“AI 热词”里拽回工程现场。 不玄、不吹,直接回答一个你已经隐约感觉到、但很多人不敢说出口的问题:
为什么一个能长期稳定运行的 RAG 系统, 80% 都应该是 Chain,而不是 Agent?
RAG 系统:为什么 80% 应该是 Chain
—— 从“能答”到“敢用”的工程真相
一、先把 RAG 的本质说清楚
很多人一上来就把 RAG 想复杂了。
RAG 的真实本质只有一句话:
用检索,把模型的“想象空间”, 换成“被约束的知识空间”。
拆开来看,它只做三件事:
问题 → 查资料 → 用资料回答
听起来像不像什么?
像一条流水线。 而不是一次自由创作。
二、为什么直觉会把你带向 Agent(但这是错的)
很多人第一次接触 RAG,脑子里会自动冒出一个画面:
“既然要判断要不要查、查什么、怎么用, 那不就该用 Agent 吗?”
这是人类直觉在作祟,但工程上是个坑。
Agent 天然适合的问题是:
- 路径不确定
- 目标模糊
- 可容忍试错
- 偶尔胡来没关系
而 绝大多数 RAG 需求是反过来的:
| 维度 | RAG 的真实需求 |
|---|---|
| 是否稳定 | 必须 |
| 是否可复现 | 必须 |
| 是否可测试 | 必须 |
| 是否可控成本 | 必须 |
| 是否允许发散 | 尽量不 |
📌 这五条,几乎条条和 Agent 天性相冲。
三、RAG 的 80%,本质是“确定性工程”
我们把一个真实生产级 RAG 拆开看:
1. 用户问题规范化
2. 查询重写
3. 检索(Top-K)
4. 文档过滤 / 去噪
5. 上下文拼接
6. Prompt 注入
7. 生成答案
8. 结果后处理
现在问你一个问题:
这里面,有哪几步是“需要自由思考”的?
答案很残酷:
几乎没有。
这些步骤的共同点是:
- 有固定输入输出
- 有明确成功 / 失败
- 有性能与成本约束
- 可以写单元测试
这四个条件同时满足的时候, Chain 是唯一理性的选择。
四、Chain 在 RAG 中的真实价值(不是“方便”)
1️⃣ 可预测性:这是 RAG 的生命线
你在生产中一定会被问这些问题:
- 一次请求最多查几条?
- 最坏情况下消耗多少 token?
- 延迟上限是多少?
- 出错时返回什么?
Chain 能回答,Agent 回答不了。
2️⃣ 可调试性:RAG 一定要“回放”
RAG 最大的问题不是答错, 而是:
你不知道它为什么这么答。
Chain 可以做到:
- 本次检索命中了哪些文档
- 使用了哪几段上下文
- Prompt 实际长什么样
📌 这对你这种工程背景的人来说, 不是加分项,是底线。
3️⃣ 成本控制:Agent 是慢性出血
在 RAG 里:
- 一次多查 = 成本翻倍
- 一次多想 = 延迟失控
Chain 的调用次数、token 使用量, 可以提前算账。
Agent?
“这次它觉得再查一次更保险。”
五、那 Agent 在 RAG 里就没用吗?
有用,但只能在 20% 的地方用。
适合 Agent 的 RAG 环节,只有这些:
✅ 1. 查询意图判断(轻度)
- 是否需要查知识库?
- 还是直接生成?
📌 只能是“要不要”,不是“怎么查”
✅ 2. 查询重写(有限)
- 把口语问题转成专业查询
- 多角度补充关键词
📌 结果必须结构化,不能自由发挥
✅ 3. 文档使用策略(少量)
- 多文档如何取舍
- 是否需要对比
📌 一定要有:
- 最大步数
- 最大 token
- 明确 fallback
六、一个“正确的 RAG 架构”长什么样
【Chain】
- 输入清洗
- 查询标准化
- 检索
- 过滤
- 上下文拼接
↓
【Agent(受控)】
- 是否补查
- 是否改问法
↓
【Chain】
- Prompt 注入
- 生成
- 结果结构化
Agent 像一个“顾问” Chain 才是“流水线主任”
七、一个反直觉但真实的结论
RAG 做得越好, 看起来就越不像“智能”。
- 没有长篇 Thought
- 没有反复试探
- 没有“我再想想”
只有:
稳定、克制、可解释
八、给你一句工程级结论(可以直接写进 PPT)
RAG 是信息系统,不是思维系统。 信息系统的核心,从来都是 Chain。
Agent 不是不能用, 而是——
一旦你把 Agent 放错位置, RAG 会从“可靠系统”退化成“随机聊天”。
更多精彩内容请关注微信公众号 “学GIS的小宝同学”