MultiTaskAssitant: Autonomous Multi-Agent Personal Assistant
A Hierarchical Multi-Agent System that automates your daily workflow by integrating Gmail, Google Calendar, and Web Research into a single natural language interface.
In today's digital workspace, we waste hours switching contexts between emails, calendars, and browser tabs. Intelli-Agent solves this by acting as a central command center.
Unlike standard chatbots that only generate text, this system takes real-world actions. It is built on a Hierarchical Multi-Agent Architecture where a "Supervisor Agent" intelligently delegates tasks to specialized "Worker Agents" (Email, Calendar, Research) to execute complex workflows autonomously.
🧠 Centralized Brain (Supervisor): Intelligently routes user queries to the correct department (Email vs. Calendar vs. Research) using LangGraph.
📧 Email Agent (Gmail): Reads unread emails, summarizes threads, and drafts/sends emails on your behalf.
📅 Calendar Agent (Google Calendar): Checks your schedule, finds free slots, and books new meetings automatically.
🔍 Research Agent (Tavily): Performs real-time web scraping and research (e.g., LinkedIn profiles, Tech News) to provide up-to-date answers.
💻 Dual Interface: * Terminal Mode: Fast, developer-centric CLI.
Streamlit UI: A polished, ChatGPT-like web interface.
💰 Cost-Optimized: Runs entirely on Google Gemini Pro (Free Tier), eliminating high OpenAI API costs.
The system follows a Supervisor-Worker Pattern:
graph TD User[User Request] --> Supervisor[Manager Agent] Supervisor -->|Routing| Email[Email Agent] Supervisor -->|Routing| Calendar[Calendar Agent] Supervisor -->|Routing| Research[Research Agent]
Email --> GmailAPI[Gmail API]
Calendar --> GCalAPI[Google Calendar API]
Research --> Tavily[Tavily Search API]
GmailAPI --> Response
GCalAPI --> Response
Tavily --> Response
Response --> Supervisor
Supervisor --> User
Core Framework: Python 3.10
Orchestration: LangGraph, LangChain
LLM: Google Gemini Pro (via langchain-google-genai)
Tools & APIs:
Google Gmail API
Google Calendar API
Tavily Search API
Environment Management: Conda / Python-Dotenv
- Clone the Repository
git clone https://github.com/your-username/MultiTaskAssitant.git
- Set up Environment
It is recommended to use Conda to avoid version conflicts.
conda create -n ai_assistant python=3.10 -y conda activate ai_assistant pip install -r requirements.txt
- Configure Credentials
Create a .env file in the root directory:
Get from Google AI Studio (Free) GOOGLE_API_KEY=your_gemini_api_key_here
Get from Tavily (Free) TAVILY_API_KEY=your_tavily_api_key_here
- Google Auth Setup
Download credentials.json from Google Cloud Console (Enable Gmail & Calendar APIs).
Place it in the root folder.
Run the auth script to generate token.json:
python setup_auth.py
##6. Usage
Option A: Dashboard (Recommended)
Launch the dashboard interface:
streamlit run ui.py
In the dashboard you can:
- Save
GOOGLE_API_KEYandTAVILY_API_KEYinto.env - Validate Google OAuth using
credentials.json/token.json - Test natural-language commands like calendar meeting scheduling directly
Option B: Terminal Mode
Run the assistant directly in your command line:
python app.py
For running the personal assistant on Slack or Telegram you'll only need to run:
python app.py For running the personal assistant on whatsApp you'll need to run:
python run app_whatsapp.py This will spin out a local fastAPI server, to enable the communication with the Twilio servers you need to make it public using Ngrok:
Expose the Webhook URL Using ngrok
ngrok http 5000 Configure Twilio Webhook
Go to the Twilio Console > Messaging > Sandbox for WhatsApp. In the Sandbox settings section: Set the "WHEN A MESSAGE COMES IN" URL to your ngrok URL and save your configuration. You're done now you can talk with your assistant via whatsApp
Try asking your assistant these questions:
Calendar: "Do I have any meetings today?" or "Schedule a lunch meeting with Rahul tomorrow at 2 PM."
Email: "Check my unread emails and summarize them." or "Send an email to xyz@gmail.com saying I will be late."
Research: "Who is the CEO of OpenAI?" or "Search for the latest news on Python 3.13."
[ ] Notion Integration: Add a "Note-Taking Agent" to save research directly to Notion.
[ ] Slack Integration: Allow the assistant to read/reply to Slack messages.
👨💻 Author: Riya Chandra
Role: AI Engineer
Focus: Building Autonomous Agents & RAG Systems.
Note: This project is for educational purposes. Ensure you handle your credentials.json and token.json securely. My Request:Please stay updated with the new versions of the packages that i have used. Because it may crash with other versions
work flow- the query is asked by the user through twilio and then this query hits the backend of the system and then the backend contact thorugh the post api and then LLM and langchain to give the or handle data to the other agent to use the prompt these prompts would handle the data