Escrito

Le puse tope de 5 iteraciones al loop agéntico y nunca lo alcanzó; ARCA desde un VPS sigue sin salir

14 de septiembre de 20263 min de lectura

  • claude-code
  • agentes
  • facturacion
  • vps

Dos frentes esta semana. Uno salió y el otro no, y el que no salió sigue abierto mientras escribo esto.

El que salió: un proyecto end-to-end con Claude Code de escritor de código y yo de supervisor. El que no: facturación automática en el ERP de Génesis contra el sistema de ARCA (ex AFIP), que se trabó en un lugar que no tiene nada que ver con facturar.

El loop: generar, revisar, auditar, encontrar el error, rehacer

La forma de trabajo no fue pedirle código y después corregirlo a mano. Le daba el código inicial y lo configuraba para que entrara en bucle: generar código, revisar, auditar, encontrar el error, rehacer. Así hasta cumplir.

Con un bucle de ese tipo la pregunta que aparece enseguida es hasta cuándo. Un loop que se arregla solo sin límite es un loop que puede quedarse dando vueltas encima de un bug que no va a resolver, quemando tokens en cada vuelta.

Le puse un máximo de 4 o 5 iteraciones. El dato concreto de la semana es que nunca lo alcanzó. Encontraba los bugs específicos rápido, bastante antes del techo.

Consume más tokens que escribir el código de una. Eso es cierto y no lo voy a discutir. Pero la eficiencia era mejor: el rato que no me paso leyendo código línea por línea para encontrar por qué falla vale más que los tokens que gasta el bucle en encontrarlo solo.

Igual el tope hay que ponerlo, y creo que hay que ponerlo justamente porque no se toca. Es lo que hace que el peor caso sea un número y no una sorpresa. Si algún día llega a 5 y sigue sin cerrar, eso ya no es un bug que el loop pueda arreglar, es una señal de que el problema está en otro lado y me conviene mirarlo yo.

Lo de ARCA, que no cerró

El otro frente era facturación automática en el ERP de Génesis: que el sistema emitiera los comprobantes contra los servicios de ARCA sin que nadie los cargue a mano.

Contra lo que me choqué no fue la lógica de facturación. Fue el VPS.

Son dos cosas y las dos son de acceso, no de código. Una es criptográfica: la firma contra ARCA implica un manejo de certificados y de OpenSSL bastante más complejo de implementar de lo que parece desde afuera. La otra es directamente de red: bloqueos por IP hacia datacenters externos. Y un VPS es, por definición, una IP de datacenter.

O sea que el mismo código que funcionaría en otra máquina se choca con la puerta cerrada solo por dónde está corriendo. Eso es lo que más me costó entender de esta semana: que el problema no estaba en lo que el sistema hacía sino en desde dónde lo hacía.

La alternativa que quedó planteada es correrlo en un servidor local o algo por el estilo, para salir con una IP que no sea de datacenter. No la probé todavía, así que no puedo decir que funcione. Lo dejo escrito como lo que es: una hipótesis.

Lo que me llevo

Del loop agéntico sí tengo algo concreto para pasar: pongan el límite de iteraciones. 4 o 5 alcanza, y el hecho de que nunca se alcance no lo vuelve inútil. Es lo que le pone piso al peor caso y lo que convierte "se quedó colgado" en un aviso de que hay que meter mano.

De ARCA no tengo recomendación para dar, y prefiero decirlo así antes que inventar una. Todavía no encontré una solución cerrada. Lo único que puedo dejar anotado, por si a alguien le ahorra una tarde, es dónde se rompe: en la criptografía de la firma y en la IP desde la que salís, no en el ERP.