AI知识梳理——RAG、Agent、ReAct、LangChain、LangGraph、MCP、Function Calling、JSON-RPC

news2025/5/22 17:26:06

AI技术I
AI技术II

RAG


📌 高度凝练表达

RAG (检索增强生成)是一种结合信息检索与生成式人工智能的技术框架,旨在提升大型语言模型(LLM)的输出准确性和实用性。通过在生成响应前引入外部知识库的信息,RAG 使得模型能够访问训练数据之外的最新或特定领域的知识,无需重新训练模型,从而在各种情境下保持相关性和准确性。

RAG (检索增强生成),生成响应前引入外部知识库的信息,使得模型能够访问训练数据之外的最新或特定领域的知识,从而保证输出的准确性和实用性,减小虚幻。
RAG开卷考试(外部知识库),LLM闭卷(已经训练好的数据)


🔁 RAG 的主要流程

RAG 的工作流程通常包括以下三个关键阶段:

  1. 数据准备阶段:从各种数据源(如 PDF、数据库、网页等)提取信息,并将其转换为纯文本格式。然后将长文本划分为较小的片段,以便于处理和检索。接着,使用嵌入模型(如 BERT、OpenAI Embedding 等)将文本片段转换为向量表示,并将其存储在向量数据库中,如 FAISS、Milvus、Qdrant 等。

数据准备:各类数据源->纯文本格式->较小片段->文本转向量->存储至向量数据库

  1. 检索与增强阶段:当用户提交查询时,RAG 系统将查询转换为向量表示,并在向量数据库中查找与查询向量最相似的文本片段。然后,将检索到的相关文本片段与用户查询结合,构建增强的提示(Prompt),为生成模型提供丰富的上下文信息。(NVIDIA 开发者)

检索与增强阶段:查询转化为向量->数据库中查找->相关文本与用户查询相结合->构建增强的提示

  1. 生成阶段:将增强的提示输入到大型语言模型中生成最终的回答或内容。必要时,对生成的内容进行语法和语义上的优化,以提高可读性和准确性。

生成阶段:增强提示输入到大模型->生成最终的回答获内容


📊 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 协议支持以下两种通信模式:(维基百科)

  1. 请求-响应模式:类似传统的函数调用,LLM 发起请求,MCP 服务器返回结果。
  2. 持续会话模式:建立持久连接,允许 LLM 与 MCP 服务器之间进行多轮交互,适用于需要实时更新和复杂交互的场景。

这两种模式使得 MCP 能够适应不同复杂度的应用需求,从简单的数据查询到复杂的任务执行。
在这里插入图片描述


🔍 MCP 与 Function Calling 的区别

Function Calling的出现解决了模型无法与外部工具交互的问题,但各家的接口不统一,导致生态碎片化。MCP协议作为标准化协议,实现了即插即用,解决了生态壁垒的问题

特性MCP 协议Function Calling
通信模式支持持续会话,适合复杂交互单次请求-响应,适合简单调用
集成复杂度一次集成,多处复用,降低维护成本每个功能需单独集成,维护成本高
上下文管理支持上下文信息的持续传递和更新每次调用需重新提供上下文信息
适用场景多工具协同、实时数据访问、复杂任务执行简单的数据查询或单一功能调用(维基百科)

因此,在需要多轮交互、实时数据更新或多工具协同的复杂应用中,MCP 提供了更强的灵活性和扩展性。 (Medium)


⚙️ MCP 的工作流程

MCP 的典型工作流程如下:

  1. 初始化连接:LLM 通过 MCP 客户端与 MCP 服务器建立连接,进行能力协商。
  2. 能力发现:LLM 查询 MCP 服务器可用的资源、工具和提示模板
  3. 请求执行:LLM 发起请求,调用 MCP 服务器提供的功能。
  4. 结果返回:MCP 服务器处理请求,返回结果给 LLM。
  5. 上下文更新:LLM 根据返回结果更新上下文信息,准备下一步操作。(维基百科)

这种流程支持多轮交互和上下文的持续更新,适用于需要复杂逻辑和实时反馈的应用场景。 (维基百科)


JSON-RPC协议

JSON-RPC 2.0 作为其通信协议的基础,它使得 MCP 能够在大型语言模型(LLM)与外部工具或服务之间实现标准化、结构化的交互
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2383273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【实用教程】如何快速搭建一套私有的埋点系统?

这篇教程将基于开源项目-ClkLog,教大家快速搭建一套自有的埋点系统,从0开始完成数据采集、分析与展示,全流程掌控用户行为数据。 ClkLog是一款支持私有化部署的全开源用户行为数据采集与分析系统,兼容Web、App、小程序多端埋点&am…

深入解析 Uniswap:自动做市商模型的数学推导与智能合约架构

目录 1. 自动做市商(AMM)模型的数学推导1.1 恒定乘积公式推导1.2 价格影响与滑点 2. Uniswap 智能合约架构解析2.1 核心合约(Core)2.1.1 工厂合约(Factory)2.1.2 交易对合约(Pair) 2…

React 19版本refs也支持清理函数了。

文章目录 前言一、refs 支持清理函数二、案例演示1.useEffect写法2.React 19改进 的ref写法 总结 前言 React 19版本发布了ref支持清理函数了,这样就可以达到useEffect一样的效果了。为啥需要清理函数呢,这是因为节约内存。 清理事件监听(避…

阿尔泰科技助力电厂——520为爱发电!

当城市的霓虹在暮色中亮起,当千万个家庭在温暖中共享天伦,总有一群默默的 "光明守护者" 在幕后坚守 —— 它们是为城市输送能量的电厂,更是以科技赋能电力行业的阿尔泰科技。值此 520 爱意满满的日子,阿尔泰科技用硬核技…

C#语法篇 :基类子类转换,成员变化情况

在C#中,会有从子类对象到基类对象的转换,这属于C#中的向上扩容,一般可以默认转换。 方法的转换 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ex3._4 …

【漫话机器学习系列】264.内距(又称四分位差)Interquartile Range

深入理解内距(Interquartile Range,IQR)——数据分析中的异常值利器 在日常的数据分析中,我们经常需要识别和处理异常值(Outliers),而内距(Interquartile Range,简称 IQR…

海外盲盒系统开发:重构全球消费体验的科技引擎

当盲盒文化席卷全球,海外盲盒系统开发已成为重构消费体验的核心赛道。数据显示,2025年全球盲盒市场规模突破120亿,东南亚市场年增长率达4540。我们开发的海外盲盒系统,以技术创新为驱动,打造覆盖全链路的全球化解决方案…

高噪声下扩展边缘检测算子对检测边缘的影响

目录 一、常见的边缘检测算子 二、扩展边缘检测算子对检测边缘的影响 三、结论 一、常见的边缘检测算子 Sobel 算子: Prewitt算子;

vuejs处理后端返回数字类型精度丢失问题

标题问题描述 后端返回数据有5.00和3.30这种数据,但是前端展示的时候返回对应分别为5和3.0,小数点后0都丢失了。 接口返回数据展示network-Response: 接口返回数据展示network-Preview: 错误数据效果展示 发现问题 浏览器接口…

mysql数据库-中间件MyCat

1. MyCat简介 在整个 IT 系统架构中,数据库是非常重要,通常又是访问压力较大的一个服务,除了在程序开发的本身做优化,如: SQL 语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分…

手搓四人麻将程序

一、麻将牌的表示 在麻将游戏中,总共有一百四十四张牌,这些牌被分为多个类别,每个类别又包含了不同的牌型。具体来说,麻将牌主要包括序数牌、字牌和花牌三大类。序数牌中,包含有万子、条子和筒子,每种花色…

PotPlayer 安装 madVR、LAV Filters 以提升解码能力和视频音频效果

PotPlayer自带的解码器并不是最好,如下两张截图都是出自 TOP GUN: Maverick 较暗、灰蒙蒙的一张,是安装插件之前明亮的一张,是安装插件之后 详细安装参考 https://www.bilibili.com/video/BV1UV5qzuE74?spm_id_from333.788.videopod.sectio…

Kind方式部署k8s单节点集群并创建nginx服务对外访问

资源要求 请准备好doker环境,尽量用比较新的版本。我的docker环境如下 docker 环境: Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3 安装kind kind表现上就是一个二进制程序,下载对应版本并增加执行权限即可: cu…

K个一组链表翻转

目录 1. 题意 2. 解题思路 3. 代码 1. 题意 给一个链表,按 k 进行翻转,也就是 k 2 ,两两进行翻转,如果不够2则不动。 2. 解题思路 首先思考怎么翻转一个链表,反转链表:https://leetcode.cn/problems…

Python60日基础学习打卡D32

我们已经掌握了相当多的机器学习和python基础知识,现在面对一个全新的官方库,看看是否可以借助官方文档的写法了解其如何使用。 我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档。 大多数 Python 库都会有官方文档,里面包含了函数…

面向恶劣条件的道路交通目标检测----大创自用(当然你也可以在里面学到很多东西)

全部内容梳理 目标检测的两个任务: 预测标签 边界框 语义分割 实力分割 一个是类别 一个是实例级别 分类任务把每个图像当作一张图片看待 所有解决方法是先生成候选区域 再进行分类 置信度: 包括对类别和边界框预测的自信程度 输出分类和IOU分数的…

基于Java(SSM)+MySQL实现(Web)具有智能推荐功能的图书销售系统

具有智能推荐功能的图书销售系统 1.绪论 1.1 背景、目的、意义 随着互联网的不断发展,电子商务逐渐代替传统的交易方式。各种类型的电子商务网站层出不穷,但细分之下电子商务网站主要分为 B2B,B2C,C2B,C2C 这四大类…

浙大团队研发Earth Explorer系统,探索深时演化/地学剖面/科研场景,赋能深时地球科学研究

深时地球科学研究聚焦地球的漫长历史,探寻从数十亿年前到如今的地质演化过程,研究范畴广泛,涵盖了地球内部结构、物质组成、生命演化,以及地球与外部环境的相互作用等关键领域。近年来,地学可视化分析方法对多维时空交…

31-35【动手学深度学习】深度学习硬件

1. CPU和GPU 1.1 CPU CPU每秒钟计算的浮点运算数为0.15,GPU为12。GPU的显存很低,16GB(可能32G封顶),CPU可以一直插内存。 左边是GPU(只能做些很简单的游戏,视频处理),中…

SpringMVC2

一、springmvc 接收请求 类上、方法上 RequestMapping GetMapping PostMapping package com.hl.springmvc02.web; ​ import jdk.nashorn.internal.objects.annotations.Getter; import org.springframework.web.bind.annotation.*; ​ RestController RequestMapping(&qu…