A personal AI assistant built in Python β evolved through 6 major versions from a basic voice assistant to a full production-grade multi-agent AI platform.
JARVIS (Just A Rather Very Intelligent System) is a personal AI assistant inspired by Tony Stark's iconic AI companion. Built entirely in Python, this project documents the complete evolution of an AI assistant β from its first "Hello, how can I help you?" to a production-ready multi-agent platform capable of autonomous task planning and execution.
Each version is a complete, standalone project that introduces new concepts, patterns, and capabilities.
| Version | Name | Key Capability |
|---|---|---|
| v1 | Basic Voice Assistant | Voice I/O, Wikipedia, browser control |
| v2 | Smart AI Assistant | GPT-powered brain, wake word detection |
| v3 | Real JARVIS β Agent Architecture | Modular tools, memory, AI-driven tool selection |
| v4 | Autonomous AI Agent | Multi-step task planning & execution |
| v5 | Multi-Agent AI System | Manager β Planner / Research / Executor / Critic |
| v6 | Production AI Platform | FastAPI backend, SQLite memory, browser dashboard |
| v7 | Intelligent AI Platform | OpenAI function calling, streaming (SSE), web UI, persistent memory |
"The foundation" β Voice in, voice out.
JARVIS begins as a simple voice assistant that listens to spoken commands and responds with text-to-speech output. No AI, no cloud β just Python doing what Python does best.
Capabilities:
- ποΈ Voice input via microphone
- π Text-to-speech responses (pyttsx3)
- β° Time & date queries
- π Wikipedia lookups
- π Browser control (open websites)
cd "VERSION 1 BASIC VOICE ASSISTANT"
python jarvis_final.py"Give JARVIS a real brain" β GPT enters the chat.
OpenAI's GPT is integrated as the fallback brain. Anything JARVIS doesn't know how to handle natively is sent to GPT for an intelligent response. Wake word detection means JARVIS is always listening.
New in v2:
- π€ OpenAI GPT-4o-mini integration
- π£οΈ Wake word activation
- β Unknown commands answered by GPT
- π¬ Conversational context
cd "VERSION 2 SMART AI ASSISTANT (JARVIS UPGRADE)"
python jarvis_v2.py"Stop hard-coding everything" β Tools, engine, memory.
A complete architectural rewrite. JARVIS now has a modular tool system where each capability is a separate tool, an AI engine decides which tool to use, and a memory system remembers what was said.
Architecture:
jarvis_v3.py (main loop)
βββ engine.py β AI decides which tool to call
βββ tools.py β all capabilities registered as tools
βββ memory.py β conversation history
βββ detection.py β wake word system
New in v3:
- π§ Modular tool registry
- π§ AI-driven tool selection engine
- πΎ Persistent memory system
- π Web research capability
- π‘οΈ Wake word system (dedicated module)
cd "VERSION 3 REAL JARVIS SYSTEM"
python "MAIN JARVIS LOOP/jarvis_v3.py""Don't just answer β act." β Multi-step task planning.
JARVIS can now plan and execute multi-step tasks autonomously. Given a complex goal, it breaks it down into steps, executes them in sequence, and reports results.
New in v4:
- π Task planning (goal β steps)
- β‘ Sequential step execution
- π Autonomous retry & error handling
- π Execution logging
cd "VERSION 4 AUTONOMOUS AI AGENT SYSTEM"
python tools.py"One agent isn't enough." β JARVIS becomes an organization.
Inspired by real AI research teams, v5 introduces a full multi-agent pipeline. A Manager agent receives the user request and delegates to specialized sub-agents, all reviewed by a Critic agent before the final response is delivered.
Agent Pipeline:
User Request
β
Manager Agent β decides which agents are needed
β
ββββββββββββββββββββββββββββ
β Planner β Research β Executor β
ββββββββββββββββββββββββββββ
β
Critic Agent β reviews & improves output
β
Memory Store β saves everything
β
Final Response
New in v5:
- π’ Multi-agent orchestration
- π¬ Dedicated Research agent
- π― Dedicated Executor agent
- β Critic agent for quality control
- ποΈ Shared memory across agents
cd "VERSION 5 MULTI-AGENT AI SYSTEM (JARVIS ORGANIZATION)"
python orchestrator.py"Ship it." β JARVIS goes to production.
The final form: a fully productionized AI platform with a REST API backend, SQLite-backed persistent memory, a browser-based dashboard, and a decoupled voice client. Everything runs as separate services.
Architecture:
Voice / Chat UI (browser dashboard)
β
FastAPI Gateway (port 8000)
β
AI Brain (GPT-4o-mini)
β
βββββββΌβββββββ
Tools DB Web
New in v6:
- π FastAPI REST backend
- π SQLite persistent memory
- π₯οΈ Browser dashboard (HTML/JS frontend)
- π Decoupled voice client
- π‘ Full REST API with interactive docs
- π οΈ Tool registry via API
# Terminal 1 β start the backend
run_backend.bat
# Terminal 2 β voice client
run_client.bat
# Or open the browser dashboard
run_frontend.batAPI available at: http://localhost:8000
Interactive docs at: http://localhost:8000/docs
"The brain rewires itself" β the assistant decides when to use tools.
The next-generation platform. JARVIS now uses OpenAI function calling to choose tools on its own, streams responses token-by-token over Server-Sent Events, keeps a rolling conversation context in SQLite, and serves a built-in web UI. The full project lives in the VERSION 7 INTELLIGENT AI PLATFORM (JARVIS NEXT-GEN)/ folder.
New in v7:
- π§ OpenAI function calling (model-driven tool selection)
- β‘ Streaming responses via Server-Sent Events (SSE)
- ποΈ Persistent memory with rolling conversation context
- π₯οΈ Built-in web UI served at
/ui - π οΈ Expanded tools: Google, Wikipedia, weather, reminders, screenshots, open files/apps, time
- π No bundled keys β bring your own in a local
.env
# cd into "VERSION 7 INTELLIGENT AI PLATFORM (JARVIS NEXT-GEN)", then:
install.bat # install dependencies
copy .env.example .env # then add your own OPENAI key
run_backend.bat # start the serverWeb UI at: http://localhost:8000/ui β or run run_client.bat for the voice/text client.
JARVIS/
βββ VERSION 1 BASIC VOICE ASSISTANT/
β βββ jarvis.py
β βββ jarvis_final.py
β βββ run_jarvis.bat
βββ VERSION 2 SMART AI ASSISTANT (JARVIS UPGRADE)/
β βββ jarvis_v2.py
β βββ VERSION 3 REAL JARVIS SYSTEM (AI AGENT ARCHITECTURE)/ β v3 lives inside v2
β βββ AI BRAIN (TOOL DECISION ENGINE)/engine.py
β βββ MAIN JARVIS LOOP (FULL SYSTEM)/jarvis_v3.py β v3 entry point
β βββ MEMORY SYSTEM (NEW)/memory.py
β βββ TOOL SYSTEM (REAL POWER CORE)/tools.py
β βββ WAKE WORD SYSTEM (IMPROVED VERSION)/detection.py
βββ VERSION 4 AUTONOMOUS AI AGENT SYSTEM/
β βββ tools.py β entry point (run this)
β βββ planner.py
β βββ memory.py
β βββ toolsystem.py
βββ VERSION 5 MULTI-AGENT AI SYSTEM (JARVIS ORGANIZATION)/
β βββ orchestrator.py β main entry point
β βββ manager.py
β βββ planner.py
β βββ research.py
β βββ executor.py
β βββ critic.py
β βββ memory.py
βββ VERSION 6 PRODUCTION AI SYSTEM (JARVIS PLATFORM)/
β βββ backend/
β β βββ main.py β FastAPI server
β β βββ tools.py β tool registry
β β βββ memory.py β SQLite database
β βββ client/client.py β voice client
β βββ frontend/index.html β browser dashboard
β βββ requirements.txt
β βββ run_backend.bat
β βββ run_client.bat
β βββ run_frontend.bat
βββ VERSION 7 INTELLIGENT AI PLATFORM (JARVIS NEXT-GEN)/
β βββ backend/
β β βββ main.py β FastAPI server (function calling, SSE)
β β βββ tools.py β tool registry + schemas
β β βββ memory.py β SQLite memory + rolling context
β βββ client/client.py β voice/text client
β βββ frontend/index.html β web UI (served at /ui)
β βββ requirements.txt
β βββ .env.example
β βββ install.bat
β βββ install_voice.bat
β βββ run_backend.bat
β βββ run_client.bat
βββ jarvis_showcase.html β visual showcase page
βββ AGENTS.md
βββ README.md
- Python 3.10+
- A microphone (for voice versions)
- An OpenAI API key (optional β all versions include local fallback)
pip install openai fastapi uvicorn speechrecognition pyttsx3 wikipedia requests beautifulsoup4 pyautogui# Windows (permanent)
setx OPENAI_API_KEY "sk-your-key-here"
# Linux / macOS
export OPENAI_API_KEY="sk-your-key-here"Note: All versions work without an API key using local fallback logic. You only need a key to unlock full AI responses.
| Technology | Purpose |
|---|---|
| Python 3.10+ | Core language |
| OpenAI GPT-4o-mini | AI brain & reasoning |
| FastAPI + Uvicorn | Production API server (v6) |
| SQLite | Persistent memory (v6) |
| SpeechRecognition | Voice input |
| pyttsx3 | Text-to-speech output |
| Wikipedia API | Knowledge lookups |
| BeautifulSoup4 | Web research & scraping |
| PyAutoGUI | Desktop automation |
v1 βββΊ Voice I/O + basic commands
v2 βββΊ GPT brain + wake word
v3 βββΊ Agent architecture + tool system
v4 βββΊ Autonomous planning + execution
v5 βββΊ Multi-agent organization
v6 βββΊ Production platform + REST API
v7 βββΊ Intelligent platform: function calling + streaming + web UI
Avijit Saha Apu β @191Avi
Building JARVIS, one version at a time.