LangGraph简单图结构

一

python 复制代码
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langgraph.graph import MessagesState, StateGraph,START,END
from prompt_toolkit.contrib.regular_languages.regex_parser import AnyNode
from rich import print as rprint
from IPython import display
import operator
class State(TypedDict):
  n1: str
def node1(state: State) -> dict:
  return {
    "n1": "1111"
  }
def node2(state: State) -> dict:
  return {
    "n2": "2222"
  }

graph = (
  StateGraph(State)
  .add_node(node1)
  .add_node(node2)
  .add_edge(START, "node1")
  .add_edge(START, "node2")
).compile()
display.display(graph)
rprint(graph)

二

python 复制代码
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langgraph.graph import MessagesState, StateGraph,START,END
from prompt_toolkit.contrib.regular_languages.regex_parser import AnyNode
from rich import print as rprint
from IPython import display
import operator
import random
def node3(state: State) -> dict:
  return {
    "n2": "33"
  }
def node4(state: State) -> dict:
  return {
    "n2": "444"
  }
def node5(state: State) -> dict:
  return {
    "n2": "55"
  }
def route(state: State) -> dict:
  if random.random() >0.5:
    return node1
  else:
    return node2
def route2(state: State) -> dict:
  if random.random() >0.5:
    return node4
  else:
    return node5
builder=StateGraph(State)
builder.add_node(node1)
builder.add_node(node2)
builder.add_node(node3)
builder.add_node(node4)
builder.add_node(node5)
builder.add_conditional_edges(
  source=START,
  path=route,
  path_map={
    "node1": "node1",
    "node2": "node2"
  }
)
builder.add_edge("node1","node3")
builder.add_edge("node2","node3")
builder.add_conditional_edges(
  source="node3",
  path=route2,
  path_map={
    "node4": "node4",
    "node5": "node5"
  }
)
builder.add_edge("node4",END)
builder.add_edge("node5",END)
graph=builder.compile()

display.display(graph)

三

python 复制代码
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langgraph.graph import MessagesState, StateGraph,START,END
from prompt_toolkit.contrib.regular_languages.regex_parser import AnyNode
from rich import print as rprint
from IPython import display
import operator
class State(TypedDict):
  logs: Annotated[list[str],add_messages]
  list: Annotated[list[AnyNode], operator.add]
  cur_id: str

def node1(state: State) -> dict:
  return {
    "logs": ["node1 运行完毕"],
    "list": ["11111"],
    "cur_id": "9999-"
  }
def node2(state: State) -> dict:
  return {
    "logs": ["node2 运行完毕"],
    "list": ["22222"],
    "cur_id": "7777-"
  }

graph =(
  StateGraph(State)
  .add_node(node1)
  .add_node(node2)
  .add_edge(START, "node1")
  .add_edge("node1", "node2")
  .compile()
)
display.display(graph)
res=graph.invoke({"logs":"222"})
rprint(res)
相关推荐
怕浪猫2 小时前
这个十几个agent 协作项目值得关注
人工智能·面试·github
starzy19904 小时前
深入理解Scala隐式类:扩展方法机制
开发语言·人工智能·scala
深蓝AI4 小时前
为什么 agent 的 demo 都很惊艳,上了生产就不靠谱
人工智能·程序员
数字新视界4 小时前
信创动环监控在机房环境管理中的智能化应用与实践分析
大数据·人工智能·物联网·信息与通信·动环监控系统
岁月宁静5 小时前
DeepSeek Harness 实战与架构解析:让 Agent 从“会聊”到“能交付”
人工智能·python·agent
深蓝AI5 小时前
一个项目五个 AI 同时干活,Claude Code 怎么让它们不互相打架
人工智能·程序员
forest_095 小时前
多 Agent 协作第二课:交叉验证≠独立验证
人工智能·python·算法·机器学习·prompt·agi
ZONGYUAN-ROOT6 小时前
【工具治理】Nginx换机丢16子域事故复盘
人工智能
dozenyaoyida6 小时前
AI与大模型新闻日报 | 2026-11-08
人工智能·搜索引擎·ai·大模型·新闻
泯泷6 小时前
AI Agent 工具设计:读完一百页 PDF,不等于真的看懂了
人工智能·llm·agent