# Architecture Diagram ## System Architecture ```mermaid graph TB subgraph Client["🖥️ Client Layer"] WEB["React Frontend
Vite + Dashboard"] API_CLIENT["API Client
Axios"] end subgraph API_LAYER["🌐 API Layer"] FASTAPI["FastAPI Application"] ROUTES["Routes
Tasks | Workflows | Health"] MIDDLEWARE["Middleware
CORS | Auth | Logging"] end subgraph ORCHESTRATION["🤖 Orchestration Layer"] GRAPH["LangGraph Workflow"] STATE_MGR["State Manager"] end subgraph AGENTS["🧠 Agent Layer"] MEMORY_AG["Memory Agent
Retrieval"] PLANNER_AG["Planner Agent
Decomposition"] EXECUTOR_AG["Executor Agent
Execution"] CRITIC_AG["Critic Agent
Evaluation"] end subgraph TOOLS["🔧 Tool Layer"] WEB_SEARCH["Web Search
DuckDuckGo"] FETCH_URL["URL Fetch
Content Reader"] CALCULATOR["Calculator
Math Eval"] PYTHON_RUN["Python Executor
Sandbox"] end subgraph STORAGE["💾 Storage Layer"] REDIS["Redis Cache
Hot Memory"] SQLITE["SQLite DB
Persistent"] POSTGRES["PostgreSQL
Production"] end subgraph MONITORING["📊 Monitoring"] LOGGER["Logger
Structured Logs"] METRICS["Metrics
Prometheus"] HEALTH["Health Checks
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 ```mermaid 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 ```mermaid 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 ```mermaid graph LR subgraph Input["Input"] TASK["📝 Task"] end subgraph Agents["Agent Pipeline"] MEM["🧠 Memory
Retrieve Context"] PLAN["📋 Planner
Decompose"] EXEC["⚙️ Executor
Execute"] CRIT["🔍 Critic
Evaluate"] STORE["💾 Memory Store
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 ```mermaid 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
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 ```mermaid graph TB subgraph Local["Local Development"] LOCAL_FRONTEND["Frontend
localhost:3000"] LOCAL_BACKEND["Backend
localhost:8000"] LOCAL_REDIS["Redis
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
K8s Pods"] REDIS_CLUSTER["Redis Cluster"] POSTGRES_MANAGED["Managed PostgreSQL"] CDN["CDN
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 ```