File size: 993 Bytes
32f259e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
33
34
35
36
37
from __future__ import annotations

from langgraph.graph import StateGraph, END

from ..state import AgentState
from ..agents import (
    researcher_node,
    aggregator_node,
    writer_node,
    critic_node,
    formatter_node,
)


def build_workflow_app() -> any:
    """
    Build and compile the LangGraph workflow for the multi-agent pipeline.
    Flow: Researcher -> Aggregator -> Writer -> Critic -> Formatter -> END
    """
    graph = StateGraph(AgentState)

    graph.add_node("researcher", researcher_node)
    graph.add_node("aggregator", aggregator_node)
    graph.add_node("writer", writer_node)
    graph.add_node("critic", critic_node)
    graph.add_node("formatter", formatter_node)

    graph.set_entry_point("researcher")
    graph.add_edge("researcher", "aggregator")
    graph.add_edge("aggregator", "writer")
    graph.add_edge("writer", "critic")
    graph.add_edge("critic", "formatter")
    graph.add_edge("formatter", END)

    app = graph.compile()
    return app