borderless / ui /agent /graph /workflow.py
spagestic's picture
Robust Planner Discovery Workflow
493a57c
Raw
History Blame Contribute Delete
913 Bytes
# 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()