Skip to content

How To Command Routing

Devrajsinh Gohil edited this page Aug 30, 2026 · 1 revision

How-To: Command(goto=..., update=...)

Command provides an atomic primitive to update state and redirect control-flow within a single return object.


Conditional Routing with State Mutation

from typing import TypedDict
from langgraph.types import Command
from langgraph.graph import StateGraph
import agentmesh_adapter

class AgentState(TypedDict):
    score: int
    feedback: str
    status: str

def reviewer(state: AgentState):
    if state["score"] >= 80:
        return Command(
            goto="approver",
            update={"status": "PASSED", "feedback": "Quality check passed."}
        )
    else:
        return Command(
            goto="reviser",
            update={"status": "FAILED", "feedback": "Score too low, revise content."}
        )

def reviser(state: AgentState):
    return {"score": state["score"] + 30}

def approver(state: AgentState):
    return {"status": "PUBLISHED"}

builder = StateGraph(AgentState)
builder.add_node("reviewer", reviewer)
builder.add_node("reviser", reviser)
builder.add_node("approver", approver)

builder.add_edge("__start__", "reviewer")
builder.add_edge("reviser", "reviewer") # Loop back
builder.add_edge("approver", "__end__")

app = agentmesh_adapter.compile(builder)
result = app.invoke({"score": 60, "feedback": "", "status": "PENDING"})
print("Final Status:", result["status"]) # PUBLISHED

Multi-Target goto

Command supports targeting multiple parallel nodes:

return Command(
    goto=["analyst_a", "analyst_b"],
    update={"status": "FANOUT"}
)
```\n

Clone this wiki locally