mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2025-09-15 04:17:22 +00:00
645 lines
13 KiB
Markdown
645 lines
13 KiB
Markdown
# Universal AI Agent - Complete Deployment Guide
|
|
|
|
## Table of Contents
|
|
|
|
1. [Quick Start](#quick-start)
|
|
2. [Local Development](#local-development)
|
|
3. [Docker Deployment](#docker-deployment)
|
|
4. [Kubernetes Production Deployment](#kubernetes-production-deployment)
|
|
5. [Cloud Platform Deployment](#cloud-platform-deployment)
|
|
6. [Mobile App Setup](#mobile-app-setup)
|
|
7. [Monitoring and Analytics](#monitoring-and-analytics)
|
|
8. [Security Configuration](#security-configuration)
|
|
9. [Troubleshooting](#troubleshooting)
|
|
|
|
## Quick Start
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js 18+
|
|
- Docker and Docker Compose
|
|
- Redis (optional, for caching)
|
|
- PostgreSQL (optional, for persistence)
|
|
|
|
### 1-Minute Setup
|
|
|
|
```bash
|
|
# Clone and setup
|
|
git clone <repository-url>
|
|
cd Universal_AI_Agent
|
|
|
|
# Configure environment
|
|
cp .env.example .env
|
|
# Edit .env with your API keys
|
|
|
|
# Start with Docker
|
|
docker-compose up -d
|
|
|
|
# Access the application
|
|
open http://localhost:8787
|
|
```
|
|
|
|
## Local Development
|
|
|
|
### Environment Setup
|
|
|
|
1. **Install Dependencies**
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. **Configure Environment Variables**
|
|
|
|
```bash
|
|
# Copy example environment file
|
|
cp .env.example .env
|
|
|
|
# Edit .env file with your configuration
|
|
nano .env
|
|
```
|
|
|
|
3. **Required Environment Variables**
|
|
|
|
```env
|
|
# Core Configuration
|
|
PORT=8787
|
|
NODE_ENV=development
|
|
|
|
# AI Provider Keys
|
|
OPENAI_API_KEY=your_openai_key_here
|
|
ANTHROPIC_API_KEY=your_anthropic_key_here
|
|
|
|
# Azure Speech (for voice features)
|
|
AZURE_SPEECH_KEY=your_azure_speech_key
|
|
AZURE_SPEECH_REGION=your_azure_region
|
|
|
|
# Database URLs (optional)
|
|
REDIS_URL=redis://localhost:6379
|
|
POSTGRES_URL=postgres://user:password@localhost:5432/agent
|
|
|
|
# Security
|
|
AUTH_TOKEN=your_secure_bearer_token
|
|
JWT_SECRET=your_jwt_secret_key
|
|
|
|
# Rate Limiting
|
|
RATE_LIMIT_WINDOW_MS=60000
|
|
RATE_LIMIT_MAX=100
|
|
|
|
# Feature Flags
|
|
ALLOW_WEB_FETCH=true
|
|
ALLOW_GIT_INFO=true
|
|
ALLOW_FS_READ=true
|
|
ALLOW_POWERSHELL=false
|
|
LOG_JSON=true
|
|
```
|
|
|
|
4. **Start Development Server**
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
### Development Features
|
|
|
|
- **Hot Reload**: Server automatically restarts on file changes
|
|
- **Debug Mode**: Detailed logging and error traces
|
|
- **Memory Persistence**: File-based memory for development
|
|
- **Plugin Development**: Hot-reload plugins without restart
|
|
|
|
## Docker Deployment
|
|
|
|
### Single Container
|
|
|
|
```bash
|
|
# Build the image
|
|
docker build -t universal-ai-agent .
|
|
|
|
# Run with environment file
|
|
docker run -d \
|
|
--name ai-agent \
|
|
--env-file .env \
|
|
-p 8787:8787 \
|
|
-v $(pwd)/memory:/app/memory \
|
|
universal-ai-agent
|
|
```
|
|
|
|
### Full Stack with Docker Compose
|
|
|
|
```bash
|
|
# Start all services
|
|
docker-compose up -d
|
|
|
|
# View logs
|
|
docker-compose logs -f
|
|
|
|
# Scale the application
|
|
docker-compose up -d --scale app=3
|
|
|
|
# Stop all services
|
|
docker-compose down
|
|
```
|
|
|
|
### Docker Compose Configuration
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
services:
|
|
app:
|
|
build: .
|
|
ports:
|
|
- "8787:8787"
|
|
environment:
|
|
- REDIS_URL=redis://redis:6379
|
|
- POSTGRES_URL=postgres://postgres:postgres@postgres:5432/agent
|
|
depends_on:
|
|
- redis
|
|
- postgres
|
|
volumes:
|
|
- ./memory:/app/memory
|
|
- ./logs:/app/logs
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
environment:
|
|
POSTGRES_DB: agent
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
redis_data:
|
|
postgres_data:
|
|
```
|
|
|
|
## Kubernetes Production Deployment
|
|
|
|
### Prerequisites
|
|
|
|
- Kubernetes cluster (1.20+)
|
|
- kubectl configured
|
|
- Ingress controller (nginx recommended)
|
|
- cert-manager for SSL certificates
|
|
|
|
### 1. Create Namespace
|
|
|
|
```bash
|
|
kubectl create namespace ai-agent
|
|
```
|
|
|
|
### 2. Create Secrets
|
|
|
|
```bash
|
|
# AI API Keys
|
|
kubectl create secret generic ai-keys \
|
|
--from-literal=openai-key=your_openai_key \
|
|
--from-literal=anthropic-key=your_anthropic_key \
|
|
--from-literal=azure-speech-key=your_azure_key \
|
|
--from-literal=azure-speech-region=your_region \
|
|
-n ai-agent
|
|
|
|
# Database Connection
|
|
kubectl create secret generic postgres-secret \
|
|
--from-literal=connection-string=postgres://user:pass@postgres:5432/agent \
|
|
-n ai-agent
|
|
|
|
# Authentication
|
|
kubectl create secret generic auth-secret \
|
|
--from-literal=bearer-token=your_secure_token \
|
|
--from-literal=jwt-secret=your_jwt_secret \
|
|
-n ai-agent
|
|
```
|
|
|
|
### 3. Deploy Infrastructure
|
|
|
|
```bash
|
|
# Deploy Redis
|
|
kubectl apply -f k8s/redis.yaml -n ai-agent
|
|
|
|
# Deploy PostgreSQL
|
|
kubectl apply -f k8s/postgres.yaml -n ai-agent
|
|
|
|
# Wait for databases to be ready
|
|
kubectl wait --for=condition=ready pod -l app=redis -n ai-agent --timeout=300s
|
|
kubectl wait --for=condition=ready pod -l app=postgres -n ai-agent --timeout=300s
|
|
```
|
|
|
|
### 4. Deploy Application
|
|
|
|
```bash
|
|
# Deploy the main application
|
|
kubectl apply -f k8s/deployment.yaml -n ai-agent
|
|
|
|
# Check deployment status
|
|
kubectl get pods -n ai-agent
|
|
kubectl logs -f deployment/universal-ai-agent -n ai-agent
|
|
```
|
|
|
|
### 5. Configure Ingress
|
|
|
|
```bash
|
|
# Update the ingress with your domain
|
|
sed -i 's/ai-agent.yourdomain.com/your-actual-domain.com/g' k8s/deployment.yaml
|
|
|
|
# Apply ingress configuration
|
|
kubectl apply -f k8s/deployment.yaml -n ai-agent
|
|
|
|
# Check ingress status
|
|
kubectl get ingress -n ai-agent
|
|
```
|
|
|
|
### 6. Monitor Deployment
|
|
|
|
```bash
|
|
# Check all resources
|
|
kubectl get all -n ai-agent
|
|
|
|
# View application logs
|
|
kubectl logs -f deployment/universal-ai-agent -n ai-agent
|
|
|
|
# Check horizontal pod autoscaler
|
|
kubectl get hpa -n ai-agent
|
|
```
|
|
|
|
## Cloud Platform Deployment
|
|
|
|
### AWS EKS
|
|
|
|
```bash
|
|
# Create EKS cluster
|
|
eksctl create cluster --name ai-agent-cluster --region us-west-2
|
|
|
|
# Configure kubectl
|
|
aws eks update-kubeconfig --region us-west-2 --name ai-agent-cluster
|
|
|
|
# Deploy application
|
|
kubectl apply -f k8s/ -n ai-agent
|
|
```
|
|
|
|
### Google GKE
|
|
|
|
```bash
|
|
# Create GKE cluster
|
|
gcloud container clusters create ai-agent-cluster \
|
|
--zone us-central1-a \
|
|
--num-nodes 3
|
|
|
|
# Get credentials
|
|
gcloud container clusters get-credentials ai-agent-cluster --zone us-central1-a
|
|
|
|
# Deploy application
|
|
kubectl apply -f k8s/ -n ai-agent
|
|
```
|
|
|
|
### Azure AKS
|
|
|
|
```bash
|
|
# Create resource group
|
|
az group create --name ai-agent-rg --location eastus
|
|
|
|
# Create AKS cluster
|
|
az aks create \
|
|
--resource-group ai-agent-rg \
|
|
--name ai-agent-cluster \
|
|
--node-count 3 \
|
|
--enable-addons monitoring \
|
|
--generate-ssh-keys
|
|
|
|
# Get credentials
|
|
az aks get-credentials --resource-group ai-agent-rg --name ai-agent-cluster
|
|
|
|
# Deploy application
|
|
kubectl apply -f k8s/ -n ai-agent
|
|
```
|
|
|
|
### Serverless Deployment
|
|
|
|
#### Vercel
|
|
|
|
```bash
|
|
# Install Vercel CLI
|
|
npm i -g vercel
|
|
|
|
# Deploy
|
|
vercel --prod
|
|
|
|
# Configure environment variables in Vercel dashboard
|
|
```
|
|
|
|
#### Netlify
|
|
|
|
```bash
|
|
# Install Netlify CLI
|
|
npm i -g netlify-cli
|
|
|
|
# Deploy
|
|
netlify deploy --prod --dir=.
|
|
|
|
# Configure environment variables in Netlify dashboard
|
|
```
|
|
|
|
## Mobile App Setup
|
|
|
|
### React Native Setup
|
|
|
|
1. **Prerequisites**
|
|
|
|
```bash
|
|
# Install React Native CLI
|
|
npm install -g react-native-cli
|
|
|
|
# For iOS development (macOS only)
|
|
sudo gem install cocoapods
|
|
|
|
# For Android development
|
|
# Install Android Studio and configure SDK
|
|
```
|
|
|
|
2. **Initialize Project**
|
|
|
|
```bash
|
|
# Create new React Native project
|
|
npx react-native init UniversalAIAgent
|
|
cd UniversalAIAgent
|
|
|
|
# Copy the mobile app code
|
|
cp ../mobile/react-native-app.js App.js
|
|
|
|
# Install dependencies
|
|
npm install @react-native-async-storage/async-storage
|
|
npm install @react-native-netinfo/netinfo
|
|
npm install @react-native-voice/voice
|
|
npm install expo-av
|
|
```
|
|
|
|
3. **Configure API Endpoints**
|
|
|
|
```javascript
|
|
// Update API_BASE_URL in App.js
|
|
const API_BASE_URL = 'https://your-deployed-domain.com';
|
|
const WS_URL = 'wss://your-deployed-domain.com';
|
|
```
|
|
|
|
4. **Build and Run**
|
|
|
|
```bash
|
|
# For iOS
|
|
npx react-native run-ios
|
|
|
|
# For Android
|
|
npx react-native run-android
|
|
```
|
|
|
|
### Flutter Alternative
|
|
|
|
```bash
|
|
# Create Flutter project
|
|
flutter create universal_ai_agent
|
|
cd universal_ai_agent
|
|
|
|
# Add dependencies to pubspec.yaml
|
|
flutter pub add http
|
|
flutter pub add web_socket_channel
|
|
flutter pub add shared_preferences
|
|
flutter pub add speech_to_text
|
|
|
|
# Run the app
|
|
flutter run
|
|
```
|
|
|
|
## Monitoring and Analytics
|
|
|
|
### Built-in Analytics Dashboard
|
|
|
|
Access the analytics dashboard at: `https://your-domain.com/analytics`
|
|
|
|
Features:
|
|
|
|
- Real-time metrics
|
|
- Performance monitoring
|
|
- User analytics
|
|
- Cost tracking
|
|
- System health
|
|
|
|
### External Monitoring
|
|
|
|
#### Prometheus + Grafana
|
|
|
|
```bash
|
|
# Deploy monitoring stack
|
|
kubectl apply -f monitoring/prometheus.yaml
|
|
kubectl apply -f monitoring/grafana.yaml
|
|
|
|
# Access Grafana dashboard
|
|
kubectl port-forward svc/grafana 3000:3000
|
|
```
|
|
|
|
#### DataDog Integration
|
|
|
|
```javascript
|
|
// Add to server.js
|
|
import { StatsD } from 'node-statsd';
|
|
const statsd = new StatsD();
|
|
|
|
// Track metrics
|
|
statsd.increment('requests.total');
|
|
statsd.timing('response.time', responseTime);
|
|
```
|
|
|
|
## Security Configuration
|
|
|
|
### SSL/TLS Setup
|
|
|
|
#### Let's Encrypt with cert-manager
|
|
|
|
```bash
|
|
# Install cert-manager
|
|
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml
|
|
|
|
# Create ClusterIssuer
|
|
kubectl apply -f k8s/cert-issuer.yaml
|
|
```
|
|
|
|
### Authentication Options
|
|
|
|
#### JWT Authentication
|
|
|
|
```env
|
|
AUTH_TOKEN=your_bearer_token
|
|
JWT_SECRET=your_jwt_secret_256_bit
|
|
```
|
|
|
|
#### OAuth Integration
|
|
|
|
```env
|
|
GOOGLE_CLIENT_ID=your_google_client_id
|
|
GOOGLE_CLIENT_SECRET=your_google_client_secret
|
|
GITHUB_CLIENT_ID=your_github_client_id
|
|
GITHUB_CLIENT_SECRET=your_github_client_secret
|
|
```
|
|
|
|
### Security Best Practices
|
|
|
|
1. **Environment Variables**: Never commit secrets to version control
|
|
2. **Rate Limiting**: Configure appropriate limits for your use case
|
|
3. **CORS**: Configure CORS for your domain
|
|
4. **Input Validation**: Enable strict input validation
|
|
5. **Monitoring**: Set up security monitoring and alerts
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
#### 1. Application Won't Start
|
|
|
|
```bash
|
|
# Check logs
|
|
docker-compose logs app
|
|
|
|
# Common causes:
|
|
# - Missing environment variables
|
|
# - Database connection issues
|
|
# - Port conflicts
|
|
```
|
|
|
|
#### 2. Database Connection Errors
|
|
|
|
```bash
|
|
# Test Redis connection
|
|
redis-cli -h localhost -p 6379 ping
|
|
|
|
# Test PostgreSQL connection
|
|
psql -h localhost -p 5432 -U postgres -d agent
|
|
```
|
|
|
|
#### 3. High Memory Usage
|
|
|
|
```bash
|
|
# Monitor memory usage
|
|
docker stats
|
|
|
|
# Restart if needed
|
|
docker-compose restart app
|
|
```
|
|
|
|
#### 4. SSL Certificate Issues
|
|
|
|
```bash
|
|
# Check certificate status
|
|
kubectl describe certificate ai-agent-tls -n ai-agent
|
|
|
|
# Force certificate renewal
|
|
kubectl delete certificate ai-agent-tls -n ai-agent
|
|
kubectl apply -f k8s/deployment.yaml -n ai-agent
|
|
```
|
|
|
|
### Performance Optimization
|
|
|
|
#### 1. Database Optimization
|
|
|
|
```sql
|
|
-- Create indexes for better performance
|
|
CREATE INDEX idx_conversations_user_id ON conversations(user_id);
|
|
CREATE INDEX idx_conversations_timestamp ON conversations(timestamp);
|
|
CREATE INDEX idx_vector_embeddings ON documents USING ivfflat (embedding vector_cosine_ops);
|
|
```
|
|
|
|
#### 2. Caching Strategy
|
|
|
|
```javascript
|
|
// Configure Redis caching
|
|
const cacheConfig = {
|
|
conversations: 3600, // 1 hour
|
|
embeddings: 86400, // 24 hours
|
|
responses: 1800 // 30 minutes
|
|
};
|
|
```
|
|
|
|
#### 3. Load Balancing
|
|
|
|
```yaml
|
|
# Update deployment for multiple replicas
|
|
spec:
|
|
replicas: 5
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate:
|
|
maxSurge: 2
|
|
maxUnavailable: 1
|
|
```
|
|
|
|
### Health Checks
|
|
|
|
#### Application Health
|
|
|
|
```bash
|
|
# Health check endpoint
|
|
curl https://your-domain.com/health
|
|
|
|
# Expected response:
|
|
{
|
|
"status": "healthy",
|
|
"uptime": 3600,
|
|
"memory": "512MB",
|
|
"connections": {
|
|
"redis": "connected",
|
|
"postgres": "connected"
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Kubernetes Health
|
|
|
|
```bash
|
|
# Check pod health
|
|
kubectl get pods -n ai-agent
|
|
|
|
# Check service endpoints
|
|
kubectl get endpoints -n ai-agent
|
|
|
|
# Check ingress status
|
|
kubectl describe ingress ai-agent-ingress -n ai-agent
|
|
```
|
|
|
|
## Support and Maintenance
|
|
|
|
### Backup Strategy
|
|
|
|
```bash
|
|
# Database backups
|
|
kubectl exec -it postgres-pod -- pg_dump -U postgres agent > backup.sql
|
|
|
|
# Redis backup
|
|
kubectl exec -it redis-pod -- redis-cli BGSAVE
|
|
```
|
|
|
|
### Updates and Upgrades
|
|
|
|
```bash
|
|
# Update application
|
|
docker build -t universal-ai-agent:v2.0.0 .
|
|
kubectl set image deployment/universal-ai-agent ai-agent=universal-ai-agent:v2.0.0 -n ai-agent
|
|
|
|
# Monitor rollout
|
|
kubectl rollout status deployment/universal-ai-agent -n ai-agent
|
|
```
|
|
|
|
### Scaling Guidelines
|
|
|
|
- **CPU**: Scale up when CPU usage > 70%
|
|
- **Memory**: Scale up when memory usage > 80%
|
|
- **Response Time**: Scale up when avg response time > 2 seconds
|
|
- **Queue Length**: Scale up when request queue > 100
|
|
|
|
For additional support, please refer to the [API Documentation](API_REFERENCE.md) and [Plugin Development Guide](PLUGIN_DEVELOPMENT.md).
|