from __future__ import annotations """需求解析阶段子图:从用户原始输入解析为结构化TravelRequest,路由到澄清/就绪/错误节点。""" from langgraph.graph import ( END, START, StateGraph, ) from app.agents.requirement_agent import ( RequirementAgent, ) from app.graph.nodes import ( clarification_node, error_node, make_parse_request_node, ready_node, route_after_parse, ) from app.graph.state import TravelState def build_requirement_graph( agent: RequirementAgent | None = None, ): """构建需求解析阶段的LangGraph。""" requirement_agent = ( agent or RequirementAgent() ) builder = StateGraph(TravelState) builder.add_node( "parse_request", make_parse_request_node( requirement_agent ), ) builder.add_node( "clarify", clarification_node, ) builder.add_node( "ready", ready_node, ) builder.add_node( "error", error_node, ) builder.add_edge( START, "parse_request", ) builder.add_conditional_edges( "parse_request", route_after_parse, { "clarify": "clarify", "ready": "ready", "error": "error", }, ) builder.add_edge("clarify", END) builder.add_edge("ready", END) builder.add_edge("error", END) return builder.compile()