本文最后更新于10 天前,其中的信息可能已经过时,如有错误请发送邮件到 2915475627@qq.com
LangGraph 基本概念
LangGraph 是 LangChain 一个公司发布的多智能体框架,其机制有点像状态机。核心组件有 Node(节点),Graph(图)。
Node(节点)
节点可以是一个 api ,一个函数,一次 LLM 调用,或者其他操作。需要满足一个输入,一个输出的要求。
Graph(图)
图是 节点 以及 连接关系 的集合,定义信息如何从一个节点到另一个节点。典型的有分支,循环。
jupyter 实战
以下为 .ipynb 文件导出为 markdown
装一下依赖
! uv pip install langgraph
[2mAudited [1m1 package[0m [2min 23ms[0m[0m
定义结构
定义 state
from langchain_core.messages import AnyMessage
from typing_extensions import TypedDict
#定义节点间通讯消息格式,类似于Java里的Context上下文
class State(TypedDict):
messages:list[AnyMessage];
extra_fleid:int;
定义Node
from langchain_core.messages import AIMessage
def node(state:State):
messages=state['messages']
new_message=AIMessage("Hello,this is node!")
return {
"messages":messages+[new_message],
"extra_fleid":1
}
定义图
from langgraph.graph import StateGraph
graph=StateGraph(State)
graph.add_node(node)
graph.set_entry_point("node")
graph_builder=graph.compile()
查看节点于图
from IPython.display import Image,display
display(Image(graph_builder.get_graph().draw_mermaid_png()))

创建实例并运行
from langchain_core.messages import HumanMessage
result=graph_builder.invoke({
"messages":[HumanMessage("你好我是tom")]
})
result
{'messages': [HumanMessage(content='你好我是tom', additional_kwargs={}, response_metadata={}),
AIMessage(content='Hello,this is node!', additional_kwargs={}, response_metadata={}, tool_calls=[], invalid_tool_calls=[])],
'extra_fleid': 1}