mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2025-09-15 04:17:22 +00:00
13 KiB
13 KiB
Universal AI Agent - Complete Deployment Guide
Table of Contents
- Quick Start
- Local Development
- Docker Deployment
- Kubernetes Production Deployment
- Cloud Platform Deployment
- Mobile App Setup
- Monitoring and Analytics
- Security Configuration
- Troubleshooting
Quick Start
Prerequisites
- Node.js 18+
- Docker and Docker Compose
- Redis (optional, for caching)
- PostgreSQL (optional, for persistence)
1-Minute Setup
# 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
-
Install Dependencies
npm install
-
Configure Environment Variables
# Copy example environment file cp .env.example .env # Edit .env file with your configuration nano .env
-
Required Environment Variables
# 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
-
Start Development Server
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
# 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
# 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
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
kubectl create namespace ai-agent
2. Create Secrets
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prod
# Configure environment variables in Vercel dashboard
Netlify
# 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
-
Prerequisites
# 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
-
Initialize Project
# 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
-
Configure API Endpoints
// Update API_BASE_URL in App.js const API_BASE_URL = 'https://your-deployed-domain.com'; const WS_URL = 'wss://your-deployed-domain.com';
-
Build and Run
# For iOS npx react-native run-ios # For Android npx react-native run-android
Flutter Alternative
# 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
# 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
// 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
# 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
AUTH_TOKEN=your_bearer_token
JWT_SECRET=your_jwt_secret_256_bit
OAuth Integration
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
- Environment Variables: Never commit secrets to version control
- Rate Limiting: Configure appropriate limits for your use case
- CORS: Configure CORS for your domain
- Input Validation: Enable strict input validation
- Monitoring: Set up security monitoring and alerts
Troubleshooting
Common Issues
1. Application Won't Start
# Check logs
docker-compose logs app
# Common causes:
# - Missing environment variables
# - Database connection issues
# - Port conflicts
2. Database Connection Errors
# 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
# Monitor memory usage
docker stats
# Restart if needed
docker-compose restart app
4. SSL Certificate Issues
# 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
-- 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
// Configure Redis caching
const cacheConfig = {
conversations: 3600, // 1 hour
embeddings: 86400, // 24 hours
responses: 1800 // 30 minutes
};
3. Load Balancing
# Update deployment for multiple replicas
spec:
replicas: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 2
maxUnavailable: 1
Health Checks
Application Health
# Health check endpoint
curl https://your-domain.com/health
# Expected response:
{
"status": "healthy",
"uptime": 3600,
"memory": "512MB",
"connections": {
"redis": "connected",
"postgres": "connected"
}
}
Kubernetes Health
# 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
# 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
# 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 and Plugin Development Guide.