El blog de Deska
Ejecutar agentes de programación en Ollama: qué funciona y qué no
Guía sobre agentes de programación en Ollama. Descubre qué modelos locales funcionan, cómo manejar el contexto y el rol de herramientas como Deska.
· 12 min de lectura
Ejecutar agentes de programación en Ollama se ha convertido en un objetivo fundamental para los desarrolladores que buscan privacidad y menor latencia. La promesa de tener una entidad autónoma capaz de escribir código, ejecutar pruebas y refactorizar funciones enteramente en tu propio hardware es muy atractiva. Sin embargo, pasar de proveedores en la nube a la inferencia local implica compromisos significativos en la capacidad de razonamiento y el procesamiento de tokens. Este artículo explora el estado actual de la ejecución local, analizando qué partes del flujo de trabajo de los agentes están listas para la producción y cuáles aún requieren el esfuerzo de los modelos propietarios.
La arquitectura de los agentes de programación locales
Un agente de programación se diferencia de un chatbot estándar porque funciona en un bucle. Observa un archivo o la salida de una terminal, piensa en el siguiente paso y actúa ejecutando un comando o escribiendo código. Al utilizar agentes de programación en Ollama, el cuello de botella rara vez es la velocidad de generación de texto. La dificultad radica en el seguimiento de instrucciones y en mantener el estado a lo largo de una conversación extensa.
La mayoría de los agentes locales dependen de un patrón de interacción específico. La herramienta del agente envía un prompt de sistema a Ollama, recibe una respuesta y luego analiza esa respuesta para activar una llamada a una herramienta. Si el modelo no logra entregar un JSON válido o el formato markdown específico que la herramienta requiere, el bucle se rompe. Los modelos más grandes como Llama 3 o Mistral suelen ser fiables, pero los modelos pequeños a menudo tienen dificultades para mantenerse en su rol durante más de unos pocos turnos.
Qué modelos funcionan realmente
No todos los modelos disponibles en la biblioteca de Ollama son adecuados para tareas de agentes. Para ser eficaz, un modelo necesita un alto grado de razonamiento espacial y la capacidad de comprender formatos de diferencias de código (diffs) complejos.
- Llama 3.1 8B y 70B: Actualmente son el estándar de oro para agentes locales. La versión 70B es muy capaz en refactorizaciones complejas pero requiere una VRAM significativa. La versión 8B es rápida, aunque a veces puede alucinar rutas de archivos.
- DeepSeek Coder V2: Este modelo está ajustado específicamente para la programación. Sobresale al entender estructuras de repositorios y generar código sintácticamente correcto en lenguajes poco comunes.
- Qwen 2.5 Coder: Un fuerte competidor para hardware de gama media, ofreciendo un equilibrio entre velocidad y razonamiento que mantiene el bucle del agente fluido.
- Command R: Diseñado específicamente para RAG y uso de herramientas. Es particularmente efectivo cuando el agente necesita buscar en tu documentación local o en el código existente para encontrar contexto.
La realidad del hardware
Ejecutar estos modelos localmente significa que tu máquina realiza dos tareas pesadas simultáneamente: compilar código y ejecutar la inferencia. Si utilizas una arquitectura de memoria unificada como la de Apple Silicon, esto es manejable. En máquinas con Windows o Linux con GPU dedicadas, debes asegurarte de que tu VRAM sea suficiente para albergar tanto el modelo como la ventana de contexto.
Cuando la ventana de contexto se llena, Ollama debe desplazar tokens o procesar el prompt nuevamente. Para un agente de programación, que podría estar analizando diez archivos diferentes, el contexto puede crecer a 32k tokens muy rápido. Si el hardware no puede manejar esto, el agente comienza a olvidar las instrucciones iniciales, lo que lleva a errores repetitivos o sugerencias de código sin sentido.
Integración de agentes locales en el espacio de trabajo
Una de las frustraciones al trabajar con agentes locales es la interfaz fragmentada. Cambiar entre una terminal, un navegador para revisar documentación y la salida del agente crea una carga cognitiva innecesaria. Aquí es donde un entorno unificado se vuelve necesario.
Deska soluciona esto proporcionando un espacio de trabajo de lienzo infinito donde puedes colocar diferentes componentes uno al lado del otro. En lugar de pestañas ocultas, puedes tener tu terminal local, un editor de código basado en Monaco y la salida de tu agente visibles al mismo tiempo. Para quienes están ejecutando agentes de programación en Ollama, Deska permite ejecutar herramientas como Claude Code, Codex CLI y OpenCode como paneles dedicados dentro de la misma vista.
Como Deska es local-first, tu código fuente y los datos de la sesión nunca salen de tu máquina. Puedes usar tus propias llaves de API para modelos propietarios si necesitas un impulso rápido en el razonamiento, pero el espacio de trabajo en sí está diseñado para soportar el flujo de ejecución local que prefieren los usuarios de Ollama. Puedes alejar la vista para ver todo el sistema y acercarla para enfocarte en terminales o notas específicas.
Gestión del bucle del agente
Para que un agente de programación local tenga éxito, debes restringir su alcance. Pedirle a un agente que construya una aplicación completa usando un modelo local de 8B fallará casi con seguridad. En cambio, el flujo de trabajo debe dividirse en tareas más pequeñas y verificables:
- Identificación: Usa el agente para encontrar dónde reside una lógica específica.
- Ejecución: Pide al agente que escriba una sola función o una prueba unitaria.
- Verificación: Haz que el agente ejecute la prueba en un panel de terminal y reporte los resultados.
Este enfoque modular minimiza el impacto de la deriva del modelo y asegura que si el agente comete un error, sea fácil de detectar y corregir. Las herramientas que te permiten ver los hilos del agente junto al código real ayudan a mantener esta supervisión.
Voz y acceso móvil
Un obstáculo importante para el desarrollo local es estar atado a la estación de trabajo. Si tienes una tarea de agente de larga duración ejecutándose en tu computadora de escritorio, es posible que quieras monitorearla sin estar sentado en tu silla durante horas.
Deska ofrece una aplicación mobile que te permite monitorear tu espacio de trabajo a través de un relevo seguro. Dado que los dispositivos se emparejan directamente y no se exponen puertos a internet, se mantiene la postura de seguridad que se espera de una herramienta local. Puedes revisar el progreso de un agente, ejecutar un comando rápido o leer un registro de sesión desde tu teléfono. Además, el asistente Ask Deska admite comandos de voz para manejar el espacio de trabajo, lo cual es útil cuando necesitas abrir múltiples paneles o revisar sesiones sin usar las manos.
Errores comunes y soluciones
El problema más frecuente al usar Ollama para agentes es el fallo al analizar las llamadas a herramientas. Si tu agente se queda bloqueado, revisa la salida cruda de Ollama. A menudo, el modelo añade comentarios conversacionales como "Claro, puedo ayudarte con eso", los cuales el analizador del agente no espera. Usar un prompt de sistema que prohíba estrictamente el relleno conversacional puede solucionar esto.
Otro problema es el acceso al sistema de archivos. Asegúrate de que el agente tenga los permisos correctos para leer la carpeta de tu proyecto, pero sé cauteloso al darle acceso de escritura a todo tu directorio de usuario. Un entorno de workspace restringido siempre es más seguro.
FAQ
¿Cómo mejorar la velocidad del agente en Ollama?
La velocidad depende principalmente de tu GPU o del ancho de banda de tu memoria unificada. Puedes mejorar la velocidad percibida usando modelos cuantizados (como Q4_K_M) o reduciendo la cantidad de archivos que el agente lee en su contexto a la vez.
¿Pueden los agentes de Ollama escribir funciones completas?
Aunque son capaces, los modelos locales de menos de 70B de parámetros a menudo tienen dificultades con cambios arquitectónicos globales. Son mejores para escribir funciones aisladas, corregir errores o generar pruebas unitarias que para diseñar sistemas enteros desde cero.
¿Es seguro dar acceso a la terminal a los agentes?
Si el agente se ejecuta localmente en tu máquina, tiene los mismos permisos que tu usuario. Se recomienda ejecutar agentes en un entorno controlado o en una carpeta dedicada, y siempre revisar los comandos que proponen antes de la ejecución.
Eleva tu desarrollo local
La transición a herramientas de IA locales requiere el entorno adecuado para ser productiva. Si estás cansado de hacer malabares con múltiples ventanas de terminal y pestañas del navegador mientras esperas a que los modelos locales respondan, un lienzo unificado podría ser la solución. Puedes descargar Deska para Mac, Windows y Linux para comenzar a organizar tus agentes, terminales y código en un único espacio de trabajo infinito que pone la privacidad y los principios local-first en el centro de tu flujo de trabajo.