AutoScholar / app /agent /graph.py
Lumiin0us
refactor: move API keys to environment variables, add gitignore
d9d3b1d
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()