langgraph使用尝试

一.什么是langgraph

   langgraph 是 LangChain 生态中用于构建状态 ful、多步骤、分支化 AI 工作流的图结构引擎,核心是通过 “节点” 和 “边” 的组合,实现复杂任务的自动化编排,比如智能体(Agent)的决策流程、多工具协同、RAG 检索链等场景。

二.核心概念

概念作用
节点(Node)工作流的执行单元,可是函数、LLM 调用、工具调用等,输入 / 输出为 “状态(State)”。
边(Edge)节点间的流转规则,支持无条件跳转条件分支(如 if-else 逻辑)。
状态(State)全局共享的数据存储(字典或自定义对象),存储任务输入、中间结果、节点输出等。
图(Graph)由节点和边组成的完整工作流,支持循环、并行、分支等复杂逻辑。

三.核心特性

  1. 图结构编排:用节点拆分任务,用边定义流程,支持灵活的分支(条件判断)、循环(重复执行)、并行(多节点同时运行)。
  2. 状态管理:全局状态贯穿整个工作流,节点可读取 / 修改状态,无需手动传递参数。
  3. 兼容性强:无缝集成 LangChain 的 LLM、工具、RAG 组件,也支持自定义函数作为节点。
  4. 可视化调试:可导出工作流为 Mermaid 图,直观查看节点关系和执行路径。

四.使用尝试

1.构建基础python工程,安装

pip install langgraph

2.引入demo依赖包

import sys
import io
# 设置标准输出编码为UTF-8,解决Windows中文乱码问题
if sys.platform == 'win32':
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
    sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')

from IPython.display import Image, display
from langgraph.constants import START, END
from langgraph.graph import StateGraph
from langgraph.graph.state import CompiledStateGraph
from typing_extensions import TypedDict
import threading
import time
from apscheduler.schedulers.blocking import BlockingScheduler

3.定义状态类(节点之间传递信息使用)

# 1. 定义状态
class EventState(TypedDict):

    count_status: int  #累计计数状态
    is_end: bool  # 是否结束

4.定义节点函数

def first_node(state: EventState) -> EventState:

    state["count_status"] += 1

    print("当前计数状态:", state["count_status"])

    if state["count_status"] >= 100:
        state["is_end"] = True

    return state

def second_node(state: EventState) -> EventState:

    state["count_status"] += 2

    print("当前计数状态:", state["count_status"])

    if state["count_status"] >= 100:
        state["is_end"] = True

    return state

def third_node(state: EventState) -> EventState:

    state["count_status"] += 3

    print("当前计数状态:", state["count_status"])

    if state["count_status"] >= 100:
        state["is_end"] = True

    return state

5.定义判断函数(用作图的判断分支)

def should_continue(state):
    # state 是当前工作流的状态(字典或自定义对象)
    if state["is_end"]:
        return "finish"  # 如果结束,返回finish
    else:
        return "continue" 

6.定义图

    # 创建事件流
    graph = StateGraph(EventState)
    graph.add_node("first_node", first_node)
    graph.add_node("second_node", second_node)
    graph.add_node("third_node", third_node)
    graph.add_edge(START, "first_node")

    graph.add_conditional_edges(
        "first_node",  
        should_continue,  # 判断函数
        {
            "continue": "second_node",
            "finish": END, 
        })

    graph.add_conditional_edges(
        "second_node",  
        should_continue,  # 判断函数
        {
            "continue": "third_node",
            "finish": END, 
        })


    graph.add_conditional_edges(
    "third_node",  
    should_continue,  # 判断函数
    {
        "continue": "first_node",
        "finish": END, 
    })

7.图的运行结构如下

8.运行

print("开始执行事件流")

# 初始化状态
state = {"count_status": 0, "is_end": False}

graph = graph.compile()

graph.invoke(state, config={"recursion_limit": 200})

9.运行结果如下:

五.结论

        大家发现我们通过langgraph可以非常方便地创建智能体工作流,相对dify等工具更加智能化,动态化。

要安装 `langgraph` 库,可以使用 Python 的包管理工具 `pip` 来完成。以下是详细的安装步骤: 1. 确保你的系统上安装了 Python 3.7 或更高版本。你可以通过访问 [Python 官方网站](https://www.python.org/downloads/) 下载并安装最新版本的 Python。 2. 确认 `pip` 已经安装。通常情况下,当你安装了 Python,`pip` 也会一并安装。你可以通过运行以下命令来检查 `pip` 是否已经安装: ```bash pip --version ``` 3. 如果没有安装 `pip`,请按照官方文档中的指导进行安装。 4. 使用 `pip` 安装 `langgraph`。打开终端或命令行工具,并执行以下命令: ```bash pip install langgraph ``` 5. 安装完成后,你可以验证 `langgraph` 是否成功安装,可以通过尝试导入它来测试: ```python import langgraph print(langgraph.__version__) ``` 如果在安装过程中遇到任何问题,比如在 Ubuntu 上出现 `langgraph: command not found` 的错误信息,这可能意味着 `langgraph` 没有正确安装或者其可执行文件路径没有被加入到系统的环境变量中。此时,你应该检查 `pip` 安装的目录是否已经添加到了你的 PATH 环境变量中,或者尝试使用 `python -m` 来运行相关模块。 如果你需要开发模式下的 `langgraph`,即想要获取源代码并从仓库克隆后进行安装,那么你需要先克隆项目仓库,然后进入项目目录,最后使用 `pip` 安装依赖项和开发版本的 `langgraph`。具体步骤如下: 1. 克隆项目仓库(假设你已经获得了正确的仓库 URL): ```bash git clone <repository-url> ``` 2. 进入项目目录: ```bash cd <project-directory> ``` 3. 安装所需的依赖项以及开发版本的 `langgraph`: ```bash pip install -r requirements.txt pip install -e . ``` 这样你就可以得到一个可工作的 `langgraph` 开发环境了。 请确保在安装任何 Python 包之前激活了适当的虚拟环境(如果使用的话),以避免与系统级 Python 包发生冲突。[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边草随风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值