Spaces:
No application file
No application file
File size: 10,463 Bytes
f831e98 da2713e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | #### Quick start prompt:
Scan the repo: list the directory tree, key config files, and required env vars. Summarize how to start the system using existing scripts. Do not modify files; just report and wait for confirmation before any changes.
Proceed with a fresh start by leveraging: powershell -ExecutionPolicy Bypass -File ops/scripts/fresh_start.ps1
# Graph-Driven Agentic System with Human-in-the-Loop Controls
## What This System Is
This is a **production-ready agentic workflow orchestration system** that demonstrates how to build AI agents with human oversight and complete audit trails. The system combines:
- **π€ Autonomous AI Agent**: Processes natural language queries and generates SQL
- **π Graph Database**: Neo4j stores all workflow metadata and audit trails
- **βΈοΈ Human-in-the-Loop**: Configurable pause points for human review and intervention
- **π― Single API Gateway**: All operations routed through MCP (Model Context Protocol) server
- **π Real-time Interface**: React frontend with live workflow visualization
- **π Complete Observability**: Every action logged with timestamps and relationships
## What It Does
### Core Workflow
1. **User asks a question** in natural language via the web interface
2. **System creates a workflow** with multiple instruction steps in Neo4j
3. **Agent discovers the question** and begins processing
4. **Pause for human review** (5 minutes by default, configurable)
5. **Human can edit instructions** during pause via Neo4j Browser
6. **Agent generates SQL** from natural language using LLM
7. **Agent executes SQL** against PostgreSQL database
8. **Results displayed** in formatted table with complete audit trail
### Architecture Components
```
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β Frontend ββββββ MCP Server ββββββ Neo4j β
β (Next.js) β β (FastAPI) β β (Graph) β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β
βββββββββββββββ βββββββββββββββ
β Agent ββββββ PostgreSQL β
β (Python) β β (Data) β
βββββββββββββββ βββββββββββββββ
```
- **Neo4j Graph Database**: Stores workflows, instructions, executions, and logs
- **MCP Server**: FastAPI gateway for all Neo4j operations with parameter fixing
- **Python Agent**: Polls for instructions, pauses for human input, executes tasks
- **PostgreSQL**: Sample data source for SQL generation and execution
- **Next.js Frontend**: Chat interface with Cytoscape.js graph visualization
## Why It's Valuable
### π― **Demonstrates Production Patterns**
- **Human Oversight**: Shows how to build AI systems with meaningful human control
- **Audit Trails**: Complete graph-based logging of all operations and decisions
- **Error Recovery**: System continues gracefully after interruptions or edits
- **Scalable Architecture**: Clean separation of concerns, containerized deployment
### π **Agentic Workflow Orchestration**
- **Graph-Driven**: Workflows stored as connected nodes, not brittle state machines
- **Dynamic Editing**: Instructions can be modified during execution
- **Sequence Management**: Proper instruction chaining and dependency handling
- **Status Tracking**: Real-time visibility into workflow progress
### π‘οΈ **Human-in-the-Loop Controls**
- **Configurable Pauses**: Built-in review periods before critical operations
- **Live Editing**: Modify AI behavior during execution via graph database
- **Stop Controls**: Terminate workflows at any point
- **Parameter Updates**: Change questions, settings, or instructions mid-flight
### π **Complete Observability**
- **Graph Visualization**: Real-time workflow progress with color-coded status
- **Audit Logging**: Every MCP operation logged with timestamps
- **Execution Tracking**: Full history of what was generated and executed
- **Result Storage**: All outputs preserved in queryable graph format
### π **Production Ready**
- **Containerized**: Full Docker Compose setup with health checks
- **Environment Configuration**: Flexible .env-based configuration
- **Error Handling**: Graceful failures and recovery mechanisms
- **Documentation**: Comprehensive setup, usage, and troubleshooting guides
## How to Make It Run
### Quick Start (5 minutes)
```bash
# 1. Clone and navigate to the repo
git clone <repository-url>
cd <repository-name>
# 2. Copy environment template
cp .env.example .env
# 3. Add your LLM API key to .env
# Edit .env and set: LLM_API_KEY=your-openai-or-anthropic-key-here
# 4. Start everything
docker-compose up -d
# 5. Seed Neo4j with demo data (IMPORTANT!)
docker-compose exec mcp python /app/ops/scripts/seed.py
# 6. Open the interface
# Frontend: http://localhost:3000
# Neo4j Browser: http://localhost:7474 (neo4j/password)
```
### Database Seeding Options
**Basic Seeding** (Quick demo):
```bash
docker-compose exec mcp python /app/ops/scripts/seed.py
```
Creates:
- **Demo Workflow**: A 3-step process (discover schema β generate SQL β review results)
- **Query Examples**: 3 basic SQL templates for testing
- **Graph Structure**: Proper relationships between components
**Comprehensive Seeding** (Full system):
```bash
docker-compose exec mcp python /app/ops/scripts/seed_comprehensive.py
```
Creates:
- **Workflow Templates**: Multiple workflow patterns (basic query, analysis, reporting)
- **Instruction Type Library**: 6 different instruction types with schemas
- **Query Library**: 6+ categorized SQL examples (basic, analytics, detailed)
- **Demo Workflows**: Ready-to-run and template workflows
- **System Configuration**: Default settings and supported features
**β οΈ Fresh Installation**: On a brand-new machine, Neo4j starts completely empty. You MUST run a seed script to have any workflows or instructions to interact with.
**π‘ Recommendation**: Use comprehensive seeding for full system exploration, basic seeding for quick demos.
### PowerShell Fresh Start (Windows)
```powershell
# Fresh deployment with API key
powershell -ExecutionPolicy Bypass -File ops/scripts/fresh_start.ps1 -ApiKey "your-api-key-here"
# Or run the demo (assumes system is already running)
powershell -ExecutionPolicy Bypass -File ops/scripts/demo.ps1
```
### Manual Health Check
```bash
# Check all services
docker-compose ps
# Validate system
docker-compose exec mcp python /app/ops/scripts/validate.py
# Monitor logs
docker-compose logs -f agent
```
### Test the System
1. **Open http://localhost:3000**
2. **Ask a question**: "How many customers do we have?"
3. **Watch the workflow**:
- Graph visualization shows progress
- Agent pauses for 5 minutes
- You can edit instructions in Neo4j Browser
- Results appear in formatted table
### Clean Reset
```bash
# Stop and clean everything
docker-compose down
docker-compose up -d
docker-compose exec mcp python /app/ops/scripts/seed.py
```
## Key Features for Developers
### Graph Database Schema
- **Workflow** nodes: High-level process containers
- **Instruction** nodes: Individual tasks with parameters and status
- **Execution** nodes: Results of instruction processing
- **Log** nodes: Audit trail of all MCP operations
- **Relationships**: `HAS_INSTRUCTION`, `EXECUTED_AS`, `NEXT_INSTRUCTION`
### Configuration Options
- **Pause Duration**: `PAUSE_DURATION` in .env (default: 300 seconds)
- **Polling Interval**: `AGENT_POLL_INTERVAL` in .env (default: 30 seconds)
- **LLM Model**: `LLM_MODEL` in .env (gpt-4, claude-3-sonnet, etc.)
### Extension Points
- **New Instruction Types**: Add handlers in `agent/main.py`
- **Custom Data Sources**: Extend MCP server with new connectors
- **Frontend Customization**: Modify React components in `frontend/app/`
- **Workflow Templates**: Create reusable instruction sequences
### Human Intervention Examples
```cypher
// Find pending instructions
MATCH (i:Instruction {status: 'pending'}) RETURN i
// Change a question
MATCH (i:Instruction {type: 'generate_sql', status: 'pending'})
SET i.parameters = '{"question": "Show me top 10 customers by revenue"}'
// Stop a workflow
MATCH (w:Workflow {status: 'active'})
SET w.status = 'stopped'
```
## Development Setup
### Prerequisites
- Docker & Docker Compose
- OpenAI or Anthropic API key
- Modern web browser
### Project Structure
```
βββ agent/ # Python agent that executes instructions
βββ frontend/ # Next.js chat interface
βββ mcp/ # FastAPI server for Neo4j operations
βββ neo4j/ # Neo4j configuration
βββ postgres/ # PostgreSQL setup with sample data
βββ ops/scripts/ # Operational scripts (seed, validate, demo)
βββ docker-compose.yml
βββ Makefile # Convenience commands
βββ README.md # Detailed documentation
```
### Available Commands
```bash
# If you have make installed
make up # Start all services
make seed # Create demo data
make health # Check service health
make logs # View all logs
make clean # Reset everything
# Using docker-compose directly
docker-compose up -d
docker-compose exec mcp python /app/ops/scripts/seed.py
docker-compose ps
docker-compose logs -f
docker-compose down
```
## Use Cases
### π’ **Enterprise AI Governance**
- Audit trails for compliance
- Human oversight for critical decisions
- Risk management in AI operations
### π¬ **Research & Development**
- Experiment with agentic workflows
- Study human-AI collaboration patterns
- Prototype autonomous systems with safety controls
### π **Educational Examples**
- Demonstrate production AI architecture
- Teach graph database concepts
- Show containerized deployment patterns
### π οΈ **Template for New Projects**
- Fork as starting point for agentic systems
- Adapt components for specific domains
- Scale architecture for production workloads
---
**This system demonstrates that AI agents can be both autonomous and controllable, providing the benefits of automation while maintaining human oversight and complete transparency.**
|