RAG 和 Skill 区别?什么场景必须用 RAG?Skill 能替代吗?
· 9 min read
RAG 和 Skill 不是替代关系,是解决不同问题的两套机制。混着用很容易踩坑。
- 本质区别:RAG 按语义检索文档,Skill 按触发词加载流程
- 必须用 RAG:3 类场景——开放域语料、答案分布广、用户不知道要看哪篇
- Skill 能替代:3 类场景——知识结构化、触发条件明确、需要本地动作
- 决策框架:是「检索」还是「执行」?前者 RAG,后者 Skill
- Claude Code 案例:它用 Skill 不用 RAG,但 Skill 内部可以包 RAG
- 混合方案:Skill 触发 + RAG 检索子语料,渐进式披露
核心结论:把 RAG 当 Skill 用、或者把 Skill 当 RAG 用,都是常见的设计错误。
先把两个东西说清楚
很多人觉得 RAG 和 Skill 都是"给 Agent 喂知识",这是误解。它们做的事完全不同:
- RAG(Retrieval-Augmented Generation):每次用户提问,把问题丢进向量数据库,捞回最相关的 N 段文本,塞进 prompt 再让模型生成。检索是每次都跑、动态的。
- Skill(以 Claude Code 为代表):把领域知识/流程写成
SKILL.md,放在~/.claude/skills/下。Agent 读每个 skill 的description,自己判断要不要调,调的时候才把正文加载进上下文。
类比一下:RAG 像图书馆的检索系统,每次问都得现查;Skill 像你桌上的工作手册,碰到特定场景才翻开。