Ruflo v3.38.9: revisión del fix de symlinks y qué verificar antes de producción


En resumen: Ruflo (ruvnet/ruflo, antes Claude Flow) es un meta-harness de agentes en TypeScript con licencia MIT que envuelve Claude Code y Codex con enjambres de agentes especializados, memoria persistente, herramientas MCP y hooks de coordinación. Según la instantánea del 18 de agosto de 2026, merece la pena evaluarlo si ya construyes con Claude Code o Codex y quieres más estructura en el trabajo multiagente. Todavía no es una plataforma de producción lista para usar: el proyecto publica versiones con rapidez y cambia de comportamiento a menudo, algunos informes de estado fueron engañosos hasta hace poco, y las afirmaciones de rendimiento, escala y cumplimiento del README son afirmaciones de los mantenedores que esta revisión de código y documentación no ejecutó ni verificó.

Datos de un vistazo

Elemento Valor
Fecha de revisión 18 de agosto de 2026
Proyecto ruvnet/ruflo (antes Claude Flow)
Licencia MIT
Lenguaje TypeScript
Estrellas 68,120 (instantánea en la revisión)
Forks 8,168 (instantánea en la revisión)
Issues abiertos 837 (instantánea en la revisión)
Última versión v3.38.9, publicada el 13 de agosto de 2026
Nivel de verificación Observado: revisión de código y documentación

Qué es Ruflo y quién debería considerarlo

Los mantenedores describen Ruflo como «un meta-harness de agentes para Claude Code y Codex»: la capa de ejecución alrededor de esas CLI que añade agentes especializados, coordinación de enjambres, memoria persistente, bucles de aprendizaje, herramientas MCP, federación y salvaguardas de seguridad. El README afirma tener más de 100 agentes especializados, un marketplace de plugins, soporte de múltiples proveedores (Claude, GPT, Gemini, Cohere, Ollama), workers en segundo plano, memoria vectorial y una interfaz web beta autoalojable con una demo alojada. El proyecto se llamaba antes Claude Flow, y algunos paquetes y comandos siguen usando el nombre claude-flow.

Estas son las condiciones en las que incluiría a Ruflo en una preselección:

  • Tu equipo ya trabaja dentro de Claude Code o Codex y quiere ejecuciones multiagente coordinadas, memoria compartida entre sesiones e integración MCP, en lugar de una plataforma de agentes separada.
  • Te sientes cómodo con un código base TypeScript que cambia rápido, versiones frecuentes y una gran superficie de plugins, y puedes fijar versiones y hacer tus propias pruebas de regresión.
  • Puedes empezar con un experimento acotado: uno o dos agentes más memoria, antes de comprometerte con enjambres o federación.

Déjalo pasar por ahora si necesitas una plataforma estable y documentada con contrato de soporte, o si tu equipo no puede absorber el ritmo de cambios de un proyecto que publicó cinco parches en dos días (v3.38.5 a v3.38.9, del 12 al 13 de agosto de 2026).

Qué cambió en v3.38.9

v3.38.9, publicada el 13 de agosto de 2026, es un fix acotado de PathValidator. Según las notas de la versión, validate() canonizaba las rutas candidatas con fs.realpath, mientras que el constructor solo resolvía los prefijos permitidos con path.resolve(). En macOS, donde se llega a os.tmpdir() a través de un symlink (/var → /private/var), una ruta pasada por realpath nunca podía coincidir con un prefijo que no lo estaba, así que cualquier ruta bajo un prefijo con symlink, incluido el propio contenido del prefijo, se rechazaba como «outside allowed directories».

El fallo afectaba a ruflo proxy install en macOS después de que la descarga y la verificación de la firma Ed25519 ya hubieran tenido éxito; las notas de la versión describen la comprobación de rutas como defensa en profundidad, no como la frontera de integridad. El fix aplica realpath a los prefijos en el momento de la construcción, con el mismo fallback tolerante a ENOENT que validate() ya usaba para las rutas candidatas.

Lo que esto significa para los operadores:

  • Si ejecutaste ruflo proxy install en macOS contra v3.38.8 o anterior y viste «outside allowed directories», actualiza a v3.38.9 y reinténtalo.
  • Si fijas una versión anterior, espera este fallo en cualquier prefijo con symlink, no solo en las rutas temporales de macOS.
  • La versión solo cambia la validación de rutas; no cambia el comportamiento de los agentes, la memoria ni el enrutamiento de proveedores.

Qué señala el ritmo reciente de versiones

Las versiones inmediatamente anteriores a v3.38.9 importan más que el propio parche para juzgar la salud del mantenimiento. v3.38.8 corrigió la propagación de la configuración de proveedor y modelo: una elección explícita de proveedor o modelo (por ejemplo, un endpoint local de Ollama o de OpenRouter) se persistía antes, pero se ignoraba durante la ejecución, así que los comandos CLI podían parecer exitosos mientras la ejecución fallaba en modo cerrado o, en silencio, usaba un proveedor o modelo distinto del solicitado. Si configuras un proveedor no predeterminado, verifica en v3.38.8+ que el agente haya usado realmente lo que especificaste.

v3.38.7 fue un fix de honestidad del estado: las funciones de estado de memoria devolvían available: true e informaban de un backend fijo «sql.js + HNSW» incluso cuando la ruta de la petición usaba búsqueda coseno de fuerza bruta en lugar de un índice HNSW. Las funciones renombradas ahora informan del algoritmo real. Las notas de la versión dejan abierta la tarea más grande de conectar un HNSW real a la ruta de búsqueda predeterminada, así que trata cualquier afirmación de «HNSW» del README como condicional hasta que observes el campo algorithm en tiempo de ejecución.

Otros fixes recientes (v3.38.5 y v3.38.6) cubrieron la indexación de ADR omitiendo .brain, github_issue_track respetando los argumentos owner/repo, expresiones regulares de detección de secretos para formas habituales de claves de Stripe y OpenAI, un bloqueo del stdin de Codex, contenido obsoleto en la caché de inteligencia y overrides de configuración del daemon perdidos por un daemon-state.json obsoleto.

El mantenimiento está activo y los fixes llegan rápido, y el proyecto ha estado corrigiendo recientemente informes de estado engañosos. Las cautelas son el ritmo de versiones (cinco parches en unos dos días), 837 issues abiertos en la instantánea y al menos un issue de onboarding abierto desde hace tiempo (#958, abierto en enero de 2026 y aún abierto en la instantánea) que informa de dificultades para que v3 realice trabajo como se documenta. Una revisión antigua de v2 escrita por el propietario (#108) documentó problemas de compilación local; v3 es una reescritura, pero el patrón respalda verificar los comandos exactos en tu configuración.

Despliegue y actualización: qué verificar

Antes de producción, verifica estos puntos:

  • Ruta de instalación. El README documenta dos rutas con superficies distintas: la instalación como plugin de Claude Code (comandos slash, algunas skills y cero archivos en el workspace) frente a la instalación por CLI con npx ruflo init (el bucle completo: 98 agentes, más de 60 comandos, 30 skills, servidor MCP, hooks, daemon y archivos en el workspace). El README dice que el uso en producción debería seguir la ruta CLI; los nombres de las herramientas MCP del plugin también difieren (por ejemplo, mcp__plugin_ruflo-core_ruflo__memory_store en lugar de nombres simples). Diagnostica según la ruta que realmente instalaste.
  • Rutas de macOS. Actualiza a v3.38.9 antes de ejecutar proxy install en macOS, o fija una versión anterior y espera el rechazo de PathValidator.
  • Estado en tiempo de ejecución frente a comportamiento real. Desde v3.38.7, revisa el campo algorithm en las respuestas de estado de memoria para ver si se ejecutó HNSW o búsqueda coseno de fuerza bruta; las versiones anteriores podían informar HNSW en cualquier caso.
  • Enrutamiento de proveedor y modelo. Con v3.38.8+, confirma que se respete la configuración explícita de proveedor y modelo; las versiones anteriores podían usar en silencio un proveedor o modelo distinto.
  • Estado del daemon. v3.38.6 corrigió que los overrides de resourceThresholds se perdieran por un daemon-state.json obsoleto; después de configurarlos, confirma que los overrides sobreviven a un reinicio.
  • Interfaz web. El README dice que la beta de la interfaz web se puede autoalojar con Docker (Dockerfile multi-etapa con Mongo embebido y un cloudbuild.yaml para Cloud Run), con una demo alojada en flo.ruv.io. Trátala como beta.
  • Federación y cumplimiento. El README describe federación zero-trust con mTLS y ed25519, eliminación de PII, puntuación de confianza conductual y modos de cumplimiento (pistas de auditoría HIPAA, SOC2 y GDPR). Esta revisión no tiene evidencia en tiempo de ejecución de esas funciones; si te importan, pruébalas y audítalas tú mismo antes de producción.

Limitaciones y preguntas abiertas

La limitación más importante es la atribución. Las cifras principales del README provienen de documentos de benchmark publicados por los mantenedores, documentos de auditoría y archivos de datos del repositorio: comparaciones de rendimiento con LangGraph, AutoGen y CrewAI (por ejemplo, arranque en frío, turno único y ganancias RSS de 1.3× a 1953×), aceleraciones de búsqueda vectorial (de ~1.9× a 4.7× por encima de un cruce con recall@10 en torno a 0.99), 89 % de precisión de enrutamiento y conteos de descargas. Ninguna de ellas fue verificada de forma independiente para esta revisión.

Los issues abiertos muestran que algunas afirmaciones ambiciosas no están implementadas. Un issue de investigación de mayo de 2026 (#2156) reconoce que HNSW+AgentDB no tiene una puntuación de benchmark pública, que no existe una capa de abstracción temporal y que todavía no hay un harness de benchmark de capacidades de agentes ni un ciclo de vida de skills; propone un router de planificación simulativa como ADR-131 con estado propuesto. El epic de enjambres de agentes ilimitados (#125) sigue abierto con muchos elementos sin marcar, y la actualización de embeddings por fases (ADR-121, rastreada en el issue #2036) tenía fases abiertas en la instantánea. El proyecto también parece liderado en gran parte por el propietario con desarrollo asistido por agentes, así que valora el bus factor y la continuidad del soporte al planear una adopción a largo plazo.

Alternativas y preguntas para evaluar

El documento de benchmark de los mantenedores sitúa a Ruflo frente a LangGraph, AutoGen y CrewAI, pero ese documento está publicado por los mantenedores y esta revisión no ejecutó comparaciones. En lugar de respaldar una alternativa, la decisión debería depender de estas preguntas:

  • ¿Qué estás comprando? Un harness dentro de Claude Code o Codex con memoria, hooks, herramientas MCP y ejecuciones multiagente es el valor central de Ruflo. Si necesitas un framework independiente de esas CLI, verifica si la superficie acoplada a la CLI encaja con tu stack.
  • ¿Necesitas ahora funciones de enjambre o federación? Son las que más riesgo conllevan y menos verificación independiente tienen; una configuración mínima con un agente más memoria pone a prueba el valor central.
  • ¿Puedes absorber el ritmo de versiones? Fija versiones exactas, sigue las publicaciones y reserva presupuesto para pruebas de regresión. Cinco parches en dos días es normal en este proyecto.
  • ¿Cuál es tu vía de soporte? Se enumeran los issues de GitHub, una comunidad en Discord y un contacto empresarial; con 837 issues abiertos, planifica un troubleshooting autogestionado.
  • ¿Puedes reproducir las afirmaciones de las que dependes? Reserva tiempo para tus propios smoke tests de la ruta de instalación, el enrutamiento de proveedores, la búsqueda de memoria y el seguimiento de costes antes de comprometerte.

Veredicto

Recomendación condicional. Considera Ruflo si ya trabajas dentro de Claude Code o Codex, quieres coordinación multiagente estructurada y memoria persistente, y toleras un código base que cambia rápido con una gran superficie de plugins. Antes de producción, fija una versión, verifica el enrutamiento de proveedor y modelo y el informe del algoritmo de memoria, prueba en tu sistema operativo real (la validación de rutas de macOS en particular) y haz tu propia revisión de seguridad y cumplimiento si hay federación de por medio.

Difiere la adopción si necesitas una plataforma estable y con soporte, una superficie revisable más pequeña o evidencia de que las afirmaciones de escala y cumplimiento se cumplen en tu entorno.

Fuentes

Si estás evaluando Ruflo o planeando un flujo de trabajo con agentes, puedo ayudar con las partes que suelen pasarse por alto: fijar versiones, confirmar en qué ruta de instalación estás, escribir smoke tests para el enrutamiento de proveedores y el comportamiento de la memoria, y redactar un plan de actualización acorde a tu tolerancia al cambio. Soy Xiang Peng, de XP812, y trabajo con fundadores y equipos de ingeniería en integración, despliegue y mantenimiento de sistemas de IA.


Solicitar ayuda