Skip to content

Latest commit

 

History

History
182 lines (137 loc) · 6.41 KB

File metadata and controls

182 lines (137 loc) · 6.41 KB

AutoBot Architecture Overview

Last Updated: 2025-12-13

This document provides a high-level overview of the AutoBot platform architecture and serves as the central navigation hub for all architecture documentation.


System Overview

AutoBot is an AI-powered automation platform built on a distributed 6-VM architecture. The system provides:

  • Multi-LLM Chat Interface - Intelligent conversation with multiple AI models
  • Knowledge Base - Vectorized document storage and retrieval
  • Workflow Automation - Automated task execution and orchestration
  • Multi-Modal AI - Image, voice, and desktop interaction
  • Browser Automation - Web scraping and automation via Playwright

Infrastructure Topology

graph TB
    User[User Browser] --> Frontend[VM1: Frontend<br/><frontend-ip>:5173]
    Frontend --> Backend[Main: Backend API<br/><backend-ip>:8443]
    Backend --> Redis[VM3: Redis Stack<br/><database-ip>:6379]
    Backend --> AI[VM4: AI Stack<br/><aiml-ip>:8080]
    Backend --> NPU[VM2: NPU Worker<br/><npu-ip>:8081]
    Backend --> Browser[VM5: Browser Automation<br/><browser-ip>:3000]
    Backend --> Desktop[Main: VNC Desktop<br/><backend-ip>:6080]
Loading

Service Responsibilities

VM IP Address Services Purpose
Main (WSL) Backend API (8001), VNC (6080) Core API, desktop automation
VM1 Frontend Vite (5173) Web interface (single source)
VM2 NPU Worker NPU API (8081) Hardware-accelerated AI
VM3 Redis Redis Stack (6379) Data persistence, caching
VM4 AI Stack Ollama (8080) LLM inference, embeddings
VM5 Browser Playwright (3000) Web automation

Architecture Decision Records (ADRs)

Key architectural decisions are documented in ADRs. See docs/adr/ for the complete index.

ADR Decision Status
ADR-001 Distributed 6-VM Architecture Accepted
ADR-002 Redis Database Separation Accepted
ADR-003 NPU Hardware Acceleration Accepted
ADR-004 Chat Workflow Architecture Accepted
ADR-005 Single Frontend Server Accepted

Technology Stack

Backend

  • Python 3.11+ - Core backend language
  • FastAPI - REST API framework
  • Redis Stack - Data layer (cache, vectors, queues)
  • LlamaIndex - RAG and knowledge base
  • OpenVINO - NPU model optimization

Frontend

  • Vue 3 - UI framework
  • TypeScript - Type-safe JavaScript
  • Vite - Build tool and dev server
  • Tailwind CSS - Styling

AI/ML

  • Ollama - Local LLM inference
  • OpenAI API - Cloud LLM (fallback)
  • ChromaDB - Vector storage (code analysis)
  • Intel NPU - Hardware acceleration

Infrastructure

  • Hypervisor-agnostic - runs on any supported hypervisor or bare metal (VirtualBox, VMware, Hyper-V, KVM, WSL2); requires only a supported OS + hardware
  • Docker - Containerization (optional)
  • Playwright - Browser automation
  • noVNC - Desktop streaming

Documentation Index

Core Architecture

Document Description
DISTRIBUTED_6VM_ARCHITECTURE.md Detailed VM infrastructure
DISTRIBUTED_ARCHITECTURE.md Phase 5 architecture details
VISUAL_ARCHITECTURE.md Architecture diagrams
AGENT_SYSTEM_ARCHITECTURE.md Agent system design

Data Layer

Document Description
REDIS_SERVICE_MANAGEMENT_ARCHITECTURE.md Redis management
AUTOBOT_MEMORY_GRAPH_ARCHITECTURE.md Memory graph system
VECTOR_STORE_MIGRATION.md Vector store design

Auth & Security

Document Description
auth.md Authentication and RBAC architecture
SECURITY_ASSESSMENT_WORKFLOW.md Security assessment workflow

Features

Document Description
TERMINAL_ARCHITECTURE_DISTRIBUTED.md Terminal integration
LONG_RUNNING_OPERATIONS_ARCHITECTURE.md Long-running tasks

Code Analysis

Document Description
INDEX.md Code vectorization index
CODE_VECTORIZATION_ARCHITECTURE.md Vectorization system
CODE_VECTORIZATION_DATA_FLOWS.md Data flow diagrams

Infrastructure

Document Description
NPU_WORKER_ARCHITECTURE.json NPU worker design
Docker_Architecture_Documentation.md Docker setup
Kubernetes_Migration_Strategy.md K8s future plans
Scaling_Roadmap_and_Architecture_Evolution.md Scaling strategy

Quick Reference

Health Checks

# Backend API
curl http://localhost:8001/api/health

# Frontend
curl http://<frontend-ip>:5173

# Redis
redis-cli -h <database-ip> ping

# Ollama
curl http://<aiml-ip>:8080/api/tags

Key Configuration Files

File Purpose
scripts/start-services.sh CLI service wrapper (replaces deprecated run_autobot.sh)
.env Environment variables
backend/core/config.py Backend configuration
autobot-frontend/vite.config.ts Frontend configuration

Critical Rules

  1. Single Frontend - Only VM1 runs frontend server
  2. Edit Locally - Never edit directly on VMs
  3. Sync Changes - Use sync scripts after edits
  4. Named Databases - Use get_redis_client(database="name")

Related Documentation


Author: mrveiss Copyright: © 2025 mrveiss