行业资讯
LangGraph原理逻辑-多智能体架构(一)
LangGraph的底层原理一、速了解LangGraph二、 LangGraph到底是干什么的?三、快速体验LangChain与LangGraph3.1. 代码对比 基础3.2. 代码对比 添加工具总结一、速了解LangGraphLangGraph是一个功能非常强大的大语言模型本地应用构建框架。不只是包含了各种基于大语言模型构建本地应用的工具更重要的是他积累了非常多使用大语言模型构建本地应用构建经验并且将这些经验总结成了非常多的案例让大家可以直接使用。但是LangGraph并不是一个独立的框架他是LangChain框架的一个生态组。LangChain的基础的并且最好是看过我之前分享的LangChain视频。所以如果脱离LangChain来介绍LangGraph那纯粹是耍流氓。件。因此后面的内容是预设大家有LangChain的基础的并且最好是看过我之前分享的LangChain视频。目标理解LangGraph与LangChain理解Agent智能体.理解智能体编排如何部署LangChain应用核心概念Agent智能体在 LangChain/LangGraph 语境中Agent 是一个能够感知环境、进行决策并执行动作如调用工具、查询数据的软件实体。它通常由一个大语言模型LLM驱动能够理解用户意图、规划步骤并自主完成任务。智能体编排指对多个 Agent 或单个 Agent 内部不同步骤思考、行动、观察进行协调与调度的过程。LangGraph 的核心能力就是通过图Graph结构来定义和运行这种编排逻辑确保任务按照预定流程高效、可靠地执行。二、 LangGraph到底是干什么的?LangChain,官网地址: 链接 。一个用于开发由大语言模型LLM提供支持的应用程序的框架。简单来说就是一个用LLM快速构建本地的框架。使用的版本是V0.3。后续内容也以这个版本为准。在LangChain中,除了LangChain外,还有LangGraph、LangSmith等一系列的生态组件。三、快速体验LangChain与LangGraphLangGraph和LangChain都是用于构建和管理大型语言模型应用的工具它们都提供了一种简单易用的方式来构建和管理复杂的应用程序。只不过LangChain更关注于应用程序的流程而LangGraph更关注于如何处理特定的任务。关于LangGraph的细节在后溪章节中会详细介绍。这里我们先用最简单直[白的方式来对比一下LangChain和LangGraph在和大语言模型做交互时的基础思想有什么区别。要使用LangGraph首先需要安装LangGraph的依赖库pip install langgraph # 后面的案例中会用到langchain所以同时也安装下langchain的依赖 pip install langchain pip install langchain_community3.1. 代码对比 基础LangChainimport# 制定OpenAI的API_KEY。ifnotos.environ.get(OPENAI_API_KEY):os.environ[OPENAI_API_KEY]load_key(OPENAI_API_KEY)fromlangchain.chat_modelsimportinit_chat_model#创建访问OpenAI的Model.# model init_chat_model(gpt-4o-mini,model_provideropenai)#openai在国内是无法直接访问的需要科学上网。这里指定base_Url是因为使用的是openai的国内代理2233.ai。model init_chat model( gpt-4o-mini,model _provideropenai,base _Urlhttps://api.gptsapi.net/v1)model.invoke(你是谁?能帮我解决什么问题?)LangGraphfromlanggraph.prebuiltimportcreate_react_agent agentcreate_react_agent(modelmodel,tools[],promptYou are a helpful assistantagent.invoke({messages:[{role:user,content:你是谁?能帮我解决什么问题?}]})3.2. 代码对比 添加工具LangChain# 定义工具 注意要添加注释tooldefget_current_date():获取今天日期.returndatetime.datetime.today().strftime(%Y-%m-%d)#大模型绑定工具llm_with_toolsllm.bind_tools([get_current_date])#工具容器all_tools{get_current_date:get_current_date}#把所有消息存到一起query今天是几月几号messages[query]#询问大模型。大模型会判断需要调用工具并返回一个工具调用请求ai_msg llm_with_tools.invoke(messages)ai_msgprint(ai_msg)messages.append(ai_msg)#打印需要调用的工具Xm_witiprint(ai_msg.tool_calls)ifai_msg.tool_calls:fortool_callinai_msg.tool_calls:selected_toolall_tools[tool_call[name].lower()]tool_msgselected_tool.invoke(tool_call)messages.append(tool_msg)llm_with_tools.invoke(messages).contentLangGraphfromlanggraph.prebuiltimportcreate_react_agent agentcreate_react_agent(modelllm,tools[get_current_date],promptYou are a helpful assistant,agent.invoke({messages:[{role:user,content:今天是几月几号}]})总结通过以上两个简单的代码对比我们可以直观地感受到 LangGraph 与 LangChain 在设计哲学上的差异LangChain更像一个流程编排器。它提供了丰富的组件如模型、工具、记忆、链等并允许你通过链Chain的方式将它们串联起来构建复杂的应用工作流。开发者需要显式地定义每一步的输入、输出和连接关系控制权较高适合构建结构清晰、步骤固定的应用。LangGraph则是一个智能体Agent运行时与编排框架。它的核心是“图”Graph用于定义智能体的状态和决策节点如思考、执行工具、观察结果。create_react_agent这样的预构建智能体封装了 ReAct推理行动等经典模式开发者只需提供模型和工具LangGraph 会自动管理智能体的推理循环、状态转移和工具调用。这大大简化了构建自主决策型 Agent 的复杂度。简单来说LangChain 帮你组装流水线LangGraph 帮你驱动一个会自己思考的智能体。在后续章节中我们将深入 LangGraph 的图结构、状态管理和更复杂的多智能体编排场景。
郑州网站建设
网页设计
企业官网