Skip to content

LangGraph 条件分支

TIP

条件分支让图能够根据当前状态动态决定下一步的执行路径。

基本条件分支

python
def router(state: AgentState):
    last = state["messages"][-1]
    if "需要工具" in last:
        return "tool"
    elif "需要人确认" in last:
        return "human"
    else:
        return "end"

graph.add_conditional_edges(
    "agent", router,
    {"tool": "execute_tool", "human": "ask_human", "end": END}
)

ReAct Agent

python
def should_continue(state):
    messages = state["messages"]
    if "Final Answer:" in messages[-1]:
        return "end"
    return "continue"

builder = StateGraph(AgentState)
builder.add_node("agent", call_model)
builder.add_node("action", execute_tool)
builder.set_entry_point("agent")
builder.add_conditional_edges("agent", should_continue,
    {"continue": "action", "end": END})
builder.add_edge("action", "agent")
graph = builder.compile()

客服分流

python
def route_query(state):
    query = state["input"]
    if "退款" in query: return "after_sale"
    elif "技术" in query: return "tech_support"
    else: return "general"

graph.add_conditional_edges("classifier", route_query,
    {"after_sale": "after_sale_agent", "tech_support": "tech_agent",
     "general": "general_agent"})