OpenHands: Agente de Código IA Local con Ollama sin Cloud

coding-agent openhands local-llm

La mayoría de herramientas de IA para programación funcionan como asistentes de autocompletado: sugieren una línea, terminan una función, generan un docstring. Útil, pero limitado. OpenHands trabaja de otra manera.

OpenHands, lanzado en 2024 con el nombre OpenDevin y renombrado en 2025, es un agente de programación autónomo: recibe una tarea concreta, elabora un plan, lo ejecuta en pasos y entrega el resultado sin intervención humana en cada microacción. Con la versión 1.7.0 (mayo 2026), el proyecto supera las 74.000 estrellas en GitHub y es, por amplio margen, el framework de agente de código de código abierto más adoptado en la comunidad de desarrollo.

La novedad relevante para equipos de desarrollo en España: con Ollama como backend de inferencia, OpenHands funciona completamente en local. Ninguna línea de código fuente sale del servidor de la empresa.

Qué hace OpenHands exactamente

Imagine que asigna esta tarea: «Lee el módulo src/api/pedidos.py y escribe tests unitarios con pytest para todos los métodos públicos.»

OpenHands abre el archivo, analiza cada función, genera los tests, los ejecuta dentro de su contenedor Docker aislado, lee los errores si los hay, corrige lo necesario e itera hasta que los tests pasan o encuentra una situación que requiere criterio humano. A continuación le presenta un diff para que lo revise antes de hacer merge.

Cada sesión del agente opera en un contenedor Docker propio: puede leer y escribir archivos, ejecutar comandos de shell, abrir páginas de documentación en un navegador interno — pero no tiene acceso fuera de ese entorno sin permiso explícito. Cuando el backend de inferencia también es local (Ollama), el flujo completo sucede sin tocar ningún servicio externo.

El momento oportuno: Ollama con backend MLX

La cuenta oficial de Ollama publicó en X: "Ollama is now updated to run the fastest on Apple silicon, powered by MLX, Apple's machine learning framework" (Ollama en X). MLX es el framework de Apple optimizado para la arquitectura de memoria unificada de los chips M-series: CPU, GPU y Neural Engine comparten el mismo pool de memoria sin copias intermedias, lo que reduce la latencia y aumenta el rendimiento de inferencia.

Para un agente de código esto importa especialmente: una tarea moderada genera entre 20 y 50 llamadas al modelo (planificar, leer archivo, escribir código, ejecutar test, analizar error, decidir siguiente paso). A baja velocidad de inferencia, la espera acumulada hace el agente poco práctico. A 25–40 tokens/segundo — velocidad reportada por la comunidad para modelos 32B en Mac Studio M3 Ultra con 192 GB de memoria unificada — el ritmo se vuelve genuinamente productivo.

En Linux con GPU NVIDIA (RTX 4090, 24 GB de VRAM), la velocidad reportada para modelos de 16B es comparable según experiencias de la comunidad.

Selección de modelo

No todos los modelos de código abierto gestionan bien las llamadas a herramientas (tool calls) estructuradas en JSON que OpenHands necesita para operar. Recomendaciones según la documentación del proyecto y la experiencia de la comunidad:

  • Qwen2.5-Coder 32B (Q4KM, ~20 GB): Mejor opción open-weight en esta clase de parámetros para tareas de código. Tool calls consistentes. Requiere Mac Studio M3 Ultra (192 GB) o GPU con 24 GB de VRAM.
  • DeepSeek-Coder-V2 16B (Q4, ~11 GB): Buena relación calidad/coste. Adecuado para workstations con 16–24 GB de VRAM. Soporte de tool use bien documentado.
  • OpenHands LM 32B: Modelo entrenado específicamente para los flujos de trabajo de OpenHands, disponible en Hugging Face. Tasa de resolución publicada del 37,2 % en SWE-Bench Verified — entre las más altas registradas para modelos open-weight por debajo de 70B parámetros.
  • Llama 3.3 70B (Q4KM, ~44 GB): Para Mac Studio Ultra con 192+ GB de memoria unificada. Generalista pero muy fiable en tool calling.

Instalación paso a paso

Requisitos previos: Docker Desktop, Ollama instalado, macOS o Linux (Windows con WSL2 también funciona con algunas limitaciones), mínimo 16 GB de RAM.

1. Descargar el modelo:

ollama pull qwen2.5-coder:32b

2. Iniciar Ollama accesible desde contenedores:

OLLAMA_HOST=0.0.0.0 ollama serve

3. Lanzar OpenHands vía Docker con las variables de entorno LLMMODEL, LLMBASEURL (apuntando a la instancia local de Ollama) y LLMAPI_KEY=ollama. El comando Docker completo está disponible en la documentación de OpenHands.

4. Abrir el navegador en http://localhost:3000.

5. Definir la primera tarea y observar el log de ejecución paso a paso, con cada acción del agente visible en tiempo real.

Casos de uso para equipos de desarrollo en pymes

Las tareas donde un agente local aporta valor consistente sin requerir el mejor modelo del mercado:

Cobertura de tests. La mayoría de equipos tienen código en producción con cobertura de tests insuficiente. Generar tests para funciones ya definidas es mecánico y repetitivo — perfecto para ejecución agéntica. El desarrollador revisa y hace merge; no escribe el boilerplate.

Documentación técnica. «Lee este módulo de 300 líneas, genera docstrings para todos los métodos públicos y escribe una sección de README explicando su propósito» es una tarea ideal para el agente. Lee el código, genera la documentación y propone el commit. El equipo revisa.

Modernización de dependencias. Actualizar llamadas a APIs deprecadas en toda una base de código es tedioso y propenso a errores de forma manual. Un agente recorre los archivos sistemáticamente, aplica los cambios y ejecuta la suite de tests tras cada modificación.

Limitaciones honestas: OpenHands funciona peor con tareas mal definidas, con cambios arquitectónicos complejos que afectan a muchos archivos a la vez, y cuando el modelo no conoce bien el framework utilizado. La revisión humana antes del merge es parte del flujo diseñado, no un fallo del sistema.

Protección de IP y cumplimiento del RGPD

El código fuente contiene lógica de negocio, esquemas de base de datos y estructuras de API internas que pueden constituir secretos comerciales según la Directiva (UE) 2016/943. Enviarlo a una API en la nube crea una cadena de procesamiento que puede incluir subencargados en terceros países, con los correspondientes requisitos de cláusulas contractuales tipo y registro de actividades de tratamiento.

Un stack completamente local —Ollama on-premise, OpenHands en servidor propio o en una estación de trabajo— elimina esta cadena de raíz. El artículo 5(1)(c) del RGPD sobre minimización de datos se satisface por arquitectura, no por política. No hay transferencia internacional que documentar ni acuerdos de encargado de tratamiento que negociar con un proveedor de IA para el código fuente.

Para empresas en sectores regulados — servicios financieros, sanidad, asesoría jurídica — esta propiedad arquitectónica puede ser la diferencia entre un despliegue conforme y uno que requiere revisión legal extensa.

Kit Digital: ¿puede financiarse este entorno?

Según nuestra interpretación de las bases reguladoras del programa Kit Digital vigentes a la fecha de este artículo, los proyectos de automatización del ciclo de desarrollo de software pueden encajar en la categoría «Gestión de Procesos» o «Servicios y Herramientas de Oficina Virtual», dependiendo del alcance y la configuración concreta. La elegibilidad debe confirmarse con un agente digitalizador acreditado, ya que los requisitos varían según la convocatoria activa y el segmento de empresa.

Si quiere explorar esta posibilidad, consulte nuestra página sobre Kit Digital o contáctenos directamente.

Próximos pasos

Un agente de código local ya no requiere semanas de configuración. OpenHands y Ollama pueden instalarse en una tarde, y la primera tarea real muestra rápidamente si el enfoque encaja con el flujo de trabajo del equipo.

Si quiere evaluar esta solución para su empresa — incluyendo dimensionamiento de hardware, selección de modelo e integración con su toolchain de CI/CD — Freshlab ofrece proyectos piloto estructurados.

→ Iniciar un proyecto piloto | → Conocer más sobre IA local para pymes | → Soberanía del dato