An intelligent deep research agent powered by LangGraph with multi-step reasoning, real-time streaming responses, and modern web interface.
π Quick Start β’ β¨ Features β’ π οΈ Installation β’ π Documentation β’ π€ Contributing
- π§ Smart Workflows: Multi-step reasoning and adaptive plan execution with LangGraph
- π Real-time Streaming: Live updates with Server-Sent Events (SSE)
- π Modern Web UI: Responsive frontend built with Next.js 15
- π Human-in-the-Loop: Interactive plan confirmation and feedback
- π Multi-language: Support for both English and Chinese
- π MCP Integration: Model Context Protocol for extended capabilities
- π Multiple Formats: Text, charts, podcasts, and more
- π³ Docker Ready: Full containerization support
- Core: LangGraph, LangChain, FastAPI
- Package Manager: uv (recommended)
- Database: PostgreSQL (Supabase)
- Search: Tavily, DuckDuckGo, Brave Search, arXiv
- Framework: Next.js 15 (App Router)
- Language: TypeScript 5.0+
- Package Manager: pnpm
- UI: Tailwind CSS, Radix UI
- State: Zustand
- Python 3.12+
- Node.js 18+ and pnpm
- uv package manager (recommended)
- PostgreSQL database (Supabase recommended)
git clone https://github.com/lc708/YADRA-YetAnotherDeepResearchAgent.git
cd YADRA-YetAnotherDeepResearchAgentUsing bootstrap script (Recommended)
# Development mode with hot reload
./bootstrap.sh --dev
# Windows users
bootstrap.bat --devThis will start:
- π Frontend: http://localhost:3000
- π Backend API: http://localhost:8000
- π API Docs: http://localhost:8000/docs
Create .env file in project root:
# Database
DATABASE_URL=your_postgresql_url
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_key
# API
NEXT_PUBLIC_API_URL="http://localhost:8000/api"
DEBUG=True
APP_ENV=development
# Search
SEARCH_API=tavily
TAVILY_API_KEY=your_tavily_key# Copy config template
cp conf.yaml.example conf.yaml
# Edit with your API keys
nano conf.yamlExample conf.yaml:
BASIC_MODEL:
base_url: https://api.openai.com/v1
model: "gpt-4o"
api_key: "your-openai-api-key"
REASONING_MODEL:
base_url: https://api.anthropic.com
model: "claude-3-5-sonnet-20241022"
api_key: "your-anthropic-api-key"- Visit
http://localhost:3000 - Enter your research question
- Configure research parameters (optional)
- Send and watch real-time streaming responses
- View generated artifacts, podcasts, and results
# Create research session
POST /research/create
{
"query": "Your research question",
"research_config": {
"max_plan_iterations": 2,
"max_step_num": 5,
"auto_accepted_plan": false
}
}
# Get session status
GET /research/status/{session_id}
# SSE streaming
GET /research/stream/{session_id}python main.py [options] [query]
Options:
--interactive Interactive mode
--debug Enable debug logging
--max_plan_iterations N Max plan iterations (default: 1)
--max_step_num N Max steps (default: 3)# Local development (recommended)
./bootstrap.sh --dev
# Docker development
docker-compose up -dFrontend: Deploy to Vercel
Backend: Use ./deploy.sh script for cloud deployment
For detailed deployment instructions, please refer to the configuration examples above and the deployment scripts in the repository.
YADRA/
βββ src/ # Backend source
β βββ server/ # FastAPI server
β βββ graph/ # LangGraph workflows
β βββ agents/ # AI agents
β βββ tools/ # Tools and utilities
βββ web/ # Frontend source
β βββ src/app/ # Next.js pages
β βββ components/ # React components
β βββ core/ # Core functionality
βββ scripts/ # Database and utility scripts
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pytest tests/) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Backend
ruff format src/
ruff check src/ --fix
pytest tests/
# Frontend
cd web
pnpm lint
pnpm format
pnpm testThis project is licensed under the MIT License.
Please see our Security Policy for reporting vulnerabilities.
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Issues
- π¬ Discussions: GitHub Discussions
YADRA stands on the shoulders of giants. We're grateful to these amazing open-source projects:
- LangGraph - Multi-agent workflow orchestration
- LangChain - LLM application framework
- LiteLLM - Unified LLM API interface
- Next.js 15 - React framework with App Router
- TipTap - Headless rich text editor
- Novel - Notion-style WYSIWYG editor
- Radix UI - Unstyled, accessible UI primitives
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- Zustand - State management
- FastAPI - Modern Python web framework
- Supabase - Open-source Firebase alternative
- PostgreSQL - Advanced relational database
- uv - Fast Python package manager
- Tavily - AI-powered web search API
- DuckDuckGo Search - Privacy-focused search
- arXiv - Academic paper search
- Jina AI - Web content extraction
YADRA draws inspiration from these pioneering research projects:
- DeerFlow - Prompt templates and workflow patterns
- local-deep-researcher - Local AI research methodologies
- OpenDeepResearch - Open-source research frameworks
Special thanks to these projects for their prompt templates and research methodologies that helped shape YADRA's approach.
- Thanks to all contributors who make YADRA better
- Inspired by the open-source AI research community
- Built with love for researchers, by researchers
Made with β€οΈ by the YADRA community
β Star us on GitHub β’ π Report Issues β’ π‘ Request Features