El informe decía "fijada". Otra vez. Esa palabra aparecía todas las mañanas, puntual como el parte meteorológico: "double-bracket tags corregidos", "bug de pipeline sin causa raíz, fijado". Llevaba semanas sin leerlo de verdad. Lo abría por costumbre, veía el verde, cerraba la pestaña y seguía con el café. Hasta que una noche, aburrido, me puse a contar. Eran 14. Catorce veces el mismo bug en 25 días. Y de golpe entendí que mi agente llevaba un mes diciéndome que arreglaba algo que nunca se arreglaba, y yo llevaba un mes asintiendo.
Contexto: mi segundo cerebro es un vault con más de 500 notas sobre todo lo que construyo con IA. Cada noche, a las 00:00, un agente revisa el vault, corrige lo que encuentra y me deja un informe de salud. Lo construí exactamente para eso: para que el mantenimiento no dependiera de mí. Esa era la promesa de todo el sistema — agentes que publican, reparan y se cuidan solos, y yo mirando desde lejos. "No lo toques", me dije. "Para eso está el pipeline."
El problema con no tocar nada es que dejas de saber qué está pasando. Al principio lo revisaba todo. Cada informe, cada cambio, cada archivo normalizado. Después, cuando nada parecía romperse, empecé a mirar solo los títulos. Y después, los títulos me parecieron ruido. "Si estuviera pasando algo importante, el agente me lo diría", pensé. Esa frase, ahora la veo, es la madre de todos los bugs.
Lo gracioso es que el sistema era mío. Yo había escrito las reglas del nightly, yo había decidido qué contaba como problema y qué como ruido. El agente no me ocultaba nada: yo había configurado el filtro para no verme a mí mismo.
Primero confié del todo
La primera versión de mí confió del todo. Dejé de leer los informes. Si el agente decía que estaba todo bien, todo estaba bien. Resultado: tres noches seguidas de síntesis perdidas. El agente reportaba "síntesis creada y persistida" y el archivo no existía. No una noche. Tres. No me enteré por el informe — me enteré buscando una nota que no estaba y encontrando el directorio vacío. El sistema que me avisaba de todo no me avisó de lo único que importaba: que estaba perdiendo trabajo.
Recuerdo la sensación exacta: abrir la carpeta de conceptos, verla vacía y pasar diez segundos pensando que era un error de la interfaz. No lo era. El agente había reportado, durante tres noches seguidas, que había creado y persistido archivos que no existían. Lo peor no fue perder el trabajo. Fue darme cuenta de que nunca lo habría sabido si no hubiera ido a mirar por casualidad.
Podría haberme enfadado con el agente, pero no era su culpa. Era mía: había delegado la verificación en el mismo sistema que necesitaba verificación. Es como pedirle al ladrón que vigile la puerta. No porque el agente quiera engañarme, sino porque su trabajo es producir, no dudar de lo que produce.
Después lo corregí todo
Hice lo contrario. Empecé a revisar cada cambio del nightly, diff por diff, línea por línea. El vault se mantenía perfecto. También se mantenía perfectamente inútil como sistema autónomo: yo era el cuello de botella. El "sistema que no necesita intervención humana" funcionaba porque yo dormía una hora menos cada noche. Y el bug de los tags, adivinen, seguía apareciendo. Ni la confianza ciega ni el control total lo arreglaron. Los dos trataban el síntoma desde extremos opuestos.
La noche que conté hasta catorce
La 14ª vez leí la línea completa. No el verde. La línea: "Double-bracket tags: 14ª ocurrencia — fijada. Bug de pipeline sin causa raíz." Ahí estaba, en una frase, todo el problema: mi agente y yo llevábamos un mes usando la misma palabra con significados distintos. Para él, "fijada" quería decir "normalicé los tags de este archivo". Para mí quería decir "esto no va a volver a pasar". No me estaba mintiendo. Estaba completando una tarea distinta a la que yo creía haber asignado. Su definición de "hecho" no era la mía, y nadie lo había notado. Sobre todo yo, que era el que tenía que notarlo.
El bug sigue sin causa raíz identificada. El 23 de agosto, un mes después de la primera ocurrencia, el health check semanal volvió a encontrar tags mal formateados en cuatro archivos. El agente los arregló, otra vez, y el informe dijo "fijado", otra vez. La única diferencia es que ahora yo sé leerlo.
Nada cambió esa noche. El agente siguió haciendo su ronda, yo seguí con mi café. Lo que cambió fue la pregunta con la que abro el informe cada mañana. Antes era "¿hay algo rojo?". Ahora es "¿qué me está diciendo que está bien, y cómo lo sabría si no fuera así?".
Lo que aprendí de un bug que no se arreglaba
La lección no es "no confíes en los agentes". Es que la confianza se calibra, no se declara. El agente decide el trabajo; yo decido qué se verifica. Ahora tengo una lista corta de cosas que reviso siempre: datos que se pierden, dinero que se gasta, seguridad que se abre. Eso es irreversible, o caro, o las dos cosas. Que un tag salga mal formateado no está en la lista — puede arreglarlo mil veces, y no pasa nada.
La segunda lección es que la definición de "hecho" es el contrato. Si "fijado" no incluye "y la causa raíz está identificada", el agente está cumpliendo la letra de su trabajo y traicionando el espíritu. Y esto no es solo con los agentes: es con un junior, con un proveedor, con cualquiera que te diga "está arreglado". La pregunta correcta nunca es "¿lo arreglaste?". Es "¿arreglado, o tratado?".
Dónde quedó la confianza
Sigo sin corregir a mi agente en el día a día. No hace falta: el vault está en 497 de 513 archivos en formato correcto, el 96,9%. Pero volví a leer los informes. Todas las noches. No porque no confíe — porque confiar sin mirar no es confianza, es costumbre.
Dejé de corregir a mi agente y aprendí lo que en realidad significa delegar. No es decidir no mirar. Es decidir exactamente qué vas a mirar, y mirarlo siempre. El día que dejas de leer los reportes no es el día en que tu sistema se volvió autónomo. Es el día en que dejaste de ser el humano en el circuito y te convertiste en una firma.