Multi-Agent-System / docs /ARCHITECTURE_DIAGRAMS.md
jatin gyass
initial commit
2eef9ea
|
Raw
History Blame Contribute Delete
6.42 kB

Architecture Diagram

System Architecture

graph TB
    subgraph Client["πŸ–₯️ Client Layer"]
        WEB["React Frontend<br/>Vite + Dashboard"]
        API_CLIENT["API Client<br/>Axios"]
    end

    subgraph API_LAYER["🌐 API Layer"]
        FASTAPI["FastAPI Application"]
        ROUTES["Routes<br/>Tasks | Workflows | Health"]
        MIDDLEWARE["Middleware<br/>CORS | Auth | Logging"]
    end

    subgraph ORCHESTRATION["πŸ€– Orchestration Layer"]
        GRAPH["LangGraph Workflow"]
        STATE_MGR["State Manager"]
    end

    subgraph AGENTS["🧠 Agent Layer"]
        MEMORY_AG["Memory Agent<br/>Retrieval"]
        PLANNER_AG["Planner Agent<br/>Decomposition"]
        EXECUTOR_AG["Executor Agent<br/>Execution"]
        CRITIC_AG["Critic Agent<br/>Evaluation"]
    end

    subgraph TOOLS["πŸ”§ Tool Layer"]
        WEB_SEARCH["Web Search<br/>DuckDuckGo"]
        FETCH_URL["URL Fetch<br/>Content Reader"]
        CALCULATOR["Calculator<br/>Math Eval"]
        PYTHON_RUN["Python Executor<br/>Sandbox"]
    end

    subgraph STORAGE["πŸ’Ύ Storage Layer"]
        REDIS["Redis Cache<br/>Hot Memory"]
        SQLITE["SQLite DB<br/>Persistent"]
        POSTGRES["PostgreSQL<br/>Production"]
    end

    subgraph MONITORING["πŸ“Š Monitoring"]
        LOGGER["Logger<br/>Structured Logs"]
        METRICS["Metrics<br/>Prometheus"]
        HEALTH["Health Checks<br/>Status"]
    end

    WEB -->|REST API| API_CLIENT
    API_CLIENT -->|HTTP| FASTAPI
    FASTAPI --> MIDDLEWARE
    MIDDLEWARE --> ROUTES
    ROUTES --> ORCHESTRATION
    
    GRAPH -->|Coordinates| MEMORY_AG
    GRAPH -->|Coordinates| PLANNER_AG
    GRAPH -->|Coordinates| EXECUTOR_AG
    GRAPH -->|Coordinates| CRITIC_AG
    
    STATE_MGR -->|Manages| GRAPH
    
    EXECUTOR_AG -->|Uses| WEB_SEARCH
    EXECUTOR_AG -->|Uses| FETCH_URL
    EXECUTOR_AG -->|Uses| CALCULATOR
    EXECUTOR_AG -->|Uses| PYTHON_RUN
    
    MEMORY_AG -->|Read/Write| REDIS
    MEMORY_AG -->|Persistent| SQLITE
    
    CRITIC_AG -->|Store Results| REDIS
    
    ORCHESTRATION -->|Monitor| LOGGER
    ORCHESTRATION -->|Metrics| METRICS
    ROUTES -->|Health| HEALTH
    
    POSTGRES -.->|Production| REDIS

Data Flow Diagram

sequenceDiagram
    User->>Frontend: Submit Task
    Frontend->>API: POST /tasks
    API->>StateManager: Create Initial State
    StateManager->>Memory: Retrieve Context
    Memory->>Redis: Check Hot Cache
    Redis-->>Memory: Return Cached Data
    Memory-->>Orchestration: Context Ready
    Orchestration->>Planner: Plan Task
    Planner-->>StateManager: Update State with Plan
    StateManager->>Executor: Execute Step 1
    Executor->>Tools: Call Tool
    Tools-->>Executor: Tool Result
    Executor-->>StateManager: Step Complete
    StateManager->>Critic: Evaluate Result
    Critic-->>StateManager: Approval/Rejection
    alt Approved
        StateManager->>Memory: Store Learning
        Memory->>SQLite: Persist Memory
    else Rejected
        StateManager->>Planner: Replan
    end
    StateManager->>Frontend: Return Result
    Frontend->>User: Display Results

Workflow State Machine

stateDiagram-v2
    [*] --> PENDING: Task Received
    
    PENDING --> PLANNING: Begin Planning
    PLANNING --> PLANNING: Decompose Task
    PLANNING --> EXECUTING: Plan Ready
    PLANNING --> FAILED: Planning Failed
    
    EXECUTING --> EXECUTING: Execute Step
    EXECUTING --> EXECUTING: Retry on Failure
    EXECUTING --> EVALUATION: All Steps Done
    EXECUTING --> FAILED: Max Retries Exceeded
    
    EVALUATION --> EVALUATION: Critic Evaluates
    EVALUATION --> STORING: Quality Approved
    EVALUATION --> PLANNING: Needs Replanning
    
    STORING --> STORING: Save to Memory
    STORING --> COMPLETED: Success
    
    FAILED --> [*]
    COMPLETED --> [*]

Agent Interaction Diagram

graph LR
    subgraph Input["Input"]
        TASK["πŸ“ Task"]
    end
    
    subgraph Agents["Agent Pipeline"]
        MEM["🧠 Memory<br/>Retrieve Context"]
        PLAN["πŸ“‹ Planner<br/>Decompose"]
        EXEC["βš™οΈ Executor<br/>Execute"]
        CRIT["πŸ” Critic<br/>Evaluate"]
        STORE["πŸ’Ύ Memory Store<br/>Learn"]
    end
    
    subgraph Output["Output"]
        RESULT["βœ… Result"]
    end
    
    TASK --> MEM
    MEM --> PLAN
    PLAN --> EXEC
    EXEC --> CRIT
    CRIT -->|Approved| STORE
    CRIT -->|Rejected| PLAN
    STORE --> RESULT

Technology Stack

graph TB
    subgraph Frontend
        REACT["React 18"]
        VITE["Vite"]
        AXIOS["Axios"]
    end
    
    subgraph Backend
        FASTAPI["FastAPI"]
        LANGGRAPH["LangGraph"]
        PYDANTIC["Pydantic"]
    end
    
    subgraph LLM
        OPENAI["OpenAI API<br/>gpt-4 / gpt-4o-mini"]
    end
    
    subgraph Storage
        REDIS["Redis"]
        SQLITE["SQLite"]
        POSTGRES["PostgreSQL"]
    end
    
    subgraph DevOps
        DOCKER["Docker"]
        COMPOSE["Docker Compose"]
        K8S["Kubernetes"]
    end
    
    REACT --> VITE
    VITE --> AXIOS
    AXIOS -.->|HTTP| FASTAPI
    FASTAPI --> LANGGRAPH
    FASTAPI --> PYDANTIC
    LANGGRAPH -->|Calls| OPENAI
    FASTAPI --> REDIS
    FASTAPI --> SQLITE
    FASTAPI --> POSTGRES
    DOCKER --> COMPOSE
    COMPOSE --> K8S

Deployment Architecture

graph TB
    subgraph Local["Local Development"]
        LOCAL_FRONTEND["Frontend<br/>localhost:3000"]
        LOCAL_BACKEND["Backend<br/>localhost:8000"]
        LOCAL_REDIS["Redis<br/>localhost:6379"]
    end
    
    subgraph Docker["Docker Environment"]
        DOCKER_FRONTEND["Frontend Container"]
        DOCKER_BACKEND["Backend Container"]
        DOCKER_REDIS["Redis Container"]
        DOCKER_POSTGRES["PostgreSQL Container"]
    end
    
    subgraph Production["Production/Cloud"]
        LB["Load Balancer"]
        BACKEND_REPLICAS["Backend Replicas<br/>K8s Pods"]
        REDIS_CLUSTER["Redis Cluster"]
        POSTGRES_MANAGED["Managed PostgreSQL"]
        CDN["CDN<br/>Frontend Static"]
    end
    
    LOCAL_FRONTEND -.->|Dev| LOCAL_BACKEND
    LOCAL_BACKEND -.->|Dev| LOCAL_REDIS
    
    DOCKER_FRONTEND -->|Compose| DOCKER_BACKEND
    DOCKER_BACKEND -->|Compose| DOCKER_REDIS
    DOCKER_BACKEND -->|Compose| DOCKER_POSTGRES
    
    LB --> BACKEND_REPLICAS
    BACKEND_REPLICAS --> REDIS_CLUSTER
    BACKEND_REPLICAS --> POSTGRES_MANAGED
    CDN -.->|Static| BACKEND_REPLICAS