{"id":28826513,"url":"https://github.com/swarajjadhav12/multi-agent-spacex","last_synced_at":"2026-04-30T07:38:47.443Z","repository":{"id":298949229,"uuid":"1001639217","full_name":"swarajjadhav12/multi-agent-spacex","owner":"swarajjadhav12","description":"Multi-agent system using public APIs (SpaceX, OpenWeatherMap) to plan, enrich, and analyze tasks based on user goals.","archived":false,"fork":false,"pushed_at":"2025-06-13T18:43:48.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-13T19:39:26.098Z","etag":null,"topics":["ai-system","automation","multi-agent","openai","planning","spacex","spacex-api","weather"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swarajjadhav12.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T18:23:12.000Z","updated_at":"2025-06-13T18:43:51.000Z","dependencies_parsed_at":"2025-06-13T19:49:46.265Z","dependency_job_id":null,"html_url":"https://github.com/swarajjadhav12/multi-agent-spacex","commit_stats":null,"previous_names":["swarajjadhav12/multi-agent-spacex"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/swarajjadhav12/multi-agent-spacex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarajjadhav12%2Fmulti-agent-spacex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarajjadhav12%2Fmulti-agent-spacex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarajjadhav12%2Fmulti-agent-spacex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarajjadhav12%2Fmulti-agent-spacex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swarajjadhav12","download_url":"https://codeload.github.com/swarajjadhav12/multi-agent-spacex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarajjadhav12%2Fmulti-agent-spacex/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260676937,"owners_count":23045115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-system","automation","multi-agent","openai","planning","spacex","spacex-api","weather"],"created_at":"2025-06-19T03:04:47.665Z","updated_at":"2026-04-30T07:38:47.437Z","avatar_url":"https://github.com/swarajjadhav12.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Multi-Agent AI System Using Google ADK\n\nA multi-agent AI system that takes a user goal, plans task routing, and coordinates agents to fulfill the goal using real-time data and public APIs. Built in Python with modular, chainable agents.\n\n## 📋 Table of Contents\n- [Features](#-features)\n- [Architecture](#-architecture-overview)\n- [Setup](#-setup-instructions)\n- [Usage](#-usage)\n- [Development](#-development)\n- [Testing](#-testing)\n- [API Documentation](#-api-documentation)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n## ✨ Features\n\n- 🤖 **Modular Agent System**: Each agent is independent and chainable\n- 📱 **Android Device Integration**: Seamless communication with Android devices using Google ADK\n- 🌐 **Real-time Data**: Integration with SpaceX and Weather APIs\n- 🔄 **Task Planning**: Intelligent task routing based on user goals\n- 📊 **Logging \u0026 Monitoring**: Comprehensive logging system for debugging and monitoring\n- 🧪 **Evaluation Framework**: Built-in test cases and evaluation system\n- 🔒 **Error Handling**: Robust error handling and recovery mechanisms\n\n## 🧠 Architecture Overview\n\n### Core Components\n\n- **PlannerAgent**: Parses user goals and determines agent execution order\n- **SpaceXAgent**: Fetches data about upcoming SpaceX launches\n- **WeatherAgent**: Retrieves weather data for specific locations\n- **DelayAnalyzerAgent**: Analyzes weather conditions for launch delays\n- **ADKAgent**: Manages communication with Android devices\n\n### System Flow\n\n```mermaid\ngraph TD\n    A[User Goal] --\u003e B[PlannerAgent]\n    B --\u003e C[SpaceXAgent]\n    C --\u003e D[WeatherAgent]\n    D --\u003e E[DelayAnalyzerAgent]\n    E --\u003e F[Final Result]\n    B --\u003e G[ADKAgent]\n    G --\u003e H[Android Device]\n```\n\n## 🔧 Setup Instructions\n\n### Prerequisites\n\n- Python 3.8 or higher\n- Android device with USB debugging enabled\n- Google ADK development kit\n- OpenWeatherMap API key\n\n### Installation\n\n1. **Clone the Repository**\n   ```bash\n   git clone \u003cyour-repo-url\u003e\n   cd \u003cyour-project-folder\u003e\n   ```\n\n2. **Create Virtual Environment**\n   ```bash\n   python -m venv .venv\n   source .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\n   ```\n\n3. **Install Dependencies**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. **Environment Setup**\n   Create a `.env` file in the root directory:\n   ```env\n   OPENWEATHER_API_KEY=your_api_key_here\n   ```\n\n## ▶️ Usage\n\n### Running the System\n\n```bash\npython main.py\n```\n\nThe system offers three modes:\n1. **Manual Mode**: Run with predefined goals\n2. **ADK Tasks**: Execute Android device-specific tasks\n3. **Evaluations**: Run test cases and evaluations\n\n### Example Goals\n\n1. **SpaceX Launch Check**\n   ```\n   \"Find the next SpaceX launch, check weather at that location, then summarize if it may be delayed.\"\n   ```\n\n2. **Android Device Communication**\n   ```\n   \"Connect to Android device and send test data\"\n   ```\n\n## 💻 Development\n\n### Project Structure\n```\n.\n├── agents/              # Agent implementations\n│   ├── base_agent.py    # Base agent class\n│   ├── planner_agent.py # Task planning agent\n│   ├── spacex_agent.py  # SpaceX data agent\n│   ├── weather_agent.py # Weather data agent\n│   └── delay_analyzer.py # Delay analysis agent\n├── core/               # Core system components\n│   ├── agent_manager.py # Agent coordination\n│   └── google_adk_manager.py # ADK integration\n├── evals/              # Test cases and evaluations\n├── android_app/        # Android application code\n├── main.py            # Main entry point\n└── requirements.txt    # Project dependencies\n```\n\n### Adding New Agents\n\n1. Create a new agent class inheriting from `BaseAgent`\n2. Implement the required `run()` method\n3. Add the agent to the planner's task recognition\n4. Update test cases if necessary\n\n## 🧪 Testing\n\n### Running Tests\n```bash\npython main.py --mode 3  # Run evaluation mode\n```\n\n### Test Cases\nTest cases are defined in `evals/test_cases.json`:\n```json\n{\n  \"goal\": \"Find next SpaceX launch\",\n  \"expected_keys\": [\"launch_data\", \"weather_data\", \"delay_analysis\"]\n}\n```\n\n## 📚 API Documentation\n\n### SpaceX API\n- **Base URL**: `https://api.spacexdata.com/v4`\n- **Endpoint**: `/launches/next`\n- **Authentication**: None required\n- **Rate Limits**: No official limits\n\n### OpenWeatherMap API\n- **Base URL**: `https://api.openweathermap.org/data/2.5`\n- **Endpoint**: `/weather`\n- **Authentication**: API Key required\n- **Rate Limits**: 60 calls/minute (free tier)\n\n### Google ADK\n- **Protocol**: USB\n- **Requirements**: Android device with USB debugging\n- **Features**: Bidirectional communication\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\n### Development Guidelines\n- Follow PEP 8 style guide\n- Add type hints to all functions\n- Include docstrings for all classes and methods\n- Write tests for new features\n- Update documentation as needed\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n1. **ADK Connection Issues**\n   - Ensure USB debugging is enabled\n   - Check USB cable connection\n   - Verify device drivers are installed\n\n2. **API Rate Limits**\n   - Implement caching for API responses\n   - Use exponential backoff for retries\n   - Monitor API usage\n\n3. **Logging**\n   - Check `app.log` for detailed error information\n   - Enable debug logging for more verbose output\n\n## 📞 Support\n\nFor support, please:\n1. Check the troubleshooting guide\n2. Review the documentation\n3. Open an issue on GitHub\n4. Contact the development team\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswarajjadhav12%2Fmulti-agent-spacex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswarajjadhav12%2Fmulti-agent-spacex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswarajjadhav12%2Fmulti-agent-spacex/lists"}