OpenCode, el agente de IA que PROGRAMA por ti Vistas: 10

Si alguna vez has sentido que la tecnología es un muro infranqueable o que la programación es algo reservado para «genios» encerrados en sótanos oscuros, este artículo es para ti. Hoy vamos a romper esas barreras y vamos a ver cómo democratizar el desarrollo de software gracias a una herramienta que me tiene absolutamente fascinado: OpenCode. Pero antes de entrar en harina, déjame que te cuente una pequeña anécdota que ilustra perfectamente por qué hago lo que hago. El otro día, participando en el Fartons y Podcast con Julián de Fitlipinos (a quien agradezco enormemente la invitación), David Marzal me confesó un secreto de su rutina de escucha: él siempre adelanta los primeros cinco segundos de los podcasts para saltarse las intros y las sintonías e ir directo al grano. Así que, para este episodio, el número 795, decidí empezar implementando una herramienta en Rust antes de que él pudiera siquiera reaccionar. ¡Si te saltaste el inicio, David, te tocó volver atrás! Y es que la tecnología, además de útil, tiene que ser divertida y, a veces, un poco pícara.

0:00 / 0:00

¿Qué es eso de los agentes de Inteligencia Artificial?

Para que nos entendamos y no nos perdamos en tecnicismos vacíos, hasta ahora la mayoría de nosotros hemos usado la IA como un chat convencional (el típico ChatGPT, Claude o Gemini). Tú le lanzas una pregunta y él te devuelve una respuesta más o menos acertada. Pero un agente de código como OpenCode es un salto evolutivo. No es solo un chat; es como tener un compañero de trabajo, un «digital bricklayer» que no solo sabe la teoría, sino que tiene las herramientas en sus manos y sabe usarlas.

Un agente no solo te dice cómo hacer las cosas, sino que las hace por ti. Imagina a alguien que puede crear carpetas en tu disco duro, escribir archivos de código complejos, ejecutar comandos en tu terminal de Linux, comprobar si el programa funciona y, lo más increíble de todo, si algo falla, leer el error de compilación y corregirse a sí mismo sin que tú intervengas. Es, literalmente, delegar el trabajo pesado de «picar código» para que nosotros nos centremos en lo que realmente aporta valor: la idea, el diseño y la lógica del negocio.

OpenCode: La libertad del código abierto frente a las jaulas de oro

Lo que más me gusta de OpenCode, y la razón principal por la que te estoy hablando de esto en Atareao.es, es su filosofía Open Source. En el ecosistema actual de la Inteligencia Artificial, es peligrosamente fácil caer en el llamado «vendor lock-in», que es una forma elegante de decir que estás encadenado a una sola empresa. Si tus herramientas de desarrollo solo funcionan con la infraestructura de Microsoft o de Google, el día que ellos decidan subir los precios de la API o cambiar sus políticas de privacidad, te quedas con un palmo de narices.

OpenCode rompe con eso. Es una interfaz abierta que te permite elegir qué «cerebro» quieres usar en cada momento. Es como tener un coche en el que puedes cambiar el motor según el viaje que vayas a hacer:

  • ¿Necesitas la máxima potencia de razonamiento? Conéctalo con Claude 3.5 Sonnet de Anthropic.
  • ¿Prefieres la versatilidad de OpenAI? Usa GPT-4o.
  • ¿Buscas la integración de Google? Ahí tienes Gemini.
  • ¡O mi opción favorita: usa modelos locales con Ollama!

Poder correr un modelo de lenguaje en mi propio ordenador, usando mi tarjeta gráfica, sin que ni una sola línea de mi código salga a internet y sin tener que pagar suscripciones mensuales a terceros, es la esencia pura del «self-hosting». Es recuperar el control de nuestra computación, y eso, amigo mío, es impagable.

El proyecto práctico: Descargar transcripciones de YouTube con Rust

Para poner a prueba a OpenCode, decidí plantearle un reto real, algo que me fuera útil para mi flujo de trabajo diario. Quería una herramienta de línea de comandos (una CLI) escrita en Rust que fuera capaz de tomar la URL de un vídeo de YouTube y descargar su transcripción completa.

¿Por qué Rust? Porque es un lenguaje que me apasiona. Es increíblemente rápido, eficiente en el uso de memoria y tiene un sistema de tipos que evita muchísimos errores antes incluso de ejecutar el programa. Sin embargo, no nos vamos a engañar: Rust tiene una curva de aprendizaje que puede ser intimidante. El sistema de «propiedad» (ownership) y el «comprobador de préstamos» (borrow checker) pueden darte más de un dolor de cabeza si estás empezando.

Aquí es donde OpenCode brilla con luz propia. Yo no escribí el código; yo guié el proceso. El agente me hizo una serie de preguntas clave para entender mis necesidades:

  1. Me consultó sobre el formato de salida: ¿quería un texto plano fácil de leer o un JSON estructurado para procesarlo con otros programas?
  2. Me preguntó sobre las opciones de idioma: ¿debía descargar el inglés por defecto o permitir que el usuario eligiera?
  3. Trazó un plan de trabajo detallado.

Este paso de la planificación es vital. Antes de lanzarse a escribir como un loco, el agente me explicó qué librerías iba a utilizar. Por ejemplo, seleccionó Clap para gestionar los argumentos de la línea de comandos (una maravilla de librería en Rust), YouTube Transcript para la lógica de conexión con YouTube y Anyhow para gestionar los errores de forma elegante. Mientras yo seguía con la grabación del podcast y te contaba mis peripecias, el agente estaba trabajando en segundo plano: inicializando el proyecto con cargo init, configurando el archivo Cargo.toml y escribiendo el código en main.rs. ¡Y lo mejor es que compiló a la primera!

La cara B: El peligro de los tokens y el consumo desmedido

Pero cuidado, porque en este mundo del «cachareo» con IA no todo es un camino de rosas. Quiero ser totalmente transparente contigo y contarte una de mis recientes meteduras de pata para que tú puedas evitarla.

Hace unos días, intenté usar un agente de IA para automatizar un script extremadamente sencillo. Mi objetivo era evitar que mi ordenador se fuera a dormir (suspensión) mientras grabo los episodios de La era de las distros junto a los compañeros de la red. Estaba usando una herramienta llamada Stasis para inhibir el modo sleep.

¿Qué ocurrió? Que el modelo de IA que estaba usando se puso demasiado «creativo». Empezó a buscar documentación por toda la web, a leer cada uno de mis archivos de configuración de mi entorno de escritorio (que no son pocos), a probar comandos uno tras otro y a analizar logs. Cuando me quise dar cuenta y miré el panel de control, ¡el agente se había ventilado 100.000 tokens en apenas unos minutos!

Para que te hagas una idea, los tokens son la unidad de medida que usan las IAs para cobrarte. Gastar 100.000 tokens para escribir apenas diez líneas de código es como contratar a un equipo de arquitectos e ingenieros de la NASA para colgar un cuadro en el salón. Me costó unos 18 céntimos de dólar, que no es dinero, pero el problema es de concepto. Si eso te ocurre con un proyecto a gran escala, la factura puede ser astronómica.

La estrategia ganadora: El Modelo Híbrido

De este error saqué una lección que quiero compartir contigo: la importancia del Modelo Híbrido. No tenemos por qué usar siempre el cañón más grande. El equilibrio perfecto entre privacidad, coste y eficiencia se encuentra en saber alternar:

  1. Modelos Locales (Ollama + OpenCode): Son ideales para las tareas que yo llamo «de fontanería». Leer tu código actual, buscar errores tipográficos, escribir funciones sencillas o realizar tareas repetitivas. Como corren en tu hardware, el coste es cero (más allá de la electricidad) y la privacidad es absoluta. Modelos como Llama 3 o Qwen 2.5 Coder son espectaculares para esto.
  2. Modelos en la Nube (Claude/GPT-4): Reserva estos «pesos pesados» para el momento creativo, el diseño de la arquitectura del software o cuando el modelo local se queda bloqueado con un error complejo. Es el especialista al que llamas solo cuando el problema lo requiere.

OpenCode Go: Acceso premium para todos

Si no tienes un ordenador con una tarjeta gráfica potente (una NVIDIA con mucha VRAM, por ejemplo), no te preocupes. No te vas a quedar fuera de esta revolución. Existe una opción llamada OpenCode Go. Es una suscripción de bajo coste, alrededor de 5 a 10 euros al mes, que te da acceso a modelos de programación de código abierto de primer nivel, como Qwen o DeepSeek.

He estado probando estos modelos intensamente y los resultados son sorprendentes. Especialmente con modelos como Kimi 2.6, que tiene una capacidad de razonamiento que roza lo humano. En mis pruebas, vi cómo el agente intentaba implementar una función con una librería específica, se daba cuenta de que la librería estaba obsoleta, borraba el código, buscaba una alternativa en la documentación actualizada y volvía a empezar de cero. Todo esto en segundos y sin que yo tuviera que decirle nada. ¡Es como tener a un programador senior de Silicon Valley trabajando a tu lado por el precio de un par de cafés!

Planificación vs. Ejecución: El secreto de la eficiencia

Una de las características que más me han gustado de OpenCode es que separa claramente dos mundos:

  • Modo Planificación: Aquí es donde tú y la IA os ponéis de acuerdo. Es el momento de filosofar sobre cómo queremos que sea la aplicación. Tú le explicas tu idea, él te propone los pasos y tú le corriges. Es mucho mejor detectar un error de concepto en el plan que cuando ya hay 500 líneas de código escritas.
  • Modo Ejecución: Una vez que le das el visto bueno (el comando «procede»), el agente se pone el casco de obra y empieza a transformar ese plan en archivos reales.

En el reto de hoy, una vez que tuvimos la herramienta básica para YouTube, quise ir un paso más allá y le pedí que añadiera tests unitarios y de integración. En el mundo del software profesional, si algo no tiene tests, es como si no existiera. Lo que me voló la cabeza es que el agente no solo escribió las pruebas, sino que razonó sobre ellas. Me advirtió: «Ojo, Lorenzo, los tests de integración dependen de que la web de YouTube no cambie su estructura interna; si eso ocurre, los tests fallarán aunque tu código esté bien». Esa capacidad de análisis es oro puro.

Al rico contenedor: Llevando la seguridad al siguiente nivel

Si me conoces, sabes que mi respuesta a casi cualquier problema técnico empieza por «ponle un contenedor». Actualmente tengo OpenCode instalado directamente en mi sistema local, pero mi próximo gran paso, y te lo contaré en futuros episodios, es mover todo este ecosistema a un contenedor Docker.

¿Por qué obsesionarse con esto? Muy sencillo: seguridad. Estamos dándole a un agente de IA permisos para escribir archivos y ejecutar comandos en nuestra máquina. Aunque confiamos en los desarrolladores de OpenCode, la IA puede cometer errores o interpretar mal una instrucción. Si metemos al agente dentro de un contenedor Docker, estamos creando un «sandbox» o entorno de juegos seguro. El agente puede instalar todas las librerías que quiera, borrar archivos temporales y compilar código pesado, sabiendo que si algo sale mal, el desastre se queda dentro del contenedor y no afecta a mi sistema operativo principal.

Conclusión: Es el momento de materializar tus ideas

La verdadera revolución de la Inteligencia Artificial no está en que escriba poemas o nos cuente chistes. La verdadera magia está en que elimina la barrera de la frustración. Todos tenemos en un cajón mental ese proyecto, esa aplicación o ese pequeño script que siempre hemos querido hacer pero que abandonamos por falta de tiempo o porque nos atascamos en un error de sintaxis que no supimos resolver.

Hoy, gracias a herramientas como OpenCode y la potencia de lenguajes como Rust, ese muro ha caído por completo. Te animo a que desempolves esas ideas, que les quites el polvo y que empieces a cacharrear con estos agentes. No necesitas ser un experto en programación; solo necesitas tener curiosidad y ganas de aprender.

Espero que este artículo te haya servido para ver la programación desde una perspectiva diferente, más accesible y, sobre todo, más divertida. Recuerda que la vida son dos días y uno ya ha pasado, así que disfruta como si no hubiera un mañana. ¡Y si puede ser con Linux y OpenCode, mucho mejor!

Deja una respuesta