Skip to content

nik-kale/ADAPT-Agents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ADAPT-Agents: Enterprise-Grade AI-Powered RCA Platform

Python 3.8+ License: MIT Tests Coverage Version

Production-ready AI agents for automated incident analysis, root cause detection, and intelligent remediation.

ADAPT-Agents is an open-source alternative to DataDog, Grafana, and PagerDuty's RCA capabilities, offering real-time streaming, RAG-powered learning, enterprise integrations, and interactive visualizationsโ€”all at zero cost.


๐Ÿš€ What's New in v3.5

Enterprise features that rival commercial observability platforms:

โœจ Core Capabilities

  • โšก Async/Await Architecture - 3-5x faster parallel execution
  • ๐Ÿง  RAG & Historical Learning - Learn from every incident with ChromaDB + sentence-transformers
  • ๐Ÿ”„ Real-Time Streaming - WebSocket-based live updates during analysis
  • ๐Ÿ”— Enterprise Integrations - Native Slack, JIRA, PagerDuty connectors
  • ๐Ÿ“Š Interactive Visualizations - Root cause graphs, timelines, metrics dashboards
  • ๐ŸŽฏ Intelligent Agents - 6 specialized AI agents with LLM integration

๐Ÿข Enterprise Features

  • ๐Ÿ“ก Webhook Management - Event-driven callbacks with delivery tracking
  • ๐Ÿ—„๏ธ Vector Database - Semantic search for similar historical incidents
  • ๐Ÿ” API Authentication - API key auth + rate limiting + request tracking
  • ๐Ÿ’พ Persistent Storage - SQLite backend for analyses, webhooks, integrations
  • ๐ŸŽจ Multi-Format Export - Cytoscape.js, D3.js, Plotly, Chart.js, GraphML, DOT

๐Ÿ“ˆ Competitive Positioning

Feature DataDog Grafana PagerDuty ADAPT-Agents
Real-Time Streaming โœ“ โœ“ โœ“ โœ…
RAG/AI Learning โŒ โŒ โŒ โœ…
Slack/JIRA/PagerDuty โœ“ โœ“ Native โœ…
Interactive Viz โœ“ โœ“ โœ“ โœ…
Open Source โŒ โœ“ โŒ โœ…
Monthly Cost $15-31/host Free $21-51/user $0

Result: Enterprise-grade RCA platform at zero cost, with unique AI learning capabilities.


๐Ÿ“ฆ Installation

Quick Start (Docker)

# Clone repository
git clone https://github.com/yourusername/ADAPT-Agents.git
cd ADAPT-Agents

# Start complete stack (API + Redis + Prometheus + Grafana)
docker-compose up -d

# Access:
# - API & Docs: http://localhost:8000/docs
# - Metrics: http://localhost:9090
# - Grafana: http://localhost:3000

Python Installation

# Install all features
pip install -r requirements.txt

# Or install selectively
pip install fastapi uvicorn httpx websockets  # Core API
pip install chromadb sentence-transformers    # RAG features
pip install networkx                           # Visualizations
pip install openai anthropic                   # LLM providers

Configuration

# Create .env file
cp .env.example .env

# Configure LLM provider (required for AI features)
echo "ADAPT_LLM_PROVIDER=openai" >> .env
echo "ADAPT_LLM_API_KEY=sk-..." >> .env

๐ŸŽฏ Quick Start Examples

1๏ธโƒฃ Run Complete RCA Analysis

# Analyze incident using CLI
python -m cli.main analyze examples/incident_data.json

# Output: Root cause + remediation plan in seconds

2๏ธโƒฃ Start API Server

# Start FastAPI server
uvicorn api.server:app --reload

# Access interactive docs at http://localhost:8000/docs

3๏ธโƒฃ Analyze Incident via API

# Create analysis (returns immediately with job ID)
curl -X POST http://localhost:8000/analyze \
  -H "X-API-Key: demo-key-12345" \
  -H "Content-Type: application/json" \
  -d @examples/incident_data.json

# Get results
curl http://localhost:8000/analyze/{analysis_id} \
  -H "X-API-Key: demo-key-12345"

4๏ธโƒฃ Real-Time Streaming (WebSocket)

// Connect to WebSocket for live updates
const ws = new WebSocket('ws://localhost:8000/ws/analysis/{analysis_id}');

ws.onmessage = (event) => {
  const update = JSON.parse(event.data);
  console.log(`[${update.agent_name}] ${update.status}: ${update.message}`);
};

5๏ธโƒฃ Enterprise Integrations

# Configure Slack integration
curl -X POST http://localhost:8000/api/v1/integrations/slack \
  -H "X-API-Key: demo-key-12345" \
  -d '{"webhook_url": "https://hooks.slack.com/services/..."}'

# Send incident alert to Slack
curl -X POST http://localhost:8000/api/v1/integrations/notify/incident \
  -H "X-API-Key: demo-key-12345" \
  -d '{
    "incident_id": "inc-123",
    "incident_data": {...},
    "slack_channel": "#incidents",
    "create_jira": true,
    "trigger_pagerduty": true
  }'

6๏ธโƒฃ Interactive Visualizations

# Generate root cause dependency graph
curl -X POST http://localhost:8000/api/v1/visualizations/root-cause-graph \
  -H "X-API-Key: demo-key-12345" \
  -d '{"rca_results": {...}, "format": "cytoscape"}'

# Generate complete dashboard (all visualizations)
curl -X POST http://localhost:8000/api/v1/visualizations/complete-dashboard \
  -H "X-API-Key: demo-key-12345" \
  -d '{"incident_data": {...}, "rca_results": {...}}'

7๏ธโƒฃ RAG-Powered Similarity Search

# Store incident in knowledge base (automatic after each analysis)
# Search for similar past incidents
curl -X POST http://localhost:8000/api/v1/knowledge-base/search/similar-incidents \
  -H "X-API-Key: demo-key-12345" \
  -d '{
    "incident_data": {...},
    "n_results": 5,
    "similarity_threshold": 0.7
  }'

# Get insights about recurring patterns
curl http://localhost:8000/api/v1/knowledge-base/incidents/{id}/insights \
  -H "X-API-Key: demo-key-12345"

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     ADAPT-Agents v3.5 Platform                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚  โ”‚  WebSockets  โ”‚  โ”‚   Webhooks   โ”‚  โ”‚  REST API    โ”‚         โ”‚
โ”‚  โ”‚  (Real-Time) โ”‚  โ”‚  (Callbacks) โ”‚  โ”‚  (FastAPI)   โ”‚         โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ”‚         โ”‚                 โ”‚                  โ”‚                  โ”‚
โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚                           โ”‚                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚         Integration Layer                        โ”‚           โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  Slack  โ”‚  โ”‚  JIRA   โ”‚  โ”‚  PagerDuty   โ”‚   โ”‚           โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ”‚                           โ”‚                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚      Streaming Agent Orchestrator                โ”‚           โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  Phase 1: Parallel Diagnostic Agents      โ”‚  โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  [Log] [Metrics] [Changes] [Topology]     โ”‚  โ”‚           โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚           โ”‚
โ”‚  โ”‚                  โ”‚                               โ”‚           โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  Phase 2: Hypothesis Generation (RAG)     โ”‚  โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  [Similar Incidents] โ†’ [LLM] โ†’ [Hypoths]  โ”‚  โ”‚           โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚           โ”‚
โ”‚  โ”‚                  โ”‚                               โ”‚           โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  Phase 3: Remediation Planning (RAG)      โ”‚  โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  [Past Solutions] โ†’ [LLM] โ†’ [Actions]     โ”‚  โ”‚           โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ”‚                           โ”‚                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚         Intelligence Layer                       โ”‚           โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  ChromaDB    โ”‚  โ”‚  sentence-transformers โ”‚    โ”‚           โ”‚
โ”‚  โ”‚  โ”‚  (Vectors)   โ”‚  โ”‚  (Embeddings)          โ”‚    โ”‚           โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ”‚                           โ”‚                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚         Visualization Layer                      โ”‚           โ”‚
โ”‚  โ”‚  [Graphs] [Timelines] [Dashboards] [Metrics]   โ”‚           โ”‚
โ”‚  โ”‚  โ†’ Cytoscape, D3.js, Plotly, Chart.js          โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ”‚                           โ”‚                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚         Persistence Layer                        โ”‚           โ”‚
โ”‚  โ”‚  [SQLite] [Redis Cache] [Vector DB]            โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿค– AI Agent Catalog

Agent Purpose LLM-Powered Capabilities
LogAnalyzerAgent Error pattern detection โœ“ Pattern matching, cascade detection, severity scoring
MetricsAnalyzerAgent Anomaly detection โœ“ Statistical analysis, threshold violations, correlations
ChangeCorrelatorAgent Change-incident correlation โœ“ Temporal correlation, risk scoring, deployment analysis
TopologyInferenceAgent Service dependency mapping โœ“ Dependency graphs, impact analysis, blast radius
HypothesisGeneratorAgent Root cause synthesis โœ“ Multi-agent fusion, RAG enhancement, confidence scoring
RemediationPlannerAgent Action planning โœ“ Prioritization, time estimation, validation tests

All agents support:

  • Async/await execution
  • Result caching (Redis/Memory)
  • Structured output (Pydantic models)
  • RAG enhancement with historical context
  • PII filtering for sensitive data
  • Prometheus metrics tracking

๐Ÿ“ก API Endpoints

Core Analysis

  • POST /analyze - Start RCA analysis (async)
  • GET /analyze/{id} - Get analysis results
  • GET /agents - List all available agents
  • POST /agents/{name}/execute - Run specific agent

Real-Time Streaming (WebSocket)

  • ws://host/ws/analysis/{id} - Live updates for specific analysis
  • ws://host/ws/broadcast - System-wide event stream
  • ws://host/ws/agent/{name} - Agent-specific updates

Webhooks

  • POST /api/v1/webhooks - Create webhook subscription
  • GET /api/v1/webhooks - List webhooks
  • DELETE /api/v1/webhooks/{id} - Delete webhook
  • GET /api/v1/webhooks/{id}/deliveries - Delivery history

Knowledge Base (RAG)

  • POST /api/v1/knowledge-base/incidents - Store incident
  • POST /api/v1/knowledge-base/search/similar-incidents - Find similar incidents
  • GET /api/v1/knowledge-base/incidents/{id}/insights - Get insights
  • GET /api/v1/knowledge-base/stats - Database statistics

Integrations

  • POST /api/v1/integrations/slack - Configure Slack
  • POST /api/v1/integrations/jira - Configure JIRA
  • POST /api/v1/integrations/pagerduty - Configure PagerDuty
  • POST /api/v1/integrations/notify/incident - Send alerts
  • POST /api/v1/integrations/notify/rca-complete - Send RCA summary

Visualizations

  • POST /api/v1/visualizations/root-cause-graph - Generate dependency graph
  • POST /api/v1/visualizations/timeline - Generate incident timeline
  • POST /api/v1/visualizations/metrics-dashboard - Generate metrics dashboard
  • POST /api/v1/visualizations/complete-dashboard - Generate all visualizations

Full API documentation: http://localhost:8000/docs


๐Ÿ“Š Feature Showcase

1. Real-Time Streaming

# Server-side: Streaming orchestrator automatically sends updates
from chains.streaming_orchestrator import StreamingOrchestrator

orchestrator = StreamingOrchestrator(
    websocket_manager=ws_manager,
    analysis_id=analysis_id
)

# Automatically streams:
# - Agent start/complete events
# - Individual findings as discovered
# - Phase transitions
# - Final results

2. RAG-Enhanced Analysis

# Automatic: Every successful analysis is stored in ChromaDB
# Future analyses get historical context automatically

# Manual similarity search:
from rag import SimilaritySearchService

similar = similarity_search.find_similar_incidents(
    query_incident=current_incident,
    n_results=5,
    similarity_threshold=0.7
)

# Returns: Top-5 similar past incidents with RCA solutions

3. Enterprise Integrations

# Configure once, use everywhere
from integrations import IntegrationManager

manager = IntegrationManager()

# Slack
manager.register_slack(integration_id, api_key, webhook_url)

# JIRA
manager.register_jira(integration_id, api_key, jira_url, username, token, project_key)

# PagerDuty
manager.register_pagerduty(integration_id, api_key, pd_api_key, integration_key)

# Notify all configured integrations
await manager.notify_incident(incident_id, incident_data, api_key)

4. Interactive Visualizations

# Generate root cause dependency graph
from visualization import RootCauseGraphGenerator

graph_gen = RootCauseGraphGenerator()
graph_data = graph_gen.generate_from_rca(rca_results)

# Export in multiple formats:
cytoscape_format = graph_data["cytoscape"]  # For web rendering
d3_format = graph_data["d3"]                # For force-directed graph
graphml_format = graph_data["graphml"]      # For analysis tools
dot_format = graph_data["dot"]              # For Graphviz

๐Ÿ“š Documentation

Getting Started

Core Features

Enterprise Features (v3.2-3.5)

API Reference

Advanced Topics


๐Ÿ”ง Development

Project Structure

ADAPT-Agents/
โ”œโ”€โ”€ agents/                    # 6 specialized diagnostic agents
โ”œโ”€โ”€ chains/                    # Orchestrators (sync, async, streaming)
โ”œโ”€โ”€ schemas/                   # Pydantic models and base classes
โ”œโ”€โ”€ llm/                       # LLM provider integrations
โ”œโ”€โ”€ utils/                     # Caching, logging, metrics, PII filtering
โ”œโ”€โ”€ api/                       # FastAPI server + routes
โ”‚   โ”œโ”€โ”€ server.py             # Main FastAPI app (v3.5)
โ”‚   โ”œโ”€โ”€ websocket_routes.py   # Real-time streaming endpoints
โ”‚   โ”œโ”€โ”€ webhook_routes.py     # Webhook management
โ”‚   โ”œโ”€โ”€ knowledge_base_routes.py  # RAG endpoints
โ”‚   โ”œโ”€โ”€ integrations_routes.py    # Enterprise integrations
โ”‚   โ””โ”€โ”€ visualization_routes.py   # Interactive visualizations
โ”œโ”€โ”€ rag/                       # RAG & vector database
โ”‚   โ”œโ”€โ”€ vector_db_manager.py  # ChromaDB persistence
โ”‚   โ”œโ”€โ”€ incident_embeddings.py # Sentence-BERT embeddings
โ”‚   โ”œโ”€โ”€ similarity_search.py  # Semantic search
โ”‚   โ””โ”€โ”€ rag_enhancer.py       # LLM prompt enhancement
โ”œโ”€โ”€ integrations/              # Enterprise connectors
โ”‚   โ”œโ”€โ”€ slack.py              # Slack integration
โ”‚   โ”œโ”€โ”€ jira.py               # JIRA integration
โ”‚   โ”œโ”€โ”€ pagerduty.py          # PagerDuty integration
โ”‚   โ””โ”€โ”€ integration_manager.py # Unified manager
โ”œโ”€โ”€ visualization/             # Interactive charts & graphs
โ”‚   โ”œโ”€โ”€ root_cause_graph.py   # Dependency graphs
โ”‚   โ”œโ”€โ”€ timeline_chart.py     # Incident timelines
โ”‚   โ””โ”€โ”€ metrics_dashboard.py  # Metrics visualization
โ”œโ”€โ”€ cli/                       # Command-line interface
โ”œโ”€โ”€ config/                    # Configuration management
โ”œโ”€โ”€ examples/                  # Usage examples
โ”œโ”€โ”€ tests/                     # Test suite (80%+ coverage)
โ”œโ”€โ”€ docs/                      # Documentation
โ””โ”€โ”€ docker/                    # Docker & Kubernetes configs

Running Tests

# Run all tests
pytest

# With coverage
pytest --cov=. --cov-report=html

# Specific test file
pytest tests/unit/test_async_orchestrator.py

# Integration tests
pytest tests/integration/

Code Quality

# Format code
black .

# Sort imports
isort .

# Lint
flake8 .

# Type checking
mypy .

๐Ÿš€ Deployment

Docker Compose (Recommended)

# Start complete stack
docker-compose up -d

# Services included:
# - API server (port 8000)
# - Redis cache (port 6379)
# - Prometheus metrics (port 9090)
# - Grafana dashboards (port 3000)
# - ChromaDB vector database (embedded)

Kubernetes

# Deploy to Kubernetes
kubectl apply -f k8s/

# Includes:
# - API deployment (3 replicas)
# - Redis StatefulSet
# - Prometheus monitoring
# - Ingress configuration

Cloud Platforms

  • AWS: ECS Fargate + ElastiCache + RDS
  • GCP: Cloud Run + Memorystore + Cloud SQL
  • Azure: Container Apps + Redis + PostgreSQL

See deployment guide for detailed instructions.


๐Ÿค Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Adding New Features

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

Adding New Agents

  1. Extend BaseAgent or AsyncBaseAgent
  2. Implement execute() or execute_async() method
  3. Create prompt template in prompts/
  4. Add tests in tests/unit/
  5. Update documentation

๐Ÿ“„ License

MIT License - see LICENSE for details.


๐ŸŒŸ Star History

If you find ADAPT-Agents useful, please consider starring the repository!


๐Ÿ“ž Support & Community


๐Ÿ† Acknowledgments

Built with:


๐ŸŽฏ What's Next?

Upcoming in v3.6:

  • ๐Ÿ”ฎ ML-based anomaly detection with Prophet/ARIMA
  • ๐Ÿงช Predictive analytics for incident prevention
  • ๐ŸŒ Multi-tenancy support
  • ๐Ÿ“ฑ Mobile-friendly dashboards
  • ๐Ÿ”„ Bi-directional integration sync

See ROADMAP.md for the complete roadmap.


๐Ÿ“Š Comparison with Commercial Platforms

DataDog vs ADAPT-Agents

Feature DataDog ADAPT-Agents
RCA Analysis โœ“ โœ…
Real-Time Streaming โœ“ โœ…
AI/ML Learning Limited โœ… RAG + ChromaDB
Integrations 500+ Slack/JIRA/PD + extensible
Cost $15-31/host/mo FREE
Self-Hosted โŒ โœ…

Grafana vs ADAPT-Agents

Feature Grafana ADAPT-Agents
Dashboards โœ“ โœ…
Alerting โœ“ โœ… via integrations
RCA Automation Plugins โœ… Native
AI-Powered โŒ โœ…
Cost Free FREE

PagerDuty vs ADAPT-Agents

Feature PagerDuty ADAPT-Agents
Incident Management โœ“ โœ… via integrations
RCA Automation AIOps โœ… Native + RAG
Cost $21-51/user/mo FREE
Customizable Limited โœ… Full control

Winner: ADAPT-Agents offers enterprise features at zero cost with unique AI learning capabilities.


Built with โค๏ธ by the open-source community. Join us in revolutionizing incident management!

About

ADAPT-Agents is a modular library of diagnostic LLM agents designed for use in automated troubleshooting, anomaly analysis, and RCA workflows

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors