模块八 · Agent 进阶、RAG 与 MCP
4.11 节说了 Agent 四件套。这一模块把 ReAct 循环、Function Calling、多 Agent 协作、RAG 检索增强、MCP 协议这些 2024-2025 年的热门工程范式讲透——它们不是论文,是你现在就能搭的东西。
上一模块把大模型本体讲透了,这一模块给它"长手和记性"。为什么需要?裸模型只能吐字,接了工具、检索、协议才能干活。学完你能搭一个会查资料、会调 API 的 RAG/Agent。下一模块讲它"学做人"的理论祖宗——强化学习。
8.1 Agent 架构:规划 / 记忆 / 工具 / 反思
Agent Architecture · 四大组件拆开看想四大组件
① 规划(Planning):把大任务拆成小步。经典方法:任务分解(Tree of Thoughts)、反思(Reflexion,做完回头批评自己再改)。
② 记忆(Memory):分短期(对话历史塞进 context)和长期(存向量数据库,需要时检索出来)。长期记忆靠 RAG。
③ 工具调用(Tool Use):LLM 自己决定调哪个工具、传什么参数。见 8.2/8.3。
④ 反思(Reflection):做完一步,让 LLM 自评"这步对不对、下一步怎么办"。Reflexion 论文证明这能显著提升准确率。
① 规划拆任务,记忆存历史,工具超能力,反思纠错。② 四件套缺一不可,缺哪个就是残血 Agent。
8.2 ReAct 框架详解
Reason + Act · 想一步做一步看一步想循环范式
ReAct = Reasoning + Acting。每轮循环三步:
Thought(思考):LLM 推理"现在该干嘛"。
Action(行动):调用一个工具(搜索/计算/API)。
Observation(观察):工具返回结果,喂回给 LLM。
重复直到 LLM 认为可以给出最终答案。跟纯 Chain-of-Thought 的区别:CoT 只在脑子里想,ReAct 能动手查外部信息——减少幻觉。
Action: search("牛顿 出生 去世 年份")
Observation: 1643 年生,1727 年去世。
Thought: 1727−1643=84 岁。
Final: 牛顿活了 84 岁。
每一步都有事实依据,不瞎编。
① ReAct=Thought+Action+Observation 循环。② 能查外部信息,减少幻觉。③ LangChain/LangGraph 的核心范式。
8.3 Tool Use / Function Calling
Function Calling · LLM 怎么知道调哪个函数想怎么工作
开发者在请求里描述可用工具的JSON Schema(函数名、参数名、类型、描述)。LLM 根据用户问题,输出一个结构化的"我要调 X 函数,参数是 Y"。程序执行后把结果喂回去。
关键:LLM 本身不执行函数,它只决定调哪个、传什么参数。真正的执行在外部代码。这就是"LLM 是大脑,工具是手脚"。
为什么用 JSON Schema?因为 LLM 输出结构化 JSON 很稳定(训练时学过),程序能可靠解析。比让 LLM 写自然语言"帮我查天气"再正则提取靠谱得多。
① Function Calling = LLM 输出结构化调用请求。② LLM 不执行,外部代码执行。③ JSON Schema 是接口契约。
8.4 多 Agent 协作
Multi-Agent · 一群 AI 互相打工想为什么要多个 Agent
单 Agent 容易"灯下黑"——自己写的代码自己查不出 bug。多 Agent 分工:
角色扮演:Product Manager Agent 拆需求 → Coder Agent 写代码 → Reviewer Agent 审代码 → Tester Agent 跑测试。每个 Agent 只干自己擅长的事,上下文不臃肿。
经典框架:AutoGen(对话式多 Agent)、CrewAI(角色+流程)、MetaGPT(软件公司组织架构)。
代价:多 Agent 更烧 token、更慢、更容易陷入"Agent 之间互相甩锅"的死循环。别为了炫技上多 Agent,单 Agent 能搞定就别拆。
① 多 Agent 分工协作,互相校验。② 上下文不臃肿是核心收益。③ 但烧钱烧 token,按需使用。
8.5 RAG:检索增强生成
Retrieval-Augmented Generation · 先查资料再回答想为什么需要 RAG
大模型的知识停在训练截止日,还会幻觉。RAG:回答前先从你的私有知识库检索相关片段,拼进 prompt 让模型基于证据回答。
流程五步:
① 切分(Chunking):把文档切成几百 token 的块。
② 向量化(Embedding):用 Embedding 模型把每块转成向量(如 1024 维)。
③ 入库:存进向量数据库(FAISS/Milvus/Chroma)。
④ 检索:用户提问也转成向量,在向量库里找最相似的 top-k 块。
⑤ 生成:把检索到的块 + 问题一起喂给 LLM,让它基于这些材料回答。
重排序(Rerank):初检 top-20 后,用 Cross-Encoder 重排取 top-3,提升精度。Embedding 检索快但粗,Rerank 慢但准。
RAG 优势
知识可实时更新、可溯源、减少幻觉、不用微调模型。
短板
检索不到就瞎编、chunk 切不好漏信息、长文档效果差。
① RAG=检索+生成,先查再答。② 切分→Embedding→向量库→检索→生成。③ Rerank 提精度。④ 私有知识库问答的标配。
8.6 MCP:模型上下文协议
Model Context Protocol · LLM 接外部世界的 USB-C想是什么
MCP(Anthropic 2024 年底提出):一套开放协议,标准化 LLM 应用怎么接外部工具和数据源。之前每个工具都要单独写适配器(N 个 LLM 客户端 × M 个工具 = N×M 集成),MCP 把它变成 N+M:工具实现 MCP Server,客户端实现 MCP Client,双方按协议对话。
类比:USB-C 出现前,每个手机一个充电口;USB-C 统一了。MCP 就是 LLM 接工具的 USB-C。
三个原语:Resources(读数据)、Tools(调函数)、Prompts(模板)。Claude Desktop、Cursor 等都已支持。
① MCP 是 LLM 接外部工具的开放标准协议。② 把 N×M 集成问题降为 N+M。③ 2025 年生态爆发,值得关注。
8.7 多模态:CLIP / VLM / 语音识别与合成
Multimodal · 让模型同时看懂图、听懂话、说出声想引子与大白话
引子:前面大模型只处理文字。但世界是多模态的——图片、语音、视频。怎么让同一个模型既看图又懂字?这就是多模态。
① CLIP(OpenAI 2021):用几亿张"图片-文字对"对比学习:让匹配的图文向量靠近、不匹配的远离。训练完,图片和文字被映到同一个向量空间——你输入一段文字"一只狗",能直接在 CLIP 空间检索出最像的图。零样本图像分类的里程碑。
② VLM(视觉语言模型):CLIP 是"对齐",VLM 是"对话"。把图片编码成一串 visual token,拼进 LLM 的文字 token 里,让 LLM 直接看图说话。GPT-4V、LLaVA、Qwen-VL 都是这个路数:图像编码器 + LLM,图像当"外语"翻译成 token 喂进去。
③ ASR(语音识别):语音 → 文字。Whisper 是代表:把语音切帧、提特征,用 Transformer 解码成文字。几十种语言,抗噪强。
④ TTS(语音合成):文字 → 语音。VALL-E、CosyVoice 路线:先把文字转成声学 token,再用神经声码器合成波形。今天的"克隆声音"几秒录音就能仿。
技术里
CLIP 做图文检索;VLM 看图问答、文档理解;Whisper 转写会议;TTS 做配音/有声书。
趋势
GPT-4o、Gemini 原生多模态——图、文、音统一进一个模型,不再是"先识别再 LLM"的拼接。
① CLIP 把图文映到同一向量空间。② VLM=图像编码成 token 喂 LLM。③ ASR 语音转文字(Whisper),TTS 文字转语音。④ 原生多模态是下一代方向。
① 用自己的话解释:用"USB-C 统一充电口"的比喻说清 MCP 解决了什么。
② 举个反例 / 生活例子:反例——RAG 检索到的文档是错的/不相关时,模型会怎样?这暴露了什么风险?
③ 哪里还说不清:RAG 的"切分-向量化-检索-重排"流水线,你能一步步讲顺吗?