技术祛魅帖:一文看懂LLM / 智能体 / 工作流 和 MCP (文末送复旦大模型教材)


技术祛魅帖:一文看懂LLM / 智能体 / 工作流 和 MCP (文末送复旦大模型教材)

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

随着大型语言模型(LLMs)的诞生,人工智能(AI)取得了巨大的飞跃。这些强大的系统彻底改变了自然语言处理的格局,但它们真正的潜力是在与自主性相结合时被释放出来的——这种自主性包括推理、规划和自主行动的能力。
大型语言模型是AI领域的一个重要里程碑。它们通过海量数据的训练,能够生成流畅、连贯的文本,为各种自然语言处理任务提供了强大的基础。然而,这些模型本质上是被动的,它们只能根据输入的提示生成文本,而无法主动地去执行任务或与外部环境互动。
AI智能体的出现改变了这一局面。它们不仅仅是语言模型的升级版,更是赋予了AI自主性和主动性。AI智能体能够理解任务目标,通过推理和规划来制定行动方案,并且能够与外部工具或系统进行交互,以完成复杂的任务。这种从被动到主动的转变,使得AI的应用范围得到了极大的拓展。
自主性:AI智能体能够独立地感知环境、做出决策并执行行动,而无需人类的持续干预。
适应性:它们可以根据不同的任务和环境条件调整自己的行为,展现出高度的灵活性。
交互性:AI智能体能够与人类用户、其他智能体或外部系统进行有效沟通和协作。
感知模块:用于收集和处理来自外部环境的信息,例如通过自然语言理解技术来解析用户输入。
推理引擎:负责基于收集到的信息进行逻辑推理和决策制定。
规划模块:根据任务目标制定行动步骤和策略。
执行模块:将规划好的行动付诸实施,与外部工具或系统进行交互以完成任务。
聊天机器人并不是什么新鲜事物。在生成式人工智能(GenAI)概念出现之前,你可能就已经在网站上与聊天机器人互动过。然而,传统聊天机器人与今天的AI驱动的对话代理之间存在着根本性的差异。以下是它们的典型工作方式:
传统聊天机器人依赖于基于规则的逻辑(“如果-那么”语句)。它们只能在预设的规则范围内运行,无法处理复杂或模糊的查询。这种模式的局限性在于,一旦遇到超出预设规则的问题,聊天机器人就无法给出有效的回答。
传统聊天机器人的回答是静态且预先定义好的。它们通过检测特定的关键词或短语来触发预设的回答。这种模式缺乏灵活性和对话深度,无法根据上下文进行动态调整。
在传统聊天机器人中,总会有一个“转接人工客服”的按钮,用于处理无法解决的查询。对于复杂问题,人工干预仍然是必不可少的。这种模式虽然可以解决一些简单问题,但在面对复杂或需要深度理解的场景时,其局限性显而易见。
随着大型语言模型(LLM)的出现,聊天机器人迎来了质的飞跃。LLM驱动的聊天机器人不再依赖于固定的规则和预设的回答,而是能够通过自然语言理解(NLU)和自然语言生成(NLG)技术,动态地生成回答。这种模式的优势在于:
更强大的语言理解能力
LLM能够理解复杂的语言结构和语义,甚至能够处理模糊或开放性的问题。它们可以通过上下文理解用户的意图,从而提供更准确、更自然的回答。
动态生成回答
与传统聊天机器人的固定回答不同,LLM驱动的聊天机器人可以根据用户的输入动态生成回答。这种模式不仅提高了回答的灵活性,还能够根据不同的场景和用户需求提供个性化的服务。
减少人工干预
虽然LLM驱动的聊天机器人仍然可能需要人工介入来处理某些复杂问题,但它们已经能够独立处理大部分常见问题。这大大减轻了人工客服的负担,同时也提高了用户体验。
AI智能体的概念基于理性行为的基本理念:智能体应该采取能够最大化实现其指定目标成功的行动。这种理性正是AI智能体与简单响应程序的根本区别。
AI智能体能够在没有人类干预的情况下独立运行,并自主做出决策。
AI智能体能够对环境的变化做出反应,并采取主动措施以实现目标。
通过处理新信息和经验,AI智能体能够学习和进化。
感知(传感器)
这些组件使智能体能够感知其环境。它们可以是物理传感器(如摄像头、麦克风)或数字输入(如数据流、用户交互)。
推理(处理器)
这是智能体的“大脑”,负责处理来自传感器的信息并确定适当的行动。这一组件实现了智能体的决策算法,并维护任何必要的内部状态。AI智能体使用各种决策机制,如基于规则的系统、专家系统和神经网络,以做出明智的选择并有效执行任务。
行动(执行器)
这是智能体影响环境或采取行动的手段。它们可以是物理的(如机械臂、扬声器)或数字的(如数据库更新、显示输出)。
AI智能体与环境的互动通常被称为“感知-规划-行动”循环或“感知-行动”循环。我们以自动驾驶汽车为例来理解每个阶段:
感知阶段
智能体通过其传感器接收输入。
信息被处理和解释。
根据新信息更新当前状态。
决策阶段
智能体评估可能的行动。
考虑目标和约束条件。
根据可用信息选择最优行动。
行动阶段
通过执行器执行选定的行动。
环境因行动而发生变化。
智能体通过传感器观察结果,开始新的循环。
AI智能体与简单自动化工具的区别主要在于两个关键能力:工具使用和规划。
假设我想创建一个AI智能体日程安排器,我向它发出指令:“我想为我的学生举办一场网络研讨会”。这将被视作触发AI智能体的信号。
交响层(也称为控制中心)负责处理查询,无论查询是文本、音频、视频还是图像,最终都会被转换为机器可处理的数值。
交响层的四大主要功能如下:
记忆:保存整个交互过程的记忆。
状态:存储当前流程的状态。
推理:指导智能体的推理过程。
规划:确定步骤以及下一步行动。
模型是整个智能体的集中决策者,通常是像大型语言模型这样的AI模型。
为了理解查询、制定计划并确定下一步行动,模型会使用推理和逻辑框架,例如:
ReAct(推理+行动):确保深思熟虑且有条不紊的行动。
思维链:通过中间步骤进行推理。
思维树:探索多条路径以找到最佳解决方案。
以一个冲浪旅行网站为例,假设你可以提前知道用户请求将属于两个类别之一(基于用户选择),并且你为这两种情况分别设定了预定义的工作流程:
用户想了解旅行信息?⇒给他们提供一个搜索栏,让他们搜索知识库。
用户想联系销售?⇒让他们填写联系表单。
直到最近,计算机程序还被限制在预定义的工作流程中,通过堆叠if/else语句来处理复杂性。它们专注于极其狭窄的任务,比如“计算这些数字的总和”或“在这个图中找到最短路径”。
智能体是一个能够感知环境、做出决策并采取行动以实现特定目标的自主实体。智能体的复杂程度可以从简单的反应式智能体(仅对刺激做出响应)到更高级的智能体(能够学习并随时间适应)。常见的智能体类型包括:
反应式智能体:直接对环境变化做出响应,没有内部记忆。
基于模型的智能体:使用内部模型来做出决策。
基于目标的智能体:根据特定目标规划行动。
基于效用的智能体:通过效用函数评估潜在行动,以最大化结果。
从零开始构建智能体并非易事。像LangGraph、CrewAI和OpenAISwarm这样的框架简化了开发过程,使开发人员能够专注于应用逻辑,而不是重新发明状态管理、编排和工具集成的轮子。智能体框架的核心优势包括:
简单定义智能体和工具:提供清晰的接口和模板,方便开发人员快速上手。
编排机制:管理多个智能体之间的协作和任务分配。
状态管理:确保所有智能体在任务执行过程中保持一致的状态。
支持复杂应用的附加工具:例如持久层(记忆)、中断处理等。
智能体框架代表了人工智能系统设计的范式转变。与依赖静态、预定义工作流的传统AI应用不同,智能体框架引入了动态、自适应的系统,能够自主地感知、推理和行动。这些框架将复杂任务分解为更小的子任务,由专门的智能体协作完成更广泛的目标。
LangChain
LangChain是一个强大且灵活的框架,简化了基于大型语言模型(LLMs)的应用开发。它提供了丰富的工具和抽象层,使开发人员能够设计具备复杂推理、任务执行和与外部数据源及API交互能力的AI智能体。LangChain通过其模块化架构,解决了与LLMs协作时的诸多挑战,例如在长对话中保持上下文、整合外部信息以及协调多步骤任务等。
LangGraph
LangGraph是LangChain的扩展,专门用于创建基于图的单智能体或多智能体AI应用。它非常适合构建涉及规划、反思和多智能体协作的复杂交互式AI系统。LangGraph作为底层框架,允许开发人员控制智能体之间的交互、使用的工具以及应用内的信息流动。
CrewAI
CrewAI是一个用于编排角色扮演AI智能体的框架。它允许开发人员创建一个“团队”,每个AI智能体都有特定的角色和职责,共同完成复杂的任务。CrewAI特别适合构建需要多样化专业知识和协调努力的协作AI系统。
MicrosoftSemanticKernel
MicrosoftSemanticKernel旨在弥合传统软件开发与AI能力之间的差距。它特别关注将大型语言模型(LLMs)集成到现有应用中。该框架为开发人员提供了在不完全推翻现有代码库的情况下,整合AI功能的工具。其轻量级的SDK和对多种编程语言的支持,使其能够适应各种开发环境。
MicrosoftAutoGen
MicrosoftAutoGen是一个开源框架,用于构建高级AI智能体和多智能体系统。由微软研究院开发,AutoGen提供了一个灵活且强大的工具包,用于创建对话式和任务完成型AI应用。它强调模块化、可扩展性和易用性,使开发人员能够高效地构建复杂的AI系统。
Smolagents
Smolagents是一个前沿的开源框架,旨在彻底改变AI智能体的开发方式。它为开发人员提供了一个全面的工具包,用于构建智能的、协作的多智能体系统。Smolagents专注于灵活性和模块化,能够创建独立运行或在人类监督下协作的复杂AI系统。
AutoGPT
AutoGPT基于强大的GPT-4语言模型,能够通过语言输入执行目标导向的任务。它代表了自主AI智能体领域的重大进步,将决策提升到了新的水平。
Agno(Phidata)
Agno(原名Phidata)是一个多模态智能体框架,能够开发协作式智能体系统。它支持文本、图像和音频等多种模态数据,无需依赖外部工具即可独立运行。此外,Agno还提供了AgenticUI,方便用户与智能体进行可视化交互。
LangGraph是由LangChain团队开发的一个库,旨在帮助开发人员创建基于图的单智能体或多智能体AI应用。作为一个底层框架,LangGraph允许开发人员控制智能体之间的交互、使用的工具以及应用内的信息流动。
LangGraph的核心是基于图的应用工作流表示。图包含两个主要元素:
节点:每个节点代表应用中的一个独立工作单元或操作。这些节点可以是与LLM直接交互以生成文本、调用外部工具和API、处理数据或与用户交互的Python函数。
边:边是图中的连接线,用于指导信息流动和控制流。LangGraph支持多种边类型,包括简单边(直接从一个节点流向另一个节点)和条件边(根据特定节点的操作结果决定工作流的分支)。
定义:简单反射智能体仅在特定动作或条件发生时才执行任务。它们根据预定义的规则做出响应,不考虑过去的经历。
特点:
优点:设计简单,响应迅速,适合简单任务。
缺点:缺乏适应性和学习能力,无法处理复杂环境。
定义:基于模型的反射智能体通过内部模型来处理部分可观测的环境。它们根据当前感知和内部状态做出决策,并根据环境变化更新内部状态。
特点:
优点:能够处理部分可观测的环境,决策更加灵活。
缺点:模型构建和维护成本高,可能无法完全反映真实环境。
定义:基于目标的智能体通过环境信息来实现特定目标。它们使用搜索算法和启发式方法来找到实现目标的最优路径。
特点:
优点:适合需要战略规划和适应性的复杂任务。
缺点:目标定义需要大量领域知识,适应性有限。
定义:基于效用的智能体通过效用函数评估多个可能行动的结果,选择效用最高的行动。它们特别适合复杂和不确定的环境。
特点:
优点:能够处理不确定性,灵活适应环境变化。
缺点:计算成本高,依赖于准确的环境模型。
定义:学习智能体通过经验学习并随着时间推移改进性能。它们通常使用强化学习框架来优化行动选择。
特点:
优点:能够适应动态环境,持续改进。
缺点:需要大量数据和计算资源,可能产生偏见。
定义:层级智能体通过多层结构管理任务,高层智能体监督低层智能体。这种结构适合复杂任务的分解和协调。
特点:
优点:适合大规模任务管理,提高效率。
缺点:结构复杂,适应性有限。
定义:多智能体系统由多个智能体组成,这些智能体通过协作或竞争来实现共同目标或优化个体结果。
特点:
去中心化:决策分散在多个智能体之间。
协作与竞争:智能体可以协作或竞争,具体取决于场景。
可扩展性:能够处理大规模问题。
专业化:每个智能体专注于特定任务。
理解智能体(Agent)与工作流(Workflow)之间的区别变得至关重要。这两者构成了现代智能体系统的核心自动化范式。
工作流(Workflows)
工作流是结构化的、基于规则的自动化流程,其结果是预先定义好的。它们通常用于处理静态的、重复性的任务,例如在电子商务系统中,用户购买产品后自动发送订单详情邮件。
特点:
确定性:工作流遵循线性、可预测的执行路径。
适用场景:适合结构化任务,如自动化电子邮件发送、数据处理等。
智能体(Agents)
智能体是动态的、决策系统,能够根据上下文适应不同的场景。它们通过感知环境并做出决策来完成任务,而不是遵循预定义的路径。
特点:
适应性:智能体能够实时选择使用哪些工具以及生成什么输出。
适用场景:适合需要灵活性和动态决策的任务,如客户支持、复杂问题解决等。
在开发基于大型语言模型(LLM)的应用程序时,建议从最简单的解决方案开始,只有在必要时才引入复杂性。工作流提供了结构化任务的可预测性和一致性,而智能体则更适合需要灵活性和大规模模型驱动决策的场景。
何时使用智能体:
复杂任务:任务需要多步骤推理和动态适应。
灵活性:任务的执行路径无法预先定义,需要实时决策。
何时使用工作流:
结构化任务:任务可以分解为固定的子任务。
效率:需要快速、一致的执行路径。
提示链(PromptChaining)
提示链将任务分解为一系列步骤,每个LLM调用处理前一个调用的输出。这种模式适用于可以轻松分解为固定子任务的场景。
并行化(Parallelization)
并行化允许LLM同时处理任务,并将输出聚合。这种模式适用于需要快速处理或需要多种视角的任务。
路由(Routing)
路由将输入分类并将其导向后续任务。这种模式适用于需要将复杂任务分解为不同类别的场景。
协调器-工作者(Orchestrator-Worker)
在协调器-工作者工作流中,中央LLM动态分解任务,将它们委托给工作者LLM,并综合它们的结果。
协调器-工作者(Evaluator-Optimizer)
在协调器-工作者工作流中,中央LLM动态分解任务,将它们委托给工作者LLM,并综合它们的结果。
LLM(大语言模型)、工具和上下文是构建智能代理系统的三大核心要素。然而随着越来越多的模型、应用和库的发布,将这些组件粘合在一起变得越来越复杂。本文将介绍ModelContextProtocol(MCP)如何通过提供标准化方式来解决这个问题。
MCP被Anthropic称为”AI应用的USB-C接口”。它不像每个AI应用开发者那样创建自己的自定义连接方式,而是提供了一个所有人都可以使用的标准[1]。
这种标准化带来了社区驱动开发的力量。现在,不同团队开发的应用和工具可以通过标准流程轻松互通。
为Cursor等AI工具添加自定义集成(如Slack和GoogleDrive)
轻松将个人工具和上下文连接到多个AI应用(如Claude、Cursor或n8n工作流)
应用开发者可以利用社区构建的MCP服务器生态,零成本扩展产品能力!
MCP采用客户端-服务器架构。MCP客户端向MCP服务器发送请求,服务器则响应并提供工具、资源和提示的访问权限。
就像咖啡店有固定的点单流程一样,MCP也定义了AI应用访问工具和上下文的标准协议:
连接-客户端初始化连接,服务器响应,客户端发送初始化确认通知
交换-以JSON格式交换请求、响应和通知
终止-三种终止方式:客户端关闭、传输断开或发生错误
MCP客户端内置于AI应用中,如Claude、Cursor、n8n工作流或使用OpenAIAgentsSDK构建的自定义代理。
它们代表应用向MCP服务器发送请求,主要职责包括:
发现服务器能力
接收服务器数据
管理LLM工具执行
使用现有AI应用(如Claude、Cursor)时,无需构建MCP客户端,但可能需要构建自定义MCP服务器。
MCP服务器是为AI应用提供服务的独立服务,监听客户端请求并根据自身能力响应[2]。
服务器为AI应用提供三大核心功能:
提示(Prompts)-提示模板
资源(Resources)-数据、文件系统、数据库
工具(Tools)-函数、API、图像处理
服务器可以本地或远程运行,支持两种传输机制:
stdio(本地)-服务器作为子进程运行,通过标准IO流与客户端通信
HTTPwithServer-SentEvents(SSE)(远程)-客户端到服务器使用HTTPPOST请求,服务器到客户端使用SSE流。
本书共12章,围绕大语言模型基础理论、预训练、指令理解、模型增强和模型应用五个部分展开。
本书全面解析了大语言模型的发展历程、理论基础与实践方法,对大语言模型预训练、指令微调、强化学习、多模态、智能体、RAG等前沿领域的研究进展有较好的覆盖。
此外,本书深入探讨了大语言模型的实际应用场景与评价方法,为研究者提供了系统的理论指导与实践经验。相信本书对从事相关研究的学者和大语言模型开发者具有重要的参考价值。
#留言领书,送三本#
#学习大模型&讨论Kaggle#
△长按添加竞赛小助手
每天大模型、算法竞赛、干货资讯
与36000+来自竞赛爱好者一起交流~


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录