AI知识梳理——RAG、Agent、ReAct、LangChain、LangGraph、MCP、Function Calling、JSON-RPC
AI技术I
AI技术II
RAG
📌 高度凝练表达
RAG (检索增强生成)是一种结合信息检索与生成式人工智能
的技术框架,旨在提升大型语言模型(LLM)的输出准确性和实用性
。通过在生成响应前引入外部知识库的信息
,RAG 使得模型能够访问训练数据之外的最新或特定领域的知识
,无需重新训练模型,从而在各种情境下保持相关性和准确性。
RAG (检索增强生成),生成响应前引
入外部知识库的信息
,使得模型能够访问训练数据之外的最新或特定领域的知识
,从而保证输出的准确性和实用性,减小虚幻。
RAG开卷考试(外部知识库),LLM闭卷(已经训练好的数据)
🔁 RAG 的主要流程
RAG 的工作流程通常包括以下三个关键阶段:
- 数据准备阶段:从各种数据源(如
PDF、数据库、网页
等)提取信息,并将其转换为纯文本格式
。然后将长文本划分为较小的片段
,以便于处理和检索。接着,使用嵌入模型(如 BERT、OpenAI Embedding 等)将文本片段转换为向量表示
,并将其存储在向量数据库
中,如 FAISS、Milvus、Qdrant 等。
数据准备:各类数据源->纯文本格式->较小片段->文本转向量->存储至向量数据库
- 检索与增强阶段:当用户提交查询时,RAG 系统将
查询转换为向量表示
,并在向量数据库中查找与查询
向量最相似的文本片段。然后,将检索到的相关文本片段与用户查询结合
,构建增强的提示(Prompt)
,为生成模型提供丰富的上下文信息。(NVIDIA 开发者)
检索与增强阶段
:查询转化为向量->数据库中查找->相关文本与用户查询相结合->构建增强的提示
- 生成阶段:将增强的
提示输入到大型语言模型中
,生成最终的回答或内容
。必要时,对生成的内容进行语法和语义上的优化,以提高可读性和准确性。
生成阶段:增强提示输入到大模型->生成最终的回答获内容
📊 RAG 流程图(Mermaid 格式)
以下是 RAG 的主要流程图,采用 Mermaid 语法表示:
RAG 技术广泛应用于智能问答系统
、企业知识管理
、法律和医疗文档分析等领域,特别适用于需要高准确性和实时更新的场景。
Agenet
Agent
是什么
- LLM:负责理解输入、推理并生成输出
- 记忆:存储和管理对话历史,实现上下文感知的交互
- 提示模板(Prompt Template):构建输入提示,引导 LLM 进行特定任务(也可理解为规划,根据提示动态规划路径)
- 工具:外部功能模块,如搜索引擎、API 接口、数据库查询等,Agent 可根据需要调用
- 执行器(Agent Executor):协调各组件的运行,管理整个任务的执行流程
🔁Agent架构流程图
-
接收输入:用户提交查询或命令。
-
生成提示:使用提示模板构建输入,引导 LLM 进行处理。
-
记忆知识库调用、匹配与检索🔍
-
推理决策:LLM 分析任务需求,决定是否需要调用外部工具。
-
执行操作:根据决策,调用相应的工具执行任务。
-
处理结果:LLM 处理工具返回的结果,判断是否完成任务,或需进一步操作。
-
返回输出:生成最终响应,返回给用户。
基于COZE平台搭建Agent示例
ReAct (推理+行动)
为什么要ReAct
LLM推理能力(例如,思路链提示)和行动能力(例如,行动计划生成)主要被作为独立的主题进行研究
。在本文中,我们探索如何使用 LLM 以交错的方式生成推理轨迹和特定于任务的操作
,从而实现两者之间的更大协同作用
:推理轨迹帮助模型归纳、跟踪和更新行动计划以及处理异常
;而操作则允许模型与外部来源(例如,知识库或环境)交互,以收集更多信息
。这种交替进行
的思考与行动流程
,使模型在处理多步推理或需要外部信息
的任务时,表现得更加灵活和高效。
🔁 ReAct 是什么
ReAct(Reasoning + Acting)
是一种结合了“推理”和“行动”的智能代理机制。它使大型语言模型(LLM)在处理复杂任务时,能够像人类一样,先进行思考,再采取行动
,从而提高响应的准确性和可靠性
🔁 ReAct 的工作流程
ReAct 代理通过以下循环步骤实现智能决策:
-
Thought(思考):模型分析当前问题,形成推理路径。
-
Action(行动):根据推理结果,选择并调用外部工具(如搜索引擎、计算器等)。
-
Observation(观察):获取工具返回的结果,作为新的信息输入。
-
循环迭代:重复上述步骤,直到得出最终答案。
✅ 使用 ReAct 的优势
-
增强推理能力:通过显式的思考步骤,提高模型的逻辑推理能力。
-
动态工具调用:根据任务需求,灵活选择并调用合适的外部工具。
-
减少幻觉现象:通过实际的工具反馈,降低模型生成虚假信息的风险。
-
提升可解释性:每一步的思考和行动都有迹可循,便于调试和优化。
Langchain
是什么
LangChain 是一个开源框架,旨在简化基于大型语言模型(LLM)的应用程序的开发。
核心组件
-
模型(Model):封装对 LLM 的调用,支持多种模型如 OpenAI、Anthropic、Hugging Face 等。
-
提示模板(Prompt Templates):用于构建和管理发送给 LLM 的输入提示,支持动态变量插值。
-
链(Chains):将多个组件组合成一个处理流程,实现复杂任务的自动化。
-
代理(Agents):具备决策能力的组件,能够根据任务动态选择链或工具执行。
-
记忆(Memory):用于存储和管理对话历史,实现上下文感知的交互。
-
工具(Tools):集成外部 API 或功能模块,如搜索引擎、计算器等,扩展 LLM 的能力。
🏗️ 核心架构
核心架构
LangChain 的架构设计强调模块化和可扩展性,主要包括:
-
组件层(Components):提供与 LLM 交互的基本构建块,如模型、提示模板等。
-
链层(Chains):将多个组件按特定逻辑组合,形成处理流程。
-
代理层(Agents):在链的基础上增加决策逻辑,根据任务动态选择执行路径。
-
集成层(Integrations):支持与外部数据源、工具和服务的集成,增强应用功能
架构流程图
LangGraph
LangGraph 是 LangChain 生态系统中的一个扩展库,旨在通过图结构(Graph)来构建复杂的、有状态的多角色 LLM 应用,适用于以下场景:
- 多轮对话代理和聊天机器人:处理复杂的对话流程,支持上下文管理和多轮交互。
- 多智能体协作系统:协调多个智能体共同完成任务,如信息检索、数据处理等。
- 任务规划和执行:实现任务的计划、执行、结果反馈和计划更新的完整流程。
- 复杂工作流管理:构建包含条件分支、循环和并行处理的复杂工作流程。
- 实时数据处理和分析:处理实时数据流,进行动态决策和响应。
LangGraph 通过状态图(StateGraph)和消息传递机制,实现了灵活的流程控制和状态管理,适合构建复杂的 AI 应用。
MCP
在前端开发面试中,向面试官简洁地介绍 MCP(Model Context Protocol,模型上下文协议)可以采用以下方式:
📌 什么是 MCP 协议?
MCP 是由 Anthropic 于 2024 年提出的一项开放标准,旨在为大型语言模型(LLM)提供一种标准化的方式
,以连接和交互外部数据源、工具和服务
。它被誉为 AI 系统的“USB-C 接口
”,使得不同的 AI 模型能够以统一的方式访问各种外部资源
,从而增强其功能和应用范围。
🧩 MCP 架构的核心组件
MCP 的架构基于客户端-服务器
模型,主要包含以下核心组件:
- MCP 主机(Host):运行 LLM 的应用程序,如
聊天机器人、IDE
等。 - MCP 客户端(Client):嵌入在主机中的连接器,负责与 MCP 服务器通信。
- MCP 服务器(Server):提供具体功能的服务端,暴露资源、提示模板和工具等能力。
- 本地数据源:如文件系统、数据库等,MCP 服务器可以访问这些资源以提供上下文信息。
这种模块化架构使得 AI 应用可以灵活地与多种外部资源集成,提升了系统的可扩展性和维护性。
🔄 MCP 协议支持的两种模式
MCP 协议支持以下两种通信模式:(维基百科)
- 请求-响应模式:类似传统的函数调用,LLM 发起请求,MCP 服务器返回结果。
- 持续会话模式:建立持久连接,允许 LLM 与 MCP 服务器之间进行多轮交互,适用于需要实时更新和复杂交互的场景。
这两种模式使得 MCP 能够适应不同复杂度的应用需求,从简单的数据查询到复杂的任务执行。
🔍 MCP 与 Function Calling 的区别
Function Calling的出现解决了模型无法与外部工具交互的问题,但各家的接口不统一,导致生态碎片化
。MCP协议作为标准化协议,实现了即插即用,解决了生态壁垒的问题
。
特性 | MCP 协议 | Function Calling | |
---|---|---|---|
通信模式 | 支持持续会话,适合复杂交互 | 单次请求-响应,适合简单调用 | |
集成复杂度 | 一次集成,多处复用,降低维护成本 | 每个功能需单独集成,维护成本高 | |
上下文管理 | 支持上下文信息的持续传递和更新 | 每次调用需重新提供上下文信息 | |
适用场景 | 多工具协同、实时数据访问、复杂任务执行 | 简单的数据查询或单一功能调用 | (维基百科) |
因此,在需要多轮交互、实时数据更新或多工具协同的复杂应用中,MCP 提供了更强的灵活性和扩展性。 (Medium)
⚙️ MCP 的工作流程
MCP 的典型工作流程如下:
- 初始化连接:LLM 通过 MCP 客户端与 MCP 服务器
建立连接
,进行能力协商。 - 能力发现:LLM 查询 MCP 服务器
可用的资源、工具和提示模板
。 - 请求执行:LLM
发起请求
,调用 MCP 服务器提供的功能。 - 结果返回:MCP 服务器
处理请求,返回结果
给 LLM。 - 上下文更新:LLM 根据返回结果更新
上下文信息
,准备下一步操作。(维基百科)
这种流程支持多轮交互和上下文的持续更新,适用于需要复杂逻辑和实时反馈的应用场景。 (维基百科)
JSON-RPC协议
JSON-RPC 2.0 作为其通信协议的基础,它使得 MCP 能够在大型语言模型(LLM)与外部工具或服务之间实现标准化、结构化的交互