💡 答案要点
一句话本质:
RAG 解决"模型不知道的知识"(知识供给),Skill 解决"模型做不好的流程/动作"(行为供给)。两者不是替代关系,是两种不同的能力注入方式。
RAG 管知识: 把外部文档(手册、条款、案例)切分、向量化后挂到模型上下文里,回答依赖"检索到的内容"。
Skill 管流程: 把一套可复用的 SOP/操作步骤封装成能力单元,Agent 按需调用,回答依赖"按流程执行的结果"(查 API、算价格、走审批)。
核心对比表:
| 维度 | RAG(知识) | Skill(流程) |
|---|---|---|
| 注入内容 | 事实/文档/数据 | 动作/步骤/规则 |
| 依赖形态 | 向量库 + 检索 | 代码/函数 + 参数协议 |
| 更新方式 | 重新清洗、切分、入库、评测 | 改代码、发版本、灰度 |
| 建设周期 | 长:洗数据(解析→清洗→切分→评测→回流) | 短:封装即用 |
| 确定性 | 低:检索可能不中、答案可能幻觉 | 高:执行结果可预期、可断言 |
| 复用性 | 弱:换领域要重新洗数据 | 强:SOP 可跨业务复用 |
| 典型场景 | 知识问答、客服答疑、合同条款查询 | 下单、审批流、报表生成、多步操作 |
为什么"RAG 长线强但洗数据周期长":
RAG 上线的真实时间线:
原始文档 → 格式归一 → 解析(PDF/扫描件/表格)→ 清洗去噪
→ 切分策略调优 → Embedding 选型 → 入库 → 检索评测 → 线上回流
痛点:
- 文档质量参差,扫描件/图片表格解析失败率高
- 切分策略试错成本高,改一次切分要重跑全量评测
- 知识更新慢:文档改了,向量库里还是旧版本
Skill 的对比优势:
- 流程逻辑写死在代码里,改一行上线即生效
- 有明确的输入输出契约,可以写单测、可以 mock选型决策树:
问题需要"事实"吗?
├─ 是,且事实来自文档/知识库 → RAG(或 RAG + 混合检索)
├─ 是,但事实是结构化数据(订单/库存/余额)→ 直接查库/SQL 工具,别硬套 RAG
└─ 否,问题需要"执行一套动作"(SOP/流程)→ Skill 封装
混合场景(最常见):
客服场景 = 意图识别(Skill 编排)→ 查知识库(RAG)→ 查订单(SQL 工具)→ 生成回复两个面试官爱追问的坑:
- "RAG 和向量数据库不是一回事":RAG 是检索增强方案,向量库只是其中一种存储;结构化数据走 SQL、走 ES 倒排,都比硬塞向量库强。
- "别把流程写进 RAG 文档里":把 SOP 写成文档丢进 RAG,等于让模型"读文档猜流程",确定性全无;流程就该是 Skill(代码),文档只负责提供事实。
面试话术:
"RAG 和 Skill 是两种不同的能力注入:RAG 注入知识,解决'模型不知道';Skill 注入流程,解决'模型做不好'。RAG 长线价值高,知识会越积累越厚,但洗数据周期长,文档解析、切分、评测每一环都是坑;Skill 上线快、确定性强、可复用,适合把 SOP 封装成标准能力。我的选型原则是:事实靠 RAG,流程靠 Skill,结构化数据直接查库。客服这种混合场景就是 Skill 编排 + RAG 喂知识 + SQL 查数据,各司其职。"