DeerFlow (Deep Exploration and Efficient Research Flow) ist ein von der Community getriebenes Open-Source-Framework für Tiefenstudien, das von ByteDance entwickelt wurde. Das Projekt baut auf den herausragenden Arbeiten der Open-Source-Community auf und zielt darauf ab, große Sprachmodelle mit professionellen Tools zu kombinieren, darunter Websuche, Web-Crawling und Python-Codeausführung, und gleichzeitig der Open-Source-Community etwas zurückzugeben.
Projektadresse: https://github.com/bytedance/deer-flow
DeerFlow implementiert eine modulare Multi-Agenten-Systemarchitektur, die speziell für automatisierte Forschung und Codeanalyse entwickelt wurde. Das System basiert auf LangGraph und ermöglicht flexible, zustandsbasierte Workflows durch ein klar definiertes Nachrichtenübertragungssystem, in dem Komponenten miteinander kommunizieren.
Das System verwendet einen vereinfachten Workflow, der die folgenden Komponenten umfasst:
Eine Sammlung spezialisierter Agenten zur Ausführung von Plänen:
Jeder Agent hat Zugriff auf bestimmte Tools, die für seine Rolle optimiert sind, und wird innerhalb des LangGraph-Frameworks ausgeführt.
uv
, nvm
und pnpm
# Klonen des Repository
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# Installation der Abhängigkeiten, uv verarbeitet die Python-Interpreter- und Virtual Environment-Erstellung und installiert die erforderlichen Pakete
uv sync
# Konfiguration der Umgebungsvariablen
cp .env.example .env
# Konfigurieren Sie Ihre API-Schlüssel:
# - Tavily: https://app.tavily.com/home
# - Brave Search: https://brave.com/search/api/
# - volcengine TTS: Fügen Sie ggf. Ihre TTS-Anmeldeinformationen hinzu
# Konfiguration des LLM-Modells und der API-Schlüssel
cp conf.yaml.example conf.yaml
# Installation von marp zur PPT-Generierung
brew install marp-cli
uv run main.py
# Zuerst Installation der Web UI-Abhängigkeiten
cd deer-flow/web
pnpm install
# Ausführen des Backends und des Frontends (Entwicklungsmodus)
# macOS/Linux
./bootstrap.sh -d
# Windows
bootstrap.bat -d
Anschließend Zugriff auf http://localhost:3000 zur Nutzung der Web UI.
DeerFlow unterstützt verschiedene Suchmaschinen, die in der Datei .env
mit der Variablen SEARCH_API
konfiguriert werden können:
Konfigurationsbeispiel:
# Wählen Sie eine aus: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow enthält eine Text-to-Speech (TTS)-Funktion, mit der Sie Forschungsberichte in Sprache umwandeln können. Diese Funktion verwendet die volcengine TTS API, um qualitativ hochwertige Audiodaten zu generieren, und unterstützt die Anpassung von Geschwindigkeit, Lautstärke und Tonhöhe.
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "Dies ist ein Test der Text-to-Speech-Funktion.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3
# Ausführen aller Tests
make test
# Ausführen einer bestimmten Testdatei
pytest tests/integration/test_workflow.py
# Ausführen von Coverage-Tests
make coverage
# Ausführen von Code-Checks
make lint
# Formatieren des Codes
make format
DeerFlow verwendet LangGraph als seine Workflow-Architektur. Sie können LangGraph Studio verwenden, um Workflows in Echtzeit zu debuggen und zu visualisieren.
# Installation des uv-Paketmanagers (falls nicht vorhanden)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Installation der Abhängigkeiten und Starten des LangGraph-Servers
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
Nach dem Start des Servers können Sie auf Folgendes zugreifen:
# Ausführen einer bestimmten Abfrage
uv run main.py "Welche Faktoren beeinflussen die Einführung von KI im Gesundheitswesen?"
# Ausführen mit benutzerdefinierten Planparametern
uv run main.py --max_plan_iterations 3 "Wie beeinflusst Quantencomputing die Kryptographie?"
# Ausführen im interaktiven Modus
uv run main.py --interactive
# Anzeigen aller verfügbaren Optionen
uv run main.py --help
DeerFlow enthält einen Mensch-Maschine-Interaktionsmechanismus, mit dem Sie Forschungspläne vor der Ausführung überprüfen, bearbeiten und genehmigen können:
[ACCEPTED]
akzeptieren[EDIT PLAN] Fügen Sie weitere Schritte zur technischen Implementierung hinzu
)Das Projekt enthält mehrere Beispielberichte, die die Funktionen von DeerFlow demonstrieren:
DeerFlow baut auf den herausragenden Arbeiten der Open-Source-Community auf, insbesondere Dank an:
Diese Projekte veranschaulichen die transformative Kraft der Open-Source-Zusammenarbeit, und wir fühlen uns geehrt, DeerFlow auf ihrer Grundlage aufzubauen.