大语言模型(LLM)的出现让机器能说会道,但它们并非万能。你是否遇到过以下尴尬场景?

  1. 知识过时:问 ChatGPT “今天天气怎么样”,它只能说“我的知识截止到2023年”。

  2. 幻觉问题:问“马斯克最近在做什么”,它可能编造一个他正在火星吃火锅的故事。

  3. 无法行动:让它“帮我删除桌面上的a.txt”,它只会输出一串代码,而无法真正执行。

为了解决这些问题,业界引入了两个重要的架构范式:RAG 和 Agent

本文将带你深入浅出地理解这两个概念,并用 Python 代码展示它们是如何工作的。


第一部分:RAG —— 给大模型装上“外挂大脑”

1. 什么是 RAG?

RAG(Retrieval-Augmented Generation,检索增强生成) 的核心思想是:不依赖模型内部的“死记硬背”,而是允许模型在回答前先去外部知识库“查资料”。

原理三步走:

  1. 索引:把大量的文档(PDF、TXT、网页)切块,通过向量化模型变成数学向量,存入向量数据库。

  2. 检索:用户提问后,把问题也变成向量,去数据库里找最相似的 Top-K 个文档片段。

  3. 生成:把“用户问题” + “检索到的文档” 拼在一起,扔给 LLM 生成最终答案。

2. 为什么需要 RAG?

  • 对抗幻觉:答案有据可查,不再胡编乱造。

  • 知识实时更新:不用重新训练模型,更新文档库即可。

  • 处理私有知识:公司的内部财报、产品手册,只有 RAG 能安全处理。

3. Python 极简实现 (使用 LangChain + OpenAI)

假设我们有一个关于“公司请假制度”的文本,我们想让 AI 基于这个文本回答问题。

小结: RAG 让 LLM 变得“博闻强识”,但它比较被动——你问什么,它查什么,它不会主动去操作你的电脑或调用 API。


第二部分:Agent —— 赋予大模型“手脚和大脑”

如果说 RAG 是给模型配了“参考书”,那么 Agent 就是给模型配了“工具箱”

1. 什么是 Agent?

Agent(智能体) 是一个利用 LLM 作为核心控制器的系统。它的工作流程是:思考 -> 行动 -> 观察 -> 再思考,直到完成最终任务。

核心组件(ReAct 模式):

  • Thought (思考):我现在应该做什么?

  • Action (行动):调用某个工具,比如 execute_python_codesearch_websend_email

  • Observation (观察):工具返回了什么结果?

2. 为什么需要 Agent?

  • 解决复杂任务:比如“帮我计算 20 的阶乘,然后存入文件”。(需要计算器 + 文件写入工具)

  • 自主规划:面对“预定下周三去上海的机票”这种多步骤任务,Agent 可以自主分解。

  • 交互操作:直接控制浏览器、操作系统或数据库。

3. Python 极简实现 (使用 LangChain 自定义工具)

我们让 Agent 拥有两个功能:加法 和 乘法,然后让它计算一个复杂的表达式。

执行过程(Agent 的内心戏):

Thought: 我需要先算 3 + 5,这要用到加法器。
Action: 加法器 3,5
Observation: 8.0
Thought: 现在我需要把 8.0 乘以 2,用乘法器。
Action: 乘法器 8,2
Observation: 16.0
Thought: 我已经知道最终答案了。
Final Answer: 16.0


第三部分:RAG vs Agent —— 区别与融合

很多人分不清这两个概念,我们用一张表格总结:

维度 RAG (检索增强生成) Agent (智能体)
核心目的 获取知识 执行动作
工作模式 检索 -> 生成 思考 -> 行动 -> 观察 (循环)
依赖数据 外部知识库 (静态文档) 外部工具 (动态 API)
典型场景 客服机器人、文档问答、财报分析 自动化运维、代码助手、智能家居控制
是否改变状态 否 (只读) 是 (可写、可执行)

高阶融合:Agentic RAG

现在的 SOTA 架构往往是两者结合:Agent 负责规划,RAG 作为 Agent 的一个工具

  • 场景:一个数据分析 Agent。

  • 流程

    1. 用户问:“对比我们公司去年和今年的销售数据,分析增长原因。”

    2. Agent 思考:我需要先去 RAG 工具里检索“去年的销售报告”和“今年的市场策略文档”。

    3. 拿到文档后,Agent 调用 Python 代码解释器 计算增长率。

    4. 最后组织语言回答用户。

这就是所谓的 “LLM 为中心的操作系统”,RAG 是内存,Agent 是 CPU。

  1. RAG 是入门首选:如果你只想解决“胡说八道”和“私有知识问答”的问题,先上 RAG,它简单、可控、效果好。

  2. Agent 是未来方向:当你不满足于问答,想让 AI 帮你真正干活(写周报、发邮件、订票)时,就需要 Agent。

  3. 不要神化,关注落地:目前的 Agent 在处理极长链条任务时容易出错,建议结合 RAG 给 Agent 提供清晰的“说明书”,并加入人工确认环节。

希望这篇文章能帮你理清这两个炙手可热的概念。动手跑一跑上面的代码,你会理解得更深刻。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐