微信扫码
添加专属顾问
介绍
大型语言模型(LLMs)的出现重塑了AI系统与世界互动和解释的方式。传统上,单个智能体架构被用来处理输入、做出决策并产生输出。然而,随着AI系统规模的扩大,以处理更多复杂、多步骤的任务,研究人员和开发人员越来越多地转向多智能体系统和先进的图结构架构。得益于LangChain和LangGraph等框架的支持,这些创新使得更加灵活、可扩展且协作的AI系统能够执行复杂的任务。
智能体与多智能体系统
AI中的智能体是一个能够感知其环境、做出决策并执行行动以达成目标的自主实体。
多智能体系统包括多个在联网环境中互动的自主智能体,以实现协作目标。相比于单个智能体架构,这些系统提供了若干优势:
协作:多个智能体可以汇集各自的优势,共同完成复杂的任务,从而产生更全面的结果。
可扩展性:随着工作负载的增长,添加新的智能体可以比扩展单个智能体的能力更有效地分配任务。
专业化:不同的智能体可以专攻特定任务,优化性能。例如,一个智能体可以处理语言解析,而另一个则执行计算或数据检索。
这些特性使得多智能体系统成为实现复杂、可扩展且稳健的AI解决方案的自然选择。
LangChain & LangGraph
LangChain:构建和管理复杂的LLM链
LangChain是一个开创性的框架,旨在促进LLM应用程序的开发,支持从创建到部署和监控的整个生命周期。LangChain的一个显著优势是它支持将多个LLM链接在一起处理复杂查询。这一链接概念允许一个模型的输出作为另一个模型的输入,从而实现在LLM之间进行阶梯式、模块化的决策过程。
LangChain使用有向无环图(DAGs)来构建这些链。在DAG架构中,LLMs在一个有向图中运行,每个节点代表一个特定的处理或决策过程,且没有可能导致无限循环的循环。这种架构特别适合处理日益复杂和多步骤的任务,因为它提供了从输入到输出的清晰线性路径。
LangGraph:增强适应能力的有状态智能体
基于LangChain的基础能力,LangGraph在基于图的架构中引入了有状态和适应性智能体。这种创新设计使智能体能够从迭代反馈中学习,适应动态环境,并应对日益复杂的挑战。通过利用图中的有向循环,LangGraph允许智能体随着时间的推移逐步改进其决策过程,有效地模拟人类通过经验学习的过程。
自适应学习:
LangGraph在其架构中引入了反馈循环,使智能体能够回顾并重新评估其先前的行为。通过分析过去的成果,这些智能体会改进策略,减少重复错误,并根据新数据或场景动态调整。这种反馈机制增强了系统的长期弹性和有效性。
处理复杂任务:
LangGraph采用“分而治之”的方法,将大型、多方面的复杂问题分解为较小、可管理的组件。专门化的智能体处理每个组件,并行工作以优化处理时间,并将错误隔离以防止连锁反应。这种模块化的方法使系统能够高效地处理复杂的多层目标。
状态管理:
强大的状态管理系统构成了LangGraph的基础,保留内存,随着动态更新而演变,并使智能体能够访问共享上下文。这确保了在任务之间的一致性,通过减少冗余来优化资源利用,并通过上下文相关的行为来增强决策。系统的有状态性支持长期学习,累积的经验随着时间的推移提高性能。
LangGraph将自适应学习、任务分解和全面的状态管理整合在一起,成为构建智能、可扩展且高效的系统以解决实际挑战的开创性解决方案。
LangGraph架构组件
LangGraph框架围绕三个关键组件构建,这些组件使复杂任务的自适应、有状态和模块化工作流程的创建成为可能。每个组件在整体架构中扮演着独特的作用:
节点:任务专门化的智能体
节点是LangGraph的基本构建块。每个节点代表一个自主智能体,设计用于执行特定功能,如处理数据、与API交互或进行决策。这些智能体独立运行,这意味着每个节点都专门用于其任务,并可在不同的配置中重复使用。例如,一个节点可能负责清理和标准化输入数据,而另一个节点可能生成图表或图形等视觉输出。这种模块化确保了复杂工作流程的灵活性和可扩展性。
边:定义动态交互
边形成了节点之间的连接,决定了数据和任务如何在图中流动。这些连接可以是静态的或条件性的,使系统能够根据其状态进行动态调整。例如,一个条件边可能会将进程导向工具节点,如果调用了特定工具或提供了最终答案则结束工作流。这种适应性使LangGraph能够响应上下文变化,优化资源使用,并确保任务的逻辑进展。
状态:共享内存框架
状态作为共享数据结构,捕获整个工作流程的进度。它充当“全局内存”,保留每个节点计算的结果,并在图中提供连续性。这种结构对于节点之间的协作至关重要,因为它允许智能体访问和构建先前的结果。状态使用模式来确定应保留的信息,并使用更新程序在每次计算后管理更新。这种设计确保了即使在涉及多智能体场景和迭代过程的情况下,系统也保持一致。
通过组合这些组件,LangGraph创建了一个稳健、模块化且适应性强的高级工作流程协调框架。它支持动态路由、有状态内存和任务特定的专门化。
应用场景
LangGraph是一个强大的框架,通过创建相互连接的智能体(或节点)图来实现复杂自动化和AI工作流程。以下是LangGraph可以有效应用的一些应用场景:
客户支持自动化:LangGraph可用于构建高级客户支持系统,通过将请求路由到专门的智能体之间来实现。这些智能体可以处理查询航班信息、更新预订和提供退款等任务。例如,一个智能体可以与航班数据库交互,基于客户的查询找到可用座位,而另一个智能体可以处理票务更新或取消。
知识检索和问答:LangGraph可以通过创建处理、分级和综合文档的智能体来自动化信息检索和评估。例如,检索智能体搜索相关文档,而分级智能体评估检索到的信息是否有效回答了用户的问题。这可以应用于如研究助手或基于内容的决策过程系统中。
构建具有记忆的自主智能体:LangGraph允许创建在交互中保留记忆的自我改进智能体。在自主系统中,智能体可以使用记忆模块来存储先前的经验,允许它们综合信息并随着时间的推移调整其行为。这种用例在个人助理应用中很有价值,智能体可以学习并适应用户的偏好。
业务流程自动化:LangGraph可以通过连接专注于不同任务的各种智能体来自动化多步骤业务流程。这些任务可以从处理用户请求到与外部API交互以及更新中央数据库。一个实用的例子是使用LangGraph在企业内部自动化工作流程,如管理客户订单、库存系统或资源分配。
其中一些应用场景由多智能体系统的支持实现。让我们简要地考察三种最重要的类型。
多智能体系统架构
实现多智能体系统(MAS)可以采取多种形式,这取决于任务的复杂性和要求:
协作架构:在这种架构中,两个或多个智能体协作以实现单一目标。它们可以访问共享工具,如API或数据库,以检索相关信息并生成协调响应。这适用于对单个智能体而言过于复杂但无需广泛协调的任务。
监督架构:在更为结构化的安排中,监督智能体负责监督和协调从属智能体的行为,确保每个组件任务正确执行。监督智能体评估输出,并可能根据从属智能体的进度调整工作流。这种方法在需要高可靠性和复杂决策的场景中很有价值。
分层架构:这种高级架构引入了多层智能体,每层专注于特定领域。在层级顶端,监督团队协调智能体组。这种方法可扩展、灵活,并反映了AI向更多自主决策系统发展的趋势。
LangGraph Studio
智能体框架的一个常见挑战是理解在智能体迭代过程中发生了什么。这就是 LangGraph Studio 发挥作用的地方。它提供了一个专门的智能体集成开发环境 (IDE),允许开发人员可视化、交互并调试复杂的智能体工作流。
借助其视觉图形和状态编辑功能,LangGraph Studio 帮助用户更好地理解智能体流程并加速迭代。它还与 LangSmith 集成,使团队成员能够协作调试故障模式。
以下是一个 LangGraph Studio 实际应用的示例。
实战
在这个实战教程中,我们将创建一个多智能体系统,该系统能够在线抓取数据并基于这些数据生成图表。我们将逐步定义智能体、工具以及将所有内容整合到一个功能工作流中的逻辑。让我们开始实现吧!
第一步:导入所需库
我们首先导入构建智能体和管理工作流所需的模块。
from langchain_core.messages import (BaseMessage,HumanMessage,ToolMessage,)from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholderfrom langgraph.graph import END, StateGraph
步骤2:创建智能体
智能体是一种能够使用工具来执行任务的助手。这里有一个可重用的函数来创建智能体:
def create_agent(llm, tools, system_message: str):"""Create an agent."""tool_names = ", ".join(tool.name for tool in tools)system_msg = ("You are a helpful AI assistant, collaborating with other assistants. Use the provided tools ""to progress towards answering the question. If you are unable to fully answer, that's OK, another ""assistant with different tools will help where you left off. Execute what you can to make progress. ""If you or any of the other assistants have the final answer or deliverable, prefix your response with ""FINAL ANSWER so the team knows to stop. You have access to the following tools, if you provide a tool ""call, you must choose one of the following tools, you can't provide a name that isn't in this list: ""{tool_names}.\n{system_message}")prompt = ChatPromptTemplate.from_messages([("system", system_msg),MessagesPlaceholder(variable_name="messages"),]).partial(system_message=system_message, tool_names=tool_names)return prompt | llm.bind_tools(tools)步骤3:定义工具
在这里,我们定义两个工具:一个用于在线搜索,另一个用于执行Python代码以生成图表。
from typing import Annotatedfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langchain_experimental.utilities import PythonREPL
# Search tooltavily_tool = TavilySearchResults(max_results=3)# Local Python code execution toolrepl = PythonREPL()@tooldef python_repl(code: Annotated[str, "The python code to execute to generate your chart."]):"""Execute python code. Print output to see the result, which will be visible to the user."""try:result = repl.run(code)return f"Successfully executed:\n```python\n{code}\n```\nStdout: {result}\n\nIf you have completed all tasks, respond with FINAL ANSWER."except BaseException as e:return f"Failed to execute. Error: {repr(e)}"步骤4:创建并连接智能体
我们定义了两个智能体:一个用于研究,另一个用于图表生成。每个智能体都配备了相应的工具。
from langchain_openai import ChatOpenAIimport functools
llm = ChatOpenAI(model="gpt-3.5-turbo")# Research agentresearch_agent = create_agent(llm,[tavily_tool],system_message="You should provide accurate data. You must invoke a tool name that is in the list of tools available; you can't use chart_generator as a tool name.",)research_node = functools.partial(agent_node, agent=research_agent, name="Researcher")# Chart generator agentchart_agent = create_agent(llm,[python_repl],system_message="Any charts you display will be visible by the user.",)chart_node = functools.partial(agent_node, agent=chart_agent, name="chart_generator")
步骤5:构建工作流
使用StateGraph,我们定义了一个动态工作流,允许智能体进行协作。
workflow = StateGraph(AgentState)
# Add nodes for agentsworkflow.add_node("Researcher", research_node)workflow.add_node("chart_generator", chart_node)workflow.add_node("call_tool", tool_node)# Add conditional edges between nodesworkflow.add_conditional_edges("Researcher",router,{"continue": "chart_generator", "call_tool": "call_tool", "__end__": END},)workflow.add_conditional_edges("chart_generator",router,{"continue": "Researcher", "call_tool": "call_tool", "__end__": END},)workflow.add_conditional_edges("call_tool",lambda x: x["sender"],{"Researcher": "Researcher", "chart_generator": "chart_generator"},)# Set entry pointworkflow.set_entry_point("Researcher")graph = workflow.compile()步骤6:调用系统
最后,我们通过提供人类的查询来调用系统。
from langchain_core.messages import HumanMessage
human_message = HumanMessage(content="Fetch the USA's GDP from 2015 to 2020, obtain data year by year, then draw a line graph of it. Once you code it up, finish.")# Stream events and visualize outputsevents = graph.stream({"messages": [human_message]},{"recursion_limit": 20},)for event in events:# Print messages from agentsfor message in event.get("messages", []):print(message)此工作流动态地协调智能体之间的任务,以实现预期的输出。尝试不同的查询和工具,探索此系统的全部潜力!
交互示例
现在,让我们来看一个基于用户请求的示例,该请求是获取美国2015年至2020年的GDP数据并创建图表来可视化这些数据。此示例展示了多智能体系统如何无缝地自动化数据检索和可视化。
研究者智能体在使用Tavily工具进行在线数据检索后,处理获得的信息并将其转发给图表生成器智能体。这确保了智能体之间的无缝协作,从而高效地满足用户的需求。
图表生成器智能体接收数据并编写生成图表所需的代码。通过动态创建可视化内容,它确保用户请求高效且精确地完成。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-26
拆解Agent Harness的11大核心组件与工程实践(附下载)
2026-06-05
让 Agent 快速上生产:基于 OceanBase 和 LangChain 打造的智能体系统解决方案发布
2026-05-19
90% 的 Agent 失败,不是框架不行,而是卡在 5 个工程问题
2026-05-14
用两行代码将 AgentRun 集成到你的应用
2026-05-06
LangChain 深度智能体(Deep Agents)入门
2026-04-19
万字讲透Agent Harness的十二大模块
2026-04-08
同一个模型,换个Harness排名跳了25位:智能体基础设施完全解剖
2026-03-28
LangChain的DeepAgents子代理实战:复杂任务为什么一定要交给 SubAgent
2026-04-19
2026-04-08
2026-05-06
2026-05-19
2026-05-14
2026-06-05
2026-06-26
2026-03-26
2025-11-03
2025-10-29
2025-07-14
2025-07-13
2025-07-05
2025-06-26
2025-06-13
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。