当前位置: 首页 > news >正文

LangGraph基础教程(1)---LangGraph的简介

先介绍一下什么是图结构
线性结构: 1对1 除了首尾节点外,其他节点有且仅有前节点和后节点,有序,有明确的 “起点” 和 “终点”

树形结构: 存在一个唯一的 “根节点”(首节点),其他节点有且仅有一个父节点,但可有多个子节点(最底层节点称为 “叶子节点”,无子节点)
节点分属不同层级,体现 “上下级” 关系。层级分明、无交叉依赖

图结构: 图结构是最灵活的数据结构,元素(节点)之间可以是 “多对多” 的任意关联 ,甚至可以直接与自身关联(自环),节点之间的关系不受层级或顺序约束,可自由连接;

图的核心结构

  • 节点(Node): 是图的基本单元,可表示任何实体(如数据、任务、智能体、工具等)
  • 边(Edge): 连接两个节点的线段,代表节点之间的关系或交互规则;

根据边的 “方向性” 和 “约束条件”,图结构可分为多种类型: 有向图,无向图,简单图,多重图,完全图等,与 LangGraph 关联最紧密的是有向图和有向循环图

  • 无向图(Undirected Graph): 边没有方向,节点之间的关系是双向的。例如:社交网络中 “互为好友” 的关系(A 是 B 的好友,等价于 B 是 A 的好友)。
  • 有向图(Directed Graph):有明确的方向(用箭头表示),节点之间的关系是单向的,LangGraph 中的工作流(“生成文本” 节点 → “审核文本” 节点,方向固定,必须先生成再审核)
  • 有向循环图(Directed Cyclic Graph, DCG): 属于有向图的一种,允许从一个节点出发,经过若干条边后回到原节点(形成 “循环”)。这是 LangGraph 处理复杂任务的关键特性:
    例如:在 “文本优化” 流程中,“生成初稿”→“评估质量”→ 若不达标则 “返回修改”(循环回 “生成初稿” 节点),直到质量合格后进入 “定稿” 节点。

图的关键特性:
路径(Path): 从一个节点到另一个节点的连续边序列。在 LangGraph 中,路径代表任务的执行流程。
权重(Weight): 边可以附加数值(权重),表示关系的强度、成本或优先级。
连通性(Connectivity): 描述节点之间是否可达。在工作流中,需确保关键节点(如 “最终输出”)是可抵达的,避免流程 “卡死”。

在 LangGraph 中,图结构是工作流的 “骨架”:
节点对应具体操作(如 LLM 调用、工具调用、人工干预);
有向边定义操作的执行顺序和条件(如 “若检测到用户问天气,则跳转至天气 API 调用节点”);
循环图支持任务迭代(如 “多次优化回答直到符合格式要求”)。
这种设计让 LangGraph 能突破传统线性工作流的限制,灵活应对多步骤、动态调整的复杂任务(如多轮对话、科研自动化、金融风控等)。

langgraph的核心组件: 构件图结构的基本单元
LangGraph 的图结构由 3 个核心组件 构成,它们共同定义了工作流的 “骨架” 和 “数据载体”

  1. 节点(Nodes):任务的执行单元
    节点是图中最基础的操作载体,封装了具体的逻辑或功能,相当于工作流中的 “步骤”。
类型:
工具调用节点:调用外部工具(如 API、数据库、计算器),例如 “调用天气 API 获取实时温度”。
LLM 节点:调用大语言模型(如 GPT-4、Claude)生成文本,例如 “根据用户问题生成回答初稿”。
逻辑处理节点:执行自定义代码(如数据清洗、格式校验),例如 “检查 LLM 输出是否包含敏感词”。
人工节点:暂停流程等待人工输入(如 “需人工审核高风险内容”)。
特性:节点是 “黑盒”,仅通过输入(状态中的数据)和输出(更新状态)与外部交互,便于模块化复用。
  1. 边(Edges):节点间的 “流转规则”
    边定义了节点之间的连接关系,决定了 “执行完当前节点后,下一步该去哪里”,是图结构灵活性的核心。
类型:
无条件边:固定指向某一节点,例如 “生成初稿后必走审核节点”。
条件边:根据状态中的数据动态选择下一个节点,例如 “若审核通过则进入输出节点,否则返回修改节点”。
循环边:允许从节点 A 跳转回节点 B 形成闭环,例如 “修改后重新进入审核节点,直到通过”。
  1. 状态(State):全局的 “数据容器”
    状态是贯穿整个图结构的全局数据存储,用于在节点间传递信息(如上下文、工具结果、中间结论),避免 “失忆”。
核心作用:存储输入输出:例如用户问题、LLM 生成的文本、工具调用的返回值。记录流程信息:例如当前步骤、已执行的节点列表、错误日志。驱动边的决策:条件边的判断依赖状态中的数据(如 state["novelty_score"])。
特性:可持久化:支持内存、文件或数据库(如 Redis)存储,确保流程中断后可恢复。可扩展:通过类定义自定义状态结构(如 class AgentState: messages: list; tool_results: dict)。

核心功能:图结构带来的 “能力突破”
基于上述组件,LangGraph 实现了传统线性工作流(如单一 LangChain 链)难以支持的复杂功能

  1. 动态工作流编排:突破 “线性限制”
    通过图结构的分支、循环和并行能力,支持 “非固定流程” 的任务规划。
场景示例:
多分支:用户问 “天气 + 推荐餐厅” 时,工作流自动拆分为 “天气查询节点” 和 “餐厅推荐节点” 并行执行,最后合并结果。
循环迭代:学术论文生成中,“初稿生成→查重→修改” 的循环可重复执行,直到查重率低于阈值。
  1. 状态自动化管理:解决 “上下文丢失” 问题
    状态在节点间自动传递并更新,确保所有节点共享全局信息,无需手动传递参数。

  2. 多智能体协作:支持 “分工与协同”
    允许多个独立智能体(如 “检索 Agent”“分析 Agent”“写作 Agent”)通过共享状态协作完成任务。

  3. 人类在环(Human-in-the-Loop):平衡 “自动化与可控性”
    支持在关键节点插入人工干预,避免 AI 自主决策的风险。

实现方式:
定义 “人工节点”,执行到此时流程暂停,通过 API 或 UI 通知人工审核。
人工输入(如 “同意发布”“修改建议”)写入状态后,流程自动继续。
场景:医疗诊断报告生成(需医生确认)、合同条款审核(需法务校验)。
  1. 与 LangChain 生态深度集成:降低 “开发成本”
    复用 LangChain 的工具集、模型接口和记忆模块,无需重复造轮子。
  2. 可观测性与可回溯:提升 “系统可靠性”
    支持记录工作流的完整执行路径和状态快照,便于问题排查和优化。
核心能力:执行日志:记录每个节点的输入、输出、耗时和错误信息。状态回溯:通过 “时间旅行” 功能查看任意步骤的状态数据,定位流程卡点。批量测试:通过 LangSmith 批量运行测试用例,验证不同输入下的流程稳定性。
http://www.dtcms.com/a/581454.html

相关文章:

  • IDEA + Spring Boot 的三种热加载方案
  • 有哪些摄影网站甘肃省建设厅官网
  • presto安装与使用
  • 信息论(三):霍夫曼编码
  • 002-GD32L235KBQ6 Keil工程移植J-Link RTT
  • 手机网站建设 苏州企石镇做网站
  • java的设计模式之桥接模式(Bridge)
  • 【Unity踩坑】Error MSB3774: 找不到 SDK“WindowsMobile, Version=10.0.26100.0
  • 网站二维码可以做长按识别吗深圳专业网站建设制作价格低
  • 图片优化 上传图片压缩 npm包支持vue(react)框架开源插件 支持在线与本地
  • React Native CLI的搭建
  • 世界互联网大会乌镇峰会:共话数字未来新可能
  • TeamCity更新包
  • 第8届 AiDD峰会 深圳 | “AI+领域”线:解锁未来科技新图景
  • 网站搭建服务器需要多少钱网站运营seo招聘
  • 结构自由度
  • Effective Python 第49条:用__init_subclass__记录现有的子类
  • 《PLC编程与MES系统开发学习指南》详细大纲
  • AbMole小课堂丨L-NAME:一氧化氮合酶(NOS)经典抑制剂在心血管及免疫研究中的应用
  • 【AI入门】通俗易懂讲AI(初稿)
  • 静力水准仪监测核心原理:如何实现高精度沉降监测?
  • 谷歌网站为何打不开网站栏目定位
  • 基于西门子1500仿真软件PLCSIM Advanced 7.0的本机Modbus TCP通信实例之Modbus TCP Sever建立(一)
  • 虫虫wap建站源码the7企业中 英文wordpress模板
  • PHP 表单验证
  • 6-6〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸利用Windows库文件进行攻击-2
  • SSM文创产品推荐系统设计与实现95ml5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • WebSocket 核心 API 速查表
  • 多功能电脑PDF转换工具Icecream PDFv3.15 中文绿色便携版
  • 在线ftp传网站文件有空间域名服务器怎么做网站