# nivedhitha0705/multi-agent-ai-system architecture

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

- Interactive diagram: https://gitdiagram.com/nivedhitha0705/multi-agent-ai-system
- Repository: https://github.com/nivedhitha0705/multi-agent-ai-system

## Overview

The repository contains three separate user-facing products. The main workflow is a terminal user submitting a request to the multi-agent orchestrator, which selects research/content, software-development, or planning work; specialist agents use a shared Gemini runner, and research also searches the web. Separately, a Flask café site serves pages and a Tkinter calculator evaluates button-entered expressions. Agent and café relationships are supported by excerpts; the calculator is represented only at the sampled-file level.

Main entry points: [`agents/orchestrator.py`](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/orchestrator.py) (Task Router), [`agents/base_agent.py`](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/base_agent.py) (Gemini Runner), [`agents/research.py`](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/research.py) (Research Agent), [`cafe-website/app.py`](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/app.py) (Flask Routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_agent_workflows["Agent Workflows"]
  node_main["CLI Loop<br/>[main.py]"]
  node_orchestrator["Task Router<br/>[orchestrator.py]"]
  node_research_agent["Research Agent<br/>[research.py]"]
  node_writer_agent["Writer Agent<br/>[writer.py]"]
  node_coding_agent["Coding Agent<br/>[coder.py]"]
  node_reviewer_agent["Review Agent<br/>[reviewer.py]"]
  node_tester_agent["Testing Agent<br/>[tester.py]"]
  node_task_manager["Task Manager<br/>[task_manager.py]"]
end

subgraph group_agent_runtime["Agent Runtime"]
  node_agent_runner["Gemini Runner<br/>[base_agent.py]"]
  node_search_tool["Web Search<br/>[search.py]"]
end

subgraph group_cafe_site["Café Website"]
  node_cafe_app["Flask Routes<br/>[app.py]"]
  node_cafe_templates["Page Templates"]
  node_cafe_home["Home Page<br/>[index.html]"]
  node_cafe_menu["Menu Page<br/>[menu.html]"]
  node_cafe_base["Shared Layout<br/>[base.html]"]
  node_cafe_css["Site Styles<br/>[style.css]"]
end

subgraph group_calculator_app["Calculator"]
  node_calculator["Calculator UI<br/>[calculator.py]"]
end

node_terminal_user(("Terminal User"))
node_gemini["Gemini API"]
node_web_search_service["Search Provider"]
node_cafe_visitor(("Café Visitor"))
node_calculator_user(("Calculator User"))

node_terminal_user -->|"enters requests"| node_main
node_main -->|"routes input"| node_orchestrator
node_orchestrator -->|"dispatches research"| node_research_agent
node_orchestrator -->|"dispatches writing"| node_writer_agent
node_orchestrator -->|"dispatches coding"| node_coding_agent
node_orchestrator -->|"dispatches review"| node_reviewer_agent
node_orchestrator -->|"dispatches testing"| node_tester_agent
node_orchestrator -->|"dispatches planning"| node_task_manager
node_research_agent -->|"searches topic"| node_search_tool
node_research_agent -->|"synthesizes results"| node_agent_runner
node_writer_agent -->|"generates content"| node_agent_runner
node_coding_agent -->|"generates code"| node_agent_runner
node_reviewer_agent -->|"reviews code"| node_agent_runner
node_tester_agent -->|"writes tests"| node_agent_runner
node_task_manager -->|"plans tasks"| node_agent_runner
node_agent_runner -->|"requests generation"| node_gemini
node_search_tool -->|"queries web"| node_web_search_service
node_cafe_visitor -.->|"requests pages"| node_cafe_app
node_cafe_app -->|"renders home"| node_cafe_home
node_cafe_app -->|"renders menu"| node_cafe_menu
node_cafe_templates -.->|"provides layout"| node_cafe_base
node_cafe_base -->|"loads stylesheet"| node_cafe_css
node_calculator_user -->|"clicks buttons"| node_calculator

click node_main "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/main.py"
click node_orchestrator "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/orchestrator.py"
click node_research_agent "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/research.py"
click node_writer_agent "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/writer.py"
click node_coding_agent "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/coder.py"
click node_reviewer_agent "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/reviewer.py"
click node_tester_agent "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/tester.py"
click node_task_manager "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/task_manager.py"
click node_agent_runner "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/base_agent.py"
click node_search_tool "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/tools/search.py"
click node_cafe_app "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/app.py"
click node_cafe_templates "https://github.com/nivedhitha0705/multi-agent-ai-system/tree/main/cafe-website/templates"
click node_cafe_home "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/templates/index.html"
click node_cafe_menu "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/templates/menu.html"
click node_cafe_base "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/templates/base.html"
click node_cafe_css "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/static/style.css"
click node_calculator "https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/calculator.py"

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_main,node_orchestrator,node_research_agent,node_writer_agent,node_coding_agent,node_reviewer_agent,node_tester_agent,node_task_manager,node_terminal_user,node_calculator_user toneBlue
class node_agent_runner,node_search_tool toneAmber
class node_cafe_app,node_cafe_templates,node_cafe_home,node_cafe_menu,node_cafe_base,node_cafe_css,node_gemini toneMint
class node_calculator toneRose
class node_web_search_service,node_cafe_visitor toneIndigo
```

## Components

### Agent Workflows

- [CLI Loop](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/main.py): `main.py`
- [Task Router](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/orchestrator.py): `agents/orchestrator.py`
- [Research Agent](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/research.py): `agents/research.py`
- [Writer Agent](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/writer.py): `agents/writer.py`
- [Coding Agent](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/coder.py): `agents/coder.py`
- [Review Agent](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/reviewer.py): `agents/reviewer.py`
- [Testing Agent](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/tester.py): `agents/tester.py`
- [Task Manager](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/task_manager.py): `agents/task_manager.py`

### Agent Runtime

- [Gemini Runner](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/agents/base_agent.py): `agents/base_agent.py`
- [Web Search](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/tools/search.py): `tools/search.py`

### Café Website

- [Flask Routes](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/app.py): `cafe-website/app.py`
- [Page Templates](https://github.com/nivedhitha0705/multi-agent-ai-system/tree/main/cafe-website/templates): `cafe-website/templates`
- [Home Page](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/templates/index.html): `cafe-website/templates/index.html`
- [Menu Page](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/templates/menu.html): `cafe-website/templates/menu.html`
- [Shared Layout](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/templates/base.html): `cafe-website/templates/base.html`
- [Site Styles](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/cafe-website/static/style.css): `cafe-website/static/style.css`

### Calculator

- [Calculator UI](https://github.com/nivedhitha0705/multi-agent-ai-system/blob/main/calculator.py): `calculator.py`

### Other components

- **Terminal User**
- **Gemini API**
- **Search Provider**
- **Café Visitor**
- **Calculator User**

## Connections

- Terminal User → CLI Loop: enters requests (evidence: `main.py`)
- CLI Loop → Task Router: routes input (evidence: `main.py`)
- Task Router → Research Agent: dispatches research (evidence: `agents/orchestrator.py`)
- Task Router → Writer Agent: dispatches writing (evidence: `agents/orchestrator.py`)
- Task Router → Coding Agent: dispatches coding (evidence: `agents/orchestrator.py`)
- Task Router → Review Agent: dispatches review (evidence: `agents/orchestrator.py`)
- Task Router → Testing Agent: dispatches testing (evidence: `agents/orchestrator.py`)
- Task Router → Task Manager: dispatches planning (evidence: `agents/orchestrator.py`)
- Research Agent → Web Search: searches topic (evidence: `agents/research.py`)
- Research Agent → Gemini Runner: synthesizes results (evidence: `agents/research.py`)
- Writer Agent → Gemini Runner: generates content (evidence: `agents/writer.py`)
- Coding Agent → Gemini Runner: generates code (evidence: `agents/coder.py`)
- Review Agent → Gemini Runner: reviews code (evidence: `agents/reviewer.py`)
- Testing Agent → Gemini Runner: writes tests (evidence: `agents/tester.py`)
- Task Manager → Gemini Runner: plans tasks (evidence: `agents/task_manager.py`)
- Gemini Runner → Gemini API: requests generation (evidence: `agents/base_agent.py`)
- Web Search → Search Provider: queries web (evidence: `tools/search.py`)
- Café Visitor → Flask Routes: requests pages
- Flask Routes → Home Page: renders home (evidence: `cafe-website/app.py`)
- Flask Routes → Menu Page: renders menu (evidence: `cafe-website/app.py`)
- Page Templates → Shared Layout: provides layout
- Shared Layout → Site Styles: loads stylesheet
- Calculator User → Calculator UI: clicks buttons (evidence: `calculator.py`)
