# itsmevibhor2005/multi-agent-ai-platform architecture

> Architecture diagram of the GitHub repository itsmevibhor2005/multi-agent-ai-platform, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/itsmevibhor2005/multi-agent-ai-platform
- Repository: https://github.com/itsmevibhor2005/multi-agent-ai-platform

## Overview

CortexAI is a multi-agent AI chat product. A signed-in user sends a prompt or file through the frontend and authenticated gateway; the agent service routes it to a specialist, returns a response or artifact, and persists the exchange through the chat service. Separate branches cover account sessions, credit metering, and paid plan upgrades. The graph preserves the README’s documented specialist capabilities and major service integrations; some agent wiring is based on that documentation because the graph implementation was not sampled.

Main entry points: [`backend/services/agent/graph/router.js`](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/graph/router.js) (Agent router), [`backend/services/auth/controllers/auth.controller.js`](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/auth/controllers/auth.controller.js) (Auth and credits), [`backend/gateway/index.js`](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/gateway/index.js) (API gateway), [`backend/services/agent/controllers/agent.controller.js`](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/controllers/agent.controller.js) (Agent request handler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_frontend["Chat interface<br/>[Home.jsx]"]
  node_features["Client API actions<br/>[sendMessage.js]"]
end

subgraph group_edge["Gateway and identity"]
  node_gateway["API gateway<br/>[index.js]"]
  node_authmw["Session guard<br/>[auth.middleware.js]"]
  node_redis[("Session and memory cache<br/>[redis.js]")]
  node_auth["Auth and credits<br/>[auth.controller.js]"]
  node_users[("User records<br/>[user.model.js]")]
end

subgraph group_conversation["Conversation services"]
  node_chatservice["Conversation API<br/>[chat.controller.js]"]
  node_conversations[("Conversation records")]
  node_messages[("Message history<br/>[message.model.js]")]
end

subgraph group_intelligence["Agent platform"]
  node_agentapi["Agent request handler"]
  node_router{{"Agent router<br/>[router.js]"}}
  node_chatagent["General chat<br/>[chat.agent.js]"]
  node_searchagent["Web search<br/>[search.agent.js]"]
  node_codingagent["Code artifacts<br/>[coding.agent.js]"]
  node_pdfagent["PDF authoring<br/>[pdf.agent.js]"]
  node_pptagent["Slide authoring<br/>[ppt.agent.js]"]
  node_visionagent["Image generation<br/>[vision.agent.js]"]
  node_ragagent["PDF question answering<br/>[pdfRag.agent.js]"]
  node_imageagent["Image understanding"]
  node_models["Model selection<br/>[llmModels.js]"]
end

subgraph group_commerce["Billing"]
  node_billing["Billing API"]
  node_payments[("Payment records<br/>[payment.model.js]")]
end

node_user(("User"))
node_firebase["Firebase identity"]
node_tavily["Tavily search"]
node_qdrant[("Qdrant vectors")]
node_s3[("AWS S3 files")]
node_razorpay["Razorpay checkout"]

node_user -->|"sends prompt"| node_frontend
node_frontend -->|"invokes actions"| node_features
node_features -->|"calls API"| node_gateway
node_gateway -->|"guards routes"| node_authmw
node_authmw -->|"looks up session"| node_redis
node_gateway -->|"proxies auth"| node_auth
node_auth -->|"verifies token"| node_firebase
node_auth -->|"reads and writes"| node_users
node_auth -->|"stores sessions"| node_redis
node_gateway -->|"proxies request"| node_agentapi
node_agentapi -->|"saves messages"| node_chatservice
node_agentapi -->|"invokes graph"| node_router
node_router -->|"classifies prompt"| node_models
node_router -->|"dispatches"| node_chatagent
node_router -->|"dispatches"| node_searchagent
node_router -->|"dispatches"| node_codingagent
node_router -->|"dispatches"| node_pdfagent
node_router -->|"dispatches"| node_pptagent
node_router -->|"dispatches"| node_visionagent
node_router -->|"dispatches"| node_ragagent
node_router -->|"dispatches"| node_imageagent
node_searchagent -->|"hands off results"| node_chatagent
node_searchagent -->|"searches web"| node_tavily
node_chatagent -->|"gets model"| node_models
node_codingagent -->|"gets model"| node_models
node_ragagent -->|"retrieves vectors"| node_qdrant
node_ragagent -->|"gets model"| node_models
node_pdfagent -->|"uploads output"| node_s3
node_pptagent -->|"uploads output"| node_s3
node_agentapi -->|"updates memory"| node_redis
node_agentapi -->|"persists response"| node_chatservice
node_chatservice -->|"reads and writes"| node_conversations
node_chatservice -->|"reads and writes"| node_messages
node_gateway -->|"proxies request"| node_billing
node_billing -->|"creates order"| node_razorpay
node_billing -->|"records payment"| node_payments
node_billing -->|"applies plan"| node_auth
node_auth -->|"updates credits"| node_users

click node_frontend "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/frontend/src/pages/Home.jsx"
click node_features "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/frontend/src/features/sendMessage.js"
click node_gateway "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/gateway/index.js"
click node_authmw "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/gateway/middleware/auth.middleware.js"
click node_redis "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/shared/redis/redis.js"
click node_auth "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/auth/controllers/auth.controller.js"
click node_users "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/auth/models/user.model.js"
click node_agentapi "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/controllers/agent.controller.js"
click node_router "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/graph/router.js"
click node_chatagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/chat.agent.js"
click node_searchagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/search.agent.js"
click node_codingagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/coding.agent.js"
click node_pdfagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/pdf.agent.js"
click node_pptagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/ppt.agent.js"
click node_visionagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/vision.agent.js"
click node_ragagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/pdfRag.agent.js"
click node_imageagent "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/imageAnalyzer.agent.js"
click node_models "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/config/llmModels.js"
click node_chatservice "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/chat/controllers/chat.controller.js"
click node_conversations "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/chat/models/coversation.model.js"
click node_messages "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/chat/models/message.model.js"
click node_billing "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/billing/controllers/billing.controller.js"
click node_payments "https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/billing/models/payment.model.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_frontend,node_features,node_user toneBlue
class node_gateway,node_authmw,node_redis,node_auth,node_users,node_qdrant,node_s3 toneAmber
class node_chatservice,node_conversations,node_messages toneMint
class node_agentapi,node_router,node_chatagent,node_searchagent,node_codingagent,node_pdfagent,node_pptagent,node_visionagent,node_ragagent,node_imageagent,node_models toneRose
class node_billing,node_payments,node_firebase,node_tavily,node_razorpay toneIndigo
```

## Components

### Web client

- [Chat interface](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/frontend/src/pages/Home.jsx): `frontend/src/pages/Home.jsx`
- [Client API actions](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/frontend/src/features/sendMessage.js): `frontend/src/features/sendMessage.js`

### Gateway and identity

- [API gateway](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/gateway/index.js): `backend/gateway/index.js`
- [Session guard](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/gateway/middleware/auth.middleware.js): `backend/gateway/middleware/auth.middleware.js`
- [Session and memory cache](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/shared/redis/redis.js): `backend/shared/redis/redis.js`
- [Auth and credits](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/auth/controllers/auth.controller.js): `backend/services/auth/controllers/auth.controller.js`
- [User records](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/auth/models/user.model.js): `backend/services/auth/models/user.model.js`

### Conversation services

- [Conversation API](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/chat/controllers/chat.controller.js): `backend/services/chat/controllers/chat.controller.js`
- [Conversation records](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/chat/models/coversation.model.js): `backend/services/chat/models/coversation.model.js`
- [Message history](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/chat/models/message.model.js): `backend/services/chat/models/message.model.js`

### Agent platform

- [Agent request handler](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/controllers/agent.controller.js): `backend/services/agent/controllers/agent.controller.js`
- [Agent router](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/graph/router.js): `backend/services/agent/graph/router.js`
- [General chat](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/chat.agent.js): `backend/services/agent/agents/chat.agent.js`
- [Web search](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/search.agent.js): `backend/services/agent/agents/search.agent.js`
- [Code artifacts](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/coding.agent.js): `backend/services/agent/agents/coding.agent.js`
- [PDF authoring](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/pdf.agent.js): `backend/services/agent/agents/pdf.agent.js`
- [Slide authoring](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/ppt.agent.js): `backend/services/agent/agents/ppt.agent.js`
- [Image generation](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/vision.agent.js): `backend/services/agent/agents/vision.agent.js`
- [PDF question answering](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/pdfRag.agent.js): `backend/services/agent/agents/pdfRag.agent.js`
- [Image understanding](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/agents/imageAnalyzer.agent.js): `backend/services/agent/agents/imageAnalyzer.agent.js`
- [Model selection](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/agent/config/llmModels.js): `backend/services/agent/config/llmModels.js`

### Billing

- [Billing API](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/billing/controllers/billing.controller.js): `backend/services/billing/controllers/billing.controller.js`
- [Payment records](https://github.com/itsmevibhor2005/multi-agent-ai-platform/blob/main/backend/services/billing/models/payment.model.js): `backend/services/billing/models/payment.model.js`

### Other components

- **User**
- **Firebase identity**
- **Tavily search**
- **Qdrant vectors**
- **AWS S3 files**
- **Razorpay checkout**

## Connections

- User → Chat interface: sends prompt
- Chat interface → Client API actions: invokes actions
- Client API actions → API gateway: calls API
- API gateway → Session guard: guards routes
- Session guard → Session and memory cache: looks up session
- API gateway → Auth and credits: proxies auth
- Auth and credits → Firebase identity: verifies token
- Auth and credits → User records: reads and writes
- Auth and credits → Session and memory cache: stores sessions
- API gateway → Agent request handler: proxies request
- Agent request handler → Conversation API: saves messages
- Agent request handler → Agent router: invokes graph
- Agent router → Model selection: classifies prompt
- Agent router → General chat: dispatches
- Agent router → Web search: dispatches
- Agent router → Code artifacts: dispatches
- Agent router → PDF authoring: dispatches
- Agent router → Slide authoring: dispatches
- Agent router → Image generation: dispatches
- Agent router → PDF question answering: dispatches
- Agent router → Image understanding: dispatches
- Web search → General chat: hands off results
- Web search → Tavily search: searches web
- General chat → Model selection: gets model
- Code artifacts → Model selection: gets model
- PDF question answering → Qdrant vectors: retrieves vectors
- PDF question answering → Model selection: gets model
- PDF authoring → AWS S3 files: uploads output
- Slide authoring → AWS S3 files: uploads output
- Agent request handler → Session and memory cache: updates memory
- Agent request handler → Conversation API: persists response
- Conversation API → Conversation records: reads and writes
- Conversation API → Message history: reads and writes
- API gateway → Billing API: proxies request
- Billing API → Razorpay checkout: creates order
- Billing API → Payment records: records payment
- Billing API → Auth and credits: applies plan
- Auth and credits → User records: updates credits
