Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ test_logs/
*.swp
*.swo
*~
AGENTS.md
.github/

# macOS
.DS_Store
Expand Down Expand Up @@ -81,4 +83,5 @@ out.log
# Temporary files
*.tmp
*.temp
.cache/
.cache/
test*
83 changes: 49 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,53 +15,63 @@ A production-ready framework for deploying and managing specialized AI agents wi

## Quick Start

### Deploy a Single Agent
### Deploy on AWS

```bash
bash scripts/aws-single-agent-deployment.sh \
"agent-id" \ # Unique identifier
"your-api-key" \ # Anthropic Claude API key
"Agent Name" \ # Display name
"domain" \ # Field of expertise
"specialization" \ # Role description
"description" \ # Detailed agent description
"capabilities" \ # Comma-separated capabilities
"registry-url" \ # Registry URL
"port" \ # Port number
"region" \ # AWS region
"instance-type" # EC2 instance type
# 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"
```

**Example:**
### Deploy on Google Cloud Platform (GCP)

```bash
# Single agent deployment
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"

# Multi-agent deployment
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 (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" \
"http://registry.chat39.com:6900" \
"6000" \
"us-east-1" \
"t3.micro"
"furniture,interior design,decor" "smithery-key-123..." \
"http://registry.chat39.com:6900" "https://mcp-registry.ngrok.app" \
"6000" "us-east-1" "t3.micro"
```

### Deploy Multiple Agents (10 per instance)
**Example (GCP):**

```bash
bash scripts/aws-multi-agent-deployment.sh \
"your-api-key" \
"scripts/agent_configs/group-01-business-and-finance-experts.json" \
"http://registry.chat39.com:6900" \
"us-east-1" \
"t3.xlarge"
bash scripts/gcp/single-agent-deployment.sh \
"gcp-data-scientist" "sk-ant-api03-..." "GCP Data Scientist" \
"data analysis" "analytical 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"
```

## Architecture

```
```text
NEST/
├── nanda_core/ # Core framework
│ ├── core/
Expand Down Expand Up @@ -125,6 +135,7 @@ Pre-configured agent groups for quick deployment:
## Monitoring

Each deployed agent includes:

- **Health checks** on startup
- **Automatic registry registration**
- **Process management** with supervisor
Expand All @@ -145,6 +156,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
Expand All @@ -153,13 +165,15 @@ Agents are configured with:
## Testing

### Test Single Agent

```bash
curl -X POST http://agent-ip:{PORT}/a2a \
-H "Content-Type: application/json" \
-d '{"content":{"text":"Hello! What can you help me with?","type":"text"},"role":"user","conversation_id":"test123"}'
```

### Test A2A Communication

```bash
curl -X POST http://agent-a-ip:{PORT}/a2a \
-H "Content-Type: application/json" \
Expand Down Expand Up @@ -191,11 +205,12 @@ 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/`

---

**Built by Project NANDA**
[Visit Project NANDA](https://github.com/projnanda) | [NEST Repository](https://github.com/projnanda/NEST)
[Visit Project NANDA](https://github.com/projnanda) | [NEST Repository](https://github.com/projnanda/NEST)
178 changes: 155 additions & 23 deletions scripts/README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,189 @@
# 🚀 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
bash aws-single-agent-deployment.sh <AGENT_ID> <API_KEY> <NAME> <DOMAIN> <SPECIALIZATION> <DESCRIPTION> <CAPABILITIES> [REGISTRY_URL] [PORT] [REGION] [INSTANCE_TYPE]
cd aws
bash single-agent-deployment.sh "agent-id" "sk-ant-..." "Agent Name"
```

**Example:**
### GCP Deployment
```bash
bash aws-single-agent-deployment.sh \
cd gcp
bash single-agent-deployment.sh "agent-id" "sk-ant-..." "Agent Name"
```

### Azure Deployment
```bash
cd azure
bash single-agent-deployment.sh "agent-id" "sk-ant-..." "Agent Name"
```

## 📋 Cloud-Specific Features

### AWS (`aws/`)
- ✅ EC2 instance deployment
- ✅ Security groups auto-configuration
- ✅ IMDSv2 for metadata retrieval
- ✅ Supervisor-based multi-agent management
- ✅ Automatic key pair generation

### GCP (`gcp/`)
- ✅ Compute Engine deployment
- ✅ Firewall rules auto-configuration
- ✅ Metadata service integration
- ✅ Supervisor-based multi-agent management
- ✅ SSH key management

### Azure (`azure/`)
- ✅ Virtual Machine deployment
- ✅ Network Security Groups (NSG)
- ✅ Virtual network auto-setup
- ✅ Cloud-init configuration
- ✅ Systemd/supervisor service management

---

## 📋 Script Types (Available on All Platforms)

### 🤖 Single Agent Deployment
Deploy one specialized agent to one VM/instance

**Example (AWS):**
```bash
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" \
"python,statistics,machine learning,data visualization" \
"python,statistics,machine learning" \
"" \
"http://registry.chat39.com:6900" \
"6000" \
"us-east-1" \
"t3.micro"
"" \
6000 \
us-east-1 \
t3.micro
```

### 🏭 Multi-Agent Deployment
**`aws-multi-agent-deployment.sh`** - Deploy 10 agents to one EC2 instance
**Example (GCP):**
```bash
cd gcp
bash single-agent-deployment.sh \
"data-scientist" \
"sk-ant-api03-..." \
"Data Scientist" \
"main" \
"data analysis" \
"expert data analyst" \
"python,statistics" \
"" \
"http://registry.chat39.com:6900" \
"" \
6000 \
us-central1-a \
e2-micro
```

**Example (Azure):**
```bash
bash aws-multi-agent-deployment.sh <API_KEY> <CONFIG_JSON> [REGISTRY_URL] [REGION] [INSTANCE_TYPE]
cd azure
bash single-agent-deployment.sh \
"data-scientist" \
"sk-ant-api03-..." \
"Data Scientist" \
"main" \
"data analysis" \
"python,statistics" \
"" \
"http://registry.chat39.com:6900" \
"" \
6000 \
eastus \
Standard_B1s
```

**Example:**
### 🏭 Multi-Agent Deployment
Deploy multiple agents (typically 10) to one VM/instance with supervisor management

**Example (AWS):**
```bash
bash aws-multi-agent-deployment.sh \
cd aws
bash multi-agent-deployment.sh \
"sk-ant-api03-..." \
"agent_configs/group-01-business-and-finance-experts.json" \
"../agent_configs/group-01-business-and-finance-experts.json" \
"http://registry.chat39.com:6900" \
"us-east-1" \
"t3.xlarge"
"t3.large"
```

### 🖥️ Existing Server Deployment
**`deploy-agent.sh`** - Deploy agent to existing Ubuntu/Amazon Linux server
**Example (GCP):**
```bash
cd gcp
bash multi-agent-deployment.sh \
"sk-ant-api03-..." \
"../agent_configs/group-01-business-and-finance-experts.json" \
"" \
"http://registry.chat39.com:6900" \
"" \
"us-central1-a" \
"e2-standard-4"
```

**Example (Azure):**
```bash
bash deploy-agent.sh <AGENT_TYPE> <AGENT_ID> <API_KEY> [PORT] [REGISTRY_URL]
cd azure
bash multi-agent-deployment.sh \
"sk-ant-api03-..." \
"../agent_configs/group-01-business-and-finance-experts.json" \
"http://registry.chat39.com:6900" \
"" \
"eastus" \
"Standard_B4ms"
```

### 🌍 Multi-Region Deployment
Deploy agent groups across multiple regions for geographic distribution

**Example (GCP):**
```bash
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:

Expand Down
Loading