# graph/graph_builder.py (unchanged) | |
from langgraph.graph import START, StateGraph | |
from langgraph.prebuilt import tools_condition | |
from langgraph.prebuilt import ToolNode | |
from nodes.core import assistant, tools | |
from states.state import AgentState | |
## The graph | |
builder = StateGraph(AgentState) | |
# Define nodes: these do the work | |
builder.add_node("assistant", assistant) | |
builder.add_node("tools", ToolNode(tools)) | |
# Define edges: these determine how the control flow moves | |
builder.add_edge(START, "assistant") | |
builder.add_conditional_edges( | |
"assistant", | |
# If the latest message requires a tool, route to tools | |
# Otherwise, provide a direct response | |
tools_condition, | |
) | |
builder.add_edge("tools", "assistant") | |
graph = builder.compile() | |