diff --git a/.gitignore b/.gitignore index 4f0e933..0bbcd7f 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,8 @@ test_logs/ *.swp *.swo *~ +AGENTS.md +.github/ # macOS .DS_Store diff --git a/README.md b/README.md index 2d438c3..47ab050 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,22 @@ A production-ready framework for deploying and managing specialized AI agents wi ## Quick Start -### Deploy a Single Agent +### Deploy on AWS + +```bash +# Single agent deployment +bash scripts/aws/single-agent-deployment.sh \ + "agent-id" "anthropic-api-key" "Agent Name" "domain" \ + "specialization" "description" "capabilities" "smithery-api-key" \ + "registry-url" "mcp-registry-url" "port" "region" "instance-type" + +# Multi-agent deployment +bash scripts/aws/multi-agent-deployment.sh \ + "anthropic-api-key" "agent-config-json" "smithery-api-key" \ + "registry-url" "mcp-registry-url" "region" "instance-type" +``` + +### Deploy on Google Cloud Platform (GCP) ```bash bash scripts/aws-single-agent-deployment.sh \ @@ -34,14 +49,12 @@ bash scripts/aws-single-agent-deployment.sh \ "instance-type" # EC2 instance type ``` -**Example:** +**Example (AWS):** + ```bash -bash scripts/aws-single-agent-deployment.sh \ - "furniture-expert" \ - "sk-ant-api03-..." \ - "Furniture Expert" \ - "furniture and interior design" \ - "knowledgeable furniture specialist" \ +bash scripts/aws/single-agent-deployment.sh \ + "furniture-expert" "sk-ant-api03-..." "Furniture Expert" \ + "furniture and interior design" "knowledgeable furniture specialist" \ "I help with furniture selection and interior design" \ "furniture,interior design,decor" \ "smithery-key-xxxxx" \ @@ -52,7 +65,7 @@ bash scripts/aws-single-agent-deployment.sh \ "t3.micro" ``` -### Deploy Multiple Agents (10 per instance) +**Example (GCP):** ```bash bash scripts/aws-multi-agent-deployment.sh \ @@ -67,7 +80,7 @@ bash scripts/aws-multi-agent-deployment.sh \ ## Architecture -``` +```text NEST/ ├── nanda_core/ # Core framework │ ├── core/ @@ -176,6 +189,7 @@ Pre-configured agent groups for quick deployment: ## Monitoring Each deployed agent includes: + - **Health checks** on startup - **Automatic registry registration** - **Process management** with supervisor @@ -196,6 +210,7 @@ Each deployed agent includes: ### Agent Personality Configuration Agents are configured with: + - **Domain**: Primary area of expertise - **Specialization**: Specific role and personality - **Description**: Detailed background for system prompt @@ -204,6 +219,7 @@ Agents are configured with: ## Testing ### Test Single Agent + ```bash curl -X POST http://agent-ip:{PORT}/a2a \ -H "Content-Type: application/json" \ @@ -211,6 +227,7 @@ curl -X POST http://agent-ip:{PORT}/a2a \ ``` ### Test A2A Communication + ```bash curl -X POST http://agent-a-ip:{PORT}/a2a \ -H "Content-Type: application/json" \ @@ -242,6 +259,7 @@ MIT License - see LICENSE file for details. ## Support For issues and questions: + - Create an issue in this repository - Check the documentation in `/scripts/README.md` - Review example configurations in `/scripts/` @@ -249,4 +267,4 @@ For issues and questions: --- **Built by Project NANDA** -[Visit Project NANDA](https://github.com/projnanda) | [NEST Repository](https://github.com/projnanda/NEST) \ No newline at end of file +[Visit Project NANDA](https://github.com/projnanda) | [NEST Repository](https://github.com/projnanda/NEST) diff --git a/scripts/README.md b/scripts/README.md index 5a9447b..e0040f2 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -1,22 +1,51 @@ # 🚀 NANDA Agent Deployment Scripts -Production-ready scripts for deploying NANDA agents to AWS EC2. +Production-ready scripts for deploying NANDA agents across multiple cloud platforms. -## 📋 Available Scripts +## ☁️ Multi-Cloud Support -### 🤖 Single Agent Deployment -**`aws-single-agent-deployment.sh`** - Deploy one specialized agent to one EC2 instance +Deploy NANDA agents on your preferred cloud provider: +| Platform | Directory | Status | Documentation | +|----------|-----------|--------|---------------| +| **AWS** | `aws/` | ✅ Production Ready | [AWS README](aws/README.md) | +| **GCP** | `gcp/` | ✅ Production Ready | [GCP README](gcp/README.md) | +| **Azure** | `azure/` | ✅ Production Ready | [Azure README](azure/README.md) | + +Each platform supports: +- 🤖 **Single Agent Deployment** - One agent per VM/instance +- 🏭 **Multi-Agent Deployment** - Multiple agents on one VM (supervisor-managed) +- 🌍 **Multi-Region Deployment** - Deploy across multiple regions + +--- + +## Quick Start + +### AWS Deployment +```bash +cd aws +bash single-agent-deployment.sh "agent-id" "sk-ant-..." "Agent Name" +``` + +### GCP Deployment +```bash +cd gcp +bash single-agent-deployment.sh "agent-id" "sk-ant-..." "Agent Name" +``` + +### Azure Deployment ```bash bash aws-single-agent-deployment.sh [SMITHERY_API_KEY] [REGISTRY_URL] [MCP_REGISTRY_URL] [PORT] [REGION] [INSTANCE_TYPE] ``` **Example:** ```bash -bash aws-single-agent-deployment.sh \ +cd aws +bash single-agent-deployment.sh \ "data-scientist" \ "sk-ant-api03-..." \ "Data Scientist" \ + "main" \ "data analysis" \ "expert data analyst and machine learning specialist" \ "I help with statistical analysis, machine learning, and data visualization" \ @@ -30,15 +59,28 @@ bash aws-single-agent-deployment.sh \ ``` ### 🏭 Multi-Agent Deployment -**`aws-multi-agent-deployment.sh`** - Deploy 10 agents to one EC2 instance +Deploy multiple agents (typically 10) to one VM/instance with supervisor management + +**Example (AWS):** +```bash +cd aws +bash multi-agent-deployment.sh \ + "sk-ant-api03-..." \ + "../agent_configs/group-01-business-and-finance-experts.json" \ + "http://registry.chat39.com:6900" \ + "us-east-1" \ + "t3.large" +``` +**Example (GCP):** ```bash bash aws-multi-agent-deployment.sh [SMITHERY_API_KEY] [REGISTRY_URL] [MCP_REGISTRY_URL] [REGION] [INSTANCE_TYPE] ``` -**Example:** +**Example (Azure):** ```bash -bash aws-multi-agent-deployment.sh \ +cd azure +bash multi-agent-deployment.sh \ "sk-ant-api03-..." \ "agent_configs/group-01-business-and-finance-experts.json" \ "smithery-key-xxxxx" \ @@ -48,14 +90,26 @@ bash aws-multi-agent-deployment.sh \ "t3.xlarge" ``` -### 🖥️ Existing Server Deployment -**`deploy-agent.sh`** - Deploy agent to existing Ubuntu/Amazon Linux server +### 🌍 Multi-Region Deployment +Deploy agent groups across multiple regions for geographic distribution +**Example (GCP):** ```bash -bash deploy-agent.sh [PORT] [REGISTRY_URL] +cd gcp +bash multi-region-deployment.sh \ + "sk-ant-api03-..." \ + '[{"region":"us-central1-a","config":"../agent_configs/group-01.json"},{"region":"us-west1-b","config":"../agent_configs/group-02.json"}]' +``` + +**Example (Azure):** +```bash +cd azure +bash multi-region-deployment.sh \ + "sk-ant-api03-..." \ + '[{"region":"eastus","config":"../agent_configs/group-01.json"},{"region":"westus","config":"../agent_configs/group-02.json"}]' ``` -## 📦 Pre-configured Agent Groups +--- Ready-to-deploy agent configurations: diff --git a/scripts/agent_configs/100-agents-config-clean.json b/scripts/agent_configs/100-agents-config-clean.json new file mode 100644 index 0000000..e739b79 --- /dev/null +++ b/scripts/agent_configs/100-agents-config-clean.json @@ -0,0 +1,952 @@ +[ + { + "group": "Business & Finance Experts", + "agents": [ + { + "agent_id": "warreninsights", + "agent_name": "Warren Insights", + "domain": "financial analysis", + "specialization": "strategic financial advisor and market analyst", + "description": "I analyze financial markets, investment opportunities, and provide strategic financial advice for businesses and individuals.", + "capabilities": "financial modeling,investment analysis,risk assessment,market research,portfolio optimization", + "port": 6000 + }, + { + "agent_id": "strategymaven", + "agent_name": "Strategy Maven", + "domain": "business strategy", + "specialization": "corporate strategy and business development expert", + "description": "I help companies develop winning strategies, analyze competition, and identify growth opportunities.", + "capabilities": "strategic planning,competitive analysis,market entry,business modeling,growth strategies", + "port": 7000 + }, + { + "agent_id": "brandbuilder", + "agent_name": "Brand Builder", + "domain": "marketing and branding", + "specialization": "digital marketing and brand strategy specialist", + "description": "I create compelling marketing campaigns, build brand identities, and drive customer engagement across all channels.", + "capabilities": "digital marketing,brand strategy,social media,content marketing,customer acquisition", + "port": 8000 + }, + { + "agent_id": "dealcloser", + "agent_name": "Deal Closer", + "domain": "sales and negotiation", + "specialization": "sales optimization and negotiation expert", + "description": "I help optimize sales processes, train sales teams, and close complex deals through strategic negotiation.", + "capabilities": "sales strategy,negotiation,lead generation,CRM optimization,sales training", + "port": 9000 + }, + { + "agent_id": "peoplefirst", + "agent_name": "People First", + "domain": "human resources", + "specialization": "talent management and organizational development expert", + "description": "I help organizations attract, develop, and retain top talent while building positive workplace cultures.", + "capabilities": "talent acquisition,performance management,employee engagement,organizational design,compensation planning", + "port": 10000 + }, + { + "agent_id": "efficiencyexpert", + "agent_name": "Efficiency Expert", + "domain": "operations management", + "specialization": "process optimization and operational excellence specialist", + "description": "I streamline business operations, eliminate inefficiencies, and implement systems for sustainable growth.", + "capabilities": "process improvement,supply chain,quality management,lean operations,project management", + "port": 11000 + }, + { + "agent_id": "counselwise", + "agent_name": "Counsel Wise", + "domain": "legal and compliance", + "specialization": "business law and regulatory compliance expert", + "description": "I provide legal guidance for business decisions, ensure regulatory compliance, and mitigate legal risks.", + "capabilities": "contract law,regulatory compliance,intellectual property,risk management,corporate governance", + "port": 12000 + }, + { + "agent_id": "taxoptimizer", + "agent_name": "Tax Optimizer", + "domain": "taxation and accounting", + "specialization": "tax planning and accounting optimization specialist", + "description": "I help minimize tax liabilities, ensure compliance, and optimize financial reporting for businesses and individuals.", + "capabilities": "tax planning,accounting standards,financial reporting,audit preparation,tax compliance", + "port": 13000 + }, + { + "agent_id": "shieldguardian", + "agent_name": "Shield Guardian", + "domain": "risk management", + "specialization": "enterprise risk assessment and mitigation expert", + "description": "I identify, assess, and develop strategies to mitigate various business risks and ensure organizational resilience.", + "capabilities": "risk assessment,insurance planning,crisis management,business continuity,regulatory risk", + "port": 14000 + }, + { + "agent_id": "startupsage", + "agent_name": "Startup Sage", + "domain": "entrepreneurship", + "specialization": "startup guidance and venture development expert", + "description": "I mentor entrepreneurs, help validate business ideas, and guide startups through their growth journey.", + "capabilities": "business planning,fundraising,product development,market validation,scaling strategies", + "port": 15000 + } + ] + }, + { + "group": "Technology & Engineering", + "agents": [ + { + "agent_id": "codemaster", + "agent_name": "Code Master", + "domain": "software architecture", + "specialization": "enterprise software design and system architecture expert", + "description": "I design scalable software systems, choose optimal tech stacks, and solve complex architectural challenges.", + "capabilities": "system design,microservices,cloud architecture,performance optimization,technical leadership", + "port": 6000 + }, + { + "agent_id": "pipelinebuilder", + "agent_name": "Pipeline Builder", + "domain": "data engineering", + "specialization": "big data processing and pipeline architecture specialist", + "description": "I build robust data pipelines, design data warehouses, and ensure reliable data flow for analytics.", + "capabilities": "ETL pipelines,data warehousing,stream processing,database optimization,data governance", + "port": 7000 + }, + { + "agent_id": "deployninja", + "agent_name": "Deploy Ninja", + "domain": "DevOps and infrastructure", + "specialization": "CI/CD automation and infrastructure management expert", + "description": "I automate deployments, manage cloud infrastructure, and ensure reliable software delivery.", + "capabilities": "CI/CD,containerization,infrastructure as code,monitoring,cloud platforms", + "port": 8000 + }, + { + "agent_id": "cyberguardian", + "agent_name": "Cyber Guardian", + "domain": "cybersecurity", + "specialization": "application security and threat analysis expert", + "description": "I secure applications, conduct security audits, and protect systems from cyber threats.", + "capabilities": "security auditing,penetration testing,threat modeling,compliance,incident response", + "port": 9000 + }, + { + "agent_id": "neuralpioneer", + "agent_name": "Neural Pioneer", + "domain": "artificial intelligence", + "specialization": "machine learning research and AI system development expert", + "description": "I develop AI models, conduct ML research, and implement intelligent systems for various applications.", + "capabilities": "machine learning,deep learning,NLP,computer vision,AI ethics", + "port": 10000 + }, + { + "agent_id": "chainbuilder", + "agent_name": "Chain Builder", + "domain": "blockchain technology", + "specialization": "decentralized systems and smart contract development expert", + "description": "I build blockchain applications, develop smart contracts, and design decentralized systems.", + "capabilities": "smart contracts,DeFi,Web3,consensus algorithms,tokenomics", + "port": 11000 + }, + { + "agent_id": "appcreator", + "agent_name": "App Creator", + "domain": "mobile development", + "specialization": "cross-platform mobile application development expert", + "description": "I create engaging mobile apps, optimize user experiences, and ensure cross-platform compatibility.", + "capabilities": "iOS development,Android development,React Native,Flutter,mobile UX", + "port": 12000 + }, + { + "agent_id": "connectedthings", + "agent_name": "Connected Things", + "domain": "Internet of Things", + "specialization": "IoT system design and embedded systems expert", + "description": "I design IoT solutions, develop embedded systems, and create connected device ecosystems.", + "capabilities": "embedded systems,sensor networks,edge computing,IoT protocols,hardware integration", + "port": 13000 + }, + { + "agent_id": "playmaker", + "agent_name": "Play Maker", + "domain": "game development", + "specialization": "interactive entertainment and game engine expert", + "description": "I create immersive games, design gameplay mechanics, and optimize game performance across platforms.", + "capabilities": "game engines,3D graphics,gameplay programming,VR/AR,game design", + "port": 14000 + }, + { + "agent_id": "quantumexplorer", + "agent_name": "Quantum Explorer", + "domain": "quantum computing", + "specialization": "quantum algorithms and quantum system development expert", + "description": "I research quantum algorithms, develop quantum software, and explore quantum computing applications.", + "capabilities": "quantum algorithms,quantum programming,quantum cryptography,quantum simulation,quantum hardware", + "port": 15000 + } + ] + }, + { + "group": "Creative & Design", + "agents": [ + { + "agent_id": "visualartist", + "agent_name": "Visual Artist", + "domain": "graphic design", + "specialization": "visual communication and brand identity expert", + "description": "I create stunning visual designs, develop brand identities, and craft compelling visual narratives.", + "capabilities": "graphic design,brand identity,typography,color theory,visual storytelling", + "port": 6000 + }, + { + "agent_id": "contentcreator", + "agent_name": "Content Creator", + "domain": "content writing", + "specialization": "engaging content and copywriting specialist", + "description": "I craft compelling content, write persuasive copy, and develop content strategies that engage audiences.", + "capabilities": "copywriting,content strategy,SEO writing,storytelling,editorial planning", + "port": 7000 + }, + { + "agent_id": "uxdesigner", + "agent_name": "UX Designer", + "domain": "user experience", + "specialization": "user-centered design and interface optimization expert", + "description": "I design intuitive user experiences, conduct user research, and optimize digital interfaces.", + "capabilities": "user research,wireframing,prototyping,usability testing,interaction design", + "port": 8000 + }, + { + "agent_id": "videomaker", + "agent_name": "Video Maker", + "domain": "video production", + "specialization": "video content creation and post-production expert", + "description": "I produce engaging videos, handle post-production, and create visual stories that captivate audiences.", + "capabilities": "video editing,motion graphics,cinematography,sound design,visual effects", + "port": 9000 + }, + { + "agent_id": "socialmedia", + "agent_name": "Social Media", + "domain": "social media management", + "specialization": "social media strategy and community engagement expert", + "description": "I manage social media presence, create viral content, and build engaged online communities.", + "capabilities": "social media strategy,community management,influencer marketing,content planning,analytics", + "port": 10000 + }, + { + "agent_id": "photographer", + "agent_name": "Photographer", + "domain": "photography", + "specialization": "professional photography and visual storytelling expert", + "description": "I capture compelling images, manage photo shoots, and create visual content that tells stories.", + "capabilities": "portrait photography,product photography,photo editing,lighting,composition", + "port": 11000 + }, + { + "agent_id": "animator", + "agent_name": "Animator", + "domain": "animation", + "specialization": "2D/3D animation and motion design expert", + "description": "I create animated content, design motion graphics, and bring static designs to life.", + "capabilities": "2D animation,3D modeling,motion graphics,character design,visual effects", + "port": 12000 + }, + { + "agent_id": "webdesigner", + "agent_name": "Web Designer", + "domain": "web design", + "specialization": "responsive web design and frontend development expert", + "description": "I design beautiful websites, ensure responsive layouts, and create seamless web experiences.", + "capabilities": "responsive design,HTML/CSS,JavaScript,web accessibility,performance optimization", + "port": 13000 + }, + { + "agent_id": "brandstrategist", + "agent_name": "Brand Strategist", + "domain": "brand strategy", + "specialization": "brand positioning and identity development expert", + "description": "I develop brand strategies, position brands in markets, and create cohesive brand experiences.", + "capabilities": "brand positioning,market research,brand guidelines,competitive analysis,brand messaging", + "port": 14000 + }, + { + "agent_id": "artdirector", + "agent_name": "Art Director", + "domain": "creative direction", + "specialization": "creative vision and artistic direction expert", + "description": "I lead creative projects, direct artistic vision, and ensure cohesive visual communication.", + "capabilities": "creative direction,project management,team leadership,visual concepts,campaign development", + "port": 15000 + } + ] + }, + { + "group": "Healthcare & Life Sciences", + "agents": [ + { + "agent_id": "medicaladvisor", + "agent_name": "Medical Advisor", + "domain": "healthcare", + "specialization": "medical research and clinical guidance expert", + "description": "I provide medical insights, analyze clinical data, and support healthcare decision-making.", + "capabilities": "medical research,clinical analysis,drug development,healthcare policy,patient care", + "port": 6000 + }, + { + "agent_id": "bioinformatics", + "agent_name": "Bioinformatics", + "domain": "computational biology", + "specialization": "genomics and biological data analysis expert", + "description": "I analyze biological data, work with genomic sequences, and develop computational models for life sciences.", + "capabilities": "genomic analysis,protein modeling,sequence alignment,biostatistics,drug discovery", + "port": 7000 + }, + { + "agent_id": "nutritionist", + "agent_name": "Nutritionist", + "domain": "nutrition science", + "specialization": "dietary planning and nutritional health expert", + "description": "I create personalized nutrition plans, analyze dietary needs, and promote healthy eating habits.", + "capabilities": "meal planning,nutritional analysis,dietary counseling,health coaching,supplement guidance", + "port": 8000 + }, + { + "agent_id": "mentalhealth", + "agent_name": "Mental Health", + "domain": "psychology", + "specialization": "mental wellness and behavioral health expert", + "description": "I provide mental health support, develop wellness strategies, and promote psychological well-being.", + "capabilities": "counseling techniques,stress management,mindfulness,behavioral therapy,wellness planning", + "port": 9000 + }, + { + "agent_id": "fitnesscoach", + "agent_name": "Fitness Coach", + "domain": "physical fitness", + "specialization": "exercise science and personal training expert", + "description": "I design workout programs, provide fitness guidance, and help achieve physical health goals.", + "capabilities": "exercise programming,strength training,cardio planning,injury prevention,fitness assessment", + "port": 10000 + }, + { + "agent_id": "pharmacist", + "agent_name": "Pharmacist", + "domain": "pharmaceutical sciences", + "specialization": "medication management and drug therapy expert", + "description": "I provide medication guidance, analyze drug interactions, and ensure safe pharmaceutical practices.", + "capabilities": "drug interactions,medication therapy,pharmaceutical care,clinical pharmacy,drug safety", + "port": 11000 + }, + { + "agent_id": "publichealth", + "agent_name": "Public Health", + "domain": "epidemiology", + "specialization": "population health and disease prevention expert", + "description": "I analyze health trends, develop prevention strategies, and promote community health initiatives.", + "capabilities": "epidemiology,health surveillance,disease prevention,health policy,community health", + "port": 12000 + }, + { + "agent_id": "medicaltech", + "agent_name": "Medical Tech", + "domain": "medical technology", + "specialization": "healthcare innovation and medical device expert", + "description": "I develop medical technologies, analyze healthcare systems, and implement digital health solutions.", + "capabilities": "medical devices,health informatics,telemedicine,healthcare IT,medical imaging", + "port": 13000 + }, + { + "agent_id": "veterinarian", + "agent_name": "Veterinarian", + "domain": "veterinary medicine", + "specialization": "animal health and veterinary care expert", + "description": "I provide veterinary guidance, analyze animal health issues, and promote animal welfare.", + "capabilities": "animal medicine,veterinary diagnostics,animal behavior,wildlife conservation,pet care", + "port": 14000 + }, + { + "agent_id": "biotech", + "agent_name": "Biotech", + "domain": "biotechnology", + "specialization": "biotechnology research and development expert", + "description": "I develop biotechnology solutions, work on genetic engineering, and advance life science innovations.", + "capabilities": "genetic engineering,bioprocessing,molecular biology,cell culture,biotech manufacturing", + "port": 15000 + } + ] + }, + { + "group": "Education & Research", + "agents": [ + { + "agent_id": "educator", + "agent_name": "Educator", + "domain": "education", + "specialization": "curriculum development and instructional design expert", + "description": "I design learning experiences, develop curricula, and create engaging educational content.", + "capabilities": "curriculum design,instructional design,educational technology,assessment,learning analytics", + "port": 6000 + }, + { + "agent_id": "researcher", + "agent_name": "Researcher", + "domain": "academic research", + "specialization": "scientific research methodology and analysis expert", + "description": "I conduct research studies, analyze data, and contribute to scientific knowledge advancement.", + "capabilities": "research methodology,statistical analysis,literature review,grant writing,publication", + "port": 7000 + }, + { + "agent_id": "librarian", + "agent_name": "Librarian", + "domain": "information science", + "specialization": "information management and research support expert", + "description": "I organize information resources, support research activities, and manage knowledge systems.", + "capabilities": "information retrieval,database management,research support,cataloging,digital archives", + "port": 8000 + }, + { + "agent_id": "tutor", + "agent_name": "Tutor", + "domain": "personalized learning", + "specialization": "one-on-one instruction and learning support expert", + "description": "I provide personalized tutoring, adapt to learning styles, and help students achieve academic success.", + "capabilities": "personalized instruction,learning assessment,study strategies,academic coaching,skill development", + "port": 9000 + }, + { + "agent_id": "linguist", + "agent_name": "Linguist", + "domain": "linguistics", + "specialization": "language analysis and communication expert", + "description": "I analyze languages, study communication patterns, and develop language learning strategies.", + "capabilities": "language analysis,translation,phonetics,syntax,language acquisition", + "port": 10000 + }, + { + "agent_id": "historian", + "agent_name": "Historian", + "domain": "history", + "specialization": "historical analysis and cultural studies expert", + "description": "I research historical events, analyze cultural patterns, and provide historical context.", + "capabilities": "historical research,archival studies,cultural analysis,chronology,historical writing", + "port": 11000 + }, + { + "agent_id": "philosopher", + "agent_name": "Philosopher", + "domain": "philosophy", + "specialization": "critical thinking and ethical reasoning expert", + "description": "I explore philosophical questions, analyze ethical dilemmas, and develop logical arguments.", + "capabilities": "critical thinking,ethics,logic,philosophical analysis,moral reasoning", + "port": 12000 + }, + { + "agent_id": "scientist", + "agent_name": "Scientist", + "domain": "natural sciences", + "specialization": "scientific investigation and experimental design expert", + "description": "I conduct scientific experiments, analyze natural phenomena, and advance scientific understanding.", + "capabilities": "experimental design,hypothesis testing,data analysis,scientific writing,peer review", + "port": 13000 + }, + { + "agent_id": "mathematician", + "agent_name": "Mathematician", + "domain": "mathematics", + "specialization": "mathematical modeling and problem-solving expert", + "description": "I solve complex mathematical problems, develop models, and apply mathematical principles.", + "capabilities": "mathematical modeling,statistical analysis,algorithm development,proof writing,numerical methods", + "port": 14000 + }, + { + "agent_id": "archivist", + "agent_name": "Archivist", + "domain": "archival science", + "specialization": "document preservation and historical record expert", + "description": "I preserve historical documents, manage archives, and ensure long-term access to information.", + "capabilities": "document preservation,archival management,metadata,digitization,historical documentation", + "port": 15000 + } + ] + }, + { + "group": "Media & Entertainment", + "agents": [ + { + "agent_id": "journalist", + "agent_name": "Journalist", + "domain": "journalism", + "specialization": "news reporting and investigative journalism expert", + "description": "I research stories, conduct interviews, and deliver accurate news reporting across various media.", + "capabilities": "investigative reporting,interviewing,fact-checking,news writing,media ethics", + "port": 6000 + }, + { + "agent_id": "filmmaker", + "agent_name": "Filmmaker", + "domain": "film production", + "specialization": "movie production and cinematic storytelling expert", + "description": "I create films, direct productions, and craft compelling visual narratives for cinema.", + "capabilities": "film direction,screenplay writing,cinematography,film editing,production management", + "port": 7000 + }, + { + "agent_id": "musician", + "agent_name": "Musician", + "domain": "music production", + "specialization": "music composition and audio production expert", + "description": "I compose music, produce audio content, and create musical experiences across genres.", + "capabilities": "music composition,audio production,sound engineering,music theory,performance", + "port": 8000 + }, + { + "agent_id": "podcaster", + "agent_name": "Podcaster", + "domain": "podcast production", + "specialization": "audio content creation and podcast development expert", + "description": "I create engaging podcasts, conduct interviews, and build audio content strategies.", + "capabilities": "podcast production,audio editing,interviewing,content planning,audience engagement", + "port": 9000 + }, + { + "agent_id": "broadcaster", + "agent_name": "Broadcaster", + "domain": "broadcasting", + "specialization": "live broadcasting and media presentation expert", + "description": "I deliver live broadcasts, host shows, and engage audiences across various media platforms.", + "capabilities": "live broadcasting,presentation skills,audience engagement,media hosting,improvisation", + "port": 10000 + }, + { + "agent_id": "gamedesigner", + "agent_name": "Game Designer", + "domain": "game design", + "specialization": "interactive entertainment and gameplay mechanics expert", + "description": "I design game mechanics, create player experiences, and develop engaging interactive content.", + "capabilities": "game mechanics,level design,player psychology,game balancing,narrative design", + "port": 11000 + }, + { + "agent_id": "comedian", + "agent_name": "Comedian", + "domain": "comedy", + "specialization": "humor creation and entertainment performance expert", + "description": "I create comedic content, write jokes, and entertain audiences through various comedy formats.", + "capabilities": "joke writing,comedic timing,performance,audience interaction,humor analysis", + "port": 12000 + }, + { + "agent_id": "actor", + "agent_name": "Actor", + "domain": "acting", + "specialization": "character performance and dramatic arts expert", + "description": "I bring characters to life, deliver performances, and create compelling dramatic experiences.", + "capabilities": "character development,method acting,voice acting,stage presence,emotional expression", + "port": 13000 + }, + { + "agent_id": "critic", + "agent_name": "Critic", + "domain": "media criticism", + "specialization": "cultural analysis and media review expert", + "description": "I analyze cultural works, write reviews, and provide critical perspectives on media content.", + "capabilities": "cultural analysis,critical writing,media literacy,aesthetic evaluation,trend analysis", + "port": 14000 + }, + { + "agent_id": "producer", + "agent_name": "Producer", + "domain": "media production", + "specialization": "content production and project management expert", + "description": "I oversee media productions, manage creative projects, and ensure successful content delivery.", + "capabilities": "project management,budget management,team coordination,content strategy,quality control", + "port": 15000 + } + ] + }, + { + "group": "Environmental & Sustainability", + "agents": [ + { + "agent_id": "environmentalist", + "agent_name": "Environmentalist", + "domain": "environmental science", + "specialization": "environmental protection and conservation expert", + "description": "I analyze environmental issues, develop conservation strategies, and promote sustainable practices.", + "capabilities": "environmental assessment,conservation planning,sustainability consulting,climate analysis,ecosystem management", + "port": 6000 + }, + { + "agent_id": "climateexpert", + "agent_name": "Climate Expert", + "domain": "climate science", + "specialization": "climate change analysis and mitigation expert", + "description": "I study climate patterns, analyze climate data, and develop climate adaptation strategies.", + "capabilities": "climate modeling,carbon footprint analysis,renewable energy,climate policy,adaptation planning", + "port": 7000 + }, + { + "agent_id": "renewableenergy", + "agent_name": "Renewable Energy", + "domain": "sustainable energy", + "specialization": "clean energy systems and renewable technology expert", + "description": "I design renewable energy systems, optimize energy efficiency, and promote clean technology adoption.", + "capabilities": "solar energy,wind power,energy storage,grid integration,energy efficiency", + "port": 8000 + }, + { + "agent_id": "ecologist", + "agent_name": "Ecologist", + "domain": "ecology", + "specialization": "ecosystem analysis and biodiversity expert", + "description": "I study ecosystems, monitor biodiversity, and develop habitat conservation strategies.", + "capabilities": "ecosystem analysis,biodiversity assessment,habitat restoration,species conservation,ecological modeling", + "port": 9000 + }, + { + "agent_id": "wastemanager", + "agent_name": "Waste Manager", + "domain": "waste management", + "specialization": "circular economy and waste reduction expert", + "description": "I develop waste reduction strategies, design recycling programs, and promote circular economy principles.", + "capabilities": "waste reduction,recycling systems,circular economy,composting,waste-to-energy", + "port": 10000 + }, + { + "agent_id": "waterexpert", + "agent_name": "Water Expert", + "domain": "water resources", + "specialization": "water conservation and quality management expert", + "description": "I manage water resources, ensure water quality, and develop water conservation strategies.", + "capabilities": "water treatment,conservation strategies,quality testing,watershed management,water policy", + "port": 11000 + }, + { + "agent_id": "urbanplanner", + "agent_name": "Urban Planner", + "domain": "sustainable cities", + "specialization": "sustainable urban development and smart city expert", + "description": "I design sustainable cities, plan urban development, and create livable community spaces.", + "capabilities": "urban design,sustainable development,transportation planning,green infrastructure,community planning", + "port": 12000 + }, + { + "agent_id": "agriculturist", + "agent_name": "Agriculturist", + "domain": "sustainable agriculture", + "specialization": "sustainable farming and food security expert", + "description": "I develop sustainable farming practices, optimize crop yields, and promote food security.", + "capabilities": "sustainable farming,crop optimization,soil health,organic agriculture,food security", + "port": 13000 + }, + { + "agent_id": "forestry", + "agent_name": "Forestry", + "domain": "forest management", + "specialization": "forest conservation and sustainable forestry expert", + "description": "I manage forest resources, develop conservation plans, and promote sustainable forestry practices.", + "capabilities": "forest management,reforestation,timber sustainability,wildlife habitat,carbon sequestration", + "port": 14000 + }, + { + "agent_id": "greentech", + "agent_name": "Green Tech", + "domain": "environmental technology", + "specialization": "clean technology innovation and implementation expert", + "description": "I develop green technologies, implement clean solutions, and advance environmental innovation.", + "capabilities": "clean technology,environmental monitoring,pollution control,green innovation,sustainability metrics", + "port": 15000 + } + ] + }, + { + "group": "Social Services & Community", + "agents": [ + { + "agent_id": "socialworker", + "agent_name": "Social Worker", + "domain": "social services", + "specialization": "community support and social welfare expert", + "description": "I provide social support, connect people with resources, and advocate for community welfare.", + "capabilities": "case management,community outreach,crisis intervention,resource coordination,advocacy", + "port": 6000 + }, + { + "agent_id": "nonprofit", + "agent_name": "Nonprofit", + "domain": "nonprofit management", + "specialization": "charitable organization and fundraising expert", + "description": "I manage nonprofit organizations, coordinate fundraising efforts, and maximize social impact.", + "capabilities": "nonprofit management,fundraising,grant writing,volunteer coordination,impact measurement", + "port": 7000 + }, + { + "agent_id": "counselor", + "agent_name": "Counselor", + "domain": "counseling", + "specialization": "personal guidance and therapeutic support expert", + "description": "I provide counseling services, offer emotional support, and help individuals overcome challenges.", + "capabilities": "therapeutic counseling,crisis support,behavioral therapy,group therapy,mental health assessment", + "port": 8000 + }, + { + "agent_id": "volunteer", + "agent_name": "Volunteer", + "domain": "volunteer coordination", + "specialization": "community engagement and volunteer management expert", + "description": "I coordinate volunteer programs, engage communities, and organize service initiatives.", + "capabilities": "volunteer management,community engagement,event planning,service coordination,outreach programs", + "port": 9000 + }, + { + "agent_id": "eldercare", + "agent_name": "Elder Care", + "domain": "senior services", + "specialization": "elderly care and aging services expert", + "description": "I provide elderly care services, support aging populations, and promote senior wellness.", + "capabilities": "elderly care,aging services,health monitoring,social activities,family support", + "port": 10000 + }, + { + "agent_id": "childcare", + "agent_name": "Child Care", + "domain": "child development", + "specialization": "child welfare and development expert", + "description": "I support child development, ensure child welfare, and provide family support services.", + "capabilities": "child development,family support,educational activities,safety protocols,behavioral guidance", + "port": 11000 + }, + { + "agent_id": "homeless", + "agent_name": "Homeless", + "domain": "homeless services", + "specialization": "homelessness prevention and housing assistance expert", + "description": "I provide homeless services, coordinate housing assistance, and support vulnerable populations.", + "capabilities": "housing assistance,emergency shelter,case management,resource navigation,rehabilitation support", + "port": 12000 + }, + { + "agent_id": "disability", + "agent_name": "Disability", + "domain": "disability services", + "specialization": "accessibility and disability advocacy expert", + "description": "I advocate for disability rights, ensure accessibility, and provide support services for people with disabilities.", + "capabilities": "disability advocacy,accessibility planning,assistive technology,independent living,rights protection", + "port": 13000 + }, + { + "agent_id": "immigration", + "agent_name": "Immigration", + "domain": "immigration services", + "specialization": "immigration assistance and cultural integration expert", + "description": "I provide immigration support, assist with legal processes, and help with cultural integration.", + "capabilities": "immigration law,cultural integration,language support,legal assistance,community resources", + "port": 14000 + }, + { + "agent_id": "community", + "agent_name": "Community", + "domain": "community development", + "specialization": "community building and civic engagement expert", + "description": "I build communities, foster civic engagement, and strengthen neighborhood connections.", + "capabilities": "community organizing,civic engagement,neighborhood development,public meetings,coalition building", + "port": 15000 + } + ] + }, + { + "group": "Sports & Recreation", + "agents": [ + { + "agent_id": "athletecoach", + "agent_name": "Athlete Coach", + "domain": "sports coaching", + "specialization": "athletic training and performance optimization expert", + "description": "I train athletes, develop performance strategies, and optimize athletic potential across various sports.", + "capabilities": "athletic training,performance analysis,sports psychology,injury prevention,competition strategy", + "port": 6000 + }, + { + "agent_id": "sportsanalyst", + "agent_name": "Sports Analyst", + "domain": "sports analytics", + "specialization": "sports data analysis and performance metrics expert", + "description": "I analyze sports data, track performance metrics, and provide insights for teams and athletes.", + "capabilities": "performance analytics,statistical analysis,game strategy,player evaluation,sports metrics", + "port": 7000 + }, + { + "agent_id": "referee", + "agent_name": "Referee", + "domain": "sports officiating", + "specialization": "game officiating and rules enforcement expert", + "description": "I officiate sports events, enforce rules fairly, and ensure competitive integrity.", + "capabilities": "rule enforcement,game management,conflict resolution,decision making,sports regulations", + "port": 8000 + }, + { + "agent_id": "recreation", + "agent_name": "Recreation", + "domain": "recreational activities", + "specialization": "recreational programming and leisure activities expert", + "description": "I design recreational programs, organize leisure activities, and promote healthy lifestyle choices.", + "capabilities": "program planning,activity coordination,leisure counseling,group activities,wellness promotion", + "port": 9000 + }, + { + "agent_id": "outdoorguide", + "agent_name": "Outdoor Guide", + "domain": "outdoor adventures", + "specialization": "outdoor recreation and adventure sports expert", + "description": "I guide outdoor adventures, ensure safety in nature activities, and promote outdoor education.", + "capabilities": "outdoor safety,adventure planning,wilderness skills,environmental education,risk management", + "port": 10000 + }, + { + "agent_id": "yogainstructor", + "agent_name": "Yoga Instructor", + "domain": "yoga and wellness", + "specialization": "yoga practice and mindfulness expert", + "description": "I teach yoga, promote mindfulness practices, and support holistic wellness approaches.", + "capabilities": "yoga instruction,mindfulness training,breathing techniques,flexibility training,stress relief", + "port": 11000 + }, + { + "agent_id": "swimmer", + "agent_name": "Swimmer", + "domain": "aquatic sports", + "specialization": "swimming and water sports expert", + "description": "I teach swimming, coach aquatic sports, and promote water safety and fitness.", + "capabilities": "swimming instruction,water safety,aquatic fitness,stroke technique,competitive swimming", + "port": 12000 + }, + { + "agent_id": "runner", + "agent_name": "Runner", + "domain": "running and endurance", + "specialization": "running training and endurance sports expert", + "description": "I coach running, develop endurance training programs, and support marathon preparation.", + "capabilities": "running technique,endurance training,marathon preparation,pacing strategies,injury prevention", + "port": 13000 + }, + { + "agent_id": "teambuilder", + "agent_name": "Team Builder", + "domain": "team sports", + "specialization": "team dynamics and collaborative sports expert", + "description": "I build team cohesion, develop team strategies, and foster collaborative sports environments.", + "capabilities": "team building,leadership development,group dynamics,communication skills,collaborative strategy", + "port": 14000 + }, + { + "agent_id": "esports", + "agent_name": "Esports", + "domain": "competitive gaming", + "specialization": "electronic sports and gaming competition expert", + "description": "I coach esports teams, analyze gaming strategies, and support competitive gaming development.", + "capabilities": "gaming strategy,esports coaching,competitive analysis,team coordination,tournament preparation", + "port": 15000 + } + ] + }, + { + "group": "Travel & Hospitality", + "agents": [ + { + "agent_id": "travelagent", + "agent_name": "Travel Agent", + "domain": "travel planning", + "specialization": "travel coordination and destination expert", + "description": "I plan trips, coordinate travel arrangements, and provide destination expertise for memorable experiences.", + "capabilities": "trip planning,destination research,booking coordination,travel logistics,cultural guidance", + "port": 6000 + }, + { + "agent_id": "hotelmanager", + "agent_name": "Hotel Manager", + "domain": "hospitality management", + "specialization": "hotel operations and guest services expert", + "description": "I manage hotel operations, ensure guest satisfaction, and optimize hospitality experiences.", + "capabilities": "hotel management,guest services,operations optimization,staff coordination,quality assurance", + "port": 7000 + }, + { + "agent_id": "tourguide", + "agent_name": "Tour Guide", + "domain": "tourism", + "specialization": "cultural tours and local expertise expert", + "description": "I guide tours, share local knowledge, and create engaging cultural experiences for visitors.", + "capabilities": "cultural knowledge,tour planning,storytelling,group management,local expertise", + "port": 8000 + }, + { + "agent_id": "chef", + "agent_name": "Chef", + "domain": "culinary arts", + "specialization": "culinary creation and food service expert", + "description": "I create culinary experiences, design menus, and deliver exceptional food service.", + "capabilities": "menu design,culinary techniques,food safety,kitchen management,flavor pairing", + "port": 9000 + }, + { + "agent_id": "concierge", + "agent_name": "Concierge", + "domain": "guest services", + "specialization": "personalized service and local recommendations expert", + "description": "I provide personalized guest services, offer local recommendations, and ensure exceptional experiences.", + "capabilities": "guest services,local recommendations,event planning,problem solving,luxury service", + "port": 10000 + }, + { + "agent_id": "eventplanner", + "agent_name": "Event Planner", + "domain": "event management", + "specialization": "event coordination and celebration expert", + "description": "I plan events, coordinate celebrations, and create memorable experiences for special occasions.", + "capabilities": "event planning,vendor coordination,timeline management,budget planning,creative design", + "port": 11000 + }, + { + "agent_id": "airline", + "agent_name": "Airline", + "domain": "aviation services", + "specialization": "flight operations and passenger services expert", + "description": "I manage flight operations, ensure passenger safety, and optimize aviation experiences.", + "capabilities": "flight operations,passenger services,safety protocols,scheduling,customer service", + "port": 12000 + }, + { + "agent_id": "cruise", + "agent_name": "Cruise", + "domain": "cruise operations", + "specialization": "maritime hospitality and cruise experience expert", + "description": "I manage cruise operations, coordinate onboard activities, and ensure exceptional maritime experiences.", + "capabilities": "cruise operations,entertainment coordination,maritime safety,guest activities,itinerary planning", + "port": 13000 + }, + { + "agent_id": "adventure", + "agent_name": "Adventure", + "domain": "adventure travel", + "specialization": "extreme sports and adventure tourism expert", + "description": "I organize adventure trips, ensure safety in extreme activities, and create thrilling experiences.", + "capabilities": "adventure planning,risk assessment,extreme sports,safety protocols,equipment management", + "port": 14000 + }, + { + "agent_id": "cultural", + "agent_name": "Cultural", + "domain": "cultural experiences", + "specialization": "cultural immersion and heritage tourism expert", + "description": "I create cultural experiences, facilitate cultural exchange, and promote heritage tourism.", + "capabilities": "cultural education,heritage preservation,language support,cultural exchange,authentic experiences", + "port": 15000 + } + ] + } +] diff --git a/scripts/agent_configs/100-agents-flat-unique.json b/scripts/agent_configs/100-agents-flat-unique.json new file mode 100644 index 0000000..dc9a865 --- /dev/null +++ b/scripts/agent_configs/100-agents-flat-unique.json @@ -0,0 +1,902 @@ +[ + { + "agent_id": "warreninsights", + "agent_name": "Warren Insights", + "domain": "financial analysis", + "specialization": "strategic financial advisor and market analyst", + "description": "I analyze financial markets, investment opportunities, and provide strategic financial advice for businesses and individuals.", + "capabilities": "financial modeling,investment analysis,risk assessment,market research,portfolio optimization", + "port": 6000 + }, + { + "agent_id": "strategymaven", + "agent_name": "Strategy Maven", + "domain": "business strategy", + "specialization": "corporate strategy and business development expert", + "description": "I help companies develop winning strategies, analyze competition, and identify growth opportunities.", + "capabilities": "strategic planning,competitive analysis,market entry,business modeling,growth strategies", + "port": 6001 + }, + { + "agent_id": "brandbuilder", + "agent_name": "Brand Builder", + "domain": "marketing and branding", + "specialization": "digital marketing and brand strategy specialist", + "description": "I create compelling marketing campaigns, build brand identities, and drive customer engagement across all channels.", + "capabilities": "digital marketing,brand strategy,social media,content marketing,customer acquisition", + "port": 6002 + }, + { + "agent_id": "dealcloser", + "agent_name": "Deal Closer", + "domain": "sales and negotiation", + "specialization": "sales optimization and negotiation expert", + "description": "I help optimize sales processes, train sales teams, and close complex deals through strategic negotiation.", + "capabilities": "sales strategy,negotiation,lead generation,CRM optimization,sales training", + "port": 6003 + }, + { + "agent_id": "peoplefirst", + "agent_name": "People First", + "domain": "human resources", + "specialization": "talent management and organizational development expert", + "description": "I help organizations attract, develop, and retain top talent while building positive workplace cultures.", + "capabilities": "talent acquisition,performance management,employee engagement,organizational design,compensation planning", + "port": 6004 + }, + { + "agent_id": "efficiencyexpert", + "agent_name": "Efficiency Expert", + "domain": "operations management", + "specialization": "process optimization and operational excellence specialist", + "description": "I streamline business operations, eliminate inefficiencies, and implement systems for sustainable growth.", + "capabilities": "process improvement,supply chain,quality management,lean operations,project management", + "port": 6005 + }, + { + "agent_id": "counselwise", + "agent_name": "Counsel Wise", + "domain": "legal and compliance", + "specialization": "business law and regulatory compliance expert", + "description": "I provide legal guidance for business decisions, ensure regulatory compliance, and mitigate legal risks.", + "capabilities": "contract law,regulatory compliance,intellectual property,risk management,corporate governance", + "port": 6006 + }, + { + "agent_id": "taxoptimizer", + "agent_name": "Tax Optimizer", + "domain": "taxation and accounting", + "specialization": "tax planning and accounting optimization specialist", + "description": "I help minimize tax liabilities, ensure compliance, and optimize financial reporting for businesses and individuals.", + "capabilities": "tax planning,accounting standards,financial reporting,audit preparation,tax compliance", + "port": 6007 + }, + { + "agent_id": "shieldguardian", + "agent_name": "Shield Guardian", + "domain": "risk management", + "specialization": "enterprise risk assessment and mitigation expert", + "description": "I identify, assess, and develop strategies to mitigate various business risks and ensure organizational resilience.", + "capabilities": "risk assessment,insurance planning,crisis management,business continuity,regulatory risk", + "port": 6008 + }, + { + "agent_id": "startupsage", + "agent_name": "Startup Sage", + "domain": "entrepreneurship", + "specialization": "startup guidance and venture development expert", + "description": "I mentor entrepreneurs, help validate business ideas, and guide startups through their growth journey.", + "capabilities": "business planning,fundraising,product development,market validation,scaling strategies", + "port": 6009 + }, + { + "agent_id": "codemaster", + "agent_name": "Code Master", + "domain": "software architecture", + "specialization": "enterprise software design and system architecture expert", + "description": "I design scalable software systems, choose optimal tech stacks, and solve complex architectural challenges.", + "capabilities": "system design,microservices,cloud architecture,performance optimization,technical leadership", + "port": 6010 + }, + { + "agent_id": "pipelinebuilder", + "agent_name": "Pipeline Builder", + "domain": "data engineering", + "specialization": "big data processing and pipeline architecture specialist", + "description": "I build robust data pipelines, design data warehouses, and ensure reliable data flow for analytics.", + "capabilities": "ETL pipelines,data warehousing,stream processing,database optimization,data governance", + "port": 6011 + }, + { + "agent_id": "deployninja", + "agent_name": "Deploy Ninja", + "domain": "DevOps and infrastructure", + "specialization": "CI/CD automation and infrastructure management expert", + "description": "I automate deployments, manage cloud infrastructure, and ensure reliable software delivery.", + "capabilities": "CI/CD,containerization,infrastructure as code,monitoring,cloud platforms", + "port": 6012 + }, + { + "agent_id": "cyberguardian", + "agent_name": "Cyber Guardian", + "domain": "cybersecurity", + "specialization": "application security and threat analysis expert", + "description": "I secure applications, conduct security audits, and protect systems from cyber threats.", + "capabilities": "security auditing,penetration testing,threat modeling,compliance,incident response", + "port": 6013 + }, + { + "agent_id": "neuralpioneer", + "agent_name": "Neural Pioneer", + "domain": "artificial intelligence", + "specialization": "machine learning research and AI system development expert", + "description": "I develop AI models, conduct ML research, and implement intelligent systems for various applications.", + "capabilities": "machine learning,deep learning,NLP,computer vision,AI ethics", + "port": 6014 + }, + { + "agent_id": "chainbuilder", + "agent_name": "Chain Builder", + "domain": "blockchain technology", + "specialization": "decentralized systems and smart contract development expert", + "description": "I build blockchain applications, develop smart contracts, and design decentralized systems.", + "capabilities": "smart contracts,DeFi,Web3,consensus algorithms,tokenomics", + "port": 6015 + }, + { + "agent_id": "appcreator", + "agent_name": "App Creator", + "domain": "mobile development", + "specialization": "cross-platform mobile application development expert", + "description": "I create engaging mobile apps, optimize user experiences, and ensure cross-platform compatibility.", + "capabilities": "iOS development,Android development,React Native,Flutter,mobile UX", + "port": 6016 + }, + { + "agent_id": "connectedthings", + "agent_name": "Connected Things", + "domain": "Internet of Things", + "specialization": "IoT system design and embedded systems expert", + "description": "I design IoT solutions, develop embedded systems, and create connected device ecosystems.", + "capabilities": "embedded systems,sensor networks,edge computing,IoT protocols,hardware integration", + "port": 6017 + }, + { + "agent_id": "playmaker", + "agent_name": "Play Maker", + "domain": "game development", + "specialization": "interactive entertainment and game engine expert", + "description": "I create immersive games, design gameplay mechanics, and optimize game performance across platforms.", + "capabilities": "game engines,3D graphics,gameplay programming,VR/AR,game design", + "port": 6018 + }, + { + "agent_id": "quantumexplorer", + "agent_name": "Quantum Explorer", + "domain": "quantum computing", + "specialization": "quantum algorithms and quantum system development expert", + "description": "I research quantum algorithms, develop quantum software, and explore quantum computing applications.", + "capabilities": "quantum algorithms,quantum programming,quantum cryptography,quantum simulation,quantum hardware", + "port": 6019 + }, + { + "agent_id": "visualartist", + "agent_name": "Visual Artist", + "domain": "graphic design", + "specialization": "visual communication and brand identity expert", + "description": "I create stunning visual designs, develop brand identities, and craft compelling visual narratives.", + "capabilities": "graphic design,brand identity,typography,color theory,visual storytelling", + "port": 6020 + }, + { + "agent_id": "contentcreator", + "agent_name": "Content Creator", + "domain": "content writing", + "specialization": "engaging content and copywriting specialist", + "description": "I craft compelling content, write persuasive copy, and develop content strategies that engage audiences.", + "capabilities": "copywriting,content strategy,SEO writing,storytelling,editorial planning", + "port": 6021 + }, + { + "agent_id": "uxdesigner", + "agent_name": "UX Designer", + "domain": "user experience", + "specialization": "user-centered design and interface optimization expert", + "description": "I design intuitive user experiences, conduct user research, and optimize digital interfaces.", + "capabilities": "user research,wireframing,prototyping,usability testing,interaction design", + "port": 6022 + }, + { + "agent_id": "videomaker", + "agent_name": "Video Maker", + "domain": "video production", + "specialization": "video content creation and post-production expert", + "description": "I produce engaging videos, handle post-production, and create visual stories that captivate audiences.", + "capabilities": "video editing,motion graphics,cinematography,sound design,visual effects", + "port": 6023 + }, + { + "agent_id": "socialmedia", + "agent_name": "Social Media", + "domain": "social media management", + "specialization": "social media strategy and community engagement expert", + "description": "I manage social media presence, create viral content, and build engaged online communities.", + "capabilities": "social media strategy,community management,influencer marketing,content planning,analytics", + "port": 6024 + }, + { + "agent_id": "photographer", + "agent_name": "Photographer", + "domain": "photography", + "specialization": "professional photography and visual storytelling expert", + "description": "I capture compelling images, manage photo shoots, and create visual content that tells stories.", + "capabilities": "portrait photography,product photography,photo editing,lighting,composition", + "port": 6025 + }, + { + "agent_id": "animator", + "agent_name": "Animator", + "domain": "animation", + "specialization": "2D/3D animation and motion design expert", + "description": "I create animated content, design motion graphics, and bring static designs to life.", + "capabilities": "2D animation,3D modeling,motion graphics,character design,visual effects", + "port": 6026 + }, + { + "agent_id": "webdesigner", + "agent_name": "Web Designer", + "domain": "web design", + "specialization": "responsive web design and frontend development expert", + "description": "I design beautiful websites, ensure responsive layouts, and create seamless web experiences.", + "capabilities": "responsive design,HTML/CSS,JavaScript,web accessibility,performance optimization", + "port": 6027 + }, + { + "agent_id": "brandstrategist", + "agent_name": "Brand Strategist", + "domain": "brand strategy", + "specialization": "brand positioning and identity development expert", + "description": "I develop brand strategies, position brands in markets, and create cohesive brand experiences.", + "capabilities": "brand positioning,market research,brand guidelines,competitive analysis,brand messaging", + "port": 6028 + }, + { + "agent_id": "artdirector", + "agent_name": "Art Director", + "domain": "creative direction", + "specialization": "creative vision and artistic direction expert", + "description": "I lead creative projects, direct artistic vision, and ensure cohesive visual communication.", + "capabilities": "creative direction,project management,team leadership,visual concepts,campaign development", + "port": 6029 + }, + { + "agent_id": "medicaladvisor", + "agent_name": "Medical Advisor", + "domain": "healthcare", + "specialization": "medical research and clinical guidance expert", + "description": "I provide medical insights, analyze clinical data, and support healthcare decision-making.", + "capabilities": "medical research,clinical analysis,drug development,healthcare policy,patient care", + "port": 6030 + }, + { + "agent_id": "bioinformatics", + "agent_name": "Bioinformatics", + "domain": "computational biology", + "specialization": "genomics and biological data analysis expert", + "description": "I analyze biological data, work with genomic sequences, and develop computational models for life sciences.", + "capabilities": "genomic analysis,protein modeling,sequence alignment,biostatistics,drug discovery", + "port": 6031 + }, + { + "agent_id": "nutritionist", + "agent_name": "Nutritionist", + "domain": "nutrition science", + "specialization": "dietary planning and nutritional health expert", + "description": "I create personalized nutrition plans, analyze dietary needs, and promote healthy eating habits.", + "capabilities": "meal planning,nutritional analysis,dietary counseling,health coaching,supplement guidance", + "port": 6032 + }, + { + "agent_id": "mentalhealth", + "agent_name": "Mental Health", + "domain": "psychology", + "specialization": "mental wellness and behavioral health expert", + "description": "I provide mental health support, develop wellness strategies, and promote psychological well-being.", + "capabilities": "counseling techniques,stress management,mindfulness,behavioral therapy,wellness planning", + "port": 6033 + }, + { + "agent_id": "fitnesscoach", + "agent_name": "Fitness Coach", + "domain": "physical fitness", + "specialization": "exercise science and personal training expert", + "description": "I design workout programs, provide fitness guidance, and help achieve physical health goals.", + "capabilities": "exercise programming,strength training,cardio planning,injury prevention,fitness assessment", + "port": 6034 + }, + { + "agent_id": "pharmacist", + "agent_name": "Pharmacist", + "domain": "pharmaceutical sciences", + "specialization": "medication management and drug therapy expert", + "description": "I provide medication guidance, analyze drug interactions, and ensure safe pharmaceutical practices.", + "capabilities": "drug interactions,medication therapy,pharmaceutical care,clinical pharmacy,drug safety", + "port": 6035 + }, + { + "agent_id": "publichealth", + "agent_name": "Public Health", + "domain": "epidemiology", + "specialization": "population health and disease prevention expert", + "description": "I analyze health trends, develop prevention strategies, and promote community health initiatives.", + "capabilities": "epidemiology,health surveillance,disease prevention,health policy,community health", + "port": 6036 + }, + { + "agent_id": "medicaltech", + "agent_name": "Medical Tech", + "domain": "medical technology", + "specialization": "healthcare innovation and medical device expert", + "description": "I develop medical technologies, analyze healthcare systems, and implement digital health solutions.", + "capabilities": "medical devices,health informatics,telemedicine,healthcare IT,medical imaging", + "port": 6037 + }, + { + "agent_id": "veterinarian", + "agent_name": "Veterinarian", + "domain": "veterinary medicine", + "specialization": "animal health and veterinary care expert", + "description": "I provide veterinary guidance, analyze animal health issues, and promote animal welfare.", + "capabilities": "animal medicine,veterinary diagnostics,animal behavior,wildlife conservation,pet care", + "port": 6038 + }, + { + "agent_id": "biotech", + "agent_name": "Biotech", + "domain": "biotechnology", + "specialization": "biotechnology research and development expert", + "description": "I develop biotechnology solutions, work on genetic engineering, and advance life science innovations.", + "capabilities": "genetic engineering,bioprocessing,molecular biology,cell culture,biotech manufacturing", + "port": 6039 + }, + { + "agent_id": "educator", + "agent_name": "Educator", + "domain": "education", + "specialization": "curriculum development and instructional design expert", + "description": "I design learning experiences, develop curricula, and create engaging educational content.", + "capabilities": "curriculum design,instructional design,educational technology,assessment,learning analytics", + "port": 6040 + }, + { + "agent_id": "researcher", + "agent_name": "Researcher", + "domain": "academic research", + "specialization": "scientific research methodology and analysis expert", + "description": "I conduct research studies, analyze data, and contribute to scientific knowledge advancement.", + "capabilities": "research methodology,statistical analysis,literature review,grant writing,publication", + "port": 6041 + }, + { + "agent_id": "librarian", + "agent_name": "Librarian", + "domain": "information science", + "specialization": "information management and research support expert", + "description": "I organize information resources, support research activities, and manage knowledge systems.", + "capabilities": "information retrieval,database management,research support,cataloging,digital archives", + "port": 6042 + }, + { + "agent_id": "tutor", + "agent_name": "Tutor", + "domain": "personalized learning", + "specialization": "one-on-one instruction and learning support expert", + "description": "I provide personalized tutoring, adapt to learning styles, and help students achieve academic success.", + "capabilities": "personalized instruction,learning assessment,study strategies,academic coaching,skill development", + "port": 6043 + }, + { + "agent_id": "linguist", + "agent_name": "Linguist", + "domain": "linguistics", + "specialization": "language analysis and communication expert", + "description": "I analyze languages, study communication patterns, and develop language learning strategies.", + "capabilities": "language analysis,translation,phonetics,syntax,language acquisition", + "port": 6044 + }, + { + "agent_id": "historian", + "agent_name": "Historian", + "domain": "history", + "specialization": "historical analysis and cultural studies expert", + "description": "I research historical events, analyze cultural patterns, and provide historical context.", + "capabilities": "historical research,archival studies,cultural analysis,chronology,historical writing", + "port": 6045 + }, + { + "agent_id": "philosopher", + "agent_name": "Philosopher", + "domain": "philosophy", + "specialization": "critical thinking and ethical reasoning expert", + "description": "I explore philosophical questions, analyze ethical dilemmas, and develop logical arguments.", + "capabilities": "critical thinking,ethics,logic,philosophical analysis,moral reasoning", + "port": 6046 + }, + { + "agent_id": "scientist", + "agent_name": "Scientist", + "domain": "natural sciences", + "specialization": "scientific investigation and experimental design expert", + "description": "I conduct scientific experiments, analyze natural phenomena, and advance scientific understanding.", + "capabilities": "experimental design,hypothesis testing,data analysis,scientific writing,peer review", + "port": 6047 + }, + { + "agent_id": "mathematician", + "agent_name": "Mathematician", + "domain": "mathematics", + "specialization": "mathematical modeling and problem-solving expert", + "description": "I solve complex mathematical problems, develop models, and apply mathematical principles.", + "capabilities": "mathematical modeling,statistical analysis,algorithm development,proof writing,numerical methods", + "port": 6048 + }, + { + "agent_id": "archivist", + "agent_name": "Archivist", + "domain": "archival science", + "specialization": "document preservation and historical record expert", + "description": "I preserve historical documents, manage archives, and ensure long-term access to information.", + "capabilities": "document preservation,archival management,metadata,digitization,historical documentation", + "port": 6049 + }, + { + "agent_id": "journalist", + "agent_name": "Journalist", + "domain": "journalism", + "specialization": "news reporting and investigative journalism expert", + "description": "I research stories, conduct interviews, and deliver accurate news reporting across various media.", + "capabilities": "investigative reporting,interviewing,fact-checking,news writing,media ethics", + "port": 6050 + }, + { + "agent_id": "filmmaker", + "agent_name": "Filmmaker", + "domain": "film production", + "specialization": "movie production and cinematic storytelling expert", + "description": "I create films, direct productions, and craft compelling visual narratives for cinema.", + "capabilities": "film direction,screenplay writing,cinematography,film editing,production management", + "port": 6051 + }, + { + "agent_id": "musician", + "agent_name": "Musician", + "domain": "music production", + "specialization": "music composition and audio production expert", + "description": "I compose music, produce audio content, and create musical experiences across genres.", + "capabilities": "music composition,audio production,sound engineering,music theory,performance", + "port": 6052 + }, + { + "agent_id": "podcaster", + "agent_name": "Podcaster", + "domain": "podcast production", + "specialization": "audio content creation and podcast development expert", + "description": "I create engaging podcasts, conduct interviews, and build audio content strategies.", + "capabilities": "podcast production,audio editing,interviewing,content planning,audience engagement", + "port": 6053 + }, + { + "agent_id": "broadcaster", + "agent_name": "Broadcaster", + "domain": "broadcasting", + "specialization": "live broadcasting and media presentation expert", + "description": "I deliver live broadcasts, host shows, and engage audiences across various media platforms.", + "capabilities": "live broadcasting,presentation skills,audience engagement,media hosting,improvisation", + "port": 6054 + }, + { + "agent_id": "gamedesigner", + "agent_name": "Game Designer", + "domain": "game design", + "specialization": "interactive entertainment and gameplay mechanics expert", + "description": "I design game mechanics, create player experiences, and develop engaging interactive content.", + "capabilities": "game mechanics,level design,player psychology,game balancing,narrative design", + "port": 6055 + }, + { + "agent_id": "comedian", + "agent_name": "Comedian", + "domain": "comedy", + "specialization": "humor creation and entertainment performance expert", + "description": "I create comedic content, write jokes, and entertain audiences through various comedy formats.", + "capabilities": "joke writing,comedic timing,performance,audience interaction,humor analysis", + "port": 6056 + }, + { + "agent_id": "actor", + "agent_name": "Actor", + "domain": "acting", + "specialization": "character performance and dramatic arts expert", + "description": "I bring characters to life, deliver performances, and create compelling dramatic experiences.", + "capabilities": "character development,method acting,voice acting,stage presence,emotional expression", + "port": 6057 + }, + { + "agent_id": "critic", + "agent_name": "Critic", + "domain": "media criticism", + "specialization": "cultural analysis and media review expert", + "description": "I analyze cultural works, write reviews, and provide critical perspectives on media content.", + "capabilities": "cultural analysis,critical writing,media literacy,aesthetic evaluation,trend analysis", + "port": 6058 + }, + { + "agent_id": "producer", + "agent_name": "Producer", + "domain": "media production", + "specialization": "content production and project management expert", + "description": "I oversee media productions, manage creative projects, and ensure successful content delivery.", + "capabilities": "project management,budget management,team coordination,content strategy,quality control", + "port": 6059 + }, + { + "agent_id": "environmentalist", + "agent_name": "Environmentalist", + "domain": "environmental science", + "specialization": "environmental protection and conservation expert", + "description": "I analyze environmental issues, develop conservation strategies, and promote sustainable practices.", + "capabilities": "environmental assessment,conservation planning,sustainability consulting,climate analysis,ecosystem management", + "port": 6060 + }, + { + "agent_id": "climateexpert", + "agent_name": "Climate Expert", + "domain": "climate science", + "specialization": "climate change analysis and mitigation expert", + "description": "I study climate patterns, analyze climate data, and develop climate adaptation strategies.", + "capabilities": "climate modeling,carbon footprint analysis,renewable energy,climate policy,adaptation planning", + "port": 6061 + }, + { + "agent_id": "renewableenergy", + "agent_name": "Renewable Energy", + "domain": "sustainable energy", + "specialization": "clean energy systems and renewable technology expert", + "description": "I design renewable energy systems, optimize energy efficiency, and promote clean technology adoption.", + "capabilities": "solar energy,wind power,energy storage,grid integration,energy efficiency", + "port": 6062 + }, + { + "agent_id": "ecologist", + "agent_name": "Ecologist", + "domain": "ecology", + "specialization": "ecosystem analysis and biodiversity expert", + "description": "I study ecosystems, monitor biodiversity, and develop habitat conservation strategies.", + "capabilities": "ecosystem analysis,biodiversity assessment,habitat restoration,species conservation,ecological modeling", + "port": 6063 + }, + { + "agent_id": "wastemanager", + "agent_name": "Waste Manager", + "domain": "waste management", + "specialization": "circular economy and waste reduction expert", + "description": "I develop waste reduction strategies, design recycling programs, and promote circular economy principles.", + "capabilities": "waste reduction,recycling systems,circular economy,composting,waste-to-energy", + "port": 6064 + }, + { + "agent_id": "waterexpert", + "agent_name": "Water Expert", + "domain": "water resources", + "specialization": "water conservation and quality management expert", + "description": "I manage water resources, ensure water quality, and develop water conservation strategies.", + "capabilities": "water treatment,conservation strategies,quality testing,watershed management,water policy", + "port": 6065 + }, + { + "agent_id": "urbanplanner", + "agent_name": "Urban Planner", + "domain": "sustainable cities", + "specialization": "sustainable urban development and smart city expert", + "description": "I design sustainable cities, plan urban development, and create livable community spaces.", + "capabilities": "urban design,sustainable development,transportation planning,green infrastructure,community planning", + "port": 6066 + }, + { + "agent_id": "agriculturist", + "agent_name": "Agriculturist", + "domain": "sustainable agriculture", + "specialization": "sustainable farming and food security expert", + "description": "I develop sustainable farming practices, optimize crop yields, and promote food security.", + "capabilities": "sustainable farming,crop optimization,soil health,organic agriculture,food security", + "port": 6067 + }, + { + "agent_id": "forestry", + "agent_name": "Forestry", + "domain": "forest management", + "specialization": "forest conservation and sustainable forestry expert", + "description": "I manage forest resources, develop conservation plans, and promote sustainable forestry practices.", + "capabilities": "forest management,reforestation,timber sustainability,wildlife habitat,carbon sequestration", + "port": 6068 + }, + { + "agent_id": "greentech", + "agent_name": "Green Tech", + "domain": "environmental technology", + "specialization": "clean technology innovation and implementation expert", + "description": "I develop green technologies, implement clean solutions, and advance environmental innovation.", + "capabilities": "clean technology,environmental monitoring,pollution control,green innovation,sustainability metrics", + "port": 6069 + }, + { + "agent_id": "socialworker", + "agent_name": "Social Worker", + "domain": "social services", + "specialization": "community support and social welfare expert", + "description": "I provide social support, connect people with resources, and advocate for community welfare.", + "capabilities": "case management,community outreach,crisis intervention,resource coordination,advocacy", + "port": 6070 + }, + { + "agent_id": "nonprofit", + "agent_name": "Nonprofit", + "domain": "nonprofit management", + "specialization": "charitable organization and fundraising expert", + "description": "I manage nonprofit organizations, coordinate fundraising efforts, and maximize social impact.", + "capabilities": "nonprofit management,fundraising,grant writing,volunteer coordination,impact measurement", + "port": 6071 + }, + { + "agent_id": "counselor", + "agent_name": "Counselor", + "domain": "counseling", + "specialization": "personal guidance and therapeutic support expert", + "description": "I provide counseling services, offer emotional support, and help individuals overcome challenges.", + "capabilities": "therapeutic counseling,crisis support,behavioral therapy,group therapy,mental health assessment", + "port": 6072 + }, + { + "agent_id": "volunteer", + "agent_name": "Volunteer", + "domain": "volunteer coordination", + "specialization": "community engagement and volunteer management expert", + "description": "I coordinate volunteer programs, engage communities, and organize service initiatives.", + "capabilities": "volunteer management,community engagement,event planning,service coordination,outreach programs", + "port": 6073 + }, + { + "agent_id": "eldercare", + "agent_name": "Elder Care", + "domain": "senior services", + "specialization": "elderly care and aging services expert", + "description": "I provide elderly care services, support aging populations, and promote senior wellness.", + "capabilities": "elderly care,aging services,health monitoring,social activities,family support", + "port": 6074 + }, + { + "agent_id": "childcare", + "agent_name": "Child Care", + "domain": "child development", + "specialization": "child welfare and development expert", + "description": "I support child development, ensure child welfare, and provide family support services.", + "capabilities": "child development,family support,educational activities,safety protocols,behavioral guidance", + "port": 6075 + }, + { + "agent_id": "homeless", + "agent_name": "Homeless", + "domain": "homeless services", + "specialization": "homelessness prevention and housing assistance expert", + "description": "I provide homeless services, coordinate housing assistance, and support vulnerable populations.", + "capabilities": "housing assistance,emergency shelter,case management,resource navigation,rehabilitation support", + "port": 6076 + }, + { + "agent_id": "disability", + "agent_name": "Disability", + "domain": "disability services", + "specialization": "accessibility and disability advocacy expert", + "description": "I advocate for disability rights, ensure accessibility, and provide support services for people with disabilities.", + "capabilities": "disability advocacy,accessibility planning,assistive technology,independent living,rights protection", + "port": 6077 + }, + { + "agent_id": "immigration", + "agent_name": "Immigration", + "domain": "immigration services", + "specialization": "immigration assistance and cultural integration expert", + "description": "I provide immigration support, assist with legal processes, and help with cultural integration.", + "capabilities": "immigration law,cultural integration,language support,legal assistance,community resources", + "port": 6078 + }, + { + "agent_id": "community", + "agent_name": "Community", + "domain": "community development", + "specialization": "community building and civic engagement expert", + "description": "I build communities, foster civic engagement, and strengthen neighborhood connections.", + "capabilities": "community organizing,civic engagement,neighborhood development,public meetings,coalition building", + "port": 6079 + }, + { + "agent_id": "athletecoach", + "agent_name": "Athlete Coach", + "domain": "sports coaching", + "specialization": "athletic training and performance optimization expert", + "description": "I train athletes, develop performance strategies, and optimize athletic potential across various sports.", + "capabilities": "athletic training,performance analysis,sports psychology,injury prevention,competition strategy", + "port": 6080 + }, + { + "agent_id": "sportsanalyst", + "agent_name": "Sports Analyst", + "domain": "sports analytics", + "specialization": "sports data analysis and performance metrics expert", + "description": "I analyze sports data, track performance metrics, and provide insights for teams and athletes.", + "capabilities": "performance analytics,statistical analysis,game strategy,player evaluation,sports metrics", + "port": 6081 + }, + { + "agent_id": "referee", + "agent_name": "Referee", + "domain": "sports officiating", + "specialization": "game officiating and rules enforcement expert", + "description": "I officiate sports events, enforce rules fairly, and ensure competitive integrity.", + "capabilities": "rule enforcement,game management,conflict resolution,decision making,sports regulations", + "port": 6082 + }, + { + "agent_id": "recreation", + "agent_name": "Recreation", + "domain": "recreational activities", + "specialization": "recreational programming and leisure activities expert", + "description": "I design recreational programs, organize leisure activities, and promote healthy lifestyle choices.", + "capabilities": "program planning,activity coordination,leisure counseling,group activities,wellness promotion", + "port": 6083 + }, + { + "agent_id": "outdoorguide", + "agent_name": "Outdoor Guide", + "domain": "outdoor adventures", + "specialization": "outdoor recreation and adventure sports expert", + "description": "I guide outdoor adventures, ensure safety in nature activities, and promote outdoor education.", + "capabilities": "outdoor safety,adventure planning,wilderness skills,environmental education,risk management", + "port": 6084 + }, + { + "agent_id": "yogainstructor", + "agent_name": "Yoga Instructor", + "domain": "yoga and wellness", + "specialization": "yoga practice and mindfulness expert", + "description": "I teach yoga, promote mindfulness practices, and support holistic wellness approaches.", + "capabilities": "yoga instruction,mindfulness training,breathing techniques,flexibility training,stress relief", + "port": 6085 + }, + { + "agent_id": "swimmer", + "agent_name": "Swimmer", + "domain": "aquatic sports", + "specialization": "swimming and water sports expert", + "description": "I teach swimming, coach aquatic sports, and promote water safety and fitness.", + "capabilities": "swimming instruction,water safety,aquatic fitness,stroke technique,competitive swimming", + "port": 6086 + }, + { + "agent_id": "runner", + "agent_name": "Runner", + "domain": "running and endurance", + "specialization": "running training and endurance sports expert", + "description": "I coach running, develop endurance training programs, and support marathon preparation.", + "capabilities": "running technique,endurance training,marathon preparation,pacing strategies,injury prevention", + "port": 6087 + }, + { + "agent_id": "teambuilder", + "agent_name": "Team Builder", + "domain": "team sports", + "specialization": "team dynamics and collaborative sports expert", + "description": "I build team cohesion, develop team strategies, and foster collaborative sports environments.", + "capabilities": "team building,leadership development,group dynamics,communication skills,collaborative strategy", + "port": 6088 + }, + { + "agent_id": "esports", + "agent_name": "Esports", + "domain": "competitive gaming", + "specialization": "electronic sports and gaming competition expert", + "description": "I coach esports teams, analyze gaming strategies, and support competitive gaming development.", + "capabilities": "gaming strategy,esports coaching,competitive analysis,team coordination,tournament preparation", + "port": 6089 + }, + { + "agent_id": "travelagent", + "agent_name": "Travel Agent", + "domain": "travel planning", + "specialization": "travel coordination and destination expert", + "description": "I plan trips, coordinate travel arrangements, and provide destination expertise for memorable experiences.", + "capabilities": "trip planning,destination research,booking coordination,travel logistics,cultural guidance", + "port": 6090 + }, + { + "agent_id": "hotelmanager", + "agent_name": "Hotel Manager", + "domain": "hospitality management", + "specialization": "hotel operations and guest services expert", + "description": "I manage hotel operations, ensure guest satisfaction, and optimize hospitality experiences.", + "capabilities": "hotel management,guest services,operations optimization,staff coordination,quality assurance", + "port": 6091 + }, + { + "agent_id": "tourguide", + "agent_name": "Tour Guide", + "domain": "tourism", + "specialization": "cultural tours and local expertise expert", + "description": "I guide tours, share local knowledge, and create engaging cultural experiences for visitors.", + "capabilities": "cultural knowledge,tour planning,storytelling,group management,local expertise", + "port": 6092 + }, + { + "agent_id": "chef", + "agent_name": "Chef", + "domain": "culinary arts", + "specialization": "culinary creation and food service expert", + "description": "I create culinary experiences, design menus, and deliver exceptional food service.", + "capabilities": "menu design,culinary techniques,food safety,kitchen management,flavor pairing", + "port": 6093 + }, + { + "agent_id": "concierge", + "agent_name": "Concierge", + "domain": "guest services", + "specialization": "personalized service and local recommendations expert", + "description": "I provide personalized guest services, offer local recommendations, and ensure exceptional experiences.", + "capabilities": "guest services,local recommendations,event planning,problem solving,luxury service", + "port": 6094 + }, + { + "agent_id": "eventplanner", + "agent_name": "Event Planner", + "domain": "event management", + "specialization": "event coordination and celebration expert", + "description": "I plan events, coordinate celebrations, and create memorable experiences for special occasions.", + "capabilities": "event planning,vendor coordination,timeline management,budget planning,creative design", + "port": 6095 + }, + { + "agent_id": "airline", + "agent_name": "Airline", + "domain": "aviation services", + "specialization": "flight operations and passenger services expert", + "description": "I manage flight operations, ensure passenger safety, and optimize aviation experiences.", + "capabilities": "flight operations,passenger services,safety protocols,scheduling,customer service", + "port": 6096 + }, + { + "agent_id": "cruise", + "agent_name": "Cruise", + "domain": "cruise operations", + "specialization": "maritime hospitality and cruise experience expert", + "description": "I manage cruise operations, coordinate onboard activities, and ensure exceptional maritime experiences.", + "capabilities": "cruise operations,entertainment coordination,maritime safety,guest activities,itinerary planning", + "port": 6097 + }, + { + "agent_id": "adventure", + "agent_name": "Adventure", + "domain": "adventure travel", + "specialization": "extreme sports and adventure tourism expert", + "description": "I organize adventure trips, ensure safety in extreme activities, and create thrilling experiences.", + "capabilities": "adventure planning,risk assessment,extreme sports,safety protocols,equipment management", + "port": 6098 + }, + { + "agent_id": "cultural", + "agent_name": "Cultural", + "domain": "cultural experiences", + "specialization": "cultural immersion and heritage tourism expert", + "description": "I create cultural experiences, facilitate cultural exchange, and promote heritage tourism.", + "capabilities": "cultural education,heritage preservation,language support,cultural exchange,authentic experiences", + "port": 6099 + } +] \ No newline at end of file diff --git a/scripts/agent_configs/100-agents-flat.json b/scripts/agent_configs/100-agents-flat.json new file mode 100644 index 0000000..b12640a --- /dev/null +++ b/scripts/agent_configs/100-agents-flat.json @@ -0,0 +1,902 @@ +[ + { + "agent_id": "warreninsights", + "agent_name": "Warren Insights", + "domain": "financial analysis", + "specialization": "strategic financial advisor and market analyst", + "description": "I analyze financial markets, investment opportunities, and provide strategic financial advice for businesses and individuals.", + "capabilities": "financial modeling,investment analysis,risk assessment,market research,portfolio optimization", + "port": 6000 + }, + { + "agent_id": "strategymaven", + "agent_name": "Strategy Maven", + "domain": "business strategy", + "specialization": "corporate strategy and business development expert", + "description": "I help companies develop winning strategies, analyze competition, and identify growth opportunities.", + "capabilities": "strategic planning,competitive analysis,market entry,business modeling,growth strategies", + "port": 7000 + }, + { + "agent_id": "brandbuilder", + "agent_name": "Brand Builder", + "domain": "marketing and branding", + "specialization": "digital marketing and brand strategy specialist", + "description": "I create compelling marketing campaigns, build brand identities, and drive customer engagement across all channels.", + "capabilities": "digital marketing,brand strategy,social media,content marketing,customer acquisition", + "port": 8000 + }, + { + "agent_id": "dealcloser", + "agent_name": "Deal Closer", + "domain": "sales and negotiation", + "specialization": "sales optimization and negotiation expert", + "description": "I help optimize sales processes, train sales teams, and close complex deals through strategic negotiation.", + "capabilities": "sales strategy,negotiation,lead generation,CRM optimization,sales training", + "port": 9000 + }, + { + "agent_id": "peoplefirst", + "agent_name": "People First", + "domain": "human resources", + "specialization": "talent management and organizational development expert", + "description": "I help organizations attract, develop, and retain top talent while building positive workplace cultures.", + "capabilities": "talent acquisition,performance management,employee engagement,organizational design,compensation planning", + "port": 10000 + }, + { + "agent_id": "efficiencyexpert", + "agent_name": "Efficiency Expert", + "domain": "operations management", + "specialization": "process optimization and operational excellence specialist", + "description": "I streamline business operations, eliminate inefficiencies, and implement systems for sustainable growth.", + "capabilities": "process improvement,supply chain,quality management,lean operations,project management", + "port": 11000 + }, + { + "agent_id": "counselwise", + "agent_name": "Counsel Wise", + "domain": "legal and compliance", + "specialization": "business law and regulatory compliance expert", + "description": "I provide legal guidance for business decisions, ensure regulatory compliance, and mitigate legal risks.", + "capabilities": "contract law,regulatory compliance,intellectual property,risk management,corporate governance", + "port": 12000 + }, + { + "agent_id": "taxoptimizer", + "agent_name": "Tax Optimizer", + "domain": "taxation and accounting", + "specialization": "tax planning and accounting optimization specialist", + "description": "I help minimize tax liabilities, ensure compliance, and optimize financial reporting for businesses and individuals.", + "capabilities": "tax planning,accounting standards,financial reporting,audit preparation,tax compliance", + "port": 13000 + }, + { + "agent_id": "shieldguardian", + "agent_name": "Shield Guardian", + "domain": "risk management", + "specialization": "enterprise risk assessment and mitigation expert", + "description": "I identify, assess, and develop strategies to mitigate various business risks and ensure organizational resilience.", + "capabilities": "risk assessment,insurance planning,crisis management,business continuity,regulatory risk", + "port": 14000 + }, + { + "agent_id": "startupsage", + "agent_name": "Startup Sage", + "domain": "entrepreneurship", + "specialization": "startup guidance and venture development expert", + "description": "I mentor entrepreneurs, help validate business ideas, and guide startups through their growth journey.", + "capabilities": "business planning,fundraising,product development,market validation,scaling strategies", + "port": 15000 + }, + { + "agent_id": "codemaster", + "agent_name": "Code Master", + "domain": "software architecture", + "specialization": "enterprise software design and system architecture expert", + "description": "I design scalable software systems, choose optimal tech stacks, and solve complex architectural challenges.", + "capabilities": "system design,microservices,cloud architecture,performance optimization,technical leadership", + "port": 6000 + }, + { + "agent_id": "pipelinebuilder", + "agent_name": "Pipeline Builder", + "domain": "data engineering", + "specialization": "big data processing and pipeline architecture specialist", + "description": "I build robust data pipelines, design data warehouses, and ensure reliable data flow for analytics.", + "capabilities": "ETL pipelines,data warehousing,stream processing,database optimization,data governance", + "port": 7000 + }, + { + "agent_id": "deployninja", + "agent_name": "Deploy Ninja", + "domain": "DevOps and infrastructure", + "specialization": "CI/CD automation and infrastructure management expert", + "description": "I automate deployments, manage cloud infrastructure, and ensure reliable software delivery.", + "capabilities": "CI/CD,containerization,infrastructure as code,monitoring,cloud platforms", + "port": 8000 + }, + { + "agent_id": "cyberguardian", + "agent_name": "Cyber Guardian", + "domain": "cybersecurity", + "specialization": "application security and threat analysis expert", + "description": "I secure applications, conduct security audits, and protect systems from cyber threats.", + "capabilities": "security auditing,penetration testing,threat modeling,compliance,incident response", + "port": 9000 + }, + { + "agent_id": "neuralpioneer", + "agent_name": "Neural Pioneer", + "domain": "artificial intelligence", + "specialization": "machine learning research and AI system development expert", + "description": "I develop AI models, conduct ML research, and implement intelligent systems for various applications.", + "capabilities": "machine learning,deep learning,NLP,computer vision,AI ethics", + "port": 10000 + }, + { + "agent_id": "chainbuilder", + "agent_name": "Chain Builder", + "domain": "blockchain technology", + "specialization": "decentralized systems and smart contract development expert", + "description": "I build blockchain applications, develop smart contracts, and design decentralized systems.", + "capabilities": "smart contracts,DeFi,Web3,consensus algorithms,tokenomics", + "port": 11000 + }, + { + "agent_id": "appcreator", + "agent_name": "App Creator", + "domain": "mobile development", + "specialization": "cross-platform mobile application development expert", + "description": "I create engaging mobile apps, optimize user experiences, and ensure cross-platform compatibility.", + "capabilities": "iOS development,Android development,React Native,Flutter,mobile UX", + "port": 12000 + }, + { + "agent_id": "connectedthings", + "agent_name": "Connected Things", + "domain": "Internet of Things", + "specialization": "IoT system design and embedded systems expert", + "description": "I design IoT solutions, develop embedded systems, and create connected device ecosystems.", + "capabilities": "embedded systems,sensor networks,edge computing,IoT protocols,hardware integration", + "port": 13000 + }, + { + "agent_id": "playmaker", + "agent_name": "Play Maker", + "domain": "game development", + "specialization": "interactive entertainment and game engine expert", + "description": "I create immersive games, design gameplay mechanics, and optimize game performance across platforms.", + "capabilities": "game engines,3D graphics,gameplay programming,VR/AR,game design", + "port": 14000 + }, + { + "agent_id": "quantumexplorer", + "agent_name": "Quantum Explorer", + "domain": "quantum computing", + "specialization": "quantum algorithms and quantum system development expert", + "description": "I research quantum algorithms, develop quantum software, and explore quantum computing applications.", + "capabilities": "quantum algorithms,quantum programming,quantum cryptography,quantum simulation,quantum hardware", + "port": 15000 + }, + { + "agent_id": "visualartist", + "agent_name": "Visual Artist", + "domain": "graphic design", + "specialization": "visual communication and brand identity expert", + "description": "I create stunning visual designs, develop brand identities, and craft compelling visual narratives.", + "capabilities": "graphic design,brand identity,typography,color theory,visual storytelling", + "port": 6000 + }, + { + "agent_id": "contentcreator", + "agent_name": "Content Creator", + "domain": "content writing", + "specialization": "engaging content and copywriting specialist", + "description": "I craft compelling content, write persuasive copy, and develop content strategies that engage audiences.", + "capabilities": "copywriting,content strategy,SEO writing,storytelling,editorial planning", + "port": 7000 + }, + { + "agent_id": "uxdesigner", + "agent_name": "UX Designer", + "domain": "user experience", + "specialization": "user-centered design and interface optimization expert", + "description": "I design intuitive user experiences, conduct user research, and optimize digital interfaces.", + "capabilities": "user research,wireframing,prototyping,usability testing,interaction design", + "port": 8000 + }, + { + "agent_id": "videomaker", + "agent_name": "Video Maker", + "domain": "video production", + "specialization": "video content creation and post-production expert", + "description": "I produce engaging videos, handle post-production, and create visual stories that captivate audiences.", + "capabilities": "video editing,motion graphics,cinematography,sound design,visual effects", + "port": 9000 + }, + { + "agent_id": "socialmedia", + "agent_name": "Social Media", + "domain": "social media management", + "specialization": "social media strategy and community engagement expert", + "description": "I manage social media presence, create viral content, and build engaged online communities.", + "capabilities": "social media strategy,community management,influencer marketing,content planning,analytics", + "port": 10000 + }, + { + "agent_id": "photographer", + "agent_name": "Photographer", + "domain": "photography", + "specialization": "professional photography and visual storytelling expert", + "description": "I capture compelling images, manage photo shoots, and create visual content that tells stories.", + "capabilities": "portrait photography,product photography,photo editing,lighting,composition", + "port": 11000 + }, + { + "agent_id": "animator", + "agent_name": "Animator", + "domain": "animation", + "specialization": "2D/3D animation and motion design expert", + "description": "I create animated content, design motion graphics, and bring static designs to life.", + "capabilities": "2D animation,3D modeling,motion graphics,character design,visual effects", + "port": 12000 + }, + { + "agent_id": "webdesigner", + "agent_name": "Web Designer", + "domain": "web design", + "specialization": "responsive web design and frontend development expert", + "description": "I design beautiful websites, ensure responsive layouts, and create seamless web experiences.", + "capabilities": "responsive design,HTML/CSS,JavaScript,web accessibility,performance optimization", + "port": 13000 + }, + { + "agent_id": "brandstrategist", + "agent_name": "Brand Strategist", + "domain": "brand strategy", + "specialization": "brand positioning and identity development expert", + "description": "I develop brand strategies, position brands in markets, and create cohesive brand experiences.", + "capabilities": "brand positioning,market research,brand guidelines,competitive analysis,brand messaging", + "port": 14000 + }, + { + "agent_id": "artdirector", + "agent_name": "Art Director", + "domain": "creative direction", + "specialization": "creative vision and artistic direction expert", + "description": "I lead creative projects, direct artistic vision, and ensure cohesive visual communication.", + "capabilities": "creative direction,project management,team leadership,visual concepts,campaign development", + "port": 15000 + }, + { + "agent_id": "medicaladvisor", + "agent_name": "Medical Advisor", + "domain": "healthcare", + "specialization": "medical research and clinical guidance expert", + "description": "I provide medical insights, analyze clinical data, and support healthcare decision-making.", + "capabilities": "medical research,clinical analysis,drug development,healthcare policy,patient care", + "port": 6000 + }, + { + "agent_id": "bioinformatics", + "agent_name": "Bioinformatics", + "domain": "computational biology", + "specialization": "genomics and biological data analysis expert", + "description": "I analyze biological data, work with genomic sequences, and develop computational models for life sciences.", + "capabilities": "genomic analysis,protein modeling,sequence alignment,biostatistics,drug discovery", + "port": 7000 + }, + { + "agent_id": "nutritionist", + "agent_name": "Nutritionist", + "domain": "nutrition science", + "specialization": "dietary planning and nutritional health expert", + "description": "I create personalized nutrition plans, analyze dietary needs, and promote healthy eating habits.", + "capabilities": "meal planning,nutritional analysis,dietary counseling,health coaching,supplement guidance", + "port": 8000 + }, + { + "agent_id": "mentalhealth", + "agent_name": "Mental Health", + "domain": "psychology", + "specialization": "mental wellness and behavioral health expert", + "description": "I provide mental health support, develop wellness strategies, and promote psychological well-being.", + "capabilities": "counseling techniques,stress management,mindfulness,behavioral therapy,wellness planning", + "port": 9000 + }, + { + "agent_id": "fitnesscoach", + "agent_name": "Fitness Coach", + "domain": "physical fitness", + "specialization": "exercise science and personal training expert", + "description": "I design workout programs, provide fitness guidance, and help achieve physical health goals.", + "capabilities": "exercise programming,strength training,cardio planning,injury prevention,fitness assessment", + "port": 10000 + }, + { + "agent_id": "pharmacist", + "agent_name": "Pharmacist", + "domain": "pharmaceutical sciences", + "specialization": "medication management and drug therapy expert", + "description": "I provide medication guidance, analyze drug interactions, and ensure safe pharmaceutical practices.", + "capabilities": "drug interactions,medication therapy,pharmaceutical care,clinical pharmacy,drug safety", + "port": 11000 + }, + { + "agent_id": "publichealth", + "agent_name": "Public Health", + "domain": "epidemiology", + "specialization": "population health and disease prevention expert", + "description": "I analyze health trends, develop prevention strategies, and promote community health initiatives.", + "capabilities": "epidemiology,health surveillance,disease prevention,health policy,community health", + "port": 12000 + }, + { + "agent_id": "medicaltech", + "agent_name": "Medical Tech", + "domain": "medical technology", + "specialization": "healthcare innovation and medical device expert", + "description": "I develop medical technologies, analyze healthcare systems, and implement digital health solutions.", + "capabilities": "medical devices,health informatics,telemedicine,healthcare IT,medical imaging", + "port": 13000 + }, + { + "agent_id": "veterinarian", + "agent_name": "Veterinarian", + "domain": "veterinary medicine", + "specialization": "animal health and veterinary care expert", + "description": "I provide veterinary guidance, analyze animal health issues, and promote animal welfare.", + "capabilities": "animal medicine,veterinary diagnostics,animal behavior,wildlife conservation,pet care", + "port": 14000 + }, + { + "agent_id": "biotech", + "agent_name": "Biotech", + "domain": "biotechnology", + "specialization": "biotechnology research and development expert", + "description": "I develop biotechnology solutions, work on genetic engineering, and advance life science innovations.", + "capabilities": "genetic engineering,bioprocessing,molecular biology,cell culture,biotech manufacturing", + "port": 15000 + }, + { + "agent_id": "educator", + "agent_name": "Educator", + "domain": "education", + "specialization": "curriculum development and instructional design expert", + "description": "I design learning experiences, develop curricula, and create engaging educational content.", + "capabilities": "curriculum design,instructional design,educational technology,assessment,learning analytics", + "port": 6000 + }, + { + "agent_id": "researcher", + "agent_name": "Researcher", + "domain": "academic research", + "specialization": "scientific research methodology and analysis expert", + "description": "I conduct research studies, analyze data, and contribute to scientific knowledge advancement.", + "capabilities": "research methodology,statistical analysis,literature review,grant writing,publication", + "port": 7000 + }, + { + "agent_id": "librarian", + "agent_name": "Librarian", + "domain": "information science", + "specialization": "information management and research support expert", + "description": "I organize information resources, support research activities, and manage knowledge systems.", + "capabilities": "information retrieval,database management,research support,cataloging,digital archives", + "port": 8000 + }, + { + "agent_id": "tutor", + "agent_name": "Tutor", + "domain": "personalized learning", + "specialization": "one-on-one instruction and learning support expert", + "description": "I provide personalized tutoring, adapt to learning styles, and help students achieve academic success.", + "capabilities": "personalized instruction,learning assessment,study strategies,academic coaching,skill development", + "port": 9000 + }, + { + "agent_id": "linguist", + "agent_name": "Linguist", + "domain": "linguistics", + "specialization": "language analysis and communication expert", + "description": "I analyze languages, study communication patterns, and develop language learning strategies.", + "capabilities": "language analysis,translation,phonetics,syntax,language acquisition", + "port": 10000 + }, + { + "agent_id": "historian", + "agent_name": "Historian", + "domain": "history", + "specialization": "historical analysis and cultural studies expert", + "description": "I research historical events, analyze cultural patterns, and provide historical context.", + "capabilities": "historical research,archival studies,cultural analysis,chronology,historical writing", + "port": 11000 + }, + { + "agent_id": "philosopher", + "agent_name": "Philosopher", + "domain": "philosophy", + "specialization": "critical thinking and ethical reasoning expert", + "description": "I explore philosophical questions, analyze ethical dilemmas, and develop logical arguments.", + "capabilities": "critical thinking,ethics,logic,philosophical analysis,moral reasoning", + "port": 12000 + }, + { + "agent_id": "scientist", + "agent_name": "Scientist", + "domain": "natural sciences", + "specialization": "scientific investigation and experimental design expert", + "description": "I conduct scientific experiments, analyze natural phenomena, and advance scientific understanding.", + "capabilities": "experimental design,hypothesis testing,data analysis,scientific writing,peer review", + "port": 13000 + }, + { + "agent_id": "mathematician", + "agent_name": "Mathematician", + "domain": "mathematics", + "specialization": "mathematical modeling and problem-solving expert", + "description": "I solve complex mathematical problems, develop models, and apply mathematical principles.", + "capabilities": "mathematical modeling,statistical analysis,algorithm development,proof writing,numerical methods", + "port": 14000 + }, + { + "agent_id": "archivist", + "agent_name": "Archivist", + "domain": "archival science", + "specialization": "document preservation and historical record expert", + "description": "I preserve historical documents, manage archives, and ensure long-term access to information.", + "capabilities": "document preservation,archival management,metadata,digitization,historical documentation", + "port": 15000 + }, + { + "agent_id": "journalist", + "agent_name": "Journalist", + "domain": "journalism", + "specialization": "news reporting and investigative journalism expert", + "description": "I research stories, conduct interviews, and deliver accurate news reporting across various media.", + "capabilities": "investigative reporting,interviewing,fact-checking,news writing,media ethics", + "port": 6000 + }, + { + "agent_id": "filmmaker", + "agent_name": "Filmmaker", + "domain": "film production", + "specialization": "movie production and cinematic storytelling expert", + "description": "I create films, direct productions, and craft compelling visual narratives for cinema.", + "capabilities": "film direction,screenplay writing,cinematography,film editing,production management", + "port": 7000 + }, + { + "agent_id": "musician", + "agent_name": "Musician", + "domain": "music production", + "specialization": "music composition and audio production expert", + "description": "I compose music, produce audio content, and create musical experiences across genres.", + "capabilities": "music composition,audio production,sound engineering,music theory,performance", + "port": 8000 + }, + { + "agent_id": "podcaster", + "agent_name": "Podcaster", + "domain": "podcast production", + "specialization": "audio content creation and podcast development expert", + "description": "I create engaging podcasts, conduct interviews, and build audio content strategies.", + "capabilities": "podcast production,audio editing,interviewing,content planning,audience engagement", + "port": 9000 + }, + { + "agent_id": "broadcaster", + "agent_name": "Broadcaster", + "domain": "broadcasting", + "specialization": "live broadcasting and media presentation expert", + "description": "I deliver live broadcasts, host shows, and engage audiences across various media platforms.", + "capabilities": "live broadcasting,presentation skills,audience engagement,media hosting,improvisation", + "port": 10000 + }, + { + "agent_id": "gamedesigner", + "agent_name": "Game Designer", + "domain": "game design", + "specialization": "interactive entertainment and gameplay mechanics expert", + "description": "I design game mechanics, create player experiences, and develop engaging interactive content.", + "capabilities": "game mechanics,level design,player psychology,game balancing,narrative design", + "port": 11000 + }, + { + "agent_id": "comedian", + "agent_name": "Comedian", + "domain": "comedy", + "specialization": "humor creation and entertainment performance expert", + "description": "I create comedic content, write jokes, and entertain audiences through various comedy formats.", + "capabilities": "joke writing,comedic timing,performance,audience interaction,humor analysis", + "port": 12000 + }, + { + "agent_id": "actor", + "agent_name": "Actor", + "domain": "acting", + "specialization": "character performance and dramatic arts expert", + "description": "I bring characters to life, deliver performances, and create compelling dramatic experiences.", + "capabilities": "character development,method acting,voice acting,stage presence,emotional expression", + "port": 13000 + }, + { + "agent_id": "critic", + "agent_name": "Critic", + "domain": "media criticism", + "specialization": "cultural analysis and media review expert", + "description": "I analyze cultural works, write reviews, and provide critical perspectives on media content.", + "capabilities": "cultural analysis,critical writing,media literacy,aesthetic evaluation,trend analysis", + "port": 14000 + }, + { + "agent_id": "producer", + "agent_name": "Producer", + "domain": "media production", + "specialization": "content production and project management expert", + "description": "I oversee media productions, manage creative projects, and ensure successful content delivery.", + "capabilities": "project management,budget management,team coordination,content strategy,quality control", + "port": 15000 + }, + { + "agent_id": "environmentalist", + "agent_name": "Environmentalist", + "domain": "environmental science", + "specialization": "environmental protection and conservation expert", + "description": "I analyze environmental issues, develop conservation strategies, and promote sustainable practices.", + "capabilities": "environmental assessment,conservation planning,sustainability consulting,climate analysis,ecosystem management", + "port": 6000 + }, + { + "agent_id": "climateexpert", + "agent_name": "Climate Expert", + "domain": "climate science", + "specialization": "climate change analysis and mitigation expert", + "description": "I study climate patterns, analyze climate data, and develop climate adaptation strategies.", + "capabilities": "climate modeling,carbon footprint analysis,renewable energy,climate policy,adaptation planning", + "port": 7000 + }, + { + "agent_id": "renewableenergy", + "agent_name": "Renewable Energy", + "domain": "sustainable energy", + "specialization": "clean energy systems and renewable technology expert", + "description": "I design renewable energy systems, optimize energy efficiency, and promote clean technology adoption.", + "capabilities": "solar energy,wind power,energy storage,grid integration,energy efficiency", + "port": 8000 + }, + { + "agent_id": "ecologist", + "agent_name": "Ecologist", + "domain": "ecology", + "specialization": "ecosystem analysis and biodiversity expert", + "description": "I study ecosystems, monitor biodiversity, and develop habitat conservation strategies.", + "capabilities": "ecosystem analysis,biodiversity assessment,habitat restoration,species conservation,ecological modeling", + "port": 9000 + }, + { + "agent_id": "wastemanager", + "agent_name": "Waste Manager", + "domain": "waste management", + "specialization": "circular economy and waste reduction expert", + "description": "I develop waste reduction strategies, design recycling programs, and promote circular economy principles.", + "capabilities": "waste reduction,recycling systems,circular economy,composting,waste-to-energy", + "port": 10000 + }, + { + "agent_id": "waterexpert", + "agent_name": "Water Expert", + "domain": "water resources", + "specialization": "water conservation and quality management expert", + "description": "I manage water resources, ensure water quality, and develop water conservation strategies.", + "capabilities": "water treatment,conservation strategies,quality testing,watershed management,water policy", + "port": 11000 + }, + { + "agent_id": "urbanplanner", + "agent_name": "Urban Planner", + "domain": "sustainable cities", + "specialization": "sustainable urban development and smart city expert", + "description": "I design sustainable cities, plan urban development, and create livable community spaces.", + "capabilities": "urban design,sustainable development,transportation planning,green infrastructure,community planning", + "port": 12000 + }, + { + "agent_id": "agriculturist", + "agent_name": "Agriculturist", + "domain": "sustainable agriculture", + "specialization": "sustainable farming and food security expert", + "description": "I develop sustainable farming practices, optimize crop yields, and promote food security.", + "capabilities": "sustainable farming,crop optimization,soil health,organic agriculture,food security", + "port": 13000 + }, + { + "agent_id": "forestry", + "agent_name": "Forestry", + "domain": "forest management", + "specialization": "forest conservation and sustainable forestry expert", + "description": "I manage forest resources, develop conservation plans, and promote sustainable forestry practices.", + "capabilities": "forest management,reforestation,timber sustainability,wildlife habitat,carbon sequestration", + "port": 14000 + }, + { + "agent_id": "greentech", + "agent_name": "Green Tech", + "domain": "environmental technology", + "specialization": "clean technology innovation and implementation expert", + "description": "I develop green technologies, implement clean solutions, and advance environmental innovation.", + "capabilities": "clean technology,environmental monitoring,pollution control,green innovation,sustainability metrics", + "port": 15000 + }, + { + "agent_id": "socialworker", + "agent_name": "Social Worker", + "domain": "social services", + "specialization": "community support and social welfare expert", + "description": "I provide social support, connect people with resources, and advocate for community welfare.", + "capabilities": "case management,community outreach,crisis intervention,resource coordination,advocacy", + "port": 6000 + }, + { + "agent_id": "nonprofit", + "agent_name": "Nonprofit", + "domain": "nonprofit management", + "specialization": "charitable organization and fundraising expert", + "description": "I manage nonprofit organizations, coordinate fundraising efforts, and maximize social impact.", + "capabilities": "nonprofit management,fundraising,grant writing,volunteer coordination,impact measurement", + "port": 7000 + }, + { + "agent_id": "counselor", + "agent_name": "Counselor", + "domain": "counseling", + "specialization": "personal guidance and therapeutic support expert", + "description": "I provide counseling services, offer emotional support, and help individuals overcome challenges.", + "capabilities": "therapeutic counseling,crisis support,behavioral therapy,group therapy,mental health assessment", + "port": 8000 + }, + { + "agent_id": "volunteer", + "agent_name": "Volunteer", + "domain": "volunteer coordination", + "specialization": "community engagement and volunteer management expert", + "description": "I coordinate volunteer programs, engage communities, and organize service initiatives.", + "capabilities": "volunteer management,community engagement,event planning,service coordination,outreach programs", + "port": 9000 + }, + { + "agent_id": "eldercare", + "agent_name": "Elder Care", + "domain": "senior services", + "specialization": "elderly care and aging services expert", + "description": "I provide elderly care services, support aging populations, and promote senior wellness.", + "capabilities": "elderly care,aging services,health monitoring,social activities,family support", + "port": 10000 + }, + { + "agent_id": "childcare", + "agent_name": "Child Care", + "domain": "child development", + "specialization": "child welfare and development expert", + "description": "I support child development, ensure child welfare, and provide family support services.", + "capabilities": "child development,family support,educational activities,safety protocols,behavioral guidance", + "port": 11000 + }, + { + "agent_id": "homeless", + "agent_name": "Homeless", + "domain": "homeless services", + "specialization": "homelessness prevention and housing assistance expert", + "description": "I provide homeless services, coordinate housing assistance, and support vulnerable populations.", + "capabilities": "housing assistance,emergency shelter,case management,resource navigation,rehabilitation support", + "port": 12000 + }, + { + "agent_id": "disability", + "agent_name": "Disability", + "domain": "disability services", + "specialization": "accessibility and disability advocacy expert", + "description": "I advocate for disability rights, ensure accessibility, and provide support services for people with disabilities.", + "capabilities": "disability advocacy,accessibility planning,assistive technology,independent living,rights protection", + "port": 13000 + }, + { + "agent_id": "immigration", + "agent_name": "Immigration", + "domain": "immigration services", + "specialization": "immigration assistance and cultural integration expert", + "description": "I provide immigration support, assist with legal processes, and help with cultural integration.", + "capabilities": "immigration law,cultural integration,language support,legal assistance,community resources", + "port": 14000 + }, + { + "agent_id": "community", + "agent_name": "Community", + "domain": "community development", + "specialization": "community building and civic engagement expert", + "description": "I build communities, foster civic engagement, and strengthen neighborhood connections.", + "capabilities": "community organizing,civic engagement,neighborhood development,public meetings,coalition building", + "port": 15000 + }, + { + "agent_id": "athletecoach", + "agent_name": "Athlete Coach", + "domain": "sports coaching", + "specialization": "athletic training and performance optimization expert", + "description": "I train athletes, develop performance strategies, and optimize athletic potential across various sports.", + "capabilities": "athletic training,performance analysis,sports psychology,injury prevention,competition strategy", + "port": 6000 + }, + { + "agent_id": "sportsanalyst", + "agent_name": "Sports Analyst", + "domain": "sports analytics", + "specialization": "sports data analysis and performance metrics expert", + "description": "I analyze sports data, track performance metrics, and provide insights for teams and athletes.", + "capabilities": "performance analytics,statistical analysis,game strategy,player evaluation,sports metrics", + "port": 7000 + }, + { + "agent_id": "referee", + "agent_name": "Referee", + "domain": "sports officiating", + "specialization": "game officiating and rules enforcement expert", + "description": "I officiate sports events, enforce rules fairly, and ensure competitive integrity.", + "capabilities": "rule enforcement,game management,conflict resolution,decision making,sports regulations", + "port": 8000 + }, + { + "agent_id": "recreation", + "agent_name": "Recreation", + "domain": "recreational activities", + "specialization": "recreational programming and leisure activities expert", + "description": "I design recreational programs, organize leisure activities, and promote healthy lifestyle choices.", + "capabilities": "program planning,activity coordination,leisure counseling,group activities,wellness promotion", + "port": 9000 + }, + { + "agent_id": "outdoorguide", + "agent_name": "Outdoor Guide", + "domain": "outdoor adventures", + "specialization": "outdoor recreation and adventure sports expert", + "description": "I guide outdoor adventures, ensure safety in nature activities, and promote outdoor education.", + "capabilities": "outdoor safety,adventure planning,wilderness skills,environmental education,risk management", + "port": 10000 + }, + { + "agent_id": "yogainstructor", + "agent_name": "Yoga Instructor", + "domain": "yoga and wellness", + "specialization": "yoga practice and mindfulness expert", + "description": "I teach yoga, promote mindfulness practices, and support holistic wellness approaches.", + "capabilities": "yoga instruction,mindfulness training,breathing techniques,flexibility training,stress relief", + "port": 11000 + }, + { + "agent_id": "swimmer", + "agent_name": "Swimmer", + "domain": "aquatic sports", + "specialization": "swimming and water sports expert", + "description": "I teach swimming, coach aquatic sports, and promote water safety and fitness.", + "capabilities": "swimming instruction,water safety,aquatic fitness,stroke technique,competitive swimming", + "port": 12000 + }, + { + "agent_id": "runner", + "agent_name": "Runner", + "domain": "running and endurance", + "specialization": "running training and endurance sports expert", + "description": "I coach running, develop endurance training programs, and support marathon preparation.", + "capabilities": "running technique,endurance training,marathon preparation,pacing strategies,injury prevention", + "port": 13000 + }, + { + "agent_id": "teambuilder", + "agent_name": "Team Builder", + "domain": "team sports", + "specialization": "team dynamics and collaborative sports expert", + "description": "I build team cohesion, develop team strategies, and foster collaborative sports environments.", + "capabilities": "team building,leadership development,group dynamics,communication skills,collaborative strategy", + "port": 14000 + }, + { + "agent_id": "esports", + "agent_name": "Esports", + "domain": "competitive gaming", + "specialization": "electronic sports and gaming competition expert", + "description": "I coach esports teams, analyze gaming strategies, and support competitive gaming development.", + "capabilities": "gaming strategy,esports coaching,competitive analysis,team coordination,tournament preparation", + "port": 15000 + }, + { + "agent_id": "travelagent", + "agent_name": "Travel Agent", + "domain": "travel planning", + "specialization": "travel coordination and destination expert", + "description": "I plan trips, coordinate travel arrangements, and provide destination expertise for memorable experiences.", + "capabilities": "trip planning,destination research,booking coordination,travel logistics,cultural guidance", + "port": 6000 + }, + { + "agent_id": "hotelmanager", + "agent_name": "Hotel Manager", + "domain": "hospitality management", + "specialization": "hotel operations and guest services expert", + "description": "I manage hotel operations, ensure guest satisfaction, and optimize hospitality experiences.", + "capabilities": "hotel management,guest services,operations optimization,staff coordination,quality assurance", + "port": 7000 + }, + { + "agent_id": "tourguide", + "agent_name": "Tour Guide", + "domain": "tourism", + "specialization": "cultural tours and local expertise expert", + "description": "I guide tours, share local knowledge, and create engaging cultural experiences for visitors.", + "capabilities": "cultural knowledge,tour planning,storytelling,group management,local expertise", + "port": 8000 + }, + { + "agent_id": "chef", + "agent_name": "Chef", + "domain": "culinary arts", + "specialization": "culinary creation and food service expert", + "description": "I create culinary experiences, design menus, and deliver exceptional food service.", + "capabilities": "menu design,culinary techniques,food safety,kitchen management,flavor pairing", + "port": 9000 + }, + { + "agent_id": "concierge", + "agent_name": "Concierge", + "domain": "guest services", + "specialization": "personalized service and local recommendations expert", + "description": "I provide personalized guest services, offer local recommendations, and ensure exceptional experiences.", + "capabilities": "guest services,local recommendations,event planning,problem solving,luxury service", + "port": 10000 + }, + { + "agent_id": "eventplanner", + "agent_name": "Event Planner", + "domain": "event management", + "specialization": "event coordination and celebration expert", + "description": "I plan events, coordinate celebrations, and create memorable experiences for special occasions.", + "capabilities": "event planning,vendor coordination,timeline management,budget planning,creative design", + "port": 11000 + }, + { + "agent_id": "airline", + "agent_name": "Airline", + "domain": "aviation services", + "specialization": "flight operations and passenger services expert", + "description": "I manage flight operations, ensure passenger safety, and optimize aviation experiences.", + "capabilities": "flight operations,passenger services,safety protocols,scheduling,customer service", + "port": 12000 + }, + { + "agent_id": "cruise", + "agent_name": "Cruise", + "domain": "cruise operations", + "specialization": "maritime hospitality and cruise experience expert", + "description": "I manage cruise operations, coordinate onboard activities, and ensure exceptional maritime experiences.", + "capabilities": "cruise operations,entertainment coordination,maritime safety,guest activities,itinerary planning", + "port": 13000 + }, + { + "agent_id": "adventure", + "agent_name": "Adventure", + "domain": "adventure travel", + "specialization": "extreme sports and adventure tourism expert", + "description": "I organize adventure trips, ensure safety in extreme activities, and create thrilling experiences.", + "capabilities": "adventure planning,risk assessment,extreme sports,safety protocols,equipment management", + "port": 14000 + }, + { + "agent_id": "cultural", + "agent_name": "Cultural", + "domain": "cultural experiences", + "specialization": "cultural immersion and heritage tourism expert", + "description": "I create cultural experiences, facilitate cultural exchange, and promote heritage tourism.", + "capabilities": "cultural education,heritage preservation,language support,cultural exchange,authentic experiences", + "port": 15000 + } +] \ No newline at end of file diff --git a/scripts/aws/README.md b/scripts/aws/README.md new file mode 100644 index 0000000..5bc6d67 --- /dev/null +++ b/scripts/aws/README.md @@ -0,0 +1,303 @@ +# AWS Deployment Scripts for NANDA Agents + +This directory contains Amazon Web Services (AWS) deployment scripts for NANDA agents with full MCP (Model Context Protocol) integration. + +## Prerequisites + +1. **AWS Account**: Active Amazon Web Services account +2. **AWS CLI**: Installed and configured with credentials +3. **IAM Permissions**: EC2, VPC, and security group management permissions +4. **Key Pair**: SSH key pair for instance access (created automatically) + +### Setup AWS Environment + +```bash +# Install AWS CLI (if not installed) +# Follow: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html + +# Configure AWS credentials +aws configure +# Enter your Access Key ID, Secret Access Key, Default region, and output format + +# Verify configuration +aws sts get-caller-identity +``` + +## Scripts Overview + +### Single Agent Deployment (`single-agent-deployment.sh`) + +Deploy a single NANDA agent on AWS EC2 with full MCP support. + +**Usage:** +```bash +bash scripts/aws/single-agent-deployment.sh \ + "agent-id" \ + "anthropic-api-key" \ + "Agent Name" \ + "domain" \ + "specialization" \ + "description" \ + "capabilities" \ + "smithery-api-key" \ + "registry-url" \ + "mcp-registry-url" \ + "port" \ + "region" \ + "instance-type" +``` + +**Example:** +```bash +bash scripts/aws/single-agent-deployment.sh \ + "aws-data-scientist" \ + "sk-ant-api03-..." \ + "AWS Data Scientist" \ + "data analysis" \ + "analytical and precise AI assistant" \ + "I specialize in data analysis on AWS" \ + "data,analytics,aws,sagemaker" \ + "smithery-key-123..." \ + "http://registry.chat39.com:6900" \ + "https://mcp-registry.ngrok.app" \ + "6000" \ + "us-east-1" \ + "t3.micro" +``` + +### Multi-Agent Deployment (`multi-agent-deployment.sh`) + +Deploy multiple NANDA agents on a single AWS EC2 instance with supervisor process management. + +**Usage:** +```bash +bash scripts/aws/multi-agent-deployment.sh \ + "anthropic-api-key" \ + "agent-config-json" \ + "smithery-api-key" \ + "registry-url" \ + "mcp-registry-url" \ + "region" \ + "instance-type" +``` + +**Example:** +```bash +bash scripts/aws/multi-agent-deployment.sh \ + "sk-ant-api03-..." \ + "scripts/agent_configs/group-01-business-and-finance-experts.json" \ + "smithery-key-123..." \ + "http://registry.chat39.com:6900" \ + "https://mcp-registry.ngrok.app" \ + "us-east-1" \ + "t3.xlarge" +``` + +## AWS-Specific Features + +### Instance Types + +- **t3.micro**: Free tier eligible, single agent +- **t3.small**: 1-2 agents, light workloads +- **t3.medium**: 3-5 agents +- **t3.large/xlarge**: 5-10+ agents, recommended for multi-agent deployments + +### Networking + +- **Security Groups**: Automatically created with required ports (SSH + agent ports) +- **VPC**: Uses default VPC with public subnets +- **Elastic IP**: Public IP automatically assigned +- **Internet Gateway**: Required for agent communication + +### Storage + +- **EBS Volumes**: GP3 storage with auto-delete enabled +- **Root Volume**: 20GB (single) / 50GB (multi-agent) +- **Encryption**: Available but not enabled by default + +### AMI and User Data + +- **Ubuntu 22.04 LTS**: Reliable, well-supported base image +- **User Data Scripts**: Automated installation and configuration +- **IMDSv2**: Secure metadata service for IP retrieval + +## Environment Variables + +All scripts support these environment variables: + +- `ANTHROPIC_API_KEY`: Your Claude API key +- `SMITHERY_API_KEY`: Your Smithery API key for MCP server access +- `AGENT_ID`: Unique agent identifier +- `AGENT_NAME`: Display name for the agent +- `REGISTRY_URL`: NANDA registry endpoint +- `MCP_REGISTRY_URL`: MCP server registry endpoint +- `PUBLIC_URL`: Agent's public URL for A2A communication + +## MCP Integration + +Both scripts include full MCP (Model Context Protocol) support: + +### Smithery MCP Servers +```bash +# Test Smithery MCP integration +curl -X POST http://PUBLIC_IP:PORT/a2a \ + -H "Content-Type: application/json" \ + -d '{"content":{"text":"#smithery:fetch get weather data","type":"text"},"role":"user","conversation_id":"test"}' +``` + +### NANDA MCP Servers +```bash +# Test NANDA MCP integration +curl -X POST http://PUBLIC_IP:PORT/a2a \ + -H "Content-Type: application/json" \ + -d '{"content":{"text":"#nanda:nanda-points get balance","type":"text"},"role":"user","conversation_id":"test"}' +``` + +## Management Commands + +### Instance Management +```bash +# SSH into instance +ssh -i nanda-agent-key.pem ubuntu@PUBLIC_IP + +# View instance details +aws ec2 describe-instances --instance-ids INSTANCE_ID + +# Stop instance +aws ec2 stop-instances --instance-ids INSTANCE_ID + +# Start instance +aws ec2 start-instances --instance-ids INSTANCE_ID + +# Terminate instance +aws ec2 terminate-instances --instance-ids INSTANCE_ID +``` + +### Multi-Agent Management (via SSH) +```bash +# Check agent status +sudo supervisorctl status + +# Restart all agents +sudo supervisorctl restart all + +# Restart specific agent +sudo supervisorctl restart agent_AGENT_ID + +# View agent logs +sudo tail -f /var/log/agent_AGENT_ID.out.log +``` + +## Cost Optimization + +### Free Tier Usage +- Use `t3.micro` instances (750 hours/month free) +- Deploy in regions with free tier availability +- Monitor usage through AWS Cost Explorer + +### Cost Management +```bash +# Set up billing alerts +aws budgets create-budget --account-id ACCOUNT_ID \ + --budget file://budget.json + +# Use Spot instances for cost savings (add to launch config) +--instance-market-options '{"MarketType":"spot","SpotOptions":{"MaxPrice":"0.05"}}' +``` + +## Troubleshooting + +### Common Issues + +1. **Authentication Errors** + ```bash + aws configure list + aws sts get-caller-identity + ``` + +2. **Permission Denied** + - Check IAM permissions for EC2, VPC operations + - Ensure AWS CLI has proper credentials + +3. **Security Group Issues** + ```bash + aws ec2 describe-security-groups --group-ids sg-xxxxx + ``` + +4. **Instance Launch Failures** + ```bash + aws ec2 describe-instances --instance-ids i-xxxxx + aws logs describe-log-groups + ``` + +5. **Agent Not Responding** + ```bash + ssh -i nanda-agent-key.pem ubuntu@PUBLIC_IP + sudo tail -f /var/log/user-data.log + ``` + +## Security Best Practices + +1. **Key Management**: Scripts generate SSH keys automatically +2. **Security Groups**: Minimal port exposure (SSH + required agent ports) +3. **IAM Roles**: Consider using instance profiles instead of access keys +4. **VPC Security**: Consider private subnets with NAT Gateway for production +5. **Secrets**: Use AWS Secrets Manager for production API key management + +## Monitoring and Logging + +### CloudWatch Integration +```bash +# View logs +aws logs describe-log-streams --log-group-name /var/log/user-data + +# Create custom metrics +aws cloudwatch put-metric-data --namespace "NANDA/Agents" \ + --metric-data MetricName=AgentHealth,Value=1 +``` + +### Custom Monitoring +- Agent response times via CloudWatch +- MCP server connection health +- A2A communication success rates + +## Regions and Availability Zones + +### Recommended Regions +- **us-east-1**: Virginia (lowest cost, most services) +- **us-west-2**: Oregon (good performance, lower latency to West Coast) +- **eu-west-1**: Ireland (European operations) +- **ap-southeast-1**: Singapore (Asian operations) + +### Multi-AZ Deployment +```bash +# Deploy across multiple AZs for high availability +bash single-agent-deployment.sh ... us-east-1a +bash single-agent-deployment.sh ... us-east-1b +``` + +## Support + +For AWS-specific issues: +- Check [AWS EC2 documentation](https://docs.aws.amazon.com/ec2/) +- Review [AWS troubleshooting guides](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting.html) +- Monitor [AWS Service Health Dashboard](https://health.aws.amazon.com/health/status) + +For NANDA-specific issues: +- Check agent logs: `/var/log/agent_*.out.log` +- Review user-data logs: `/var/log/user-data.log` +- Test MCP functionality with provided curl commands + +## Advanced Features + +### Auto Scaling Groups +Consider setting up Auto Scaling for production workloads to handle varying demand. + +### Load Balancing +Use Application Load Balancer for distributing traffic across multiple agent instances. + +### CloudFormation +Convert deployment scripts to CloudFormation templates for infrastructure as code. + +### ECS/EKS Deployment +Consider containerizing agents for deployment on ECS or EKS for better scalability. \ No newline at end of file diff --git a/scripts/aws-multi-agent-deployment.sh b/scripts/aws/multi-agent-deployment.sh similarity index 100% rename from scripts/aws-multi-agent-deployment.sh rename to scripts/aws/multi-agent-deployment.sh diff --git a/scripts/aws-single-agent-deployment.sh b/scripts/aws/single-agent-deployment.sh similarity index 100% rename from scripts/aws-single-agent-deployment.sh rename to scripts/aws/single-agent-deployment.sh diff --git a/scripts/gcp/README.md b/scripts/gcp/README.md new file mode 100644 index 0000000..9198815 --- /dev/null +++ b/scripts/gcp/README.md @@ -0,0 +1,294 @@ +# GCP Deployment Scripts for NANDA Agents + +This directory contains Google Cloud Platform (GCP) deployment scripts for NANDA agents with full MCP (Model Context Protocol) integration. + +## Prerequisites + +1. **GCP Account**: Active Google Cloud Platform account +2. **gcloud CLI**: Installed and configured +3. **Project Setup**: GCP project with Compute Engine API enabled +4. **Authentication**: Valid gcloud authentication + +### Setup GCP Environment + +```bash +# Install gcloud CLI (if not installed) +# Follow: https://cloud.google.com/sdk/docs/install + +# Authenticate with GCP +gcloud auth login + +# Set your project ID +gcloud config set project YOUR_PROJECT_ID + +# Enable required APIs +gcloud services enable compute.googleapis.com +``` + +## Scripts Overview + +### Single Agent Deployment (`single-agent-deployment.sh`) + +Deploy a single NANDA agent on GCP Compute Engine with full MCP support. + +**Usage:** + +```bash +bash scripts/gcp/single-agent-deployment.sh \ + "agent-id" \ + "anthropic-api-key" \ + "Agent Name" \ + "domain" \ + "specialization" \ + "description" \ + "capabilities" \ + "smithery-api-key" \ + "registry-url" \ + "mcp-registry-url" \ + "port" \ + "zone" \ + "machine-type" +``` + +**Example:** + +```bash +bash scripts/gcp/single-agent-deployment.sh \ + "gcp-data-scientist" \ + "sk-ant-api03-..." \ + "GCP Data Scientist" \ + "data analysis" \ + "analytical and precise AI assistant" \ + "I specialize in data analysis on GCP" \ + "data,analytics,gcp,bigquery" \ + "smithery-key-123..." \ + "http://registry.chat39.com:6900" \ + "https://mcp-registry.ngrok.app" \ + "6000" \ + "us-central1-a" \ + "e2-micro" +``` + +### Multi-Agent Deployment (`multi-agent-deployment.sh`) + +Deploy multiple NANDA agents on a single GCP Compute Engine instance with supervisor process management. + +**Usage:** + +```bash +bash scripts/gcp/multi-agent-deployment.sh \ + "anthropic-api-key" \ + "agent-config-json" \ + "smithery-api-key" \ + "registry-url" \ + "mcp-registry-url" \ + "zone" \ + "machine-type" +``` + +**Example:** + +```bash +bash scripts/gcp/multi-agent-deployment.sh \ + "sk-ant-api03-..." \ + "scripts/agent_configs/group-01-business-and-finance-experts.json" \ + "smithery-key-123..." \ + "http://registry.chat39.com:6900" \ + "https://mcp-registry.ngrok.app" \ + "us-central1-a" \ + "e2-standard-4" +``` + +## GCP-Specific Features + +### Machine Types + +- **e2-micro**: Cost-effective for single agents (free tier eligible) +- **e2-small**: Small workloads, 1-2 agents +- **e2-standard-4**: Recommended for 5-10 agents +- **e2-standard-8**: For 10+ agents or high-traffic scenarios + +### Networking + +- **Firewall Rules**: Automatically creates rules for agent ports +- **External IP**: Assigns external IP for agent communication +- **Network Tags**: Uses tags for security group management + +### Storage + +- **Boot Disk**: 20GB (single agent) / 50GB (multi-agent) persistent disk +- **Auto-delete**: Disk deleted when instance is terminated +- **Balanced Persistent Disk**: Good performance/cost balance + +### Metadata and Startup Scripts + +- **Startup Scripts**: Automated agent installation and configuration +- **Metadata Service**: Used to get external IP for agent registration +- **Labels**: Proper instance labeling for organization + +## Environment Variables + +All scripts support these environment variables: + +- `ANTHROPIC_API_KEY`: Your Claude API key +- `SMITHERY_API_KEY`: Your Smithery API key for MCP server access +- `AGENT_ID`: Unique agent identifier +- `AGENT_NAME`: Display name for the agent +- `REGISTRY_URL`: NANDA registry endpoint +- `MCP_REGISTRY_URL`: MCP server registry endpoint +- `PUBLIC_URL`: Agent's public URL for A2A communication + +## MCP Integration + +Both scripts include full MCP (Model Context Protocol) support: + +### Smithery MCP Servers + +```bash +# Test Smithery MCP integration +curl -X POST http://EXTERNAL_IP:PORT/a2a \ + -H "Content-Type: application/json" \ + -d '{"content":{"text":"#smithery:fetch get weather data","type":"text"},"role":"user","conversation_id":"test"}' +``` + +### NANDA MCP Servers + +```bash +# Test NANDA MCP integration +curl -X POST http://EXTERNAL_IP:PORT/a2a \ + -H "Content-Type: application/json" \ + -d '{"content":{"text":"#nanda:nanda-points get balance","type":"text"},"role":"user","conversation_id":"test"}' +``` + +## Management Commands + +### Instance Management + +```bash +# SSH into instance +gcloud compute ssh ubuntu@INSTANCE_NAME --zone=ZONE + +# View startup logs +gcloud compute instances get-serial-port-output INSTANCE_NAME --zone=ZONE + +# Stop instance +gcloud compute instances stop INSTANCE_NAME --zone=ZONE + +# Start instance +gcloud compute instances start INSTANCE_NAME --zone=ZONE + +# Delete instance +gcloud compute instances delete INSTANCE_NAME --zone=ZONE +``` + +### Multi-Agent Management (via SSH) + +```bash +# Check agent status +sudo supervisorctl status + +# Restart all agents +sudo supervisorctl restart all + +# Restart specific agent +sudo supervisorctl restart agent_AGENT_ID + +# View agent logs +sudo tail -f /var/log/agent_AGENT_ID.out.log +``` + +## Cost Optimization + +### Free Tier Usage + +- Use `e2-micro` instances in eligible regions +- Deploy in `us-central1-a`, `us-east1-b`, or `us-west1-b` +- Monitor usage to stay within free tier limits + +### Cost Management + +```bash +# Set up budget alerts +gcloud billing budgets create --billing-account=BILLING_ACCOUNT_ID \ + --display-name="NANDA Agents Budget" \ + --budget-amount=50USD + +# Use preemptible instances for cost savings +gcloud compute instances create INSTANCE_NAME \ + --preemptible \ + --zone=ZONE \ + --machine-type=MACHINE_TYPE +``` + +## Troubleshooting + +### Common Issues + +1. **Authentication Errors** + + ```bash + gcloud auth login + gcloud auth list + ``` + +2. **API Not Enabled** + + ```bash + gcloud services enable compute.googleapis.com + ``` + +3. **Quota Exceeded** + + ```bash + gcloud compute project-info describe --format="table(quotas.metric,quotas.limit,quotas.usage)" + ``` + +4. **Instance Not Starting** + + ```bash + gcloud compute instances get-serial-port-output INSTANCE_NAME --zone=ZONE + ``` + +5. **Agent Not Responding** + + ```bash + gcloud compute ssh ubuntu@INSTANCE_NAME --zone=ZONE + sudo tail -f /var/log/startup-script.log + ``` + +## Security Best Practices + +1. **Firewall Rules**: Scripts create specific rules for required ports only +2. **Service Accounts**: Use default Compute Engine service account with minimal permissions +3. **SSH Keys**: Automatically managed through GCP project metadata +4. **Network Security**: Consider using VPC and private subnets for production +5. **Secrets Management**: Consider using GCP Secret Manager for API keys + +## Monitoring and Logging + +### GCP Logging + +```bash +# View logs in Cloud Logging +gcloud logging read "resource.type=gce_instance AND resource.labels.instance_id=INSTANCE_ID" +``` + +### Custom Metrics + +- Agent response times +- MCP server connection health +- A2A communication success rates + +## Support + +For GCP-specific issues: + +- Check [GCP Compute Engine documentation](https://cloud.google.com/compute/docs) +- Review [GCP troubleshooting guides](https://cloud.google.com/compute/docs/troubleshooting) +- Monitor [GCP status page](https://status.cloud.google.com/) + +For NANDA-specific issues: + +- Check agent logs: `/var/log/agent_*.out.log` +- Review startup script logs: `/var/log/startup-script.log` +- Test MCP functionality with provided curl commands diff --git a/scripts/gcp/deploy-agent.sh b/scripts/gcp/deploy-agent.sh new file mode 100755 index 0000000..f5cc49e --- /dev/null +++ b/scripts/gcp/deploy-agent.sh @@ -0,0 +1,276 @@ +#!/bin/bash + +# Simple GCP NANDA Agent Deployment Script +# Usage: bash deploy-agent.sh [PORT] [REGISTRY_URL] [ZONE] [MACHINE_TYPE] + +set -e + +AGENT_TYPE=$1 +AGENT_ID=$2 +ANTHROPIC_API_KEY=$3 +PORT=${4:-6000} +REGISTRY_URL=${5:-""} +ZONE=${6:-us-central1-a} +MACHINE_TYPE=${7:-e2-micro} + +if [ -z "$AGENT_TYPE" ] || [ -z "$AGENT_ID" ] || [ -z "$ANTHROPIC_API_KEY" ]; then + echo "🤖 Simple GCP NANDA Agent Deployment" + echo "====================================" + echo "" + echo "Usage: bash deploy-agent.sh [PORT] [REGISTRY_URL] [ZONE] [MACHINE_TYPE]" + echo "" + echo "Agent Types:" + echo " • helpful - General helpful agent" + echo " • pirate - Pirate personality agent" + echo " • echo - Simple echo agent" + echo " • analyst - LangChain document analyst (requires LangChain)" + echo "" + echo "Examples:" + echo " bash deploy-agent.sh helpful my_gcp_agent sk-ant-xxxxx" + echo " bash deploy-agent.sh analyst doc_analyzer sk-ant-xxxxx 6020" + echo " bash deploy-agent.sh pirate captain_jack sk-ant-xxxxx 6000 https://registry.example.com us-central1-a e2-small" + echo "" + exit 1 +fi + +echo "🚀 Deploying NANDA Agent on GCP" +echo "================================" +echo "Agent Type: $AGENT_TYPE" +echo "Agent ID: $AGENT_ID" +echo "Port: $PORT" +echo "Zone: $ZONE" +echo "Machine Type: $MACHINE_TYPE" +echo "Registry: ${REGISTRY_URL:-"None (local only)"}" +echo "" + +# Check GCP configuration +PROJECT_ID=$(gcloud config get-value project 2>/dev/null) +if [ -z "$PROJECT_ID" ]; then + echo "❌ GCP project not configured. Run 'gcloud config set project YOUR_PROJECT_ID' first." + exit 1 +fi + +echo "Using GCP project: $PROJECT_ID" +echo "" + +echo "[1/4] Setting up GCP firewall rule..." +FIREWALL_RULE_NAME="nanda-simple-agents" +NETWORK_TAG="nanda-simple" + +if ! gcloud compute firewall-rules describe "$FIREWALL_RULE_NAME" >/dev/null 2>&1; then + gcloud compute firewall-rules create "$FIREWALL_RULE_NAME" \ + --direction=INGRESS \ + --priority=1000 \ + --network=default \ + --action=ALLOW \ + --rules=tcp:22,tcp:6000-6100 \ + --source-ranges=0.0.0.0/0 \ + --target-tags="$NETWORK_TAG" \ + --description="Firewall rule for simple NANDA agents" +fi + +echo "[2/4] Creating startup script..." +cat > startup_script_${AGENT_ID}.sh << EOF +#!/bin/bash +exec > /var/log/startup-script.log 2>&1 + +echo "=== NANDA Agent Setup Started on GCP: $AGENT_ID ===" +date + +# Update system and install dependencies +apt-get update -y +apt-get install -y python3 python3-pip python3-venv git curl + +# Setup project as ubuntu user +cd /home/ubuntu +PROJECT_DIR="nanda-agent-$AGENT_ID" + +# Remove existing directory if it exists +if [ -d "\$PROJECT_DIR" ]; then + rm -rf "\$PROJECT_DIR" +fi + +# Clone streamlined adapter +sudo -u ubuntu git clone https://github.com/projnanda/NEST.git "\$PROJECT_DIR" +cd "\$PROJECT_DIR" + +# Create virtual environment and install +sudo -u ubuntu python3 -m venv env +sudo -u ubuntu bash -c "source env/bin/activate && pip install --upgrade pip && pip install anthropic python-a2a requests" + +# Install agent-specific dependencies +case "$AGENT_TYPE" in + "analyst") + echo "Installing LangChain dependencies for analyst agent..." + sudo -u ubuntu bash -c "source env/bin/activate && pip install langchain-core langchain-anthropic" + ;; + "helpful"|"pirate"|"echo") + echo "Using built-in agent type (no extra dependencies)" + ;; + *) + echo "⚠️ Unknown agent type: $AGENT_TYPE. Proceeding with basic installation..." + ;; +esac + +# Get external IP from GCP metadata +echo "Getting external IP address from GCP metadata..." +for attempt in {1..5}; do + EXTERNAL_IP=\$(curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip) + if [ -n "\$EXTERNAL_IP" ] && [[ \$EXTERNAL_IP =~ ^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\$ ]]; then + echo "Retrieved external IP: \$EXTERNAL_IP" + break + fi + echo "Attempt \$attempt failed, retrying..." + sleep 3 +done + +if [ -z "\$EXTERNAL_IP" ]; then + echo "ERROR: Could not retrieve external IP" + exit 1 +fi + +# Create agent startup script +sudo -u ubuntu cat > run_agent.py << 'PYTHON_EOF' +#!/usr/bin/env python3 +""" +Auto-generated NANDA Agent for GCP +Agent Type: $AGENT_TYPE +Agent ID: $AGENT_ID +Port: $PORT +""" + +import os +import sys + +# Set API key +os.environ["ANTHROPIC_API_KEY"] = "$ANTHROPIC_API_KEY" + +# Add project to path +sys.path.append(os.path.dirname(__file__)) + +from nanda_core.core.adapter import NANDA, helpful_agent, pirate_agent, echo_agent + +def main(): + print("🤖 Starting NANDA Agent on GCP: $AGENT_ID") + print("Agent Type: $AGENT_TYPE") + print("Port: $PORT") + print("") + + # Select agent logic based on type + agent_logic = helpful_agent # default + + if "$AGENT_TYPE" == "pirate": + agent_logic = pirate_agent + elif "$AGENT_TYPE" == "echo": + agent_logic = echo_agent + elif "$AGENT_TYPE" == "analyst": + try: + from examples.langchain_analyst_agent import DocumentAnalyst, create_analyst_agent_logic + analyst = DocumentAnalyst() + agent_logic = create_analyst_agent_logic(analyst) + print("📊 LangChain Document Analyst loaded") + except ImportError: + print("⚠️ LangChain dependencies not available, using helpful agent") + agent_logic = helpful_agent + + # Create NANDA agent + nanda = NANDA( + agent_id="$AGENT_ID", + agent_logic=agent_logic, + port=$PORT, + registry_url="${REGISTRY_URL}" if "${REGISTRY_URL}" else None, + public_url="http://\$EXTERNAL_IP:$PORT" if "${REGISTRY_URL}" else None + ) + + print("🚀 Agent ready on GCP! Send messages to http://\$EXTERNAL_IP:$PORT/a2a") + if "${REGISTRY_URL}": + print("🌐 Will attempt to register with registry: ${REGISTRY_URL}") + + try: + nanda.start(register=bool("${REGISTRY_URL}")) + except KeyboardInterrupt: + print("\\n🛑 Agent stopped") + +if __name__ == "__main__": + main() +PYTHON_EOF + +sudo -u ubuntu chmod +x run_agent.py + +# Start agent in background with proper environment +echo "Starting NANDA agent..." +sudo -u ubuntu bash -c " + cd /home/ubuntu/nanda-agent-$AGENT_ID + source env/bin/activate + nohup python3 run_agent.py > agent.log 2>&1 & +" + +sleep 5 + +echo "=== NANDA Agent Setup Complete on GCP: $AGENT_ID ===" +echo "Agent URL: http://\$EXTERNAL_IP:$PORT/a2a" +echo "External IP: \$EXTERNAL_IP" +EOF + +echo "[3/4] Launching GCP Compute Engine instance..." +INSTANCE_NAME="nanda-simple-$AGENT_ID" + +gcloud compute instances create "$INSTANCE_NAME" \ + --zone="$ZONE" \ + --machine-type="$MACHINE_TYPE" \ + --network-interface=network-tier=PREMIUM,subnet=default \ + --maintenance-policy=MIGRATE \ + --provisioning-model=STANDARD \ + --service-account="$(gcloud iam service-accounts list --filter="displayName:Compute Engine default service account" --format="value(email)" 2>/dev/null || echo "")" \ + --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write \ + --tags="$NETWORK_TAG" \ + --create-disk=auto-delete=yes,boot=yes,device-name="$INSTANCE_NAME",image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20241002,mode=rw,size=20,type=projects/$PROJECT_ID/zones/$ZONE/diskTypes/pd-balanced \ + --labels=project=nanda,type=simple-agent \ + --metadata-from-file startup-script=startup_script_${AGENT_ID}.sh + +echo "✅ Instance launched: $INSTANCE_NAME" + +# Wait for instance to be running +echo "[4/4] Waiting for instance and agent startup..." +while [[ $(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(status)" 2>/dev/null) != "RUNNING" ]]; do + sleep 5 +done + +EXTERNAL_IP=$(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(networkInterfaces[0].accessConfigs[0].natIP)" 2>/dev/null) + +echo "Waiting for agent deployment (2 minutes)..." +sleep 120 + +# Cleanup +rm startup_script_${AGENT_ID}.sh + +echo "" +echo "🎉 GCP NANDA Agent Deployment Complete!" +echo "======================================" +echo "Agent ID: $AGENT_ID" +echo "Type: $AGENT_TYPE" +echo "Instance: $INSTANCE_NAME" +echo "Zone: $ZONE" +echo "External IP: $EXTERNAL_IP" +echo "Port: $PORT" +echo "" + +# Test agent connectivity +echo "🔍 Testing agent connectivity..." +if curl -f -s "http://$EXTERNAL_IP:$PORT/health" >/dev/null 2>&1; then + echo "✅ Agent is responding on http://$EXTERNAL_IP:$PORT" +else + echo "⚠️ Agent may still be starting up. Check logs if needed." +fi + +echo "" +echo "📋 Useful commands:" +echo " • SSH: gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE" +echo " • Logs: gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE --command='tail -f nanda-agent-$AGENT_ID/agent.log'" +echo " • Stop: gcloud compute instances stop $INSTANCE_NAME --zone=$ZONE" +echo " • Delete: gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE" +echo "" +echo "🔗 Agent URL: http://$EXTERNAL_IP:$PORT/a2a" +echo "" +echo "🧪 Test agent:" +echo "curl -X POST http://$EXTERNAL_IP:$PORT/a2a -H 'Content-Type: application/json' -d '{\"content\":{\"text\":\"hello\",\"type\":\"text\"},\"role\":\"user\",\"conversation_id\":\"test\"}'" \ No newline at end of file diff --git a/scripts/gcp/multi-agent-deployment.sh b/scripts/gcp/multi-agent-deployment.sh new file mode 100755 index 0000000..4f3ce1b --- /dev/null +++ b/scripts/gcp/multi-agent-deployment.sh @@ -0,0 +1,450 @@ +#!/bin/bash + +# GCP Compute Engine Multi-Agent Deployment Script +# This script creates a GCP Compute Engine instance and deploys multiple NANDA agents +# Usage: bash multi-agent-deployment.sh [REGISTRY_URL] [MCP_REGISTRY_URL] [ZONE] [MACHINE_TYPE] + +set -e + +# Function to validate port is in allowed ranges +validate_port() { + local port=$1 + + # Define allowed port ranges (must match firewall rules) + local allowed_ranges=( + "6000:6100" + "7000:7100" + "8000:8100" + "9000:9100" + "10000:10100" + "11000:11100" + "12000:12100" + "13000:13100" + "14000:14100" + "15000:15100" + ) + + for range in "${allowed_ranges[@]}"; do + local start=${range%:*} + local end=${range#*:} + + if [ "$port" -ge "$start" ] && [ "$port" -le "$end" ]; then + return 0 # Port is valid + fi + done + + echo "❌ Port $port is not in allowed ranges. Allowed ranges:" + for range in "${allowed_ranges[@]}"; do + echo " - ${range%:*}-${range#*:}" + done + return 1 # Port is invalid +} + +# Parse arguments +ANTHROPIC_API_KEY="$1" +AGENT_CONFIG_JSON="$2" +SMITHERY_API_KEY="$3" +REGISTRY_URL="${4:-http://registry.chat39.com:6900}" +MCP_REGISTRY_URL="${5:-}" +ZONE="${6:-us-central1-a}" +MACHINE_TYPE="${7:-e2-standard-4}" # Larger instance for multiple agents + +# Validation +if [ -z "$ANTHROPIC_API_KEY" ] || [ -z "$AGENT_CONFIG_JSON" ] || [ -z "$SMITHERY_API_KEY" ]; then + echo "❌ Usage: $0 [REGISTRY_URL] [MCP_REGISTRY_URL] [ZONE] [MACHINE_TYPE]" + echo "" + echo "Example:" + echo " $0 sk-ant-xxxxx scripts/agent_configs/group-01-business-and-finance-experts.json smithery-key-xxxxx \"http://registry.chat39.com:6900\" \"https://mcp-registry.ngrok.app\" us-central1-a e2-standard-4" + exit 1 +fi + +# Parse and validate agent config +if [ -f "$AGENT_CONFIG_JSON" ]; then + AGENTS_JSON=$(cat "$AGENT_CONFIG_JSON") +else + AGENTS_JSON="$AGENT_CONFIG_JSON" +fi + +AGENT_COUNT=$(echo "$AGENTS_JSON" | python3 -c "import json, sys; print(len(json.load(sys.stdin)))") +echo "Agents to deploy: $AGENT_COUNT" + +# Validate instance type for agent count +if [ "$AGENT_COUNT" -gt 5 ] && [ "$MACHINE_TYPE" = "e2-small" ]; then + echo "⚠️ WARNING: e2-small may be insufficient for $AGENT_COUNT agents. Consider e2-standard-4 or larger." + read -p "Continue anyway? (y/N): " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + exit 1 + fi +fi + +# Validate port uniqueness and allowed ranges +echo "Validating port configuration..." + +# Validate port uniqueness +DUPLICATE_PORTS=$(echo "$AGENTS_JSON" | python3 -c " +import json, sys +from collections import Counter +agents = json.load(sys.stdin) +ports = [agent['port'] for agent in agents] +duplicates = [port for port, count in Counter(ports).items() if count > 1] +if duplicates: + print(' '.join(map(str, duplicates))) + sys.exit(1) +") + +if [ $? -eq 1 ]; then + echo "❌ Duplicate ports found: $DUPLICATE_PORTS" + exit 1 +fi + +# Validate all ports are in allowed ranges +echo "$AGENTS_JSON" | python3 -c " +import json, sys +agents = json.load(sys.stdin) +invalid_ports = [] +for agent in agents: + port = agent['port'] + # Check if port is in allowed ranges + allowed_ranges = [ + (6000, 6100), (7000, 7100), (8000, 8100), (9000, 9100), (10000, 10100), + (11000, 11100), (12000, 12100), (13000, 13100), (14000, 14100), (15000, 15100) + ] + if not any(start <= port <= end for start, end in allowed_ranges): + invalid_ports.append(f'{agent[\"agent_id\"]}:{port}') + +if invalid_ports: + print('❌ Invalid ports found:') + for item in invalid_ports: + print(f' - {item}') + print('Allowed port ranges: 6000-6100, 7000-7100, 8000-8100, 9000-9100, 10000-10100, 11000-11100, 12000-12100, 13000-13100, 14000-14100, 15000-15100') + sys.exit(1) +else: + print('✅ All ports are in allowed ranges') +" + +if [ $? -eq 1 ]; then + exit 1 +fi + +# Configuration +PROJECT_ID=$(gcloud config get-value project 2>/dev/null) +FIREWALL_RULE_NAME="nanda-multi-agents-rule" +NETWORK_TAG="nanda-multi-agents" +DEPLOYMENT_ID=$(date +%Y%m%d-%H%M%S) + +# Check gcloud configuration +echo "[1/6] Checking gcloud configuration..." +if [ -z "$PROJECT_ID" ]; then + echo "❌ GCP project not configured. Run 'gcloud config set project YOUR_PROJECT_ID' first." + exit 1 +fi + +if ! gcloud auth list --filter=status:ACTIVE --format="value(account)" | head -n1 >/dev/null 2>&1; then + echo "❌ Not authenticated with gcloud. Run 'gcloud auth login' first." + exit 1 +fi + +echo "✅ Using GCP project: $PROJECT_ID" + +# Setup firewall rule +echo "[2/6] Setting up firewall rules..." +if ! gcloud compute firewall-rules describe "$FIREWALL_RULE_NAME" >/dev/null 2>&1; then + echo "Creating firewall rule for NANDA multi-agents..." + + # Get agent ports for firewall rule + AGENT_PORTS=$(echo "$AGENTS_JSON" | python3 -c " +import json, sys +agents = json.load(sys.stdin) +ports = [str(agent['port']) for agent in agents] +print(','.join(['tcp:' + port for port in ports])) +") + + gcloud compute firewall-rules create "$FIREWALL_RULE_NAME" \ + --direction=INGRESS \ + --priority=1000 \ + --network=default \ + --action=ALLOW \ + --rules="tcp:22,$AGENT_PORTS" \ + --source-ranges=0.0.0.0/0 \ + --target-tags="$NETWORK_TAG" \ + --description="Firewall rule for NANDA multi-agents" +else + echo "Firewall rule already exists" +fi + +echo "✅ Firewall rule: $FIREWALL_RULE_NAME" + +# Setup SSH key +echo "[3/6] Setting up SSH access..." +SSH_KEY_FILE="$HOME/.ssh/gcp_nanda_multi_key" +if [ ! -f "$SSH_KEY_FILE" ]; then + echo "Creating SSH key pair..." + ssh-keygen -t rsa -b 2048 -f "$SSH_KEY_FILE" -N "" -C "nanda-gcp-multi-key" + + # Add public key to GCP project metadata + gcloud compute project-info add-metadata \ + --metadata-from-file ssh-keys=<(gcloud compute project-info describe \ + --format="value(commonInstanceMetadata.items[key=ssh-keys].value)" && \ + echo "ubuntu:$(cat ${SSH_KEY_FILE}.pub)") +fi +echo "✅ SSH key configured" + +# Create startup script +echo "[4/6] Creating startup script..." +cat > "startup_script_multi_${DEPLOYMENT_ID}.sh" << 'STARTUP_EOF' +#!/bin/bash +exec > /var/log/startup-script.log 2>&1 + +echo "=== GCP Multi-Agent Setup Started: DEPLOYMENT_ID_PLACEHOLDER ===" +date + +# Update system and install dependencies (optimized for speed) +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq -y +apt-get install -qq -y --no-install-recommends python3 python3-venv python3-pip git curl supervisor + +# Setup project +cd /home/ubuntu +sudo -u ubuntu git clone https://github.com/projnanda/NEST.git nanda-multi-agents +cd nanda-multi-agents + +# Fetch all remote branches and ensure we're on main +echo "Fetching all remote branches..." +sudo -u ubuntu git fetch --all + +# Use main branch (MCP tooling will be merged there) +echo "Available branches:" +sudo -u ubuntu git branch -a +echo "Current branch before checkout:" +sudo -u ubuntu git branch +echo "Checking out main branch..." +sudo -u ubuntu git checkout main +sudo -u ubuntu git pull origin main +echo "Successfully on main branch with latest changes" +sudo -u ubuntu git branch + +sudo -u ubuntu python3 -m venv env +sudo -u ubuntu bash -c "source env/bin/activate && pip install --upgrade pip && pip install -e . && pip install anthropic" + +# Get external IP from GCP metadata +echo "Getting external IP address from GCP metadata..." +for attempt in {1..5}; do + EXTERNAL_IP=$(curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip) + if [ -n "$EXTERNAL_IP" ] && [[ $EXTERNAL_IP =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Retrieved external IP: $EXTERNAL_IP" + break + fi + echo "Attempt $attempt failed, retrying..." + sleep 3 +done + +if [ -z "$EXTERNAL_IP" ]; then + echo "ERROR: Could not retrieve external IP" + exit 1 +fi + +# Save agent configuration +cat > /tmp/agents_config.json << 'AGENTS_EOF' +AGENTS_JSON_PLACEHOLDER +AGENTS_EOF + +# Create supervisor configuration for each agent +echo "Creating supervisor configurations..." +mkdir -p /etc/supervisor/conf.d + +while IFS= read -r agent_config; do + AGENT_ID=$(echo "$agent_config" | jq -r '.agent_id') + AGENT_NAME=$(echo "$agent_config" | jq -r '.agent_name') + DOMAIN=$(echo "$agent_config" | jq -r '.domain') + SPECIALIZATION=$(echo "$agent_config" | jq -r '.specialization') + DESCRIPTION=$(echo "$agent_config" | jq -r '.description') + CAPABILITIES=$(echo "$agent_config" | jq -r '.capabilities') + PORT=$(echo "$agent_config" | jq -r '.port') + + echo "Configuring supervisor for agent: $AGENT_ID" + + # Create supervisor configuration file + cat > "/etc/supervisor/conf.d/agent_$AGENT_ID.conf" << SUPERVISOR_EOF +[program:agent_$AGENT_ID] +command=/home/ubuntu/nanda-multi-agents/env/bin/python examples/nanda_agent.py +directory=/home/ubuntu/nanda-multi-agents +user=ubuntu +autostart=true +autorestart=true +startretries=3 +stderr_logfile=/var/log/agent_$AGENT_ID.err.log +stdout_logfile=/var/log/agent_$AGENT_ID.out.log +environment= + ANTHROPIC_API_KEY="ANTHROPIC_API_KEY_PLACEHOLDER", + SMITHERY_API_KEY="SMITHERY_API_KEY_PLACEHOLDER", + AGENT_ID="$AGENT_ID", + AGENT_NAME="$AGENT_NAME", + AGENT_DOMAIN="$DOMAIN", + AGENT_SPECIALIZATION="$SPECIALIZATION", + AGENT_DESCRIPTION="$DESCRIPTION", + AGENT_CAPABILITIES="$CAPABILITIES", + REGISTRY_URL="REGISTRY_URL_PLACEHOLDER", + MCP_REGISTRY_URL="MCP_REGISTRY_URL_PLACEHOLDER", + PUBLIC_URL="http://$EXTERNAL_IP:$PORT", + PORT="$PORT" + +SUPERVISOR_EOF + + echo "✅ Supervisor config created for agent $AGENT_ID on port $PORT" + +done < <(cat /tmp/agents_config.json | jq -c '.[]') + +# Start supervisor and wait for all agents +echo "Starting supervisor..." +systemctl enable supervisor +systemctl start supervisor +supervisorctl reread +supervisorctl update + +# Wait for all agents to start +echo "Waiting for all agents to start..." +sleep 30 + +# Verify all agents are running +echo "Verifying agent status..." +supervisorctl status + +echo "=== Multi-Agent Setup Complete: DEPLOYMENT_ID_PLACEHOLDER ===" +echo "All agents managed by supervisor on: $EXTERNAL_IP" +STARTUP_EOF + +# Replace placeholders in startup script +sed -i '' "s/DEPLOYMENT_ID_PLACEHOLDER/$DEPLOYMENT_ID/g" "startup_script_multi_${DEPLOYMENT_ID}.sh" +sed -i '' "s/ANTHROPIC_API_KEY_PLACEHOLDER/$ANTHROPIC_API_KEY/g" "startup_script_multi_${DEPLOYMENT_ID}.sh" +sed -i '' "s/SMITHERY_API_KEY_PLACEHOLDER/$SMITHERY_API_KEY/g" "startup_script_multi_${DEPLOYMENT_ID}.sh" +sed -i '' "s|REGISTRY_URL_PLACEHOLDER|$REGISTRY_URL|g" "startup_script_multi_${DEPLOYMENT_ID}.sh" +sed -i '' "s|MCP_REGISTRY_URL_PLACEHOLDER|$MCP_REGISTRY_URL|g" "startup_script_multi_${DEPLOYMENT_ID}.sh" + +# Escape JSON for sed +# Create a separate JSON file and modify the startup script to use it +echo "$AGENTS_JSON" > "agents_config_${DEPLOYMENT_ID}.json" +# Replace the heredoc with a simple cat command +sed -i '' '/AGENTS_JSON_PLACEHOLDER/r agents_config_'"${DEPLOYMENT_ID}"'.json' "startup_script_multi_${DEPLOYMENT_ID}.sh" +sed -i '' '/AGENTS_JSON_PLACEHOLDER/d' "startup_script_multi_${DEPLOYMENT_ID}.sh" + +# Launch Compute Engine instance +echo "[5/6] Launching Compute Engine instance..." +INSTANCE_NAME="nanda-multi-agents-$DEPLOYMENT_ID" + +gcloud compute instances create "$INSTANCE_NAME" \ + --zone="$ZONE" \ + --machine-type="$MACHINE_TYPE" \ + --network-interface=network-tier=PREMIUM,subnet=default \ + --maintenance-policy=MIGRATE \ + --provisioning-model=STANDARD \ + --service-account="$(gcloud iam service-accounts list --filter="displayName:Compute Engine default service account" --format="value(email)")" \ + --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ + --tags="$NETWORK_TAG" \ + --create-disk=auto-delete=yes,boot=yes,device-name="$INSTANCE_NAME",image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20251002,mode=rw,size=20,type=projects/$PROJECT_ID/zones/$ZONE/diskTypes/pd-balanced \ + --no-shielded-secure-boot \ + --shielded-vtpm \ + --shielded-integrity-monitoring \ + --labels=project=nanda,type=multi-agent,deployment-id="$DEPLOYMENT_ID" \ + --reservation-affinity=any \ + --metadata-from-file startup-script="startup_script_multi_${DEPLOYMENT_ID}.sh" + +echo "✅ Instance launched: $INSTANCE_NAME" + +# Wait for instance to be running +echo "[6/6] Waiting for instance and deployment..." +echo "Waiting for instance to be in RUNNING state..." +while [[ $(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(status)") != "RUNNING" ]]; do + echo "Instance status: $(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(status)")" + sleep 10 +done + +EXTERNAL_IP=$(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(networkInterfaces[0].accessConfigs[0].natIP)") + +echo "Waiting for multi-agent deployment (5 minutes for proper startup)..." +sleep 300 + +# Cleanup +rm "startup_script_multi_${DEPLOYMENT_ID}.sh" + +# Health check all agents +echo "" +echo "🔍 Performing health checks..." +echo "$AGENTS_JSON" | python3 -c " +import json, sys, requests, time +agents = json.load(sys.stdin) +for agent in agents: + url = f'http://$EXTERNAL_IP:{agent[\"port\"]}/health' + try: + response = requests.get(url, timeout=5) + if response.status_code == 200: + print(f'✅ {agent[\"agent_id\"]}: Healthy') + else: + print(f'⚠️ {agent[\"agent_id\"]}: HTTP {response.status_code}') + except Exception as e: + print(f'❌ {agent[\"agent_id\"]}: {str(e)}') +" 2>/dev/null || echo "Health check skipped (requests not available)" + +echo "" +echo "🎉 GCP Multi-Agent Deployment Complete!" +echo "======================================" +echo "Deployment ID: $DEPLOYMENT_ID" +echo "Instance Name: $INSTANCE_NAME" +echo "Zone: $ZONE" +echo "External IP: $EXTERNAL_IP" + +# Display agent URLs +echo "" +echo "🤖 Agent URLs:" +echo "$AGENTS_JSON" | python3 -c " +import json, sys +agents = json.load(sys.stdin) +for agent in agents: + print(f\" {agent['agent_id']}: http://$EXTERNAL_IP:{agent['port']}/a2a\") +" + +# Get actual agent IDs with hex suffixes from logs +echo "Getting actual agent IDs (with hex suffixes)..." +ACTUAL_AGENT_IDS="" +sleep 10 +for attempt in {1..3}; do + ACTUAL_AGENT_IDS=$(gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE --command="grep 'Generated agent_id:' /var/log/agent_*.out.log 2>/dev/null | cut -d':' -f3 | tr -d ' '" 2>/dev/null || echo "") + if [ -n "$ACTUAL_AGENT_IDS" ]; then + break + fi + echo "Attempt $attempt: Waiting for agent logs..." + sleep 5 +done + +if [ -n "$ACTUAL_AGENT_IDS" ]; then + echo "" + echo "🤖 Actual Agent IDs for A2A Communication:" + echo "$ACTUAL_AGENT_IDS" | while read -r agent_id; do + if [ -n "$agent_id" ]; then + echo " @$agent_id" + fi + done + echo "" + echo "📞 Use these in A2A messages:" + echo " Example: @[agent-id] your message here" +else + echo "" + echo "⚠️ Could not retrieve actual agent IDs from logs." + echo "📞 Agent IDs will be: [base-id]-[6-char-hex]" +fi + +echo "" +echo "📊 Monitor agents:" +echo "gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE --command='sudo supervisorctl status'" + +echo "" +echo "🔄 Restart all agents:" +echo "gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE --command='sudo supervisorctl restart all'" + +echo "" +echo "📋 Instance Management:" +echo "• View logs: gcloud compute instances get-serial-port-output $INSTANCE_NAME --zone=$ZONE" +echo "• SSH access: gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE" +echo "• Stop instance: gcloud compute instances stop $INSTANCE_NAME --zone=$ZONE" +echo "• Start instance: gcloud compute instances start $INSTANCE_NAME --zone=$ZONE" +echo "• Delete instance: gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE" \ No newline at end of file diff --git a/scripts/gcp/multi-region-deployment.sh b/scripts/gcp/multi-region-deployment.sh new file mode 100755 index 0000000..3af530d --- /dev/null +++ b/scripts/gcp/multi-region-deployment.sh @@ -0,0 +1,169 @@ +#!/bin/bash + +# Multi-Region Multi-Agent Deployment Script +# This script deploys agents across multiple GCP regions for better distributed architecture +# Usage: bash multi-region-deployment.sh + +set -e + +# Function to validate port is in allowed ranges +validate_port() { + local port=$1 + + # Define allowed port ranges (must match firewall rules) + local allowed_ranges=( + "6000:6100" + "7000:7100" + "8000:8100" + "9000:9100" + "10000:10100" + "11000:11100" + "12000:12100" + "13000:13100" + "14000:14100" + "15000:15100" + ) + + for range in "${allowed_ranges[@]}"; do + local start=${range%:*} + local end=${range#*:} + + if [ "$port" -ge "$start" ] && [ "$port" -le "$end" ]; then + return 0 # Port is valid + fi + done + + echo "❌ Port $port is not in allowed ranges. Allowed ranges:" + for range in "${allowed_ranges[@]}"; do + echo " - ${range%:*}-${range#*:}" + done + return 1 # Port is invalid +} + +# Parse arguments +ANTHROPIC_API_KEY="$1" +SMITHERY_API_KEY="$2" +REGISTRY_URL="${3:-http://registry.chat39.com:6900}" +MCP_REGISTRY_URL="${4:-http://nanda-registry.chat39.com:5000}" + +# Validation +if [ -z "$ANTHROPIC_API_KEY" ] || [ -z "$SMITHERY_API_KEY" ]; then + echo "❌ Usage: $0 [REGISTRY_URL] [MCP_REGISTRY_URL]" + echo "" + echo "Example:" + echo " $0 sk-ant-xxxxx smithery-key-xxxxx \"http://registry.chat39.com:6900\" \"https://mcp-registry.ngrok.app\"" + exit 1 +fi + +echo "🌍 GCP Multi-Region Multi-Agent Deployment" +echo "==========================================" + +# Validate all agent configurations have allowed ports +echo "🔍 Validating all agent configurations..." +for REGION in "${!REGION_DEPLOYMENTS[@]}"; do + AGENT_CONFIG="${REGION_DEPLOYMENTS[$REGION]}" + + if [ -f "$AGENT_CONFIG" ]; then + echo " Validating $AGENT_CONFIG..." + AGENTS_JSON=$(cat "$AGENT_CONFIG") + + # Validate all ports are in allowed ranges + python3 -c " +import json +agents = json.loads('$AGENTS_JSON') +invalid_ports = [] +for agent in agents: + port = agent['port'] + # Check if port is in allowed ranges + allowed_ranges = [ + (6000, 6100), (7000, 7100), (8000, 8100), (9000, 9100), (10000, 10100), + (11000, 11100), (12000, 12100), (13000, 13100), (14000, 14100), (15000, 15100) + ] + if not any(start <= port <= end for start, end in allowed_ranges): + invalid_ports.append(f'{agent[\"agent_id\"]}:{port}') + +if invalid_ports: + print('❌ Invalid ports found in $AGENT_CONFIG:') + for item in invalid_ports: + print(f' - {item}') + exit(1) +else: + print('✅ All ports valid for $AGENT_CONFIG') + " || exit 1 + else + echo "❌ Agent config file not found: $AGENT_CONFIG" + exit 1 + fi +done + +echo "" + +# Define regions and agent groups for distribution +declare -A REGION_DEPLOYMENTS=( + ["us-central1-a"]="../agent_configs/group-01-business-and-finance-experts.json" + ["us-east1-b"]="../agent_configs/group-02-technology-and-engineering.json" + ["us-west1-b"]="../agent_configs/group-03-creative-and-design.json" +) + +DEPLOYMENT_ID="multi-region-$(date +%Y%m%d-%H%M%S)" +echo "Deployment ID: $DEPLOYMENT_ID" +echo "" + +# Deploy to each region +for REGION in "${!REGION_DEPLOYMENTS[@]}"; do + AGENT_CONFIG="${REGION_DEPLOYMENTS[$REGION]}" + + echo "🚀 Deploying to region: $REGION" + echo " Agent config: $AGENT_CONFIG" + echo " Starting deployment..." + + # Run multi-agent deployment for this region + bash ./multi-agent-deployment.sh \ + "$ANTHROPIC_API_KEY" \ + "$AGENT_CONFIG" \ + "$SMITHERY_API_KEY" \ + "$REGISTRY_URL" \ + "$MCP_REGISTRY_URL" \ + "$REGION" \ + "e2-standard-4" & + + echo " Deployment started in background for $REGION" + echo "" + + # Add a delay to avoid overwhelming the API + sleep 30 +done + +echo "⏳ Waiting for all regional deployments to complete..." +wait + +echo "" +echo "🎉 Multi-Region Deployment Complete!" +echo "=====================================" +echo "Deployment ID: $DEPLOYMENT_ID" +echo "" + +# Get all deployed instances across regions +echo "📍 Deployed Instances:" +for REGION in "${!REGION_DEPLOYMENTS[@]}"; do + echo "Region: $REGION" + gcloud compute instances list --filter="zone:$REGION AND name~nanda-multi-agents" --format="table(name,zone,machineType,status,networkInterfaces[0].accessConfigs[0].natIP:label=EXTERNAL_IP)" || echo " No instances found in $REGION" + echo "" +done + +echo "🔗 Cross-Region A2A Communication Test:" +echo "All agents across regions can communicate with each other using the format:" +echo " @[agent-id] your message here" +echo "" +echo "Example cross-region communication:" +echo ' curl -X POST http://[region1-ip]:[port]/a2a \' +echo ' -H "Content-Type: application/json" \' +echo ' -d '"'"'{"content":{"text":"@[agent-in-region2] Hello from region 1!","type":"text"},"role":"user","conversation_id":"cross-region-test"}'"'" +echo "" + +echo "📊 Management Commands:" +echo "# List all instances across regions" +echo "gcloud compute instances list --filter='name~nanda-multi-agents' --format='table(name,zone,status,networkInterfaces[0].accessConfigs[0].natIP)'" +echo "" +echo "# Delete all multi-region instances" +echo "gcloud compute instances list --filter='name~nanda-multi-agents' --format='value(name,zone)' | while read name zone; do gcloud compute instances delete \$name --zone=\$zone --quiet; done" \ No newline at end of file diff --git a/scripts/gcp/single-agent-deployment.sh b/scripts/gcp/single-agent-deployment.sh new file mode 100755 index 0000000..6cb70d9 --- /dev/null +++ b/scripts/gcp/single-agent-deployment.sh @@ -0,0 +1,352 @@ +#!/bin/bash + +# GCP Compute Engine + NANDA Agent Deployment Script +# This script creates a GCP Compute Engine instance and deploys a fully configurable modular NANDA agent +# Usage: bash single-agent-deployment.sh [REGISTRY_URL] [MCP_REGISTRY_URL] [PORT] [ZONE] [MACHINE_TYPE] + +set -e + +# Parse arguments +AGENT_ID="$1" +ANTHROPIC_API_KEY="$2" +AGENT_NAME="$3" +DOMAIN="$4" +SPECIALIZATION="$5" +DESCRIPTION="$6" +CAPABILITIES="$7" +SMITHERY_API_KEY="$8" +REGISTRY_URL="${9:-}" +MCP_REGISTRY_URL="${10:-}" +PORT="${11:-6000}" +ZONE="${12:-us-central1-a}" +MACHINE_TYPE="${13:-e2-micro}" + +# Validate inputs +if [ -z "$AGENT_ID" ] || [ -z "$ANTHROPIC_API_KEY" ] || [ -z "$AGENT_NAME" ] || [ -z "$DOMAIN" ] || [ -z "$SPECIALIZATION" ] || [ -z "$DESCRIPTION" ] || [ -z "$CAPABILITIES" ] || [ -z "$SMITHERY_API_KEY" ]; then + echo "❌ Usage: $0 [REGISTRY_URL] [MCP_REGISTRY_URL] [PORT] [ZONE] [MACHINE_TYPE]" + echo "" + echo "Example:" + echo " $0 data-scientist sk-ant-xxxxx \"Data Scientist\" \"data analysis\" \"analytical and precise AI assistant\" \"I specialize in data analysis, statistics, and machine learning.\" \"data analysis,statistics,machine learning,Python,R\" smithery-key-xxxxx \"https://registry.example.com\" \"https://d9750825b5c6.ngrok-free.app\" 6000 us-central1-a e2-micro" + echo "" + echo "Parameters:" + echo " AGENT_ID: Unique identifier for the agent" + echo " ANTHROPIC_API_KEY: Your Anthropic API key" + echo " AGENT_NAME: Display name for the agent" + echo " DOMAIN: Primary domain/field of expertise" + echo " SPECIALIZATION: Brief description of agent's role" + echo " DESCRIPTION: Detailed description of the agent" + echo " CAPABILITIES: Comma-separated list of capabilities" + echo " SMITHERY_API_KEY: Your Smithery API key for MCP server access" + echo " REGISTRY_URL: Optional registry URL for agent discovery" + echo " MCP_REGISTRY_URL: Optional MCP registry URL for NANDA MCP servers" + echo " PORT: Port number (default: 6000)" + echo " ZONE: GCP zone (default: us-central1-a)" + echo " MACHINE_TYPE: GCP machine type (default: e2-micro)" + exit 1 +fi + +# Validate port is in allowed ranges +validate_port() { + local port=$1 + # Allowed port ranges: 6000-6100, 7000-7100, 8000-8100, 9000-9100, 10000-10100, 11000-11100, 12000-12100, 13000-13100, 14000-14100, 15000-15100 + if { [ "$port" -ge 6000 ] && [ "$port" -le 6100 ]; } || \ + { [ "$port" -ge 7000 ] && [ "$port" -le 7100 ]; } || \ + { [ "$port" -ge 8000 ] && [ "$port" -le 8100 ]; } || \ + { [ "$port" -ge 9000 ] && [ "$port" -le 9100 ]; } || \ + { [ "$port" -ge 10000 ] && [ "$port" -le 10100 ]; } || \ + { [ "$port" -ge 11000 ] && [ "$port" -le 11100 ]; } || \ + { [ "$port" -ge 12000 ] && [ "$port" -le 12100 ]; } || \ + { [ "$port" -ge 13000 ] && [ "$port" -le 13100 ]; } || \ + { [ "$port" -ge 14000 ] && [ "$port" -le 14100 ]; } || \ + { [ "$port" -ge 15000 ] && [ "$port" -le 15100 ]; }; then + return 0 + else + return 1 + fi +} + +if ! validate_port "$PORT"; then + echo "❌ Error: Port $PORT is not in allowed ranges!" + echo "Allowed port ranges: 6000-6100, 7000-7100, 8000-8100, 9000-9100, 10000-10100, 11000-11100, 12000-12100, 13000-13100, 14000-14100, 15000-15100" + exit 1 +fi + +echo "🚀 GCP Compute Engine + NANDA Agent Deployment" +echo "==============================================" +echo "Agent ID: $AGENT_ID" +echo "Agent Name: $AGENT_NAME" +echo "Domain: $DOMAIN" +echo "Specialization: $SPECIALIZATION" +echo "Capabilities: $CAPABILITIES" +echo "Smithery API Key: ${SMITHERY_API_KEY:0:10}..." +echo "Registry URL: ${REGISTRY_URL:-"None"}" +echo "MCP Registry URL: ${MCP_REGISTRY_URL:-"None"}" +echo "Port: $PORT" +echo "Zone: $ZONE" +echo "Machine Type: $MACHINE_TYPE" +echo "" + +# Configuration +PROJECT_ID=$(gcloud config get-value project 2>/dev/null) +FIREWALL_RULE_NAME="nanda-agents-rule" +NETWORK_TAG="nanda-agents" + +# Check gcloud configuration +echo "[1/6] Checking gcloud configuration..." +if [ -z "$PROJECT_ID" ]; then + echo "❌ GCP project not configured. Run 'gcloud config set project YOUR_PROJECT_ID' first." + exit 1 +fi + +if ! gcloud auth list --filter=status:ACTIVE --format="value(account)" | head -n1 >/dev/null 2>&1; then + echo "❌ Not authenticated with gcloud. Run 'gcloud auth login' first." + exit 1 +fi + +echo "✅ Using GCP project: $PROJECT_ID" + +# Setup firewall rule +echo "[2/6] Setting up firewall rules..." +if ! gcloud compute firewall-rules describe "$FIREWALL_RULE_NAME" >/dev/null 2>&1; then + echo "Creating firewall rule for NANDA agents..." + gcloud compute firewall-rules create "$FIREWALL_RULE_NAME" \ + --direction=INGRESS \ + --priority=1000 \ + --network=default \ + --action=ALLOW \ + --rules=tcp:22,tcp:6000-6100 \ + --source-ranges=0.0.0.0/0 \ + --target-tags="$NETWORK_TAG" \ + --description="Firewall rule for NANDA agents" +else + echo "Firewall rule already exists" +fi + +echo "✅ Firewall rule: $FIREWALL_RULE_NAME" + +# Setup SSH key (GCP uses project-wide SSH keys by default) +echo "[3/6] Setting up SSH access..." +SSH_KEY_FILE="$HOME/.ssh/gcp_nanda_key" +if [ ! -f "$SSH_KEY_FILE" ]; then + echo "Creating SSH key pair..." + ssh-keygen -t rsa -b 2048 -f "$SSH_KEY_FILE" -N "" -C "nanda-gcp-key" + + # Add public key to GCP project metadata + gcloud compute project-info add-metadata \ + --metadata-from-file ssh-keys=<(gcloud compute project-info describe \ + --format="value(commonInstanceMetadata.items[key=ssh-keys].value)" && \ + echo "ubuntu:$(cat ${SSH_KEY_FILE}.pub)") +fi +echo "✅ SSH key configured" + +# Create startup script +echo "[4/6] Creating startup script..." +cat > "startup_script_${AGENT_ID}.sh" << 'STARTUP_EOF' +#!/bin/bash +exec > /var/log/startup-script.log 2>&1 + +echo "=== NANDA Agent Setup Started on GCP ===" +date + +# Update system and install dependencies (optimized for speed) +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq -y +apt-get install -qq -y --no-install-recommends python3 python3-venv python3-pip git curl + +# Setup project as ubuntu user +cd /home/ubuntu +sudo -u ubuntu git clone https://github.com/projnanda/NEST.git nanda-agent-AGENT_ID_PLACEHOLDER +cd nanda-agent-AGENT_ID_PLACEHOLDER + +# Fetch all remote branches and ensure we're on main +echo "Fetching all remote branches..." +sudo -u ubuntu git fetch --all + +# Use main branch (MCP tooling will be merged there) +echo "Available branches:" +sudo -u ubuntu git branch -a +echo "Current branch before checkout:" +sudo -u ubuntu git branch +echo "Checking out main branch..." +sudo -u ubuntu git checkout main +sudo -u ubuntu git pull origin main +echo "Successfully on main branch with latest changes" +sudo -u ubuntu git branch + +# Create virtual environment and install (optimized) +sudo -u ubuntu python3 -m venv env +sudo -u ubuntu bash -c "source env/bin/activate && pip install --upgrade pip --quiet && pip install -e . --quiet && pip install anthropic --quiet" + +# Configure the modular agent with all environment variables +sudo -u ubuntu sed -i'' "s|PORT = 6000|PORT = PORT_PLACEHOLDER|" examples/nanda_agent.py + +# Get external IP from GCP metadata +echo "Getting external IP address from GCP metadata..." +for attempt in {1..5}; do + EXTERNAL_IP=$(curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip) + if [ -n "$EXTERNAL_IP" ] && [[ $EXTERNAL_IP =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Retrieved external IP: $EXTERNAL_IP" + break + fi + echo "Attempt $attempt failed, retrying..." + sleep 3 +done + +if [ -z "$EXTERNAL_IP" ]; then + echo "ERROR: Could not retrieve external IP" + exit 1 +fi + +# Start the agent with all configuration +echo "Starting NANDA agent with PUBLIC_URL: http://$EXTERNAL_IP:PORT_PLACEHOLDER" +sudo -u ubuntu bash -c " + cd /home/ubuntu/nanda-agent-AGENT_ID_PLACEHOLDER + source env/bin/activate + export ANTHROPIC_API_KEY='ANTHROPIC_API_KEY_PLACEHOLDER' + export SMITHERY_API_KEY='SMITHERY_API_KEY_PLACEHOLDER' + export AGENT_ID='AGENT_ID_PLACEHOLDER' + export AGENT_NAME='AGENT_NAME_PLACEHOLDER' + export AGENT_DOMAIN='DOMAIN_PLACEHOLDER' + export AGENT_SPECIALIZATION='SPECIALIZATION_PLACEHOLDER' + export AGENT_DESCRIPTION='DESCRIPTION_PLACEHOLDER' + export AGENT_CAPABILITIES='CAPABILITIES_PLACEHOLDER' + export REGISTRY_URL='REGISTRY_URL_PLACEHOLDER' + export MCP_REGISTRY_URL='MCP_REGISTRY_URL_PLACEHOLDER' + # Get the external IP dynamically at runtime + EXTERNAL_IP=$(curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip) + export PUBLIC_URL="http://$EXTERNAL_IP:PORT_PLACEHOLDER" + export PORT='PORT_PLACEHOLDER' + nohup python3 examples/nanda_agent.py > agent.log 2>&1 & +" + +echo "=== NANDA Agent Setup Complete on GCP ===" +echo "Agent URL: http://\$EXTERNAL_IP:PORT_PLACEHOLDER/a2a" +STARTUP_EOF + +# Replace placeholders in startup script +sed -i '' "s|AGENT_ID_PLACEHOLDER|$AGENT_ID|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|PORT_PLACEHOLDER|$PORT|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|ANTHROPIC_API_KEY_PLACEHOLDER|$ANTHROPIC_API_KEY|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|SMITHERY_API_KEY_PLACEHOLDER|$SMITHERY_API_KEY|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|AGENT_NAME_PLACEHOLDER|$AGENT_NAME|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|DOMAIN_PLACEHOLDER|$DOMAIN|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|SPECIALIZATION_PLACEHOLDER|$SPECIALIZATION|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|DESCRIPTION_PLACEHOLDER|$DESCRIPTION|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|CAPABILITIES_PLACEHOLDER|$CAPABILITIES|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|REGISTRY_URL_PLACEHOLDER|$REGISTRY_URL|g" "startup_script_${AGENT_ID}.sh" +sed -i '' "s|MCP_REGISTRY_URL_PLACEHOLDER|$MCP_REGISTRY_URL|g" "startup_script_${AGENT_ID}.sh" + +# Launch Compute Engine instance +echo "[5/6] Launching Compute Engine instance..." +INSTANCE_NAME="nanda-agent-$AGENT_ID" + +gcloud compute instances create "$INSTANCE_NAME" \ + --zone="$ZONE" \ + --machine-type="$MACHINE_TYPE" \ + --network-interface=network-tier=PREMIUM,subnet=default \ + --maintenance-policy=MIGRATE \ + --provisioning-model=STANDARD \ + --service-account="$(gcloud iam service-accounts list --filter="displayName:Compute Engine default service account" --format="value(email)")" \ + --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ + --tags="$NETWORK_TAG" \ + --create-disk=auto-delete=yes,boot=yes,device-name="$INSTANCE_NAME",image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20251002,mode=rw,size=20,type=projects/$PROJECT_ID/zones/$ZONE/diskTypes/pd-balanced \ + --no-shielded-secure-boot \ + --shielded-vtpm \ + --shielded-integrity-monitoring \ + --labels=project=nanda,type=agent \ + --reservation-affinity=any \ + --metadata-from-file startup-script="startup_script_${AGENT_ID}.sh" + +echo "✅ Instance launched: $INSTANCE_NAME" + +# Wait for instance to be running +echo "[6/6] Waiting for instance and deployment..." +echo "Waiting for instance to be in RUNNING state..." +while [[ $(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(status)") != "RUNNING" ]]; do + echo "Instance status: $(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(status)")" + sleep 10 +done + +EXTERNAL_IP=$(gcloud compute instances describe "$INSTANCE_NAME" --zone="$ZONE" --format="value(networkInterfaces[0].accessConfigs[0].natIP)") + +echo "Waiting for agent deployment (4-5 minutes)..." +echo "This includes system updates, dependency installation, and agent startup..." + +# Wait with progress indicator +for i in {1..24}; do + echo -n "." + sleep 10 + + # Check if agent is responding after 3 minutes + if [ $i -eq 18 ]; then + echo "" + echo "Checking agent status..." + if curl -s --max-time 5 "http://$EXTERNAL_IP:$PORT/a2a" > /dev/null 2>&1; then + echo "✅ Agent is responding early! Deployment successful." + break + else + echo "Agent still starting up, continuing to wait..." + fi + fi +done +echo " Done!" + +# Cleanup +rm "startup_script_${AGENT_ID}.sh" + +echo "" +echo "🎉 NANDA Agent Deployment Complete on GCP!" +echo "==========================================" +echo "Instance Name: $INSTANCE_NAME" +echo "Zone: $ZONE" +echo "External IP: $EXTERNAL_IP" +echo "Agent URL: http://$EXTERNAL_IP:$PORT/a2a" + +# Final health check +echo "" +echo "🔍 Performing final health check..." +sleep 5 +if curl -s --max-time 10 -X POST "http://$EXTERNAL_IP:$PORT/a2a" \ + -H "Content-Type: application/json" \ + -d '{"content":{"text":"/ping","type":"text"},"role":"user","conversation_id":"health-check"}' | grep -q "pong"; then + echo "✅ Agent is healthy and responding to requests!" +else + echo "⚠️ Agent may still be starting up. Try the test commands below in a few minutes." +fi + +echo "" +echo "🤖 Agent ID for A2A Communication: ${AGENT_ID}-[6-char-hex]" +echo "" +echo "📞 Use this agent in A2A messages:" +echo " @${AGENT_ID}-[hex] your message here" +echo " (The actual hex suffix is generated at runtime)" + +echo "" +echo "🧪 Test your agent (direct communication):" +echo "curl -X POST http://$EXTERNAL_IP:$PORT/a2a \\" +echo " -H \"Content-Type: application/json\" \\" +echo " -d '{\"content\":{\"text\":\"Hello! What can you help me with?\",\"type\":\"text\"},\"role\":\"user\",\"conversation_id\":\"test123\"}'" + +echo "" +echo "🧪 Test MCP functionality:" +echo "# Smithery MCP server" +echo "curl -X POST http://$EXTERNAL_IP:$PORT/a2a \\" +echo " -H \"Content-Type: application/json\" \\" +echo " -d '{\"content\":{\"text\":\"#smithery:fetch get some data\",\"type\":\"text\"},\"role\":\"user\",\"conversation_id\":\"mcp-test\"}'" + +echo "" +echo "# NANDA MCP server" +echo "curl -X POST http://$EXTERNAL_IP:$PORT/a2a \\" +echo " -H \"Content-Type: application/json\" \\" +echo " -d '{\"content\":{\"text\":\"#nanda:nanda-points get balance\",\"type\":\"text\"},\"role\":\"user\",\"conversation_id\":\"nanda-test\"}'" + +echo "" +echo "🔐 SSH Access:" +echo "gcloud compute ssh ubuntu@$INSTANCE_NAME --zone=$ZONE" + +echo "" +echo "📋 Instance Management:" +echo "• View logs: gcloud compute instances get-serial-port-output $INSTANCE_NAME --zone=$ZONE" +echo "• Stop instance: gcloud compute instances stop $INSTANCE_NAME --zone=$ZONE" +echo "• Start instance: gcloud compute instances start $INSTANCE_NAME --zone=$ZONE" +echo "• Delete instance: gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE" \ No newline at end of file