DeerFlow
Middlewares de DeerFlow: orden, contexto y política de ejecución
Sigue el constructor del agente principal para entender por qué el orden y las capacidades importan más que un número fijo de componentes.
Qué aprenderás
- Sigue el constructor, no memorices una cifra
- Visibilidad no equivale a autorización de ejecución
- El proveedor local mapea rutas, no aísla el host
Antes de empezar
- Conceptos básicos de Python, HTTP y contenedores
- Una tarea propia con criterios de aceptación
Explica el límite de implementación y aplica la lista o el ejercicio aislado del capítulo.
Conclusiones clave
- Examina el orden efectivo y las ramas de capacidad.
- Visibilidad y política de ejecución son controles distintos.
- El mapeo local no aísla el proceso del host.
Sigue el constructor, no memorices una cifra
build_middlewares comienza con la pila de ejecución principal y añade contexto dinámico, activación explícita de habilidades, política de herramientas y contexto duradero. Resumen, planificación, contabilidad de tokens, visión y MCP diferido dependen de la configuración o capacidad del modelo. El documento anterior de flujo ofrece cifras fijas que no representan todas las ramas del constructor actual.
Según el comentario de implementación, el contexto dinámico se introduce como recordatorio del lado del usuario para mantener estable el prompt de sistema y facilitar reutilización de prefijos. El contexto duradero se registra antes del resumen para capturar delegaciones terminadas y habilidades cargadas antes de compactarlas. El problema es preservar información en el límite correcto, no maximizar clases de middleware.
Visibilidad no equivale a autorización de ejecución
El código diferencia metadatos de habilidades descubribles, activación explícita mediante barra y política de herramientas permitidas en ejecución. Los esquemas MCP diferidos pueden permanecer ocultos hasta que la búsqueda los promueve; otra política filtra visibilidad, resultados y ejecución para la habilidad activa. Ocultar un esquema al modelo es solo una parte del control.
Las aserciones sitúan el enrutamiento MCP antes del filtro diferido, mientras la auditoría de promoción envuelve transformaciones internas de política. Después se unifican mensajes de sistema y se añaden protecciones. Middlewares personalizados y extensiones pueden cambiar la composición final: inspecciona la pila efectiva al diagnosticar una instalación, no únicamente el diagrama público.
El proveedor local mapea rutas, no aísla el host
LocalSandboxProvider crea mapas por usuario y conversación para espacio de trabajo, cargas y salidas. Conserva objetos en una caché LRU acotada y serializa sus cambios mediante un bloqueo. Tras una expulsión, una adquisición posterior reconstruye el objeto y pierde una pista de resolución inversa; no se describe una eliminación de los archivos persistentes de la conversación.
El proveedor declara expresamente que su vista administrada de habilidades es una frontera lógica. Una shell del host puede utilizar rutas canónicas fuera de esa vista, por lo que supports_agent_skill_isolation devuelve false si se permite bash del host o no puede leerse la configuración. Un identificador de usuario, un mapa de rutas o un objeto en caché no equivalen a aislamiento del sistema operativo.
Pasos de implementación
- 1
Sigue una habilidad desde descubrimiento hasta ejecución.
- 2
Localiza la captura de contexto anterior al resumen.
- 3
Documenta la frontera real del proveedor seleccionado.
Ejemplo para copiar
{"conceptualFlow":["descubrir habilidad","activar habilidad","aplicar política","capturar contexto duradero","resumir","comprobar terminación"],"fixedMiddlewareCount":null,"localPathMappingIsOsIsolation":false}Preguntas frecuentes
¿Cuántos middlewares tiene DeerFlow?
La cifra efectiva depende de configuración, capacidades y extensiones. Revisa el constructor fijado en lugar de copiar una cifra de un diagrama anterior.
¿La expulsión de caché local borra mis archivos?
El proveedor inspeccionado describe expulsión de objetos en memoria y reconstrucción posterior, no borrado de datos persistentes.
Fuentes
- README.mdFuente verificada 2026-09-08
- LICENSEFuente verificada 2026-09-08
- backend/README.mdFuente verificada 2026-09-08
- backend/pyproject.tomlFuente verificada 2026-09-08
- backend/docs/middleware-execution-flow.mdFuente verificada 2026-09-08
- backend/packages/harness/deerflow/agents/lead_agent/agent.pyFuente verificada 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/loop_detection_middleware.pyFuente verificada 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/_bounded_dict.pyFuente verificada 2026-09-08
- backend/packages/harness/deerflow/config/loop_detection_config.pyFuente verificada 2026-09-08
- backend/packages/harness/deerflow/sandbox/local/local_sandbox_provider.pyFuente verificada 2026-09-08
- backend/app/gateway/auth_middleware.pyFuente verificada 2026-09-08
- backend/app/gateway/csrf_middleware.pyFuente verificada 2026-09-08
- docker/docker-compose.yamlFuente verificada 2026-09-08