From e4cea90a188eb187903a81229d3a02dfeb1a3458 Mon Sep 17 00:00:00 2001 From: priyanshm07 Date: Tue, 8 Apr 2025 17:46:54 +0530 Subject: [PATCH] feature : agno multi-agent implementation --- .../README.md | 20 +++++++++-- .../ai_travel_planner_mcp_agent_team/app.py | 33 ++++++++++++++++--- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/mcp_ai_agents/ai_travel_planner_mcp_agent_team/README.md b/mcp_ai_agents/ai_travel_planner_mcp_agent_team/README.md index 9d9abd1..e7b0fe9 100644 --- a/mcp_ai_agents/ai_travel_planner_mcp_agent_team/README.md +++ b/mcp_ai_agents/ai_travel_planner_mcp_agent_team/README.md @@ -29,15 +29,31 @@ git clone https://github.com/yourusername/ai-travel-planner.git cd ai-travel-planner  ⁠ -1.⁠ ⁠*Create Virtual Env* +2.⁠ ⁠*Create Virtual Env* conda create -n env_name python=3.10 -y conda activate env_name pip install -r requirements.txt -1.⁠ ⁠*Create env file* +3.⁠ ⁠*Create env file* GOOGLE_MAPS_API_KEY=your_google_maps_api_key ACCUWEATHER_API_KEY=your_accuweather_api_key OPENAI_API_KEY=your_openai_api_key + + +--- + +## 🧠 Built With +-- Agno + +-- FastMCP + +-- OpenAI + +-- Google Maps Platform + +-- Airbnb MCP + +-- Accuweather \ No newline at end of file diff --git a/mcp_ai_agents/ai_travel_planner_mcp_agent_team/app.py b/mcp_ai_agents/ai_travel_planner_mcp_agent_team/app.py index 4bcee2e..7b465de 100644 --- a/mcp_ai_agents/ai_travel_planner_mcp_agent_team/app.py +++ b/mcp_ai_agents/ai_travel_planner_mcp_agent_team/app.py @@ -2,6 +2,7 @@ import asyncio import os from agno.agent import Agent +from agno.team.team import Team from agno.tools.mcp import MultiMCPTools import streamlit as st @@ -37,17 +38,39 @@ async def run_agent(message: str) -> None: ], env=env, ) as mcp_tools: - agent = Agent( + + #Define sepcialized agents + maps_agent = Agent( tools=[mcp_tools], - markdown=True, - show_tool_calls=True, + name="Maps Agent", + goal="Integrates with Google Maps server to provide routing information, travel time estimates, and points of interest proximity analysis" ) - await agent.aprint_response(message, stream=True) + weather_agent = Agent( + tools=[mcp_tools], + name="Weather Agent", + goal="Pulls data from OpenWeatherMap to provide weather forecasts for planned dates and locations, allowing for weather-appropriate activity planning." + ) + + booking_agent = Agent( + tools=[mcp_tools], + name="Booking Agent", + goal="Connects to Booking.com and Airbnb APIs to search and filter accommodations based on user preferences (price range, amenities, location)" + ) + + team = Team( + members=[maps_agent, weather_agent, booking_agent], + name="Travel Planning Team", + markdown=True, + show_tool_calls=True + ) + + await team.aprint_response(message, stream=True) # -------------------- Terminal Interaction Loop -------------------- -if _name_ == "_main_": # type: ignore +if __name__ == "__main__": # ✅ correct + print("🌍 Travel Planning Agent — Airbnb, Maps, Weather, Calendar (type 'exit' to quit)\n") try: while True: