An autonomous multi-agent pipeline that researches any topic β searches, reads, writes, and critiques its own work.
ResearchMind is a multi-agent AI system that automates the entire research workflow β from a single topic input to a polished, self-reviewed research report β with zero manual effort.
Instead of one large model trying to do everything, ResearchMind breaks the task into four specialized agents, each with a narrow, well-defined job, working together in a pipeline. This mirrors how a real research team operates: someone gathers sources, someone reads and digs deeper, someone writes it up, and someone reviews it critically before it ships.
This project was built to demonstrate practical, production-style agentic AI system design β tool-calling agents, LCEL chains, structured state passing between stages, and a polished UI layer β rather than a single prompt-in/prompt-out wrapper.
Give it any topic β "Quantum computing breakthroughs in 2026", "CRISPR gene editing", "Fusion energy progress" β and it will:
- π Search the live web for recent, reliable sources
- π Scrape and extract deep content from the most relevant source
- βοΈ Draft a structured, multi-section research report
- π§ Critically review and score its own report
- β¬οΈ Let you download the final report as Markdown
No installation needed β open the link, type a topic, and watch the four agents work in real time.
| Landing Page | Pipeline in Action | Final Report |
|---|---|---|
![]() |
![]() |
![]() |
- π€ True multi-agent architecture β 4 independent agents/chains, not one monolithic prompt
- π Live web-grounded research β real-time search via Tavily, not hallucinated facts
- π Autonomous web scraping β reads full page content beyond search snippets
- π§ Self-critique loop β a dedicated Critic agent scores and reviews the final report
- π Real-time pipeline visualization β watch each agent's status live (waiting β running β done)
- β¬οΈ Exportable output β download the finished report as a
.mdfile - π¨ Custom-designed UI β fully custom dark-themed Streamlit interface, not default styling
βββββββββββββββββββ
User Topic βββΆ β Search Agent β β Tavily web search (Titles, URLs, Snippets)
ββββββββββ¬ββββββββββ
βΌ
βββββββββββββββββββ
β Reader Agent β β Scrapes most relevant URL for deep content
ββββββββββ¬ββββββββββ
βΌ
βββββββββββββββββββ
β Writer Chain β β Synthesizes findings into structured report
ββββββββββ¬ββββββββββ
βΌ
βββββββββββββββββββ
β Critic Chain β β Scores & reviews the report (1β10 + feedback)
ββββββββββ¬ββββββββββ
βΌ
Final Report + Feedback (downloadable)
Search Agent and Reader Agent are true tool-calling agents (built with LangChain's create_agent) that decide how to use their tools (web_search, scrape_url). Writer Chain and Critic Chain are LCEL (prompt | llm | parser) chains β deterministic, single-purpose steps that transform state into the next stage's input.
| Layer | Technology |
|---|---|
| LLM | Mistral AI (mistral-medium-3-5) via langchain-mistralai |
| Agent Orchestration | LangChain create_agent + LangGraph |
| Web Search | Tavily API |
| Web Scraping | requests + BeautifulSoup4 |
| UI / Frontend | Streamlit (custom CSS, no default theme) |
| Deployment | Streamlit Community Cloud |
| Language | Python 3.10+ |
ResearchMind-Multi-Agent-AI/
βββ app.py # Streamlit UI β main entry point for deployment
βββ agents.py # Agent + chain definitions (search, reader, writer, critic)
βββ pipeline.py # CLI-based pipeline runner (for local/terminal use)
βββ tools.py # Custom tools: web_search (Tavily), scrape_url (BeautifulSoup)
βββ requirements.txt # Python dependencies
βββ .gitignore # Excludes .env, .venv, __pycache__
βββ README.md
- Python 3.10 or higher
- A Mistral AI API key
- A Tavily API key (free tier available)
1. Clone the repository
git clone https://github.com/garvkumarsharma/ResearchMind-Multi-Agent-AI.git
cd ResearchMind-Multi-Agent-AI2. Create and activate a virtual environment
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate3. Install dependencies
pip install -r requirements.txt4. Set up environment variables
Create a .env file in the project root:
MISTRAL_API_KEY=your_mistral_api_key_here
TAVILY_API_KEY=your_tavily_api_key_here
β οΈ Never commit your.envfile. It's already excluded via.gitignore.
5. Run the app
To launch the Streamlit UI:
streamlit run app.pyOr, to run the pipeline directly from the terminal (no UI):
python pipeline.pyThe app will open at http://localhost:8501.
This project is deployed on Streamlit Community Cloud, connected directly to this GitHub repository.
If you'd like to deploy your own fork:
- Push your fork to GitHub
- Go to share.streamlit.io β Create app
- Point it at your repo, branch
main, main fileapp.py - Under Advanced settings β Secrets, add:
MISTRAL_API_KEY = "your_key_here" TAVILY_API_KEY = "your_key_here"
- Deploy π
- Add support for multiple LLM providers (OpenAI, Gemini) via a model switcher
- PDF export in addition to Markdown
- Conversation memory for follow-up/refinement queries
- Unit tests for agents and tools
Garv Kumar Sharma
- GitHub: @garvkumarsharma
- LinkedIn: linkedin.com/in/garv-kumar-sharma
- Email: garvdhiman2004@gmail.com
This project is open source and available under the MIT License.
If you found this project interesting, consider giving it a β on GitHub!


