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