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

15 langgraph基本组件

好的,以下是 LangGraph 核心六大组件(1~6) 的详细、深入、结构化说明,剔除了子图与可视化等高级/辅助内容,专注于基础构建块的理解与使用。


1. State(状态)

1.1 定义与作用

  • State 是整个工作流的共享上下文,所有节点读取和更新它。
  • 它决定了“系统当前知道什么”以及“下一步能做什么”。
  • 所有节点函数接收 State 作为输入,并返回一个局部更新字典,框架自动将其合并到全局状态中。

1.2 类型定义方式

(1) 使用 TypedDict(推荐)
from typing import TypedDict, Annotated
import operatorclass AgentState(TypedDict):messages: Annotated[list, operator.add]   # 消息历史自动追加current_plan: str                         # 当前计划(覆盖式更新)tool_attempts: int                        # 工具调用次数
(2) 使用 Pydantic BaseModel(实验性支持)

注意:截至 LangGraph v0.1.x,官方更推荐 TypedDict + Annotated,因底层依赖对字典操作优化更好。

1.3 字段更新语义(Reducer)

LangGraph 通过 reducer 函数决定如何合并节点返回值到状态:

更新方式 写法 行为
覆盖(默认) field: str 新值直接替换旧值
追加列表 Annotated[list, operator.add] state['field'] += new_value
自定义 reducer Annotated[MyType, my_reducer] 调用 my_reducer(old, new)

✅ 示例:messages 字段通常用 operator.add,确保多轮对话消息累积而非丢失。

1.4 最佳实践

  • 状态应尽量扁平,避免深层嵌套(便于调试和 reducer 设计)。
  • 所有节点必须只通过返回 dict 修改状态,禁止直接修改传入的 state 对象(因可能被缓存或并行处理)。

2. Node(节点)

2.1 基本概念

  • 节点是纯函数(或可调用对象),代表一个逻辑步骤。
  • 输入:当前完整 State
  • 输出:dict,表示对状态的增量更新

2.2 节点函数签名

def my_node(state: StateType) -> dict:# 读取 statelast_msg = state
http://www.dtcms.com/a/581495.html

相关文章:

  • 网站开发答辩ppt上海网站排名
  • LeetCode 面试经典 150_二叉树_翻转二叉树(69_226_C++_简单)(DFS)
  • 【PLM实施专家宝典】离散制造企业ECO管理优化方案:构建自动化、零错误的变更引擎
  • go tool command
  • 网站流量如何做cms网站开发流程
  • HTML ASCII 编码解析与应用
  • Javascript函数之函数的参数以及默认参数?
  • LNMP部署及应用
  • 优质做网站哪家正规wordpress附件修复
  • Java-HTTP响应以及HTTPS(下)
  • [人工智能-大模型-135]:词向量的演进,对词向量的对Transformer架构理解的前提与关键。
  • 【1Panel】1、安装1Panel
  • JAVA:Spring Boot3 新特性解析的技术指南
  • 数据结构系列之十大排序算法
  • Spring Boot接收前端参数的注解总结
  • .c .o .a .elf .a2l hex map 这些后缀文件的互相之间的联系和作用
  • 纯静态网站seowordpress内页模板
  • 包装公司网站模板下载哈尔滨网络seo公司
  • 基于协同过滤算法的小说推荐系统_django+spider
  • VSCODE 插件 rust-analyzer 使用遇到的问题 快捷键查看定义
  • 个人网页设计制作网站模板西宁做网站制作的公司
  • Ubuntu24.10禁用该源...+vmware无法复制黏贴“天坑闭环”——从 DNS 诡异解析到 Ubuntu EOL 引发的 apt 404排除折腾记
  • npm i / npm install 卡死不动解决方法
  • 安装GPT4Free(也就是g4f)的最新版:g4f-6.5.7
  • h5四合一网站建设做新闻的网站怎样赚钱
  • SG-CAN-4G-410(4 路 CAN 转 4G 网关)
  • 潍坊做网站的做网站销售一个星期的计划
  • Spring三级缓存通俗易懂讲解
  • Windows10/Windows11家庭版系统关闭自动更新
  • 基于 Flink CDC 的 MySQL → Kafka Streaming ELT 实战