A powerful multi-modal AI assistant powered by Supervisor Agent Architecture, specialized domain agents, and advanced tools for research, finance, travel, shopping, jobs, and recipes.
Previously: Basic mem0 + Anam avatar with single LLM
Now: Full supervisor-orchestrated multi-agent system with:
- โ Specialized agents for 6 different domains
- โ Intelligent routing based on user intent
- โ Parallel processing capabilities
- โ Long-term memory with Mem0
- โ Multi-modal interactions (text)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Streamlit Frontend โ
โ (Text / voice) โ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Backend โ
โ /multi-agent/stream Endpoint โ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SUPERVISOR AGENT (LangGraph) โ
โ โข Intent Classification โ
โ โข Domain Routing โ
โ โข Context Management โ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
โ โ โ โ
โผ โผ โผ โผ
โโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโ
โResearchโ โ Finance โ โTravel โ โShopping โ
โ Agent โ โ Agent โ โ Agent โ โ Agent โ
โโโโโฌโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโ
โ
โโโโโผโโโโโ โโโโโโโโโโโโ
โ Jobs โ โ Recipes โ
โ Agent โ โ Agent โ
โโโโโโโโโโ โโโโโโโโโโโโ
โ
โโ Tools & Services โโ
โ โ
โโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ SerpApi โ Mem0 โ ChromaDB โ Groq โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ External APIs & Knowledge Bases โ
โ โข Google Search/Jobs/Flights/Recipes โ
โ โข Zep Knowledge Graph โ
โ โข Vector Database โ
โ โข LLM Providers โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Agent | Purpose | Tools |
|---|---|---|
| ๐ Research | Web research, articles, information gathering | News search, ChromaDB RAG, document retrieval |
| ๐ฐ Finance | Financial info, stocks, investment advice | Financial news, market data, guidance |
| Flights, hotels, trip planning | Flight search, hotel booking, guides | |
| ๐๏ธ Shopping | Product recommendations | Product search, price comparison |
| ๐ผ Jobs | Job search, career advice | Google Jobs, resume tips, guidance |
| ๐จ๐ณ Recipes | Recipe discovery with ratings | Recipe search, ingredients, cooking tips |
- ๐ฃ๏ธ Unified Voice & Chat - Semantic voice interaction with auto-summarization
- ๐ Smart Summaries - Tabbed view with concise spoken summaries and full detail
- ๐ฅ AI Video Avatar - Anam AI integration (demo mode available)
- ๐ง Long-term Memory - Mem0 integration (never forgets)
- ๐ Retrieval-Augmented Generation - ChromaDB + Groq for multi-PDF context
- ๐ Knowledge Graph - Zep Cloud for structured entity relationships
- โก Parallel Processing - Concurrent agent execution
- ๐ค Intelligent Routing - Automatic domain classification
| Component | Technology |
|---|---|
| Agent Orchestration | LangGraph with Supervisor pattern |
| LLM | Groq (Llama 3.1 / Mixtral) |
| Memory | Mem0 (persistent, never forgets) |
| Vector DB | ChromaDB for RAG |
| Web Tools | SerpApi for search/jobs/flights/recipes |
| Knowledge Graph | Zep Cloud |
| Backend | FastAPI with streaming |
| Frontend | Streamlit |
| AI Avatar | Anam AI (optional) |
- Python 3.12+
- UV package manager
uv syncCopy .env.example to .env and fill in your API keys:
cp .env.example .envRequired API Keys:
GROQ_API- Get from Groq - Primary Intelligence & Voice ProviderSERPAPI_KEY- Get from SerpApiMEM0_API_KEY- Get from Mem0
Populate the knowledge graph with your data:
python scripts/ingest_to_graph.pyuvicorn backend:app --port 8000 --reloadstreamlit run app_v2.py- Streamlit UI: http://localhost:8501
- API Docs: http://localhost:8000/docs
- Backend Health: http://localhost:8000/health
POST /mem0/session
- Create user session in Mem0
Request:
{
"user_id": "demo-user",
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com"
}
POST /route
- Get supervisor routing decision
Request:
{
"user_id": "demo-user",
"session_id": "session-demo-user",
"message": "Find me a job as a data scientist",
"conversation_history": [...]
}
Response:
{
"recommended_agent": "jobs",
"classified_domain": "jobs",
"context": {...}
}
POST /multi-agent/stream
- Stream response from appropriate specialized agent
Request:
{
"user_id": "demo-user",
"session_id": "session-demo-user",
"message": "Show me flights to NYC",
"mode": "text",
"conversation_history": [...]
}
Returns: Server-Sent Events (SSE) stream
GET /health
GET /agents
GET /zep/test-graph?q=<query>
- User sends message โ "Find me a data scientist job"
- Supervisor Agent analyzes intent using LLM
- Domain Classification โ "jobs" domain detected
- Route to Specialist โ Jobs Agent selected
- Execute Tools โ SerpApi Google Jobs search
- Generate Response โ Jobs agent streams response
- Save Memory โ Store in Mem0 + Zep for future context
- Persistent Memory: Survives across sessions
- Semantic Search: Find relevant past interactions
- User Profile: Build understanding of preferences
- Thread Memory: Conversation history
- Knowledge Graph: Entity relationships
- User Context: Automatic context extraction
Example memory usage:
# Add memory
await mem0_service.add_memory(
user_id="demo-user",
message="Interested in Python data science roles",
metadata={"domain": "jobs", "query": "data scientist"}
)
# Retrieve memories
memories = await mem0_service.retrieve_memories(
user_id="demo-user",
query="jobs I'm interested in"
)User: "What are the best flights to Tokyo?"
โ Routed to Travel Agent
โ Uses SerpApi flight search
โ Returns options with prices
# User query
"What are the latest developments in quantum computing?"
# Supervisor routes to Research Agent
# Research Agent:
# 1. Searches recent news via SerpApi
# 2. Queries ChromaDB for relevant documents
# 3. Uses Groq LLM for RAG synthesis
# 4. Streams response to user
# Example response flow:
news_results = await serpapi_service.search_news(
"quantum computing latest", num_results=5
)
doc_results = await chromadb_service.query_documents(
"quantum computing breakthroughs"
)
response = await chromadb_service.generate_rag_response(
query="quantum computing developments",
context_documents=doc_results
)- LangGraph Guide: https://langchain-ai.github.io/langgraph/
- LangGraph Guide: https://langchain-ai.github.io/langgraph/
- See full demo: Check
zep_demo.ipynbfor detailed examples
Contributions welcome! Feel free to:
- Add new specialized agents for other domains
- Improve routing logic
- Add new tools/integrations
- Enhance memory management
- Submit pull requests
This project is open source. See LICENSE for details.
Multi-Agent Systems:
- Agent design patterns
- Supervisor/hierarchical architectures
- Tool selection and execution
- Memory management strategies
Our Stack:
- LangGraph for orchestration
- Specialized agent patterns
- RAG implementation
Built with โค๏ธ using LangGraph, Anam AI, and modern AI tools