Domina el harness de SuperAgentes de ByteDance: Skills, Sub-Agentes, Sandboxes y Memoria Persistente
DeerFlow (Deep Exploration and Efficient Research Flow) es un harness de SuperAgentes open-source de ByteDance, construido sobre LangGraph y LangChain. Orquesta sub-agentes, memoria a largo plazo, skills extensibles y sandboxes aislados para ejecutar tareas complejas que pueden durar desde minutos hasta horas. En este curso aprenderás desde la instalación hasta el despliegue en producción, pasando por skills personalizadas, el cliente Python embebido, la TUI y los canales de mensajería.
DeerFlow (Deep Exploration and Efficient Research Flow) nació como un framework de Deep Research y evolucionó hasta convertirse en un harness de SuperAgentes. La versión 2.0 es una reescritura completa que comparte cero código con v1.
La filosofía de DeerFlow es simple: proporcionar a los agentes de IA la infraestructura necesaria para hacer trabajo real. No es un chatbot con acceso a herramientas — es un agente con su propio ordenador: sistema de archivos, memoria persistente, habilidades extensibles y la capacidad de planificar y lanzar sub-agentes.
| Componente | Función |
|---|---|
| Gateway | API unificada (nginx + LangGraph) que gestiona sesiones y runs |
| Lead Agent | Agente principal que orquesta y descompone tareas |
| Sub-Agents | Agentes secundarios con contexto aislado para subtareas paralelas |
| Skills | Módulos de capacidad en Markdown (investigación, informes, código...) |
| Sandbox | Entorno de ejecución aislado (Docker/Contenedores) |
| Memoria | Base de conocimiento persistente entre sesiones |
DeerFlow se integró con InfoQuest, el motor de búsqueda inteligente de BytePlus, permitiendo búsquedas web avanzadas y crawling directamente desde el agente.
La forma más rápida de empezar con DeerFlow es mediante Docker. El repositorio incluye un asistente de configuración interactivo que guía paso a paso.
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
make setup
Este asistente interactivo te guía para elegir un proveedor LLM, configurar búsqueda web y preferencias de ejecución/sandbox. Genera un config.yaml mínimo y las claves en .env. Tarda unos 2 minutos.
make docker-init # Descargar imagen sandbox (solo la primera vez)
make docker-start # Iniciar servicios con hot-reload
Abre http://localhost:2026 en tu navegador.
| Modalidad | Comando | Uso |
|---|---|---|
| Docker Dev | make docker-start | Hot-reload, monta fuentes del host |
| Docker Prod | make up | Construye imágenes y despliega producción |
| Local Dev | make dev | Sin Docker, Node 22+ y uv requeridos |
| Verificar | make doctor | Diagnóstico de configuración |
En Linux, si los comandos Docker fallan con "permission denied while trying to connect to the Docker daemon socket", añade tu usuario al grupo docker y vuelve a iniciar sesión: sudo usermod -aG docker $USER.
Las Skills son el mecanismo principal para extender las capacidades de DeerFlow. Una Skill es un archivo Markdown que define un flujo de trabajo, mejores prácticas y referencias a recursos de soporte.
/mnt/skills/public/
├── research/SKILL.md # Investigación profunda
├── report-generation/SKILL.md # Generación de informes
├── slide-creation/SKILL.md # Creación de diapositivas
├── web-page/SKILL.md # Generación de páginas web
└── image-generation/SKILL.md # Generación de imágenes
Puedes añadir tus propias skills en /mnt/skills/custom/. Cada skill vive en su propia carpeta con un SKILL.md que define su comportamiento.
Las skills se cargan progresivamente — solo cuando la tarea las necesita. Puedes activar una skill explícitamente para un turno empezando el mensaje con /nombre-skill:
/data-analysis analyze uploads/datos.csv
DeerFlow incluye un conjunto básico de herramientas: búsqueda web, fetch de URLs, captura de pantalla renderizada, operaciones de archivo y ejecución bash. También soporta herramientas personalizadas mediante servidores MCP y funciones Python.
La skill claude-to-deerflow permite interactuar con DeerFlow desde Claude Code:
npx skills add https://github.com/bytedance/deer-flow --skill claude-to-deerflow
Una vez instalada, usa /claude-to-deerflow en Claude Code para enviar tareas, verificar estado y gestionar conversaciones.
Las Skills se cargan progresivamente, manteniendo la ventana de contexto ligera. Esto hace que DeerFlow funcione bien incluso con modelos sensibles al número de tokens.
Las tareas complejas rara vez caben en un solo paso. DeerFlow las descompone automáticamente.
El agente principal (lead agent) puede lanzar sub-agentes sobre la marcha, cada uno con su propio contexto aislado, herramientas y condiciones de terminación. Los sub-agentes se ejecutan en paralelo cuando es posible, reportan resultados estructurados y el agente principal sintetiza todo en una salida coherente.
Ejemplo de flujo: una tarea de investigación puede desplegarse en una docena de sub-agentes, cada uno explorando un ángulo diferente, para luego converger en un solo informe — o un sitio web — o una presentación con imágenes generadas.
| Modo de ejecución | Descripción |
|---|---|
| Flash | Respuesta rápida, sin sub-agentes |
| Standard | Ejecución normal con planificación básica |
| Pro | Planificación avanzada con descomposición |
| Ultra | Sub-agentes completos para tareas de larga duración |
Los sub-agentes corren en contextos totalmente aislados — no ven el contexto del agente principal ni de otros sub-agentes, lo que permite foco y paralelismo sin interferencias.
DeerFlow no solo habla de hacer cosas — tiene su propio ordenador. Cada tarea obtiene un entorno de ejecución completo con vista del sistema de archivos: skills, espacio de trabajo, subidas y resultados.
/mnt/user-data/
├── uploads/ ← Tus archivos subidos
├── workspace/ ← Directorio de trabajo de los agentes
└── outputs/ ← Resultados finales
| Modo | Proveedor | Aislamiento | Uso recomendado |
|---|---|---|---|
| Local | LocalSandboxProvider | Por directorio (bash desactivado por defecto) | Desarrollo local de confianza |
| Docker | AioSandboxProvider | Contenedores aislados | Desarrollo y pruebas |
| Kubernetes | AioSandboxProvider + provisioner | Pods Kubernetes | Producción escalable |
El agente puede leer, escribir y editar archivos, ver imágenes y — cuando está configurado de forma segura — ejecutar comandos shell.
En modo Local, el bash del host está desactivado por defecto porque no es un límite de seguridad. Solo reactívalo para flujos de trabajo locales completamente confiables.
La mayoría de los agentes lo olvidan todo cuando termina la conversación. DeerFlow recuerda.
Dentro de una sesión, DeerFlow gestiona el contexto de forma agresiva:
A través de sesiones, DeerFlow construye una memoria persistente de tu perfil, preferencias y conocimiento acumulado. Cuanto más lo usas, mejor te conoce: tu estilo de escritura, tu stack técnico, tus flujos de trabajo recurrentes. La memoria se almacena localmente y permanece bajo tu control.
Las actualizaciones de memoria evitan entradas duplicadas en tiempo de aplicación, por lo que las preferencias repetidas no se acumulan sin fin entre sesiones.
Puedes ver y gestionar la memoria desde la interfaz web en Settings > Memory, o mediante el comando /memory desde cualquier canal IM conectado.
DeerFlow soporta servidores MCP configurables (Model Context Protocol) para extender sus capacidades, incluyendo flujos OAuth para servidores HTTP/SSE.
| Canal | Transporte | Dificultad |
|---|---|---|
| Telegram | Bot API (long-polling) | Fácil |
| Slack | Socket Mode | Moderada |
| Feishu / Lark | WebSocket | Moderada |
| Tencent iLink (long-polling) | Moderada | |
| WeCom | WebSocket | Moderada |
| DingTalk | Stream Push (WebSocket) | Moderada |
channels:
telegram:
enabled: true
bot_token: $TELEGRAM_BOT_TOKEN
allowed_users: []
Una vez conectado, los comandos disponibles desde el chat son:
| Comando | Acción |
|---|---|
/new | Iniciar nueva conversación |
/status | Mostrar info del hilo actual |
/models | Listar modelos disponibles |
/memory | Ver memoria persistente |
/help | Mostrar ayuda |
DeerFlow también expone channel_connections: los usuarios pueden conectar sus propias cuentas de Telegram/Slack/Discord desde la interfaz web (Settings > Channels), sin necesidad de IP pública.
DeerFlow puede usarse como biblioteca Python embebida sin ejecutar servicios HTTP completos. El DeerFlowClient proporciona acceso directo en-proceso a todas las capacidades del agente.
from deerflow.client import DeerFlowClient
client = DeerFlowClient()
# Chat simple
response = client.chat("Analiza este informe para mí",
thread_id="mi-hilo")
# Streaming (protocolo SSE de LangGraph)
for event in client.stream("hola mundo"):
if event.type == "messages-tuple" and event.data.get("type") == "ai":
print(event.data["content"])
# Gestión de configuración
models = client.list_models() # {"models": [...]}
skills = client.list_skills() # {"skills": [...]}
client.update_skill("web-search", enabled=True)
# Subida de archivos
client.upload_files("thread-1", ["./reporte.pdf"])
Todos los métodos que devuelven diccionarios están validados contra los modelos Pydantic del Gateway en CI, asegurando que el cliente embebido se mantenga sincronizado con los esquemas de la API HTTP.
uv pip install 'deerflow-harness'
Para usar el cliente embebido, el proyecto DeerFlow debe estar disponible en el PYTHONPATH o instalado como paquete. Asegúrate de ejecutar uv pip install -e . desde la raíz del repositorio.
deerflow es un workbench nativo de terminal para quienes viven en la shell. Se ejecuta embebido sobre DeerFlowClient — sin Gateway, frontend, nginx ni Docker requeridos — respetando la misma configuración que el resto de DeerFlow.
# Instalación con dependencia TUI
uv pip install 'deerflow-harness[tui]'
# Lanzar la interfaz de terminal
deerflow
# Reanudar el hilo más reciente
deerflow --continue
# Reanudar un hilo específico
deerflow --resume THREAD_ID
# Respuesta única (headless) a stdout
deerflow --print "resume este repositorio"
# Salida JSON para integraciones
deerflow --json "hola mundo"
//model y /threadsEsc / Ctrl+C para interrumpirLas sesiones abiertas en la TUI también aparecen en la interfaz web — ambas comparten el mismo almacén de hilos bajo el usuario local por defecto.
La TUI funciona incluso sin ejecutar el Gateway. Es ideal para desarrollo, pruebas rápidas y entornos sin navegador.
DeerFlow tiene capacidades de alto privilegio: ejecución de comandos, operaciones de archivos e invocación de lógica de negocio. Está diseñado por defecto para entornos locales de confianza (accesible solo vía 127.0.0.1).
# Construir imágenes y arrancar servicios
make up
# Solo construir
./scripts/deploy.sh build
# Solo arrancar
./scripts/deploy.sh start
# Detener
make down
| Entorno | Mínimo | Recomendado |
|---|---|---|
| Local / make dev | 4 vCPU, 8 GB RAM, 20 GB SSD | 8 vCPU, 16 GB RAM |
| Docker dev | 4 vCPU, 8 GB RAM, 25 GB SSD | 8 vCPU, 16 GB RAM |
| Servidor producción | 8 vCPU, 16 GB RAM, 40 GB SSD | 16 vCPU, 32 GB RAM |
No expongas DeerFlow a Internet sin autenticación. Sus capacidades de ejecución de comandos y acceso a archivos pueden ser explotadas por scanners maliciosos. Siempre usa autenticación previa y lista blanca de IPs.
DeerFlow es un harness de SuperAgentes construido sobre LangGraph/LangChain, con énfasis en skills extensibles, sub-agentes aislados, sandboxes y memoria persistente. AutoGPT es un agente autónomo más enfocado en la ejecución de tareas secuenciales con acceso a herramientas. DeerFlow está diseñado para tareas que requieren orquestación compleja y ejecución de larga duración.
Sí, DeerFlow soporta ejecución local mediante make dev. Necesitas Node.js 22+, pnpm, uv y nginx instalados. También puedes usarlo como biblioteca Python embebida con DeerFlowClient, o mediante la TUI sin Gateway ni frontend.
DeerFlow es agnóstico al modelo — funciona con cualquier LLM que implemente la API compatible con OpenAI. Los modelos recomendados soportan ventanas de contexto largas (100k+ tokens), capacidades de razonamiento, entradas multimodales y tool-use robusto. Los desarrolladores de ByteDance recomiendan Doubao-Seed-2.0-Code, DeepSeek v3.2 y Kimi 2.5.
Crea una carpeta en /mnt/skills/custom/ con un archivo SKILL.md que describa el flujo de trabajo. También puedes instalar skills desde la comunidad, como claude-to-deerflow, mediante npx skills add. Las skills se activan con el prefijo /nombre-skill en el mensaje.