mnoorchenar's picture
Update 2026-03-22 00:49:38
945cec1
raw
history blame contribute delete
804 Bytes
from langgraph.graph import StateGraph, END
from agent.state import AgentState
from agent.nodes import router_node, agent_node, tool_executor_node, responder_node
def _route_agent(state: AgentState) -> str:
return "responder" if (state.get("should_end") or not state.get("pending_tool")) else "tool_executor"
def build_graph():
g = StateGraph(AgentState)
g.add_node("router", router_node)
g.add_node("agent", agent_node)
g.add_node("tool_executor", tool_executor_node)
g.add_node("responder", responder_node)
g.set_entry_point("router")
g.add_edge("router","agent")
g.add_conditional_edges("agent", _route_agent, {"responder":"responder","tool_executor":"tool_executor"})
g.add_edge("tool_executor","agent")
g.add_edge("responder",END)
return g.compile()