English | 简体中文 | 日本語 | Deutsch | Español | Русский | Portuguese
Aus Open Source entstanden, an Open Source zurückgeben.
DeerFlow (Deep Exploration and Efficient Research Flow) ist ein Community-getriebenes Framework für tiefgehende Recherche, das auf der großartigen Arbeit der Open-Source-Community aufbaut. Unser Ziel ist es, Sprachmodelle mit spezialisierten Werkzeugen für Aufgaben wie Websuche, Crawling und Python-Code-Ausführung zu kombinieren und gleichzeitig der Community, die dies möglich gemacht hat, etwas zurückzugeben.
Derzeit ist DeerFlow offiziell in das FaaS-Anwendungszentrum von Volcengine eingezogen. Benutzer können es über den Erfahrungslink online erleben, um seine leistungsstarken Funktionen und bequemen Operationen intuitiv zu spüren. Gleichzeitig unterstützt DeerFlow zur Erfüllung der Bereitstellungsanforderungen verschiedener Benutzer die Ein-Klick-Bereitstellung basierend auf Volcengine. Klicken Sie auf den Bereitstellungslink, um den Bereitstellungsprozess schnell abzuschließen und eine effiziente Forschungsreise zu beginnen.
Besuchen Sie unsere offizielle Website für weitere Details.
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
In dieser Demo zeigen wir, wie man DeerFlow nutzt, um:
DeerFlow ist in Python entwickelt und kommt mit einer in Node.js geschriebenen Web-UI. Um einen reibungslosen Einrichtungsprozess zu gewährleisten, empfehlen wir die Verwendung der folgenden Tools:
uv:
Vereinfacht die Verwaltung von Python-Umgebungen und Abhängigkeiten. uv erstellt automatisch eine virtuelle Umgebung im Stammverzeichnis und installiert alle erforderlichen Pakete für Sie—keine manuelle Installation von Python-Umgebungen notwendig.
nvm:
Verwalten Sie mühelos mehrere Versionen der Node.js-Laufzeit.
pnpm:
Installieren und verwalten Sie Abhängigkeiten des Node.js-Projekts.
Stellen Sie sicher, dass Ihr System die folgenden Mindestanforderungen erfüllt:
# Repository klonen
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# Abhängigkeiten installieren, uv kümmert sich um den Python-Interpreter und die Erstellung der venv sowie die Installation der erforderlichen Pakete
uv sync
# Konfigurieren Sie .env mit Ihren API-Schlüsseln
# Tavily: https://app.tavily.com/home
# Brave_SEARCH: https://brave.com/search/api/
# volcengine TTS: Fügen Sie Ihre TTS-Anmeldedaten hinzu, falls vorhanden
cp .env.example .env
# Siehe die Abschnitte 'Unterstützte Suchmaschinen' und 'Text-zu-Sprache-Integration' unten für alle verfügbaren Optionen
# Konfigurieren Sie conf.yaml für Ihr LLM-Modell und API-Schlüssel
# Weitere Details finden Sie unter 'docs/configuration_guide.md'
cp conf.yaml.example conf.yaml
# Installieren Sie marp für PPT-Generierung
# https://github.com/marp-team/marp-cli?tab=readme-ov-file#use-package-manager
brew install marp-cli
Optional können Sie Web-UI-Abhängigkeiten über pnpm installieren:
cd deer-flow/web
pnpm install
Weitere Informationen finden Sie im Konfigurationsleitfaden.
[!HINWEIS] Lesen Sie den Leitfaden sorgfältig, bevor Sie das Projekt starten, und aktualisieren Sie die Konfigurationen entsprechend Ihren spezifischen Einstellungen und Anforderungen.
Der schnellste Weg, um das Projekt auszuführen, ist die Verwendung der Konsolen-UI.
# Führen Sie das Projekt in einer bash-ähnlichen Shell aus
uv run main.py
Dieses Projekt enthält auch eine Web-UI, die ein dynamischeres und ansprechenderes interaktives Erlebnis bietet.
[!HINWEIS] Sie müssen zuerst die Abhängigkeiten der Web-UI installieren.
# Führen Sie sowohl den Backend- als auch den Frontend-Server im Entwicklungsmodus aus
# Unter macOS/Linux
./bootstrap.sh -d
# Unter Windows
bootstrap.bat -d
[!HINWEIS] Standardmäßig bindet sich der Backend-Server aus Sicherheitsgründen an 127.0.0.1 (localhost). Wenn Sie externe Verbindungen zulassen müssen (z. B. bei der Bereitstellung auf einem Linux-Server), können Sie den Server-Host im Bootstrap-Skript auf 0.0.0.0 ändern (uv run server.py --host 0.0.0.0). Bitte stellen Sie sicher, dass Ihre Umgebung ordnungsgemäß gesichert ist, bevor Sie den Service externen Netzwerken aussetzen.
Öffnen Sie Ihren Browser und besuchen Sie http://localhost:3000, um die Web-UI zu erkunden.
Weitere Details finden Sie im Verzeichnis web.
DeerFlow unterstützt mehrere Suchmaschinen, die in Ihrer .env-Datei über die Variable SEARCH_API konfiguriert werden können:
Tavily (Standard): Eine spezialisierte Such-API für KI-Anwendungen
TAVILY_API_KEY in Ihrer .env-DateiDuckDuckGo: Datenschutzorientierte Suchmaschine
Brave Search: Datenschutzorientierte Suchmaschine mit erweiterten Funktionen
BRAVE_SEARCH_API_KEY in Ihrer .env-DateiArxiv: Wissenschaftliche Papiersuche für akademische Forschung
Searx/SearxNG: Selbstgehostete Metasuchmaschine
SEARX_HOST in Ihrer .env-DateiUm Ihre bevorzugte Suchmaschine zu konfigurieren, setzen Sie die Variable SEARCH_API in Ihrer .env-Datei:
# Wählen Sie eine: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow unterstützt private Wissensbasen wie RAGFlow und VikingDB, sodass Sie Ihre privaten Dokumente zur Beantwortung von Fragen verwenden können.
# Beispiele in .env.example RAG_PROVIDER=ragflow RAGFLOW_API_URL="http://localhost:9388" RAGFLOW_API_KEY="ragflow-xxx" RAGFLOW_RETRIEVAL_SIZE=10 RAGFLOW_CROSS_LANGUAGES=English,Chinese,Spanish,French,German,Japanese,Korean
🔍 Suche und Abruf
📃 RAG-Integration
🔗 MCP Nahtlose Integration
🧠 Mensch-in-der-Schleife
📝 Bericht-Nachbearbeitung
DeerFlow implementiert eine modulare Multi-Agenten-Systemarchitektur, die für automatisierte Forschung und Codeanalyse konzipiert ist. Das System basiert auf LangGraph und ermöglicht einen flexiblen zustandsbasierten Workflow, bei dem Komponenten über ein klar definiertes Nachrichtenübermittlungssystem kommunizieren.

Sehen Sie es live auf deerflow.tech
Das System verwendet einen optimierten Workflow mit den folgenden Komponenten:
Koordinator: Der Einstiegspunkt, der den Workflow-Lebenszyklus verwaltet
Planer: Strategische Komponente für Aufgabenzerlegung und -planung
Forschungsteam: Eine Sammlung spezialisierter Agenten, die den Plan ausführen:
Reporter: Endphasenprozessor für Forschungsergebnisse
DeerFlow enthält jetzt eine Text-zu-Sprache (TTS)-Funktion, mit der Sie Forschungsberichte in Sprache umwandeln können. Diese Funktion verwendet die volcengine TTS API, um hochwertige Audios aus Text zu generieren. Funktionen wie Geschwindigkeit, Lautstärke und Tonhöhe können ebenfalls angepasst werden.
Sie können auf die TTS-Funktionalität über den Endpunkt /api/tts zugreifen:
# Beispiel API-Aufruf mit curl
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "Dies ist ein Test der Text-zu-Sprache-Funktionalität.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3
Führen Sie die Testsuite aus:
# Alle Tests ausführen
make test
# Spezifische Testdatei ausführen
pytest tests/integration/test_workflow.py
# Mit Abdeckung ausführen
make coverage
# Lint ausführen
make lint
# Code formatieren
make format
DeerFlow verwendet LangGraph für seine Workflow-Architektur. Sie können LangGraph Studio verwenden, um den Workflow in Echtzeit zu debuggen und zu visualisieren.
DeerFlow enthält eine langgraph.json-Konfigurationsdatei, die die Graphstruktur und Abhängigkeiten für das LangGraph Studio definiert. Diese Datei verweist auf die im Projekt definierten Workflow-Graphen und lädt automatisch Umgebungsvariablen aus der .env-Datei.
# Installieren Sie den uv-Paketmanager, wenn Sie ihn noch nicht haben
curl -LsSf https://astral.sh/uv/install.sh | sh
# Installieren Sie Abhängigkeiten und starten Sie den LangGraph-Server
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
# Abhängigkeiten installieren
pip install -e .
pip install -U "langgraph-cli[inmem]"
# LangGraph-Server starten
langgraph dev
Nach dem Start des LangGraph-Servers sehen Sie mehrere URLs im Terminal:
Öffnen Sie den Studio UI-Link in Ihrem Browser, um auf die Debugging-Schnittstelle zuzugreifen.
In der Studio UI können Sie:
Wenn Sie ein Forschungsthema in der Studio UI einreichen, können Sie die gesamte Workflow-Ausführung sehen, einschließlich:
DeerFlow unterstützt LangSmith-Tracing, um Ihnen beim Debuggen und Überwachen Ihrer Workflows zu helfen. Um LangSmith-Tracing zu aktivieren:
Stellen Sie sicher, dass Ihre .env-Datei die folgenden Konfigurationen enthält (siehe .env.example):
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY="xxx"
LANGSMITH_PROJECT="xxx"
Starten Sie das Tracing mit LangSmith lokal, indem Sie folgenden Befehl ausführen:
langgraph dev
Dies aktiviert die Trace-Visualisierung in LangGraph Studio und sendet Ihre Traces zur Überwachung und Analyse an LangSmith.
Sie können dieses Projekt auch mit Docker ausführen.
Zuerst müssen Sie die Konfiguration unten lesen. Stellen Sie sicher, dass die Dateien .env und .conf.yaml bereit sind.
Zweitens, um ein Docker-Image Ihres eigenen Webservers zu erstellen:
docker build -t deer-flow-api .
Schließlich starten Sie einen Docker-Container, der den Webserver ausführt:
# Ersetzen Sie deer-flow-api-app durch Ihren bevorzugten Container-Namen
# Starten Sie den Server und binden Sie ihn an localhost:8000
docker run -d -t -p 127.0.0.1:8000:8000 --env-file .env --name deer-flow-api-app deer-flow-api
# Server stoppen
docker stop deer-flow-api-app
DeerFlow bietet ein docker-compose-Setup, um sowohl das Backend als auch das Frontend einfach zusammen auszuführen:
# Docker-Image erstellen
docker compose build
# Server starten
docker compose up
WARNING
Wenn Sie DeerFlow in Produktionsumgebungen bereitstellen möchten, fügen Sie bitte Authentifizierung zur Website hinzu und bewerten Sie Ihre Sicherheitsüberprüfung des MCPServer und Python Repl.
Die folgenden Beispiele demonstrieren die Fähigkeiten von DeerFlow:
OpenAI Sora Bericht - Analyse von OpenAIs Sora KI-Tool
Googles Agent-to-Agent-Protokoll Bericht - Überblick über Googles Agent-to-Agent (A2A)-Protokoll
Was ist MCP? - Eine umfassende Analyse des Begriffs "MCP" in mehreren Kontexten
Bitcoin-Preisschwankungen - Analyse der jüngsten Bitcoin-Preisbewegungen
Was ist LLM? - Eine eingehende Erforschung großer Sprachmodelle
Wie nutzt man Claude für tiefgehende Recherche? - Best Practices und Workflows für die Verwendung von Claude in der tiefgehenden Forschung
KI-Adoption im Gesundheitswesen: Einflussfaktoren - Analyse der Faktoren, die die KI-Adoption im Gesundheitswesen vorantreiben
Auswirkungen des Quantencomputing auf die Kryptographie - Analyse der Auswirkungen des Quantencomputing auf die Kryptographie
Cristiano Ronaldos Leistungshöhepunkte - Analyse der Leistungshöhepunkte von Cristiano Ronaldo
Um diese Beispiele auszuführen oder Ihre eigenen Forschungsberichte zu erstellen, können Sie die folgenden Befehle verwenden:
# Mit einer spezifischen Anfrage ausführen
uv run main.py "Welche Faktoren beeinflussen die KI-Adoption im Gesundheitswesen?"
# Mit benutzerdefinierten Planungsparametern ausführen
uv run main.py --max_plan_iterations 3 "Wie wirkt sich Quantencomputing auf die Kryptographie aus?"
# Im interaktiven Modus mit eingebauten Fragen ausführen
uv run main.py --interactive
# Oder mit grundlegendem interaktiven Prompt ausführen
uv run main.py
# Alle verfügbaren Optionen anzeigen
uv run main.py --help
Die Anwendung unterstützt jetzt einen interaktiven Modus mit eingebauten Fragen in Englisch und Chinesisch:
Starten Sie den interaktiven Modus:
uv run main.py --interactive
Wählen Sie Ihre bevorzugte Sprache (English oder 中文)
Wählen Sie aus einer Liste von eingebauten Fragen oder wählen Sie die Option, Ihre eigene Frage zu stellen
Das System wird Ihre Frage verarbeiten und einen umfassenden Forschungsbericht generieren
DeerFlow enthält einen Mensch-in-der-Schleife-Mechanismus, der es Ihnen ermöglicht, Forschungspläne vor ihrer Ausführung zu überprüfen, zu bearbeiten und zu genehmigen:
Planüberprüfung: Wenn Mensch-in-der-Schleife aktiviert ist, präsentiert das System den generierten Forschungsplan zur Überprüfung vor der Ausführung
Feedback geben: Sie können:
[ACCEPTED] antworten[EDIT PLAN] Fügen Sie mehr Schritte zur technischen Implementierung hinzu)Automatische Akzeptanz: Sie können die automatische Akzeptanz aktivieren, um den Überprüfungsprozess zu überspringen:
auto_accepted_plan: true in Ihrer AnfrageAPI-Integration: Bei Verwendung der API können Sie Feedback über den Parameter feedback geben:
{
"messages": [{"role": "user", "content": "Was ist Quantencomputing?"}],
"thread_id": "my_thread_id",
"auto_accepted_plan": false,
"feedback": "[EDIT PLAN] Mehr über Quantenalgorithmen aufnehmen"
}
Die Anwendung unterstützt mehrere Kommandozeilenargumente, um ihr Verhalten anzupassen:
Weitere Informationen finden Sie in der FAQ.md.
Dieses Projekt ist Open Source und unter der MIT-Lizenz verfügbar.
DeerFlow baut auf der unglaublichen Arbeit der Open-Source-Community auf. Wir sind allen Projekten und Mitwirkenden zutiefst dankbar, deren Bemühungen DeerFlow möglich gemacht haben. Wahrhaftig stehen wir auf den Schultern von Riesen.
Wir möchten unsere aufrichtige Wertschätzung den folgenden Projekten für ihre unschätzbaren Beiträge aussprechen:
Diese Projekte veranschaulichen die transformative Kraft der Open-Source-Zusammenarbeit, und wir sind stolz darauf, auf ihren Grundlagen aufzubauen.
Ein herzliches Dankeschön geht an die Hauptautoren von DeerFlow, deren Vision, Leidenschaft und Engagement dieses Projekt zum Leben erweckt haben:
Ihr unerschütterliches Engagement und Fachwissen waren die treibende Kraft hinter dem Erfolg von DeerFlow. Wir fühlen uns geehrt, Sie an der Spitze dieser Reise zu haben.