DeerFlow (Deep Exploration and Efficient Research Flow) es un marco de investigación profunda impulsado por la comunidad y de código abierto de ByteDance. Este proyecto se basa en el trabajo excepcional de la comunidad de código abierto y tiene como objetivo combinar grandes modelos de lenguaje con herramientas profesionales, incluidas la búsqueda web, el rastreo web y la ejecución de código Python, al tiempo que retribuye a la comunidad de código abierto.
Dirección del Proyecto: https://github.com/bytedance/deer-flow
DeerFlow implementa una arquitectura de sistema multiagente modular, diseñada para la investigación automatizada y el análisis de código. El sistema se basa en LangGraph y permite flujos de trabajo flexibles basados en el estado a través de un sistema de paso de mensajes claramente definido, donde los componentes se comunican entre sí.
El sistema emplea un flujo de trabajo simplificado que incluye los siguientes componentes:
Colección de agentes especializados que ejecutan el plan:
Cada agente tiene acceso a herramientas específicas optimizadas para su rol y opera dentro del marco de LangGraph.
uv
, nvm
y pnpm
# Clonar el repositorio
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# Instalar dependencias, uv manejará el intérprete de Python y la creación del entorno virtual, e instalará los paquetes necesarios
uv sync
# Configurar variables de entorno
cp .env.example .env
# Configurar sus claves API:
# - Tavily: https://app.tavily.com/home
# - Brave Search: https://brave.com/search/api/
# - volcengine TTS: Agregue sus credenciales TTS si las tiene
# Configurar el modelo LLM y las claves API
cp conf.yaml.example conf.yaml
# Instalar marp para la generación de PPT
brew install marp-cli
uv run main.py
# Primero instale las dependencias de la interfaz de usuario web
cd deer-flow/web
pnpm install
# Ejecute los servidores backend y frontend (modo de desarrollo)
# macOS/Linux
./bootstrap.sh -d
# Windows
bootstrap.bat -d
Luego visite http://localhost:3000 para experimentar la interfaz de usuario web.
DeerFlow admite varios motores de búsqueda, que se pueden configurar utilizando la variable SEARCH_API
en el archivo .env
:
Ejemplo de configuración:
# Elija uno: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow incluye funcionalidad de texto a voz (TTS), que le permite convertir informes de investigación en voz. Esta función utiliza la API de volcengine TTS para generar audio de alta calidad, admitiendo velocidad, volumen y tono personalizables.
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "Esta es una prueba de la función de texto a voz.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3
# Ejecutar todas las pruebas
make test
# Ejecutar un archivo de prueba específico
pytest tests/integration/test_workflow.py
# Ejecutar pruebas de cobertura
make coverage
# Ejecutar comprobación de código
make lint
# Formatear código
make format
DeerFlow utiliza LangGraph como su arquitectura de flujo de trabajo. Puede utilizar LangGraph Studio para depurar y visualizar flujos de trabajo en tiempo real.
# Instalar el administrador de paquetes uv (si no lo tiene)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Instalar dependencias e iniciar el servidor LangGraph
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
Después de iniciar el servidor, puede acceder a:
# Ejecutar una consulta específica
uv run main.py "¿Cuáles son los factores que influyen en la adopción de la IA en la atención médica?"
# Ejecutar con parámetros de planificación personalizados
uv run main.py --max_plan_iterations 3 "¿Cómo afecta la computación cuántica a la criptografía?"
# Ejecutar en modo interactivo
uv run main.py --interactive
# Ver todas las opciones disponibles
uv run main.py --help
DeerFlow incluye mecanismos de interacción humano-máquina, que le permiten revisar, editar y aprobar planes de investigación antes de la ejecución:
[ACCEPTED]
[EDIT PLAN] Agregar más pasos sobre la implementación técnica
)El proyecto incluye varios informes de ejemplo que muestran las capacidades de DeerFlow:
DeerFlow se basa en el trabajo excepcional de la comunidad de código abierto, con un agradecimiento especial a:
Estos proyectos encarnan el poder transformador de la colaboración de código abierto, y nos sentimos honrados de construir DeerFlow sobre su base.