File size: 913 Bytes
9d4c4db 493a57c 9d4c4db 493a57c 9d4c4db 493a57c 9d4c4db | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # ui/agent/graph/workflow.py
from __future__ import annotations
from functools import lru_cache
from langgraph.graph import END, START, StateGraph
from .nodes import (
consolidator_node,
discovery_node,
fan_out_research,
planner_node,
researcher_node,
)
from .state import AgentState
@lru_cache(maxsize=1)
def build_workflow():
builder = StateGraph(AgentState)
builder.add_node("discovery", discovery_node)
builder.add_node("planner", planner_node)
builder.add_node("researcher", researcher_node)
builder.add_node("consolidator", consolidator_node)
builder.add_edge(START, "discovery")
builder.add_edge("discovery", "planner")
builder.add_conditional_edges("planner", fan_out_research, ["researcher"])
builder.add_edge("researcher", "consolidator")
builder.add_edge("consolidator", END)
return builder.compile()
|