RAG 是 Agent 系统中最常见的能力之一。很多人会问:RAG 是不是 Agent?RAG 和 Skill 什么关系?简单说:RAG 本身不是 Agent,但可以被封装成 Agent 的一个 Skill。
RAG 是什么
RAG 的核心流程是:
用户问题 → 检索知识库 → 返回相关片段 → 拼接上下文 → 大模型生成答案它解决的是大模型无法稳定访问外部知识或私有知识的问题。
RAG 不是 Agent
普通 RAG 流程通常是固定的:一有问题就检索,再生成回答。它不一定有动态决策。
Agent 则会判断:当前问题是否需要检索?是查知识库、查数据库,还是搜索互联网?所以 RAG 更像能力或流程,Agent 是决策系统。
RAG Skill 是什么
RAG Skill 是把知识库检索能力封装成 Agent 可调用的 Skill。Agent 判断需要内部知识时,调用 RAG Skill 获取相关文档片段、来源和分数。
两种设计方式
第一种:RAG Skill 只检索,不生成。返回 chunks、source、score,让 Agent 基于结果回答。
第二种:RAG Skill 内部完成检索和生成,直接返回 answer 和 sources。
前者更灵活,后者更稳定,具体取决于场景。
输入输出设计
RAG Skill 输入可以是:
{"query":"用户问题","top_k":5,"filters":{},"rerank":true}输出应包含:
{"status":"success","results":[{"content":"文档片段","source":"文档名","score":0.86}]}没有结果时返回empty_result,不能让 Agent 编造。
什么时候调用 RAG Skill
适合调用:内部知识库、企业文档、上传文件、产品手册、制度文档、需要依据资料回答的问题。
不适合调用:实时新闻、开放互联网最新信息、纯翻译润色、当前上下文足够回答的问题。
RAG Skill 和 Web Search Skill 的区别
RAG Skill 的数据源是私有知识库或文档库;Web Search Skill 的数据源是开放互联网。前者适合内部资料,后者适合最新公开信息。Agent 必须能区分二者。
评估指标
RAG Skill 可评估:
检索命中率 top-k 相关性 召回率 引用准确性 上下文忠实性 空结果率 幻觉率面试中怎么回答
可以这样回答:
RAG 本身不是 Agent,它是一种检索增强生成能力。Agent 可以把 RAG 封装成一个 Skill 来调用。当用户问题需要依赖知识库时,Agent 调用 RAG Skill,传入 query、top_k、filters 等参数,RAG Skill 返回相关文档片段、来源、相似度和 metadata。RAG Skill 可以只负责检索,也可以内部完成检索和生成。关键是没有结果时要返回 empty_result,而不是让 Agent 编造。
小结
这篇文章的核心是:Skill 与 RAG 的关系不是一个孤立概念,而是 Agent 工程化中必须讲清楚、设计清楚、验证清楚的一部分。
下一篇继续讨论:Skill 与 MCP 的关系。