OpenHands: un agente desarrollador basado en un modelo local
Sí, OpenHands (antes OpenDevin) funciona con un modelo local a través de cualquier punto de acceso compatible con OpenAI, pero es la carga de trabajo con agentes más exigente que existe: por debajo de los 27 a 32 mil millones de parámetros con un contexto largo (22 000 tokens como mínimo, 32 768 recomendados), el agente entra en bucle, interpreta mal la salida de los comandos y modifica el archivo equivocado.
OpenHands da a un agente un terminal, un navegador y tu repositorio, y luego lo deja trabajar: planifica, modifica archivos, ejecuta comandos en un entorno aislado, lee la salida y repite el proceso hasta completar la tarea o desistir. Es posible ejecutarlo con un modelo local, pero requiere un modelo mucho más grande que los que tiene la mayoría de la gente. Aquí mostramos dónde está realmente el límite, con los ajustes recomendados por el propio proyecto.
#Lo que hace, concretamente
Describes una tarea en francés. Inspecciona el repositorio, elabora un plan y luego actúa en bucle: ejecutar un comando, leer el resultado, modificar un archivo, volver a ejecutar las pruebas, leer el fallo y corregirlo. Este bucle es el producto. Se parece más a una persona en prácticas con un terminal que al autocompletado.
De ahí se derivan las consecuencias. Cada iteración es una generación completa sobre un contexto que crece: una tarea de diez pasos supone diez prompts largos. Y como el agente actúa en lugar de sugerir, su radio de acción abarca todo aquello a lo que puede acceder, lo que explica por qué el entorno aislado forma parte del diseño y no de los ajustes.
#El proyecto en 2026: Agent Canvas
Esta guía te lleva al modelo. El kit te lleva al copiloto que programa en tu editor.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
OpenHands se llamaba OpenDevin cuando se lanzó, antes de adoptar su nombre actual. El repositorio, mantenido por All Hands AI, está publicado bajo licencia MIT y supera las 89.000 estrellas en GitHub en el verano de 2026. El proyecto también se ha ampliado: ya no se presenta solo como un agente autónomo aislado, sino como «el centro de control autoalojado para los agentes de código y las automatizaciones», capaz de controlar tanto OpenHands como Claude Code, Codex o Gemini desde una sola interfaz.
En concreto, la oferta se ha estructurado en varios componentes: Agent Canvas (la interfaz de control), un Software Agent SDK para construir tus propios agentes, un Agent Server y un servidor de automatización para las tareas programadas. La antigua interfaz local autónoma ha quedado obsoleta en favor de esta arquitectura modular; el principio sigue siendo el mismo para el uso local descrito aquí —un agente que actúa en un entorno aislado en contenedores—, pero los nombres de los componentes y el comando de lanzamiento pueden variar entre distintas versiones antiguas de la documentación, incluida la que todavía puedes encontrar a veces indexada bajo el nombre OpenDevin.
#Los requisitos del modelo, sin rodeos
| Clase de modelo | Resultado realista |
|---|---|
| 7 a 8 mil millones | Falla. Comandos mal formados, salida mal interpretada, bucles sobre el mismo archivo. |
| 14 mil millones | A veces logra tareas triviales con un solo archivo. Es poco confiable. |
| 27 a 32 mil millones | El mínimo viable. Las tareas acotadas y bien especificadas se completan con éxito con la suficiente frecuencia como para resultar útiles. |
| 70 mil millones y más | Criterio mucho mejor, pero lo bastante lento como para lanzar la tarea e ir a hacer otra cosa. |
Dos capacidades importan más que las puntuaciones en los benchmarks: la llamada a herramientas en el formato exacto esperado y la estabilidad con contextos largos, ya que el agente vuelve a leer un historial cada vez más extenso en cada paso. Un modelo excelente para escribir una función a partir de un prompt puede resultar inutilizable cuando se ejecuta en un bucle. Los modelos orientados al código suelen superar a los modelos de conversación del mismo tamaño en esta tarea.
La documentación oficial del proyecto cambió su recomendación durante 2026: ahora recomienda Qwen3.6-35B-A3B como primer modelo local que probar, un modelo MoE (mezcla de expertos) diseñado para la programación agéntica, con un contexto amplio y disponible a través de LM Studio, Ollama, vLLM y SGLang. La ventaja de un MoE aquí es clara: solo se activan 3 mil millones de parámetros por token, pese a los 35 mil millones de pesos totales, lo que hace que la generación sea considerablemente más rápida que con un modelo denso de tamaño comparable, con unas necesidades de VRAM más cercanas a las de un modelo de 14B que a las de uno denso de 35B.
#Ejecutarlo localmente
- 01Servir un modeloEn un endpoint compatible con OpenAI, con la variable OLLAMA_CONTEXT_LENGTH aumentada a 22 000 como mínimo (se recomiendan 32 768) si usas Ollama. Este paso suele omitirse, lo que da lugar a agentes que olvidan su propio plan.
- 02Iniciar la aplicación en su configuración en contenedoresNecesita un motor de contenedores (Docker Desktop o Docker Engine): el shell del agente se ejecuta allí, no en tu host.
- 03Apuntarlo a tu punto de acceso localCon una clave de API ficticia (por ejemplo, local-llm) y una URL base accesible desde el contenedor —en Docker Desktop, http://host.docker.internal:PORT/v1 en lugar de localhost, que apuntaría al propio contenedor—. Solo indica que el modelo admite llamadas a herramientas si realmente es capaz de realizarlas.
- 04Montar un único repositorioIdealmente un clon descartable, en una rama que puedas borrar sin arrepentimiento.
- 05Comenzar por una tarea pequeña y verificableCorrige este test que falla, añade este parámetro, actualiza esta configuración. Luego revisa de nuevo el diff.
- Servir un modelo con un contexto largo
- Hacer que un modelo local revise el código
- Cline: el agente de código integrado al editor
- El kit QuelLLM para montar un agente local
- Documentación oficial: modelos locales con OpenHands
- Repositorio oficial de OpenHands en GitHub
- Revisión independiente de OpenHands (2026)
#El costo real de una tarea
Una tarea realizada por un agente no cuesta una llamada al modelo, sino una secuencia de llamadas, cada una con un contexto más largo que la anterior porque el historial se acumula. Para una tarea que requiere diez iteraciones, si cada paso añade de media 800 tokens al historial, la décima llamada ya vuelve a leer varios miles de tokens de contexto antes incluso de producir su respuesta. En el procesamiento local, el tiempo de lectura del prompt (el «prefill») se suma al tiempo de generación en cada turno, lo que explica por qué el tiempo que necesita un agente local que utiliza un modelo de 32 mil millones de parámetros se mide en minutos por tarea, y no en segundos como una compleción convencional.
Es la contrapartida de no pagar una factura de API: el costo no desaparece, se traslada a tu tarjeta gráfica y a tu tiempo de espera. En una tarea mal especificada que desencadena veinte iteraciones porque el agente da vueltas sin avanzar, este traslado del costo acaba saliendo rápidamente más caro, en electricidad y tiempo, que una llamada equivalente a la API.
#Un ejemplo concreto para aclarar las ideas
Tomemos una tarea realista: «la prueba test_export_csv falla desde el último commit, corrígela». Con un modelo de la categoría de 32 mil millones de parámetros, el proceso típico requiere entre cinco y ocho iteraciones: lectura de la prueba y del mensaje de fallo, apertura del archivo fuente afectado, formulación de una hipótesis sobre la causa, modificación, nueva ejecución de la prueba, lectura del nuevo resultado y ajuste si es necesario. Cada iteración vuelve a leer el historial completo de las anteriores, lo que hace que la ventana de contexto sea decisiva: con solo 8.000 tokens, el agente pierde el hilo después de tres o cuatro pasos y vuelve a plantear hipótesis ya descartadas.
En un modelo de 7 a 8 mil millones de parámetros, la misma tarea suele fallar de otra manera: la prueba se identifica correctamente, pero el comando para volver a ejecutarla está mal formado, o el modelo edita un archivo cercano con un nombre parecido. No son errores de configuración: es el límite de capacidad del modelo ante el formato estricto que exige el ciclo herramienta-resultado-decisión, independientemente de la calidad del prompt del sistema. También por eso las puntuaciones publicadas en benchmarks de completado de código no predicen gran cosa aquí: un modelo con una puntuación alta en la generación de una función aislada puede seguir siendo incapaz de encadenar diez llamadas coherentes a herramientas sin perder el rumbo, porque la correlación entre estas dos capacidades varía según cómo se haya entrenado el modelo.
#La seguridad no es opcional
- Ningún secreto en el entorno
- El agente lee su propio entorno y puede mostrarlo.
- Una rama descartable y un clon de trabajo
- Nunca tu copia de trabajo con modificaciones no validadas.
- Acceso a red restringido
- Un agente que pueda conectarse a cualquier destino puede exfiltrar todo lo que haya leído.
- Todo contenido recuperado es hostil por defecto
- La descripción de un ticket o un archivo README pueden contener instrucciones dirigidas al agente: el mecanismo se detalla en nuestra guía sobre la inyección de prompts.
- Releer cada diff
- «Los tests pasan» significa que los tests pasan, no que la modificación sea correcta.
#Cuándo un asistente es mejor que un agente
| Tarea | Mejor herramienta |
|---|---|
| Autocompletado mientras escribes | Una extensión de editor |
| Una modificación que se puede describir archivo por archivo | Un asistente conversacional con el archivo abierto |
| Una tarea en varios pasos con una prueba clara para comprobar que se ha completado con éxito | OpenHands, si el modelo es lo suficientemente grande |
| Código que no puedes revisar | Ninguno de los dos: no podrás verificar el resultado |
En resumen, OpenHands en local no es un gadget ni un sustituto universal: es una herramienta que debe reservarse para máquinas capaces de alojar realmente un modelo de 27 mil millones de parámetros o más con un contexto de 32 000 tokens, y para tareas lo bastante acotadas como para que una prueba automatizada o una revisión rápida baste para evaluar el resultado. Por debajo de ese umbral de hardware, un asistente conversacional clásico con el archivo abierto sigue siendo más rápido y más fiable que un agente que entra en bucle sin llegar nunca a converger.
#FAQ
¿Puede OpenHands funcionar con un modelo local?+
¿Cuál es el modelo mínimo?+
¿Qué contexto configurar en Ollama?+
¿Es prudente lanzarlo en mi máquina?+
¿Cuánta VRAM se necesita?+
¿Por qué el agente repite la misma etapa?+
¿OpenHands sigue siendo el mismo proyecto que OpenDevin?+
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.