节点是图中的核心执行单元,每个节点具有唯一名称,且可以是一个函数、可运行对象(Runnable)或LangChain表达式。

  • 节点接收字典类型的状态数据,返回更新后的相同结构的状态。
  • 特殊节点END表示状态机的终止点,流程执行到此结束。

Nodes节点的行为规则:

  • 节点的输入和输出需严格遵循state_schema定义的状态结构。
  • 节点可通过调用模型(如LLM)生成结果,并更新状态中的特定字段。

#添加节点

#graph.add_node(name,value)

#name是节点的名称str

#value是节点的值,是一个函数或者LCELrunnable

#一个model,暂时理解为调用大模型,Reasoning的过程

def model():

    return"model"

#一个tool_executor,理解为Acting的过程

def tool_executor():

    return"tool_executor"

graph.add_node("model",model)

graph.add_node("tools",tool_executor)

#还有一个特殊的节点,叫End,表示StateGraph的结束状态

from langgraph.graph import END

在LangGraph中,节点通常是Python函数(同步或异步),其中第一个位置参数是state,第二个位置参数(可选)是config,包含可选的可配置参数(例如thread_id)。下面展示添加不同的自定义节点的代码:

from langchain_core.runnables import RunnableConfig

from langgraph.graph import StateGraph

builder=StateGraph(dict)

def my_node(state:dict,config:RunnableConfig):

    print("Innode:",config["configurable"]["user_id"])

    return{"results":f"Hello,{state['input']}!"}

#第二个参数是可选的

def my_other_node(state:dict):

    return state

builder.add_node("my_node",my_node)

builder.add_node("other_node",my_other_node)

1. START Node(开始节点)

前面我们还讲解了START Node。START Node是一个特殊节点,表示将用户输入发送到图的节点。引用此节点的主要目的是确定哪些节点应首先被调用。

from langgraph.graph import START

graph.add_edge(START,"node_a")

2. END Node(结束节点)

END Node是一个特殊节点,表示一个结束节点。当你想表示某些边在完成后没有进一步操作时,可以引用此节点。

from langgraph.graph import END

graph.add_edge("node_a",END)

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐