AI Orchestrator Service

November 25, 2025 ยท View on GitHub

Constitutional AI Coordination Hub - Orchestrates AI model execution with ethical guardrails

Status Port Tests

Overview

The AI Orchestrator is the central coordination service for all AI operations in the Azora ecosystem. It manages AI model registration, task orchestration, performance monitoring, and constitutional AI compliance.

Key Features

  • Multi-Model Orchestration: Coordinate multiple AI models for complex tasks
  • Constitutional AI Integration: Built-in ethical guardrails and self-critique
  • Performance Monitoring: Real-time tracking of model performance metrics
  • Dynamic Model Registration: Register and manage AI models at runtime
  • Task Queue Management: Asynchronous task processing with status tracking

Architecture

graph TB
    Client[Client Applications] --> Gateway[API Gateway]
    Gateway --> Orchestrator[AI Orchestrator]
    Orchestrator --> Models[AI Models]
    Orchestrator --> Constitutional[Constitutional AI]
    Orchestrator --> Performance[Performance Monitor]
    Orchestrator --> DB[(Database)]
    
    Models --> Model1[Language Model]
    Models --> Model2[Vision Model]
    Models --> Model3[Code Model]

API Endpoints

Model Management

GET /api/models

List all registered AI models.

Response:

{
  "success": true,
  "data": [
    {
      "id": "model-1",
      "name": "Constitutional AI Assistant",
      "type": "language",
      "version": "1.0.0",
      "status": "active",
      "capabilities": ["text_generation", "question_answering", "ethical_reasoning"]
    }
  ],
  "count": 1
}

GET /api/models/:modelId

Get details of a specific AI model.

Parameters:

  • modelId (string): Unique model identifier

Response:

{
  "success": true,
  "data": {
    "id": "model-1",
    "name": "Constitutional AI Assistant",
    "type": "language",
    "version": "1.0.0",
    "status": "active",
    "capabilities": ["text_generation", "question_answering", "ethical_reasoning"],
    "metadata": {
      "provider": "azora",
      "endpoint": "https://ai.azora.world/v1"
    }
  }
}

POST /api/models

Register a new AI model.

Request Body:

{
  "name": "New AI Model",
  "type": "language",
  "version": "1.0.0",
  "capabilities": ["text_generation"],
  "metadata": {
    "provider": "azora",
    "endpoint": "https://ai.azora.world/v1"
  }
}

Response:

{
  "success": true,
  "data": {
    "id": "model-xyz",
    "name": "New AI Model",
    "status": "active",
    "createdAt": "2025-11-25T18:00:00.000Z"
  }
}

PUT /api/models/:modelId

Update model status.

Request Body:

{
  "status": "inactive"
}

Task Orchestration

POST /api/orchestrate

Orchestrate an AI task across multiple models.

Request Body:

{
  "taskId": "task-123",
  "models": ["model-1", "model-2"],
  "inputData": {
    "prompt": "Analyze this code for security issues",
    "code": "function example() { ... }"
  }
}

Response:

{
  "success": true,
  "data": {
    "id": "orch-abc-123",
    "status": "pending",
    "message": "Orchestration started"
  }
}

GET /api/orchestrate/:orchestrationId

Get orchestration status and results.

Response:

{
  "success": true,
  "data": {
    "id": "orch-abc-123",
    "taskId": "task-123",
    "models": ["model-1", "model-2"],
    "status": "completed",
    "result": {
      "taskId": "task-123",
      "output": "Analysis complete",
      "confidence": 0.95
    },
    "createdAt": "2025-11-25T18:00:00.000Z",
    "updatedAt": "2025-11-25T18:00:05.000Z"
  }
}

Constitutional AI

POST /api/constitutional/critique

Submit an AI action for constitutional critique.

Request Body:

{
  "action": "generate_code",
  "context": {
    "prompt": "Create a user authentication system",
    "output": "Generated code..."
  }
}

Response:

{
  "success": true,
  "data": {
    "id": "critique-xyz",
    "verdict": "approved",
    "score": 0.92,
    "violations": [],
    "recommendations": ["Consider adding rate limiting"],
    "timestamp": "2025-11-25T18:00:00.000Z"
  }
}

Performance Monitoring

GET /api/performance

Get aggregated performance metrics for all models.

Response:

{
  "success": true,
  "data": [
    {
      "modelId": "model-1",
      "totalRequests": 1500,
      "avgLatency": 245,
      "successRate": 0.98,
      "lastUpdated": "2025-11-25T18:00:00.000Z"
    }
  ]
}

Health Check

GET /health

Service health check endpoint.

Response:

{
  "status": "healthy",
  "service": "ai-orchestrator",
  "version": "1.0.0",
  "uptime": 3600,
  "timestamp": "2025-11-25T18:00:00.000Z"
}

Configuration

Environment Variables

VariableDescriptionDefaultRequired
PORTService port3014No
NODE_ENVEnvironmentdevelopmentNo
DATABASE_URLPostgreSQL connection string-Yes
JWT_SECRETJWT signing secret-Yes
LOG_LEVELLogging levelinfoNo
CONSTITUTIONAL_AI_ENDPOINTConstitutional AI service URL-Yes

Example .env File

PORT=3014
NODE_ENV=production
DATABASE_URL=postgresql://user:password@localhost:5432/azora
JWT_SECRET=your-secret-key-here
LOG_LEVEL=info
CONSTITUTIONAL_AI_ENDPOINT=http://localhost:3015

Database Schema

The service uses Prisma ORM with PostgreSQL. Key models:

model AIModel {
  id           String   @id @default(uuid())
  name         String
  type         String
  version      String
  status       String
  capabilities String[]
  metadata     Json?
  createdAt    DateTime @default(now())
  updatedAt    DateTime @updatedAt
}

model Orchestration {
  id        String   @id @default(uuid())
  taskId    String
  models    String[]
  status    String
  result    Json?
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

Dependencies

Core Services

  • azora-auth: Authentication and authorization
  • constitutional-ai: Ethical AI guardrails
  • azora-api-gateway: API routing and rate limiting

External Dependencies

  • PostgreSQL 14+
  • Node.js 20+
  • Redis (for caching)

Development

Local Setup

# Install dependencies
npm install

# Generate Prisma client
npm run prisma:generate

# Run database migrations
npm run prisma:migrate

# Start development server
npm run dev

Running Tests

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run with coverage
npm run test:coverage

Testing

Unit Tests

  • Model registration logic
  • Orchestration algorithms
  • Performance metric calculations

Integration Tests

  • API endpoint validation
  • Database operations
  • Inter-service communication

Test Coverage

  • Lines: 85%
  • Functions: 90%
  • Branches: 80%

Deployment

Docker

# Build image
docker build -t azora/ai-orchestrator:latest .

# Run container
docker run -p 3014:3014 \
  -e DATABASE_URL=postgresql://... \
  -e JWT_SECRET=... \
  azora/ai-orchestrator:latest

Docker Compose

services:
  ai-orchestrator:
    build: .
    ports:
      - "3014:3014"
    environment:
      - DATABASE_URL=${DATABASE_URL}
      - JWT_SECRET=${JWT_SECRET}
    depends_on:
      - postgres

Monitoring

Health Checks

  • Endpoint: GET /health
  • Interval: 30 seconds
  • Timeout: 5 seconds

Metrics

  • Request count and latency
  • Model performance statistics
  • Error rates and types
  • Constitutional AI compliance scores

Logging

Uses Winston for structured logging:

  • info: General operational messages
  • warn: Non-critical issues
  • error: Critical failures requiring attention

Troubleshooting

Common Issues

Service won't start

  • Check DATABASE_URL is valid
  • Ensure PostgreSQL is running
  • Verify all required environment variables are set

High latency

  • Check model endpoint availability
  • Review database query performance
  • Monitor Redis cache hit rate

Constitutional AI failures

  • Verify constitutional-ai service is running
  • Check network connectivity
  • Review critique request payload

Contributing

See CONTRIBUTING.md for development guidelines.

License

Proprietary - Azora ES (Pty) Ltd


Ubuntu Philosophy: "My intelligence enables our collective wisdom"