【AI Agent系列】【LangGraph】0. 快速上手:协同LangChain,LangGraph帮你用图结构轻松构建多智能体应用

简介: 【AI Agent系列】【LangGraph】0. 快速上手:协同LangChain,LangGraph帮你用图结构轻松构建多智能体应用
  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:


目前为止,我已经系统学习过AutoGPT和MetaGPT两款智能体框架了。今天来看下另一个多智能体框架:LangGraph。

0. 简介

LangGraph 是在 LangChain 的基础上实现的一个多智能体的运行框架。它扩展了LangChain表达式语言,能够以循环的方式在多个计算步骤中协调多个链(或参与者)。

再详细一点就是:LangChain以及它的表达式语言(LCEL)为开发者构建自定义的链提供了技术支持。从图的角度来看,这种链是有向无环图(DAG)。而在实际的应用场景中,用户会期望构建有环图(cyclic graph)。这就是 LangGraph 存在的意义:帮助用户更好更方便地构建有环图。

LangGraph的核心概念之一是状态。每次图的执行都会创建一个状态,该状态在图中的节点之间传递,每个节点在执行后都会更新此状态。所以,LangGraph呈现的是类似状态机(state machine)的机制。

1. 快速上手

1.1 安装 LangGraph

pip install langgraph

1.2 体验一把 - 上手Demo

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from langgraph.graph import END, MessageGraph
model = ChatOpenAI(temperature=0)
graph = MessageGraph()
graph.add_node("oracle", model)
graph.add_edge("oracle", END)
graph.set_entry_point("oracle")
runnable = graph.compile()
response = runnable.invoke(HumanMessage("1 + 1 等于几?"))
print(response)

输出结果:

1.3 Demo代码详解

1.3.1 LangGraph 使用步骤解析

小小体验了一把之后,下面我们来看看其基本的用法。

(1)首先创建一个图:graph = MessageGraph()

(2)然后,往图中添加节点:graph.add_node("oracle", model),这个节点的名字叫"oracle",节点的内容是 model,也就是OpenAI大模型的接口封装。

(3)再然后,添加边:graph.add_edge("oracle", END),添加了一条从 “oracle” 到 END 的边。END 是内置的节点,结束的意思。

(4)再然后,添加进入节点:graph.set_entry_point("oracle")

(5)编译图:runnable = graph.compile()complile函数,将图固化下来,就不能再改了。

(6)运行:我们熟悉的 invoke 函数

总结一下步骤:创建图 —> 添加节点 —> 添加边 —> 设置从哪个节点开始运行 —> 编译图 —> 运行。

步骤很清晰,图的生成过程也很简单,就是图的基本元素的创建:节点和边。

1.3.2 从运行结果看 LangGraph 的状态是什么

再看下运行结果(上图),它包含了 HumanMessage 和 AIMessage。这就是所谓的状态传递。输入是HumanMessage,写到状态里传递给 oracle node,然后执行,oracle node返回结果,这个结果更新到状态里,传递给END,END输出最终的状态。

所以,LangGraph 的状态(State)就是一系列 Message 的列表。

1.4 node的形式

上面的node,我们添加的是一个model:graph.add_node("oracle", model)

它其实也可以是一个函数:

def call_oracle(messages: list):
    return model.invoke(message)
graph.add_node("oracle", call_oracle)

1.4.1 node 能不能是一个 Chain ?

思考一个问题:能否用一个Chain作为一个node添加进LangGraph中呢?比如我有下面一个Chain:

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant named {name} who always speaks in pirate dialect"),
    MessagesPlaceholder(variable_name="messages"),
])
chain = prompt | model

我能否把这个chain通过 add_node 添加到图中?就像这样:graph.add_node("oracle", chain)

我的理解:node不能添加一个Chain,因为Chain接收的输入是一个Dict字典类型,而node之间传递的是State,State是一个List,不是Dict。

2. 参考

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
1天前
|
人工智能 搜索推荐
【AI 生成式】描述生成式 AI 在医疗保健和药物发现中的应用
【5月更文挑战第4天】【AI 生成式】描述生成式 AI 在医疗保健和药物发现中的应用
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI 生成式】强化学习如何应用于生成式 AI?
【5月更文挑战第4天】【AI 生成式】强化学习如何应用于生成式 AI?
|
2天前
|
机器学习/深度学习 人工智能 监控
【AI 场景】如何应用人工智能来增强企业网络的网络安全?
【5月更文挑战第4天】【AI 场景】如何应用人工智能来增强企业网络的网络安全?
|
2天前
|
传感器 人工智能 供应链
【AI 场景】如何应用 AI 来优化供应链管理
【5月更文挑战第3天】【AI 场景】如何应用 AI 来优化供应链管理
【AI 场景】如何应用 AI 来优化供应链管理
|
4天前
|
数据采集 机器学习/深度学习 人工智能
探索AI在软件测试中的应用与挑战
【5月更文挑战第2天】本文将探讨人工智能(AI)在软件测试领域的应用及其带来的挑战。我们将详细讨论AI如何改变软件测试的方式,包括自动化测试、预测性测试、智能化缺陷检测等。同时,我们也将探讨AI在软件测试中面临的挑战,如数据质量问题、模型的可解释性、以及对现有测试流程的影响等。
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:AI驱动的自适应学习系统
【4月更文挑战第30天】 随着人工智能技术的迅猛发展,教育领域正经历一场由AI驱动的变革。本文将探讨一个新兴的研究领域——自适应学习系统。这种系统通过利用机器学习算法和大数据分析,能够根据学生的学习习惯、知识水平和兴趣点提供个性化的教学方案。我们首先介绍自适应学习系统的基本概念及其在现代教育中的重要性,然后详细阐述其工作原理及关键技术,包括数据挖掘、模式识别和自然语言处理等。最后,文章将分析当前自适应学习系统面临的挑战,并提出未来的发展趋势。
|
5天前
|
人工智能 运维 自然语言处理
构建高效自动化运维体系:DevOps与AI的融合之路
【4月更文挑战第30天】在数字化转型的大潮中,企业IT基础设施的复杂性日益增加,传统的运维模式已难以满足快速变化的业务需求。本文深入探讨了如何通过融合DevOps和人工智能(AI)技术构建一个高效、自动化的运维体系。文章首先概述了现代运维面临的挑战,接着分析了DevOps的核心理念以及AI如何在故障预测、智能决策支持等方面提升运维效率。最后,本文提出了一个具体的实施框架,并讨论了在推进过程中可能遇到的挑战及应对策略。
|
5天前
|
数据采集 机器学习/深度学习 人工智能
自动化测试中AI辅助技术的应用与挑战
【4月更文挑战第30天】随着人工智能(AI)技术的飞速发展,其在软件自动化测试领域的应用日益增多。本文探讨了AI辅助技术在自动化测试中的应用情况,包括智能化测试用例生成、测试执行监控、缺陷预测及测试结果分析等方面。同时,文章还分析了在融合AI技术时所面临的挑战,如数据质量要求、模型的透明度与解释性问题以及技术整合成本等,并提出了相应的解决策略。
|
5天前
|
机器学习/深度学习 人工智能 搜索推荐
构建未来:AI驱动的自适应教育平台
【4月更文挑战第30天】 随着人工智能技术的迅猛发展,其在教育领域的应用正逐步从理论探索走向实践落地。本文将详细阐述一个基于AI技术的自适应学习平台的设计理念、核心功能以及潜在影响。该平台利用机器学习算法分析学生的学习行为和成绩,动态调整教学内容和策略,以实现个性化教学。研究结果表明,AI辅助的自适应学习能够显著提高学习效率,同时为教师提供强有力的教学辅助工具。
|
6天前
|
机器学习/深度学习 人工智能 监控
构建未来:利用AI技术优化城市交通系统
【4月更文挑战第30天】 在快速发展的城市环境中,交通拥堵已成为一个日益严重的问题。随着人工智能(AI)技术的不断进步,其在交通管理领域的应用展现出了巨大潜力。本文将探讨如何通过集成机器学习、深度学习和大数据分析等AI技术来优化城市交通系统。我们将讨论智能交通信号控制、实时交通流量监控、预测模型以及自动驾驶车辆如何共同作用于缓解交通压力,提升道路使用效率,并最终实现智能、可持续的交通生态系统。