El blog de Deska

Advent of Code con agentes: ¿Trampa o entrenamiento?

Explora la ética y los beneficios técnicos de usar IA para Advent of Code con agentes mientras escalas tus habilidades de desarrollo con orquestación de LLMs.

· 12 min de lectura

La tradición anual de diciembre de resolver acertijos diarios ha entrado en una nueva era donde Advent of Code con agentes se está convirtiendo en una forma estándar para que los desarrolladores pongan a prueba los límites de los Modelos de Lenguaje Extensos (LLM). Cada año, miles de programadores compiten para resolver desafíos algorítmicos que aumentan en complejidad durante veinticinco días. Mientras que algunos puristas argumentan que el uso de agentes automatizados anula el propósito del ejercicio, otros lo ven como un campo de entrenamiento crítico para dominar la próxima generación de flujos de trabajo en el desarrollo de software. Este cambio plantea preguntas importantes sobre el papel del desarrollador cuando el motor, y no el humano, es quien escribe las líneas específicas de lógica.

La evolución del desafío de programación

Advent of Code sirve como un punto de referencia para la competencia en lenguajes y el pensamiento algorítmico. En el pasado, los desarrolladores usaban estos acertijos para aprender un nuevo lenguaje como Rust o Zig. Hoy, el desafío se está desplazando hacia la orquestación efectiva. El uso de la IA para resolver acertijos no es un fenómeno nuevo, pero la transición de interfaces de chat simples a agentes autónomos representa un salto significativo en la capacidad.

Los LLM estándar a menudo tienen dificultades con las variaciones de la segunda parte de estos acertijos. Estas variaciones suelen introducir una escala o una restricción que invalida un enfoque de fuerza bruta. Los agentes resuelven esto iterando. Pueden ejecutar el código, observar el error o el cuello de botella de rendimiento y refactorizar la solución sin intervención humana. Esto refleja la ingeniería de software del mundo real, donde la implementación inicial rara vez es la final.

¿Es hacer trampa usar agentes?

El debate sobre la ética del uso de la IA en competiciones de programación depende totalmente de tus objetivos. Hay tres formas principales de participar en el evento.

  • Tablero de posiciones competitivo: Si tu objetivo es aparecer en el tablero global oficial, el uso de agentes generalmente es mal visto o está explícitamente restringido por el espíritu comunitario de la competencia. Los puntos globales están destinados a premiar la velocidad e intuición humana.
  • Crecimiento educativo: Si quieres aprender cómo funciona un algoritmo específico, dejar que un agente lo haga por completo podría obstaculizar tu progreso. Sin embargo, usar un agente para explicar un concepto geométrico difícil o un problema de teoría de grafos puede ser un tutor increíble.
  • Ingeniería de flujo de trabajo: Aquí es donde Advent of Code con agentes brilla. Para muchos, el desafío ya no es el acertijo en sí, sino construir un sistema que pueda resolver el acertijo de forma autónoma.

Los creadores de estos acertijos a menudo los diseñan para que sean resistentes a los LLM mediante el uso de lenguaje idiosincrásico o lógica de múltiples pasos que requiere una gestión de estado específica. Intentar resolverlos con agentes es una prueba legítima de ingeniería de prompts y uso de herramientas de agentes.

Arquitecturas técnicas para la resolución de acertijos

Resolver acertijos complejos requiere más que un solo prompt. Requiere un entorno donde el agente tenga acceso a un tiempo de ejecución. Han surgido varias herramientas para facilitar este tipo de trabajo.

Los agentes de propósito general como Claude Code u OpenCode operan teniendo acceso al sistema de archivos y a la terminal. Siguen un ciclo: leer el enunciado del problema, escribir un script, ejecutarlo contra la entrada de ejemplo, verificar el resultado y luego ejecutarlo contra la entrada completa.

Gestionar estos agentes de manera efectiva requiere un espacio de trabajo que pueda manejar múltiples flujos de datos. Para los desarrolladores que quieran experimentar con estos flujos de trabajo, Deska ofrece un canvas infinito donde puedes ejecutar diferentes agentes en paneles uno al lado del otro. Puedes observar una terminal ejecutando Codex CLI en un panel mientras agentes de codificación como Claude Code trabajan en otro. Esta visibilidad es crucial para depurar por qué un agente podría estar atascado en una recursión infinita o por qué su heurística para un acertijo de búsqueda de rutas está fallando.

Comparativa de diferentes agentes

No todos los agentes son iguales cuando se trata de lógica algorítmica. Mientras que algunos destacan en código repetitivo, otros son mejores en optimización matemática.

  1. Claude Code: Altas capacidades de razonamiento. Es particularmente bueno para identificar el patrón subyacente en un acertijo, como reconocer cuando un problema es una versión oculta del Teorema del Resto Chino.
  2. Codex CLI: Extremadamente rápido para pequeños scripts de utilidad. Funciona bien para la primera parte de la mayoría de los acertijos, pero puede requerir guía humana para la segunda parte, que suele ser intensa en memoria.
  3. OpenCode: Un fuerte contendiente de código abierto que permite una personalización profunda del modelo subyacente.

Al usar Deska, puedes ejecutar estos agentes dentro de terminales directamente en tu máquina local. Debido a que Deska es local-first, tus entradas y los scripts de los agentes permanecen en tu propio hardware. Esta es una ventaja significativa para aquellos que desean mantener sus scripts de resolución experimentales organizados en un directorio privado sin depender de IDEs basados en la nube.

El papel de la supervisión humana

Incluso los agentes más avanzados a menudo fallan en el famoso Día 25 o en los complejos problemas de cuadrícula 3D. Aquí es donde el desarrollador se convierte en el arquitecto. En lugar de escribir código, proporcionas la estrategia. Podrías decirle al agente que use un BFS en lugar de un DFS, o sugerir una forma específica de parsear el archivo de entrada.

Usando la función Ask Deska puedes interactuar con tu espacio de trabajo a través de voz o chat para gestionar estas sesiones. Podrías decir "abre una nueva terminal e inicia el agente OpenCode para el desafío del día 12" mientras todavía estás leyendo la descripción del problema. Este nivel de integración de comandos de voz permite una transición fluida entre la conceptualización de la solución y su ejecución.

Si tienes que alejarte de tu computadora mientras un agente está procesando un problema de optimización particularmente difícil, la aplicación móvil de Deska te permite monitorear el progreso. Puedes revisar el resultado de los paneles a través de un relevo seguro que no requiere abrir puertos en tu router. Si ves que el agente ha terminado o se ha movido en la dirección equivocada, puedes intervenir desde tu teléfono.

Estrategia para el éxito con agentes

Para completar con éxito el mes usando agentes, sigue un enfoque estructurado:

  • Sanitización de entrada: Los agentes a menudo tienen dificultades con texto sin formato con formatos extraños. Usa un panel dedicado para notas para mantener tus datos parseados limpios.
  • Pruebas unitarias: Instruye al agente para que siempre escriba un caso de prueba para el ejemplo proporcionado antes de ejecutar la entrada grande. Esto ahorra costos de API y evita largos tiempos de espera por lógica incorrecta.
  • Monitoreo de recursos: Los acertijos algorítmicos pueden consumir fácilmente toda la RAM disponible si un agente escribe un bucle no optimizado. Mantén un ojo en el rendimiento de tu sistema.
  • Prompting iterativo: Si un agente falla, no te limites a reiniciar. Explica qué salió mal en los hilos del agente para que pueda aprender de la salida de la terminal.

Comparación de diseños de resolución

CaracterísticaTerminal estándarIDE basado en webEspacio de trabajo Deska
Soporte multiagenteSolo secuencialLimitado por pestañasPaneles lado a lado
Integración de IABasada en pluginsIntegradaSoporte nativo de agentes
Privacidad de datosLocalAlmacenamiento nubeLocal-first
VisualizaciónSolo textoIntegradaCanvas infinito

Preguntas frecuentes

¿Puedo resolver Advent of Code con agentes de forma gratuita?

Sí, puedes usar varios modelos de código abierto con agentes como OpenCode. Si usas una herramienta como Deska, el espacio de trabajo en sí es gratuito. Solo necesitas proporcionar tus propias llaves de API para los modelos que elijas, o usar una suscripción gestionada si prefieres no manejar llaves. Muchos desarrolladores usan los créditos de nivel gratuito de diferentes proveedores de LLM para superar la primera mitad del mes.

¿Cómo manejan los agentes las entradas de acertijos grandes?

Los agentes normalmente leen la entrada desde un archivo en lugar de tenerla pegada en el prompt. Esto evita alcanzar los límites de tokens para la ventana de contexto. En un espacio de trabajo como Deska, puedes usar code-git-files para gestionar estos archivos de entrada de manera efectiva. El agente puede entonces escribir un script en Python o Node.js que lea el archivo local, lo cual es mucho más eficiente que procesar los datos directamente en el chat.

¿Cuál es el mejor agente de IA para acertijos de programación?

A finales de 2024, Claude Code y las herramientas basadas en el modelo Claude 3.5 Sonnet son ampliamente consideradas el estándar de oro para acertijos de razonamiento y lógica. Suelen tener menos alucinaciones con respecto a las restricciones matemáticas en comparación con otros modelos. Sin embargo, la mejor herramienta a menudo depende de tu flujo de trabajo específico y de si prefieres un agente autónomo o un asistente de chat colaborativo.

Comienza tu viaje agéntico

Advent of Code con agentes es más que un simple atajo. Es una forma de practicar las habilidades que serán obligatorias para la próxima década de la ingeniería de software. Al aprender a gestionar agentes, depurar lógica generada por IA y mantener una visión arquitectónica de alto nivel de un proyecto, te estás preparando para un futuro donde el desarrollador es un director de orquesta más que un simple escritor.

Para construir tu propio centro de comando para los desafíos de este año, descarga Deska para tu plataforma y comienza a experimentar con agentes lado a lado en un canvas infinito.

💡 Ideas+🐛 BugsPropón una feature o reporta un bug