Spaces:
Sleeping
Sleeping
| 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() |