DeerFlow bridges the gap between large language models and functional tools, including web search, web crawling, and Python execution. Built on a modular multi-agent architecture using LangGraph, the system automates complex research and code analysis through a streamlined, high-performance workflow.
DeerFlow provides broad model support via litellm, making it compatible with various providers and open-source models like Qwen. It features an OpenAI-compatible API and employs a tiered LLM system to match task complexity with the appropriate model.
Tools and MCP integration
Human-in-the-loop
tiptap, offering an experience similar to Notion. Users can use AI to polish, shorten, or expand specific sections of the report.Content creation
Beyond reports, DeerFlow can generate podcast scripts and synthesize audio. It also supports the creation of customized PowerPoint decks derived from templates.
DeerFlow is built with a Python backend and a Node.js web frontend. The following tools are recommended to streamline the installation process:
uv: Manages Python environments and dependencies automatically, eliminating manual setup.nvm: Manages multiple Node.js versions.pnpm: Handles Node dependency installation and management.System requirements:
Installation steps:
Clone the repository:
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
Install dependencies:
uv sync
Configure the .env file. Add your API keys for Tavily, Brave Search, and other services. Volcengine TTS credentials should be added here if needed:
cp .env.example .env
Configure conf.yaml for LLM models and API keys:
cp conf.yaml.example conf.yaml
Install marp for PowerPoint generation:
brew install marp-cli
(Optional) Install web UI dependencies:
cd deer-flow/web
pnpm install
Refer to the Configuration Guide for comprehensive details. Ensure all settings are updated before launching the application.
The fastest way to initiate DeerFlow is through the console interface:
uv run main.py
For a more robust experience, use the web UI. Ensure the web dependencies are installed first.
On macOS/Linux, start both the backend and frontend in development mode:
./bootstrap.sh -d
On Windows:
bootstrap.bat -d
Navigate to http://localhost:3000 to access the web interface.
Configure the SEARCH_API variable in your .env file. Available options include:
TAVILY_API_KEY after signing up at app.tavily.com/home.BRAVE_SEARCH_API_KEY at brave.com/search/api/.Example .env configuration:
# Options: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow utilizes a modular multi-agent architecture with LangGraph providing the foundation for its state-based workflows. System components communicate through a structured messaging protocol.
The workflow components:
Coordinator: This is the entry point for the workflow lifecycle. It initiates research processes based on user input and hands tasks to the Planner. It serves as the primary interface between the user and the system.
Planner: This component decomposes high-level goals into structured execution plans. It evaluates whether sufficient context has been gathered or if further research is required. It manages the overall research flow and determines the optimal time to generate the final report.
Research Team: A collective of specialized agents. Researchers utilize web search, crawlers, and MCP services to collect data. The coding agent uses Python REPL tools for code analysis and execution. Each agent operates within LangGraph and has access to a specific suite of tools.
Report Generator: In the final stage, this component compiles findings from the Research Team. it processes and organizes the gathered information to output a comprehensive, structured report.
DeerFlow integrates Text-to-Speech (TTS) capabilities via the Volcengine API, allowing users to generate high-quality audio from research reports. Parameters such as speed, volume, and pitch are fully customizable.
To use the TTS feature, call the /api/tts endpoint:
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{ "text": "This is a test of the text-to-speech functionality.", "speed_ratio": 1.0, "volume_ratio": 1.0, "pitch_ratio": 1.0 }' \
--output speech.mp3
Tencent HunyuanVideo-1.5: 8.3B Video Model Runs on 14GB GPUs
ReCode: Recursive Code Generation for LLM Agents
LightlyStudio: Reduce Annotation Costs Through Intelligent Data Curation
Liebao VPN Free Trial: 4K Streaming & Easy Setup on Any Device
SpikingBrain: 100x Faster LLM Inference via Spike Sparsity
Flyde Visual Programming: Custom Nodes & Code Integration
Alger Music Player: Play Grayed-Out NetEase Songs with Desktop Lyrics
LeRobot: Train Real-World Robots with Hugging Face's PyTorch Library
Weapp-QRCode: Generating QR Codes in WeChat Mini Programs
TypeAgent: Build AI Agents With Structured Memory and Human-in-the-Loop
sherpa-onnx: Offline Speech Recognition, TTS, and VAD Without the Cloud
PyVideoTrans: Open-Source Video Translation & Dubbing Tool