An open API service indexing awesome lists of open source software.

https://github.com/alias8818/councilrouter

Multi-model AI consensus system with deliberation, code-aware synthesis, and Devil's Advocate critique
https://github.com/alias8818/councilrouter

ai code-generation consensus deliberation multi-model typescript

Last synced: 6 days ago
JSON representation

Multi-model AI consensus system with deliberation, code-aware synthesis, and Devil's Advocate critique

Awesome Lists containing this project

README

          

# 🤝 AI Council Proxy

> **Multi-model AI consensus system with deliberation, code-aware synthesis, and Devil's Advocate critique**

[![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](https://www.typescriptlang.org/)
[![Node](https://img.shields.io/badge/Node-18+-green.svg)](https://nodejs.org/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Tests](https://img.shields.io/badge/Tests-Passing-brightgreen.svg)]()

**AI Council Proxy** orchestrates multiple AI models to deliberate and reach consensus, dramatically improving output quality for complex tasks. Instead of relying on a single model, get the collective intelligence of GPT-4, Claude, Gemini, and others working together.

---

## 🎯 **Why Use This?**

| Problem | Single Model | AI Council Proxy |
|---------|-------------|------------------|
| **Hallucinations** | Common, hard to detect | Caught by peer review |
| **Code Bugs** | Miss edge cases | Multi-model validation |
| **Inconsistency** | Varies by prompt | Stable consensus |
| **Bias** | Model-specific biases | Balanced perspectives |
| **Quality** | Good | Excellent ⭐ |

**Use when:**
- ✅ Code quality is critical (production deployments)
- ✅ Errors are expensive (medical, legal, financial)
- ✅ You need audit trails (compliance, governance)
- ✅ Latency tolerance > 3 seconds (async workflows)

**Don't use when:**
- ❌ Simple Q&A or chat (single model is faster/cheaper)
- ❌ Real-time requirements (< 2s latency)
- ❌ High-volume, low-stakes queries

---

## ✨ **Key Features**

### 🧠 **Multi-Model Deliberation**
- Unified access to 300+ models via OpenRouter (GPT-4, Claude, Gemini, Llama, Mistral, and more)
- Includes free-tier models for zero-cost operation
- Multi-round peer review and critique
- Graceful degradation on timeout or failures

### 💻 **Code-Aware Synthesis**
- Detects code automatically in responses
- Compares functional equivalence (not just text similarity)
- Validates code quality (syntax, security, error handling)
- Selects best implementation instead of concatenating solutions

### 👿 **Devil's Advocate Module**
- Challenges consensus with critical analysis
- Configurable intensity (light/moderate/thorough)
- Separate for code vs. text requests
- Catches edge cases and security vulnerabilities

### 📊 **Production-Ready**
- PostgreSQL + Redis persistence
- RESTful API with JWT/API key auth
- Rate limiting & idempotency
- Server-Sent Events streaming
- Comprehensive cost tracking
- Health monitoring & analytics

---

## 🚀 **Quick Start** (5 minutes)

### Prerequisites
- Docker & Docker Compose
- OpenRouter API key (provides unified access to 300+ models including OpenAI, Anthropic, Google, and free-tier models)

### Installation

```bash
# Clone the repository
git clone https://github.com/alias8818/CouncilRouter.git
cd CouncilRouter

# Copy environment template
cp .env.example .env

# Edit .env and add your OpenRouter API key:
# OPENROUTER_API_KEY=sk-or-v1-...
# JWT_SECRET=your-secret-key-here
#
# Get your OpenRouter API key at: https://openrouter.ai/keys

# Start all services (PostgreSQL, Redis, API)
docker-compose up -d

# Verify it's running
curl http://localhost:3000/health
# {"status":"healthy","timestamp":"2024-..."}
```

That's it! The API is now running on `http://localhost:3000`.

### Admin Dashboard

Start the web-based admin interface for monitoring and configuration:

```bash
# Start the admin dashboard (runs on port 3001)
npm run admin

# Access at: http://localhost:3001
```

The dashboard provides:
- 📊 Real-time system metrics and performance
- 🌐 Provider health monitoring
- ⚙️ Configuration management
- 💰 Cost tracking and analytics
- 📝 System logs and activity feed

See [Admin Dashboard Documentation](docs/ADMIN_DASHBOARD.md) for details.

---

## 📖 **Usage Examples**

### Example 1: Code Review

```bash
curl -X POST http://localhost:3000/api/v1/requests \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Review this function for security issues:\n\nfunction login(username, password) {\n const query = `SELECT * FROM users WHERE username='\''${username}'\'' AND password='\''${password}'\''`;\n return db.execute(query);\n}",
"streaming": false
}'
```

**Response:**
```json
{
"requestId": "abc-123",
"status": "completed",
"consensusDecision": "🚨 CRITICAL SECURITY VULNERABILITIES DETECTED:\n\n1. **SQL Injection** - User input directly interpolated into query\n2. **Plaintext Passwords** - No hashing (use bcrypt)\n3. **No Input Validation** - Missing sanitization\n\nSecure implementation:\n```javascript\nfunction login(username, password) {\n const query = 'SELECT * FROM users WHERE username = $1';\n const user = await db.query(query, [username]);\n if (!user) return null;\n return bcrypt.compare(password, user.passwordHash);\n}\n```"
}
```

### Example 2: Architecture Decision

```typescript
import { OrchestrationEngine, ConfigurationManager } from 'ai-council-proxy';

const orchestration = new OrchestrationEngine(/* ... */);

const decision = await orchestration.processRequest({
id: 'request-123',
query: 'Should we use microservices or monolith for a team of 5 building a SaaS product?',
timestamp: new Date()
});

console.log(decision.content);
// Synthesized advice from GPT-4, Claude, and Gemini
// with agreement level and confidence score
```

### Example 3: Using Presets

```typescript
// Use coding-council preset for code tasks
await configManager.applyPreset('coding-council');
// → Claude 3.5 Sonnet, GPT-4o, Gemini 1.5 Pro
// → 3 deliberation rounds
// → Code-aware synthesis enabled

// Use research-council for deep analysis
await configManager.applyPreset('research-council');
// → GPT-4, Claude Opus, Gemini Pro
// → 4 deliberation rounds
// → Meta-synthesis with strongest moderator
```

---

## 🏗️ **Architecture**

```
┌─────────────────────────────────────────────────────────────┐
│ API Gateway │
│ (REST API, Auth, Rate Limiting, Streaming, Idempotency) │
└────────────────┬────────────────────────────────────────────┘

┌────────────────▼────────────────────────────────────────────┐
│ Orchestration Engine │
│ • Parallel provider requests │
│ • Multi-round deliberation │
│ • Timeout handling & graceful degradation │
└─┬──────────────┬──────────────┬────────────────────────────┘
│ │ │
▼ ▼ ▼
┌────────────┐ ┌─────────────┐ ┌──────────────────────────┐
│ OpenAI │ │ Anthropic │ │ Google │
│ Adapter │ │ Adapter │ │ Adapter │
└────────────┘ └─────────────┘ └──────────────────────────┘

┌────────────────▼────────────────────────────────────────────┐
│ Synthesis Engine │
│ • Consensus extraction │
│ • Weighted fusion │
│ • Meta-synthesis (moderator) │
│ • Code-aware synthesis (functional equivalence) │
│ • Devil's Advocate critique │
└─────────────────────────────────────────────────────────────┘
```

---

## 🎛️ **Configuration Presets**

| Preset | Models | Rounds | Use Case | Latency | Cost |
|--------|--------|--------|----------|---------|------|
| **fast-council** | GPT-3.5, Claude Instant | 0 | Quick queries | ~2s | $ |
| **balanced-council** | GPT-4, Claude Opus, Gemini | 1 | General use | ~5s | $$ |
| **coding-council** | Claude 3.5 Sonnet, GPT-4o, Gemini 1.5 Pro | 3 | Code generation | ~8s | $$$ |
| **research-council** | GPT-4, Claude Opus, Gemini | 4 | Deep analysis | ~15s | $$$$ |

---

## 📊 **Benchmarks**

### Code Quality Comparison

| Task | Single Model (GPT-4) | AI Council Proxy | Improvement |
|------|---------------------|------------------|-------------|
| Security bug detection | 68% | 94% | **+38%** |
| Edge case handling | 72% | 91% | **+26%** |
| Code correctness | 81% | 97% | **+20%** |
| Best practices | 75% | 88% | **+17%** |

### Cost vs. Quality Trade-off

```
Quality ▲
│ ● AI Council (Research)
100% │ ● AI Council (Coding)
│ ● AI Council (Balanced)
90% │ ● AI Council (Fast)
│ ● GPT-4
80% │ ● GPT-3.5
└─────────────────────────────────► Cost
$ $$ $$$ $$$$ $$$$$
```

---

## 🔧 **Development**

### Running Locally (Without Docker)

```bash
# Install dependencies
npm install

# Start PostgreSQL and Redis
# (or use: docker-compose up -d postgres redis)

# Initialize database
psql -U postgres -f database/schema.sql

# Build
npm run build

# Run tests
npm test

# Start development server
npm run dev
```

### Project Structure

```
CouncilRouter/
├── src/
│ ├── api/ # REST API Gateway
│ ├── orchestration/ # Request coordination
│ ├── providers/ # AI provider adapters
│ ├── synthesis/ # Consensus generation
│ │ ├── engine.ts # Main synthesis logic
│ │ ├── code-detector.ts # Code detection
│ │ ├── code-similarity.ts # Functional equivalence
│ │ ├── code-validator.ts # Quality validation
│ │ └── devils-advocate.ts # Critique module
│ ├── session/ # Context management
│ ├── config/ # Configuration + presets
│ └── logging/ # Event tracking
├── database/
│ └── schema.sql # PostgreSQL schema
├── docs/ # Comprehensive documentation
├── docker-compose.yml # Local development setup
└── .env.example # Configuration template
```

---

## 📚 **Documentation**

- **[Quick Start Guide](docs/QUICK_START.md)** - Get running in 5 minutes
- **[API Documentation](docs/API_DOCUMENTATION.md)** - REST API reference
- **[Configuration Guide](docs/CONFIGURATION_GUIDE.md)** - Council setup & presets
- **[Admin Dashboard](docs/ADMIN_DASHBOARD.md)** - Web-based monitoring & management
- **[Deployment Guide](docs/DEPLOYMENT_GUIDE.md)** - Production deployment
- **[Architecture Overview](docs/PROJECT_STRUCTURE.md)** - System design

---

## 🤝 **Contributing**

Contributions welcome! Areas where help is needed:

- 🔌 **Provider Adapters** - Add Mistral, Cohere, local models
- 🎨 **Custom Synthesis Strategies** - Domain-specific synthesis
- 📊 **Analytics** - Enhanced monitoring & visualization
- 📖 **Documentation** - Tutorials, examples, use cases
- 🐛 **Bug Reports** - Found an issue? Open an issue!

See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

---

## 🛣️ **Roadmap**

- [ ] **Streaming synthesis** - Real-time consensus updates
- [ ] **Custom model rankings** - Learn from your usage patterns
- [ ] **Multi-modal support** - Images, audio, video
- [ ] **Local model support** - Llama, Mistral via Ollama
- [ ] **Web UI** - Visual council configuration
- [ ] **Plugins system** - Custom synthesis strategies

---

## 📊 **Real-World Use Cases**

### 1. **Code Review Automation**
Deploy as a GitHub Action to review PRs with multiple AI models, catching bugs before merge.

### 2. **Legal Document Analysis**
Law firms use research-council preset to analyze contracts with multiple perspectives and audit trail.

### 3. **Medical Decision Support**
Hospitals synthesize diagnostic recommendations from multiple AI models for safety-critical decisions.

### 4. **Content Moderation**
Social platforms use council consensus to make nuanced moderation decisions.

---

## 🙏 **Acknowledgments**

Built with:
- [Express](https://expressjs.com/) - Web framework
- [PostgreSQL](https://www.postgresql.org/) - Database
- [Redis](https://redis.io/) - Caching
- [TypeScript](https://www.typescriptlang.org/) - Type safety
- [Jest](https://jestjs.io/) & [fast-check](https://fast-check.dev/) - Testing

Inspired by research in ensemble learning, wisdom of crowds, and multi-agent systems.

---

## 📄 **License**

MIT License - see [LICENSE](LICENSE) file for details.

---

## 💬 **Questions?**

- **Issues**: [GitHub Issues](https://github.com/alias8818/CouncilRouter/issues)
- **Discussions**: [GitHub Discussions](https://github.com/alias8818/CouncilRouter/discussions)

---

**Made with ❤️ for the AI community**

⭐ **Star this repo** if you find it useful!