多智能体航班搜索系统
该项目使用LangGraph实现了一个多代理系统,用于协调专门的代理来执行搜索航班、提供天气预报和执行计算等任务。
特性
- 航班搜索: 在MakeMyTrip上搜索航班。
- 天气预报: 获取给定位置的天气预报。
- 数学计算: 进行基本的数学计算。
- 多代理编排: 使用主管代理将任务委派给适当的专业代理。
建筑
该系统使用以下组件构建:
- LangGraph : 一个用于使用LLM构建有状态的多代理应用程序的库。
- 主管代理人: 一个中央代理,负责管理工作流,并根据用户的查询将任务委托给其他代理。
- 专业代理:
- FlightSearchAgent:与航班搜索工具交互。 - WeatherAgent:与天气工具交互。 - MathAgent:与数学工具交互。
- MCP工具服务器: 每个专用代理都与相应的MCP(模型客户端协议)服务器通信,该服务器公开了该代理域的工具。这些服务器作为单独的进程运行。
如何跑步
先决条件
- Python 3.10+
- 一个OpenAI API密钥
1.设置环境
- 克隆存储库:
git clone
cd - 创建虚拟环境:
python -m venv venv
source venv/bin/activate- 安装依赖项:
pip install -r requirements.txt*注: mcp 这个项目中使用了库。如果您有此依赖关系的问题,您可能需要从自定义源安装它。*
- 创建
.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.py3.运行主应用程序
工具服务器运行后,打开一个新的终端并运行主应用程序:
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())