| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- from __future__ import annotations
- """资源查询阶段子图:在需求解析后调用航班/酒店MCP工具查询外部资源。"""
- from langgraph.graph import (
- END,
- START,
- StateGraph,
- )
- from app.agents.requirement_agent import (
- RequirementAgent,
- )
- from app.agents.resource_agent import (
- ResourceSearchAgent,
- )
- from app.graph.nodes import (
- clarification_node,
- error_node,
- make_parse_request_node,
- route_after_parse,
- )
- from app.graph.resource_nodes import (
- make_resource_search_node,
- )
- from app.graph.state import TravelState
- from app.mcp_client import load_mcp_tools
- async def build_resource_graph():
- """构建需求解析与资源查询工作流。"""
- tool_bundle = await load_mcp_tools()
- requirement_agent = RequirementAgent()
- resource_agent = ResourceSearchAgent(
- tools=tool_bundle.travel_tools,
- )
- builder = StateGraph(TravelState)
- builder.add_node(
- "parse_request",
- make_parse_request_node(
- requirement_agent
- ),
- )
- builder.add_node(
- "clarify",
- clarification_node,
- )
- builder.add_node(
- "error",
- error_node,
- )
- builder.add_node(
- "search_resources",
- make_resource_search_node(
- resource_agent
- ),
- )
- builder.add_edge(
- START,
- "parse_request",
- )
- builder.add_conditional_edges(
- "parse_request",
- route_after_parse,
- {
- "clarify": "clarify",
- "error": "error",
- "ready": "search_resources",
- },
- )
- builder.add_edge(
- "clarify",
- END,
- )
- builder.add_edge(
- "error",
- END,
- )
- builder.add_edge(
- "search_resources",
- END,
- )
- return builder.compile()
|