Spaces:
Sleeping
Sleeping
| from langgraph.graph import StateGraph, END | |
| from agent.state import ResearchState | |
| from agent.nodes.reader import reader_node | |
| from agent.nodes.search import search_node | |
| from agent.nodes.planner import planner_node | |
| from agent.nodes.synthesizer import synthesizer_node | |
| from agent.nodes.reflection import reflection_node, should_continue | |
| # Create the graph | |
| graph = StateGraph(ResearchState) | |
| # Add all nodes | |
| graph.add_node("planner", planner_node) | |
| graph.add_node("search", search_node) | |
| graph.add_node("reader", reader_node) | |
| graph.add_node("synthesizer", synthesizer_node) | |
| graph.add_node("reflection", reflection_node) | |
| # Add edges (flow between nodes) | |
| graph.set_entry_point("planner") | |
| graph.add_edge("planner", "search") | |
| graph.add_edge("search", "reader") | |
| graph.add_edge("reader", "synthesizer") | |
| graph.add_edge("synthesizer", "reflection") | |
| # Conditional edge - reflection either ends or loops back | |
| graph.add_conditional_edges( | |
| "reflection", | |
| should_continue, | |
| { | |
| "search": "search", # loop back | |
| "END": END # finish | |
| } | |
| ) | |
| app = graph.compile() |