多智能体航班搜索系统

一个使用LangGraph构建的多智能体系统,用于协调专用代理执行航班搜索、天气预报和数学计算等任务。

  • by akhilsahu
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 akhilsahu/mmt_flight_mcp

使用说明

多智能体航班搜索系统

该项目使用LangGraph实现了一个多代理系统,用于协调专门的代理来执行搜索航班、提供天气预报和执行计算等任务。

特性

  • 航班搜索: 在MakeMyTrip上搜索航班。
  • 天气预报: 获取给定位置的天气预报。
  • 数学计算: 进行基本的数学计算。
  • 多代理编排: 使用主管代理将任务委派给适当的专业代理。

建筑

该系统使用以下组件构建:

  • LangGraph : 一个用于使用LLM构建有状态的多代理应用程序的库。
  • 主管代理人: 一个中央代理,负责管理工作流,并根据用户的查询将任务委托给其他代理。
  • 专业代理:
    • FlightSearchAgent:与航班搜索工具交互。
    • WeatherAgent:与天气工具交互。
    • MathAgent:与数学工具交互。
  • MCP工具服务器: 每个专用代理都与相应的MCP(模型客户端协议)服务器通信,该服务器公开了该代理域的工具。这些服务器作为单独的进程运行。

如何跑步

先决条件

  • Python 3.10+
  • 一个OpenAI API密钥

1.设置环境

  1. 克隆存储库:

    git clone <repository-url>
    cd <repository-directory>
    
  2. 创建虚拟环境:

    python -m venv venv
    source venv/bin/activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    

    注: mcp 这个项目中使用了库。如果您有此依赖关系的问题,您可能需要从自定义源安装它。

  4. 创建 .env 文件 在根目录中,并添加您的OpenAI API密钥:

    OPENAI_API_KEY="your-openai-api-key"
    

2.运行工具服务器

打开三个单独的终端窗口,运行以下命令,每个终端一个:

  • 数学服务器:

    python mcp_tool/math_server.py
    
  • 天气服务器:

    python mcp_tool/weather_server.py
    
  • 航班搜索服务器:

    python mcp_tool/flight_search_server.py
    

3.运行主应用程序

工具服务器运行后,打开一个新的终端并运行主应用程序:

python main.py

然后,应用程序将处理中定义的示例查询 main.py.

示例用法

您可以修改 queries 列入 main.py 向系统提出不同的问题:

if __name__ == "__main__":
    import asyncio
    
    async def main():
        # Example queries
        queries = [
            "What is 25 * 47 + 123 /4?",
            "What's the weather in New York?",
            # "Search for flights from LKO to IXL on 10/10/2024" # This requires the flight server
        ]
        
        for query in queries:
            await run_multi_agent_system(query)
            print("\n" + "="*60 + "\n")
    
    asyncio.run(main())