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"})