Spaces:
Sleeping
Sleeping
File size: 804 Bytes
945cec1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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() |