# vinayvermavlogs/multi_ai_agent_code architecture

> Architecture diagram of the GitHub repository vinayvermavlogs/multi_ai_agent_code, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vinayvermavlogs/multi_ai_agent_code
- Repository: https://github.com/vinayvermavlogs/multi_ai_agent_code

## Overview

CortexAI is a multi-agent AI workspace with chat history, Google authentication, and credit-based payments. Users sign in, create or select a conversation, submit a prompt or file, and receive an agent-generated response that is saved to chat history; they can also purchase credits. The agent graph selects specialized workflows, including PDF retrieval, while chat, auth, billing, and Redis support the product. The README documents additional agent capabilities not all inspected here; those branches are represented at the agent-directory level, with uncertain implementation links omitted.

Main entry points: [`frontend/src/pages/Home.jsx`](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/pages/Home.jsx) (React Workspace), [`backend/services/auth/controllers/auth.controller.js`](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/auth/controllers/auth.controller.js) (Authentication), [`backend/gateway/index.js`](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/gateway/index.js) (Gateway Router), [`backend/services/agent/graph/graph.js`](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/graph/graph.js) (Agent Graph)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["User Workspace"]
  node_web["React Workspace<br/>[Home.jsx]"]
  node_sidebar["Conversation Sidebar<br/>[SideBar.jsx]"]
  node_chatui["Chat Interface<br/>[ChatArea.jsx]"]
  node_artifact["Artifact Viewer<br/>[Artifact.jsx]"]
  node_billingui["Credit Drawer<br/>[BillingDrawer.jsx]"]
  node_api["API Client<br/>[axios.js]"]
end

subgraph group_gateway["API Gateway"]
  node_gatewayentry["Gateway Router<br/>[index.js]"]
end

subgraph group_ai["AI Workflows"]
  node_agentctl["Agent Controller"]
  node_agentgraph["Agent Graph<br/>[graph.js]"]
  node_autorouter["Auto Router<br/>[router.js]"]
  node_agentset["Specialized Agents"]
  node_pdfagent["PDF Retrieval<br/>[pdfRag.agent.js]"]
  node_models["LLM Models<br/>[llmModels.js]"]
end

subgraph group_identity["Identity and Billing"]
  node_authctl["Authentication<br/>[auth.controller.js]"]
  node_billingctl["Payment Service"]
end

subgraph group_data["Persistence and Cache"]
  node_chatctl["Conversation Service<br/>[chat.controller.js]"]
  node_userdb[("User Records<br/>[user.model.js]")]
  node_paymentdb[("Payment Records<br/>[payment.model.js]")]
  node_chatdb[("Conversation and Messages")]
  node_redis[("Redis Cache<br/>[redis.js]")]
end

node_user(("User"))
node_firebase["Firebase Auth"]
node_razorpay["Razorpay"]

node_user -->|"uses"| node_web
node_web -->|"renders"| node_sidebar
node_web -->|"renders"| node_chatui
node_web -->|"renders"| node_artifact
node_web -->|"signs in with"| node_firebase
node_web -->|"calls"| node_api
node_sidebar -->|"opens"| node_billingui
node_api -.->|"sends requests"| node_gatewayentry
node_gatewayentry -.->|"routes requests"| node_agentctl
node_gatewayentry -.->|"routes requests"| node_authctl
node_gatewayentry -.->|"routes requests"| node_billingctl
node_agentctl -->|"saves messages"| node_chatctl
node_agentctl -->|"invokes"| node_agentgraph
node_agentgraph -->|"dispatches through"| node_autorouter
node_agentgraph -->|"dispatches to"| node_agentset
node_autorouter -->|"gets router model"| node_models
node_autorouter -->|"imports"| node_agentctl
node_agentgraph -->|"dispatches to"| node_pdfagent
node_pdfagent -->|"gets PDF model"| node_models
node_authctl -->|"reads and updates"| node_userdb
node_authctl -->|"stores sessions"| node_redis
node_authctl -->|"verifies tokens"| node_firebase
node_billingctl -->|"records payments"| node_paymentdb
node_billingctl -->|"creates orders"| node_razorpay
node_billingctl -->|"updates plan"| node_authctl
node_chatctl -->|"reads and writes"| node_chatdb

click node_web "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/pages/Home.jsx"
click node_sidebar "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/SideBar.jsx"
click node_chatui "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/ChatArea.jsx"
click node_artifact "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/Artifact.jsx"
click node_billingui "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/BillingDrawer.jsx"
click node_api "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/utils/axios.js"
click node_gatewayentry "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/gateway/index.js"
click node_agentctl "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/controllers/agent.controller.js"
click node_agentgraph "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/graph/graph.js"
click node_autorouter "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/graph/router.js"
click node_agentset "https://github.com/vinayvermavlogs/multi_ai_agent_code/tree/master/backend/services/agent/agents"
click node_pdfagent "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/agents/pdfRag.agent.js"
click node_models "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/config/llmModels.js"
click node_authctl "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/auth/controllers/auth.controller.js"
click node_billingctl "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/billing/controllers/billing.controller.js"
click node_chatctl "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/chat/controllers/chat.controller.js"
click node_userdb "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/auth/models/user.model.js"
click node_paymentdb "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/billing/models/payment.model.js"
click node_chatdb "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/chat/models/coversation.model.js"
click node_redis "https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/shared/redis/redis.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_sidebar,node_chatui,node_artifact,node_billingui,node_api,node_user toneBlue
class node_gatewayentry toneAmber
class node_agentctl,node_agentgraph,node_autorouter,node_agentset,node_pdfagent,node_models toneMint
class node_authctl,node_billingctl toneRose
class node_chatctl,node_userdb,node_paymentdb,node_chatdb,node_redis,node_firebase,node_razorpay toneIndigo
```

## Components

### User Workspace

- [React Workspace](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/pages/Home.jsx): `frontend/src/pages/Home.jsx`
- [Conversation Sidebar](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/SideBar.jsx): `frontend/src/components/SideBar.jsx`
- [Chat Interface](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/ChatArea.jsx): `frontend/src/components/ChatArea.jsx`
- [Artifact Viewer](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/Artifact.jsx): `frontend/src/components/Artifact.jsx`
- [Credit Drawer](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/src/components/BillingDrawer.jsx): `frontend/src/components/BillingDrawer.jsx`
- [API Client](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/frontend/utils/axios.js): `frontend/utils/axios.js`

### API Gateway

- [Gateway Router](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/gateway/index.js): `backend/gateway/index.js`

### AI Workflows

- [Agent Controller](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/controllers/agent.controller.js): `backend/services/agent/controllers/agent.controller.js`
- [Agent Graph](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/graph/graph.js): `backend/services/agent/graph/graph.js`
- [Auto Router](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/graph/router.js): `backend/services/agent/graph/router.js`
- [Specialized Agents](https://github.com/vinayvermavlogs/multi_ai_agent_code/tree/master/backend/services/agent/agents): `backend/services/agent/agents`
- [PDF Retrieval](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/agents/pdfRag.agent.js): `backend/services/agent/agents/pdfRag.agent.js`
- [LLM Models](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/agent/config/llmModels.js): `backend/services/agent/config/llmModels.js`

### Identity and Billing

- [Authentication](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/auth/controllers/auth.controller.js): `backend/services/auth/controllers/auth.controller.js`
- [Payment Service](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/billing/controllers/billing.controller.js): `backend/services/billing/controllers/billing.controller.js`

### Persistence and Cache

- [Conversation Service](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/chat/controllers/chat.controller.js): `backend/services/chat/controllers/chat.controller.js`
- [User Records](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/auth/models/user.model.js): `backend/services/auth/models/user.model.js`
- [Payment Records](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/billing/models/payment.model.js): `backend/services/billing/models/payment.model.js`
- [Conversation and Messages](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/services/chat/models/coversation.model.js): `backend/services/chat/models/coversation.model.js`
- [Redis Cache](https://github.com/vinayvermavlogs/multi_ai_agent_code/blob/master/backend/shared/redis/redis.js): `backend/shared/redis/redis.js`

### Other components

- **User**
- **Firebase Auth**
- **Razorpay**

## Connections

- User → React Workspace: uses
- React Workspace → Conversation Sidebar: renders (evidence: `frontend/src/pages/Home.jsx`)
- React Workspace → Chat Interface: renders (evidence: `frontend/src/pages/Home.jsx`)
- React Workspace → Artifact Viewer: renders (evidence: `frontend/src/pages/Home.jsx`)
- React Workspace → Firebase Auth: signs in with (evidence: `frontend/src/pages/Home.jsx`)
- React Workspace → API Client: calls (evidence: `frontend/src/pages/Home.jsx`)
- Conversation Sidebar → Credit Drawer: opens (evidence: `frontend/src/components/SideBar.jsx`)
- API Client → Gateway Router: sends requests
- Gateway Router → Agent Controller: routes requests
- Gateway Router → Authentication: routes requests
- Gateway Router → Payment Service: routes requests
- Agent Controller → Conversation Service: saves messages (evidence: `backend/services/agent/controllers/agent.controller.js`)
- Agent Controller → Agent Graph: invokes (evidence: `backend/services/agent/controllers/agent.controller.js`)
- Agent Graph → Auto Router: dispatches through (evidence: `backend/services/agent/graph/graph.js`)
- Agent Graph → Specialized Agents: dispatches to (evidence: `backend/services/agent/graph/graph.js`)
- Auto Router → LLM Models: gets router model (evidence: `backend/services/agent/graph/router.js`)
- Auto Router → Agent Controller: imports (evidence: `backend/services/agent/graph/router.js`)
- Agent Graph → PDF Retrieval: dispatches to (evidence: `backend/services/agent/graph/graph.js`)
- PDF Retrieval → LLM Models: gets PDF model (evidence: `backend/services/agent/agents/pdfRag.agent.js`)
- Authentication → User Records: reads and updates (evidence: `backend/services/auth/controllers/auth.controller.js`)
- Authentication → Redis Cache: stores sessions (evidence: `backend/services/auth/controllers/auth.controller.js`)
- Authentication → Firebase Auth: verifies tokens (evidence: `backend/services/auth/controllers/auth.controller.js`)
- Payment Service → Payment Records: records payments (evidence: `backend/services/billing/controllers/billing.controller.js`)
- Payment Service → Razorpay: creates orders (evidence: `backend/services/billing/controllers/billing.controller.js`)
- Payment Service → Authentication: updates plan (evidence: `backend/services/billing/controllers/billing.controller.js`)
- Conversation Service → Conversation and Messages: reads and writes (evidence: `backend/services/chat/controllers/chat.controller.js`)
