解锁 LangGraph:通过 3 个迷你程序学习图编程的基本思想

LangGraph 是一种将任务流程模块化的编程框架,通过状态图(StateGraph)构建灵活且高效的智能对话系统。本篇文章将通过 3 个迷你程序逐步深入 LangGraph 的图编程核心思想,帮助您快速上手并了解其实际应用潜力,初步了解 Agent 工作流控制的方法。


1. LangGraph 简介

LangGraph 是一种基于图的编程框架,用于组织和管理复杂任务的工作流。它的核心思想是将任务分解为“节点”(Node),并通过“边”(Edge)定义这些节点之间的逻辑关系。
相比于传统的线性流程控制,LangGraph 的图结构更适合处理动态任务分支、多任务协作等复杂场景。

主要优势包括:

  • 模块化设计:任务逻辑清晰且易于扩展。
  • 灵活的状态管理:通过图的结构实现动态任务切换和条件处理。
  • 多工具集成:支持接入外部工具和大模型(如 OpenAI 和 Google Gemini)。

2. 为什么选择 LangGraph?

在传统的对话系统中,开发者常常面临以下挑战:

  1. 任务分支逻辑复杂,难以维护;
  2. 多工具协作的集成成本高;
  3. 大规模上下文处理缺乏高效解决方案。

LangGraph 则通过状态图和内存管理等特性,解决了这些痛点。例如,LangGraph 支持通过条件逻辑选择合适的工具或模型,同时保留会话上下文,显著提升开发效率。


3. LangGraph 编程的 6 个基本步骤

  1. 定义任务的状态结构(State)。
  2. 创建各任务逻辑的节点函数(Node)。
  3. 初始化任务的状态图(StateGraph)。
  4. 定义节点之间的连接关系(Edge)。
  5. 添加内存管理或条件处理(可选)。
  6. 编译图并运行任务流。

4. 通过 3 个迷你程序掌握 LangGraph

以下我们设计了 3 个渐进式的迷你程序,涵盖基础对话、上下文记忆和工具调用等核心功能。


4.1 程序一:基础对话系统

目标:实现一个简单的聊天机器人,处理用户输入并返回回复。

from typing import Annotated, TypedDict
from langgraph.graph import StateGraph, START
from langgraph.graph.message import add_messages
from llm_utils import get_llm

# 定义状态类型
class State(TypedDict):
    messages: Annotated[list, add_messages]

def chatbot(state: State):
    """简单聊天机器人"""
    llm = get_llm()
    return {
   
   "messages": [llm.invoke(state["messages"])]}

# 创建并编译图
graph = (
    StateGraph(State)
    .add_node("chatbot", chatbot)
    .add_edge(START, "chatbot")
    .compile()
)

def chat():
    """运行聊天界面"""
    while True:
        user_input = input("User: ")
        if user_input.lower() in ["quit", "exit", "q"]:
            print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

surfirst

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

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

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

打赏作者

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

抵扣说明:

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

余额充值