Home
Login

Framework de recherche approfondie piloté par la communauté et basé sur des modèles de langage de grande taille, intégrant des outils spécialisés tels que la recherche sur le web, le web scraping et l'exécution de Python.

MITTypeScript 14.2kbytedancedeer-flow Last Updated: 2025-06-19

DeerFlow - Cadre d'automatisation de la recherche approfondie

Aperçu du projet

DeerFlow (Deep Exploration and Efficient Research Flow) est un cadre de recherche approfondie piloté par la communauté et open source, développé par ByteDance. Ce projet s'appuie sur le travail exceptionnel de la communauté open source et vise à combiner les grands modèles de langage avec des outils spécialisés, notamment la recherche sur le Web, le web scraping et l'exécution de code Python, tout en contribuant à la communauté open source.

Adresse du projet : https://github.com/bytedance/deer-flow

Caractéristiques principales

🤖 Intégration LLM

  • Prise en charge de l'intégration de la plupart des modèles via litellm
  • Prise en charge des modèles open source tels que Qwen
  • Interface API compatible avec OpenAI
  • Système LLM multicouche pour différentes complexités de tâches

🔍 Recherche et récupération

  • Recherche sur le Web via Tavily, Brave Search, etc.
  • Web scraping avec Jina
  • Fonctionnalités avancées d'extraction de contenu

🔗 Intégration transparente de MCP

  • Extension de l'accès au domaine privé, des graphes de connaissances, de la navigation Web, etc.
  • Faciliter l'intégration de divers outils et méthodologies de recherche

🧠 Boucle d'interaction homme-machine

  • Prise en charge de la modification interactive des plans de recherche en langage naturel
  • Prise en charge de l'acceptation automatique des plans de recherche

📝 Post-édition des rapports

  • Prise en charge de l'édition de blocs de type Notion
  • Autorisation du raffinement par l'IA, y compris la relecture assistée par l'IA, le raccourcissement et l'extension des phrases
  • Construit sur tiptap

🎙️ Génération de podcasts et de présentations

  • Génération de scripts de podcast et synthèse audio pilotées par l'IA
  • Création automatique de présentations PowerPoint simples
  • Modèles personnalisables pour un contenu personnalisé

Architecture technique

DeerFlow implémente une architecture de système multi-agents modulaire, spécialement conçue pour l'automatisation de la recherche et de l'analyse de code. Le système est basé sur LangGraph et permet des flux de travail flexibles basés sur l'état grâce à un système de messagerie clairement défini, où les composants communiquent entre eux.

Composants du flux de travail

Le système adopte un flux de travail simplifié, comprenant les composants suivants :

Coordinateur (Coordinator)

  • Point d'entrée pour la gestion du cycle de vie du flux de travail
  • Lance le processus de recherche en fonction des entrées de l'utilisateur
  • Délègue les tâches au planificateur le cas échéant
  • Sert d'interface principale entre l'utilisateur et le système

Planificateur (Planner)

  • Composant stratégique pour la décomposition et la planification des tâches
  • Analyse les objectifs de recherche et crée un plan d'exécution structuré
  • Détermine s'il y a suffisamment de contexte ou si des recherches supplémentaires sont nécessaires
  • Gère le processus de recherche et décide quand générer le rapport final

Équipe de recherche (Research Team)

Ensemble d'agents spécialisés exécutant le plan :

  • Chercheur (Researcher) : Utilise des outils tels que les moteurs de recherche Web, les web scrapers et même les services MCP pour la recherche sur le Web et la collecte d'informations
  • Codeur (Coder) : Utilise l'outil Python REPL pour traiter l'analyse de code, l'exécution et les tâches techniques

Chaque agent a accès à des outils spécifiques optimisés pour son rôle et fonctionne dans le cadre de LangGraph.

Rapporteur (Reporter)

  • Processeur de phase finale des résultats de la recherche
  • Résume les découvertes de l'équipe de recherche
  • Traite et structure les informations collectées
  • Génère un rapport de recherche complet

Installation et démarrage rapide

Configuration système requise

  • Python 3.12+
  • Node.js (pour l'interface utilisateur Web)
  • Il est recommandé d'utiliser uv, nvm et pnpm

Étapes d'installation

# Cloner le dépôt
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow

# Installer les dépendances, uv gérera l'interpréteur Python et la création d'environnement virtuel, et installera les packages requis
uv sync

# Configurer les variables d'environnement
cp .env.example .env
# Configurer vos clés API :
# - Tavily : https://app.tavily.com/home
# - Brave Search : https://brave.com/search/api/
# - volcengine TTS : Ajoutez vos informations d'identification TTS si vous en avez

# Configurer le modèle LLM et les clés API
cp conf.yaml.example conf.yaml

# Installer marp pour la génération de PPT
brew install marp-cli

Exécuter le projet

Interface utilisateur de la console (le moyen le plus rapide)

uv run main.py

Interface utilisateur Web

# Tout d'abord, installez les dépendances de l'interface utilisateur Web
cd deer-flow/web
pnpm install

# Exécuter les serveurs backend et frontend (mode développement)
# macOS/Linux
./bootstrap.sh -d

# Windows
bootstrap.bat -d

Ensuite, accédez à http://localhost:3000 pour découvrir l'interface utilisateur Web.

Moteurs de recherche pris en charge

DeerFlow prend en charge plusieurs moteurs de recherche, qui peuvent être configurés à l'aide de la variable SEARCH_API dans le fichier .env :

  • Tavily (par défaut) : API de recherche conçue pour les applications d'IA
  • DuckDuckGo : Moteur de recherche axé sur la confidentialité, ne nécessitant pas de clé API
  • Brave Search : Moteur de recherche axé sur la confidentialité avec des fonctionnalités avancées
  • Arxiv : Spécialement conçu pour la recherche universitaire d'articles scientifiques

Exemple de configuration :

# Choisissez-en un : tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily

Intégration de la synthèse vocale

DeerFlow inclut une fonctionnalité de synthèse vocale (TTS) qui vous permet de convertir des rapports de recherche en parole. Cette fonctionnalité utilise l'API volcengine TTS pour générer un son de haute qualité, prenant en charge la personnalisation de la vitesse, du volume et de la tonalité.

Exemple d'appel d'API

curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "Ceci est un test de la fonctionnalité de synthèse vocale.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3

Développement et débogage

Exécuter les tests

# Exécuter tous les tests
make test

# Exécuter un fichier de test spécifique
pytest tests/integration/test_workflow.py

# Exécuter des tests de couverture
make coverage

# Exécuter la vérification du code
make lint

# Formater le code
make format

Débogage de LangGraph Studio

DeerFlow utilise LangGraph comme architecture de flux de travail. Vous pouvez utiliser LangGraph Studio pour déboguer et visualiser les flux de travail en temps réel.

# Installer le gestionnaire de packages uv (si ce n'est pas déjà fait)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Installer les dépendances et démarrer le serveur LangGraph
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking

Une fois le serveur démarré, vous pouvez accéder à :

Exemples d'utilisation

Arguments de ligne de commande

# Exécuter une requête spécifique
uv run main.py "Quels sont les facteurs qui influencent l'adoption de l'IA dans les soins de santé ?"

# Exécuter avec des paramètres de planification personnalisés
uv run main.py --max_plan_iterations 3 "Comment l'informatique quantique affecte-t-elle la cryptographie ?"

# Exécuter en mode interactif
uv run main.py --interactive

# Afficher toutes les options disponibles
uv run main.py --help

Boucle d'interaction homme-machine

DeerFlow inclut des mécanismes d'interaction homme-machine qui vous permettent d'examiner, de modifier et d'approuver les plans de recherche avant l'exécution :

  1. Examen du plan : Lorsque l'interaction homme-machine est activée, le système affiche le plan de recherche généré pour que vous l'examiniez avant l'exécution
  2. Fournir des commentaires : Vous pouvez :
    • Accepter le plan en répondant [ACCEPTED]
    • Modifier le plan en fournissant des commentaires (par exemple : [EDIT PLAN] Ajouter plus d'étapes sur les implémentations techniques)
  3. Acceptation automatique : Vous pouvez activer l'acceptation automatique pour ignorer le processus d'examen

Exemples de rapports

Le projet contient plusieurs exemples de rapports qui présentent les fonctionnalités de DeerFlow :

  • Rapport d'analyse OpenAI Sora
  • Rapport sur le protocole agent à agent de Google
  • Analyse complète de MCP (Model Context Protocol)
  • Analyse de la volatilité du prix du Bitcoin
  • Exploration approfondie des grands modèles de langage
  • Meilleures pratiques pour la recherche approfondie de Claude
  • Facteurs influençant l'adoption de l'IA dans les soins de santé
  • Impact de l'informatique quantique sur la cryptographie
  • Faits saillants de la performance de Cristiano Ronaldo

Remerciements

DeerFlow s'appuie sur le travail exceptionnel de la communauté open source, et nous remercions particulièrement :

  • LangChain : A fourni un excellent cadre d'interaction et de chaîne LLM
  • LangGraph : Approche innovante de l'orchestration multi-agents

Ces projets témoignent du pouvoir transformateur de la collaboration open source, et nous sommes honorés de construire DeerFlow sur leurs bases.

Star History Chart