LangGraph中的Node节点
在LangGraph中,节点通常是Python函数(同步或异步),其中第一个位置参数是state,第二个位置参数(可选)是config,包含可选的可配置参数(例如thread_id)。START Node是一个特殊节点,表示将用户输入发送到图的节点。引用此节点的主要目的是确定哪些节点应首先被调用。节点是图中的核心执行单元,每个节点具有唯一名称,且可以是一个函数、可运行对象(Runnable)或La
节点是图中的核心执行单元,每个节点具有唯一名称,且可以是一个函数、可运行对象(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)

更多推荐

所有评论(0)