DeepResearch Agent is an advanced, AI-powered assistant designed to automate the entire research lifecycle. It goes beyond simple search by planning its own research strategy, collecting information from multiple sources, performing multi-perspective analysis, and synthesizing its findings into a comprehensive, structured report.
This project is built on a modern, agentic architecture using LangChain and LangGraph, allowing for flexible, robust, and stateful execution of complex research tasks.
- 🤖 Autonomous Research Pipeline: Define a high-level research query, and the agent handles the rest, from planning to report generation.
- 🧠 Dynamic Planning & Execution: Powered by LangGraph, the agent can create and adapt its research plan, and even loop back to previous steps to self-correct.
- 🌐 Multi-Source Data Collection: Fetches and analyzes content from multiple web sources to provide a comprehensive view.
- 🔬 In-depth Content Analysis: Extracts key points, assesses source credibility, and identifies key themes and topics from the collected data.
- 📊 Comprehensive Report Generation: Automatically generates well-structured and detailed reports from the synthesized findings.
- 💬 Interactive Chat Interface: Engage in a conversation with the agent to ask follow-up questions or clarify results.
- 🔄 Real-time Progress Tracking: A live-updating UI shows you exactly what the agent is doing at every stage of the research process.
The project uses a modern stack designed for building robust, AI-powered applications.
The core of this project is a stateful agent built with LangGraph. Unlike a simple, linear script, this agent operates as a graph, where each step of the research process is a node. The agent can transition between these nodes based on conditional logic (edges), allowing it to make decisions, handle errors gracefully, and even loop back to previous steps to improve its work.
For a detailed breakdown of the architecture, see our Improvement Proposal.
Follow these instructions to set up and run the project locally.
- Python: Version 3.10+
- Node.js: Version 18+
- DeepSeek API Key: You will need a free API key from DeepSeek to power the agent.
First, set up and run the Python backend from the project root.
# 1. Set up your environment variables
# From the project root, copy the example file to a new .env file
cp .env.example .env
# Now, open the .env file and add your DeepSeek API key:
# DEEPSEEK_API_KEY="your_deepseek_api_key_here"
# 2. Create and activate a Python virtual environment
python3 -m venv venv
source venv/bin/activate
# 3. Install the required Python packages
pip install -r requirements.txt
# 4. Start the backend server
cd backend && python app/main.py
The backend server should now be running at http://localhost:8000.
In a new terminal window, set up and run the React frontend.
# 1. Navigate to the frontend directory
cd frontend
# 2. Install the required Node.js packages
npm install
# 3. Start the frontend development server
npm startThe frontend development server will start, and your browser should automatically open to http://localhost:3000.
This project is under active development. Our future plans are guided by our Improvement Proposal and include:
- Phase 1: Foundational LangChain Refactoring
- Phase 2: Implement True RAG Pipeline
- Integrate a search tool (e.g., Tavily) to find relevant sources dynamically.
- Build a vector store for efficient information retrieval.
- Phase 3: Full Agentic Refactoring
- Convert the entire pipeline into a set of tools for a master agent.
- Implement reflection and self-correction loops.
Contributions are welcome! We are excited to see how the community can help improve the DeepResearch Agent. Please feel free to open an issue or submit a pull request.
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature-name). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.