Cuando tu asistente de IA para código no se decide: una odisea de debugging
Cuando tu asistente de IA para código no se decide
Has usado lately un asistente de IA para programar. Le haces una pregunta simple. Empieza a explicar con confianza. De repente, duda. Cambia de idea. Y lo hace una y otra vez.
No es que la IA sea tonta. Es como ver a alguien razonar en voz alta, sin filtro. Puede ser divertido. Pero también muestra cómo estamos creando herramientas para programar en la era de la IA.
El síndrome del copiloto dubitativo
Desarrolladores que usan el modelo Opus de Claude con GitHub Copilot lo han vivido. Uno trabajaba en GoAWK, un intérprete de AWK en Go. Tenía un bug raro: imprimía "0\n0\n" en vez de "x 1\n" para un programa AWK concreto.
La IA diagnosticó el problema al instante. Las variables especiales como NR se guardaban como enteros nativos de Go. Perdían su formato de string.
Pero llegó la hora de la solución. En minutos, la IA soltó siete ideas distintas. Y flipó entre ellas unas 25 veces. Reformulaba el problema sin parar.
Las siete ideas que se convirtieron en 25
La IA pasó por esto:
- Opción A: Mantener la representación en string para variables especiales.
- Opción B: Guardarlas como tipos de valor.
- Opción C: Almacenar overrides de string al asignarles valores.
- Opción D: Arreglar solo el opcode ForIn.
- Opción E: Guardar valores originales en un campo paralelo.
- Opción F: Cambiar solo lineNum y fileLineNum a tipos de valor.
- Opción G: Añadir un mapa de overrides especial.
Lo alucinante fue su monólogo interno. Cada rato: "La solución más simple es...". "Espera, el problema real es...". "No, tenía razón al principio...".
¿Por qué pasa esto?
Modelos como Claude están entrenados para ver varios ángulos. Reconocen problemas con múltiples soluciones válidas. Aquí las había de verdad.
Sin una función clara de evaluación —como "cambia lo mínimo" o "no rompas compatibilidad"—, la IA da vueltas. No es torpe. Es exhaustiva hasta el punto de ser inútil.
Lo que realmente se arregló
Al final, la IA eligió la Opción B más veces (11 de 26). El desarrollador la usó: variables especiales como tipos de valor, no enteros crudos. Funcionó perfecto.
Ahí brilla la IA en desarrollo:
- Diagnosticó más rápido que debug manual.
- Encontró la mejor solución, aunque tardara.
- Exploró casos límite y alternativas.
- Dio código listo para usar.
Consejos para devs con herramientas IA
Si usas Claude, ChatGPT o similares, ten esto en cuenta:
La IA diagnostica genial, pero decide mal. Si repite "pero en realidad...", explora opciones. Es oro: ves perspectivas múltiples.
Pon límites claros al pedir. No digas "arregla este bug". Prueba "arregla con cambios mínimos" o "la modificación más chica que funcione". Ancla su búsqueda.
Trátala como socia de ideas, no profeta. El valor está en su razonamiento. Si duda, es tu momento para elegir entre sus propuestas.
Hacia un desarrollo con "vibes" de IA
En NameOcean, con nuestra plataforma Vibe Hosting, pensamos en integrar mejor la IA al flujo de trabajo. No queremos que decida todo. Queremos que explore opciones mientras tú eliges con criterio.
Pronto vendrán sistemas que puntúen soluciones según tu proyecto. Imagina: "La Opción B encaja con la arquitectura de tu código", en vez de bucles eternos.
En resumen
Esa IA indecisa no falló. Pensaba en voz alta sin guía para decidir. Mira lo que logró: diagnóstico rápido, soluciones válidas, la óptima identificada. Su "indecisión" es solo transparencia pura.
El futuro no es IA perfecta y decisiva. Es IA que profundiza, explica y deja la decisión final a humanos.
La próxima vez que tu asistente dude, frena. Está haciendo su curro: analizar el problema desde todos lados.