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()