mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-12 01:54:45 +08:00
31 lines
966 B
Python
31 lines
966 B
Python
|
|
from langgraph.graph import StateGraph, START, END
|
||
|
|
from langgraph.checkpoint.memory import MemorySaver
|
||
|
|
from .types import State
|
||
|
|
from .nodes import (
|
||
|
|
coordinator_node,
|
||
|
|
planner_node,
|
||
|
|
reporter_node,
|
||
|
|
research_team_node,
|
||
|
|
researcher_node,
|
||
|
|
coder_node,
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
def build_graph():
|
||
|
|
"""Build and return the agent workflow graph."""
|
||
|
|
# use persistent memory to save conversation history
|
||
|
|
# TODO: be compatible with SQLite / PostgreSQL
|
||
|
|
memory = MemorySaver()
|
||
|
|
|
||
|
|
# build state graph
|
||
|
|
builder = StateGraph(State)
|
||
|
|
builder.add_edge(START, "coordinator")
|
||
|
|
builder.add_node("coordinator", coordinator_node)
|
||
|
|
builder.add_node("planner", planner_node)
|
||
|
|
builder.add_node("reporter", reporter_node)
|
||
|
|
builder.add_node("research_team", research_team_node)
|
||
|
|
builder.add_node("researcher", researcher_node)
|
||
|
|
builder.add_node("coder", coder_node)
|
||
|
|
builder.add_edge("reporter", END)
|
||
|
|
return builder.compile(checkpointer=memory)
|