A las 9:30 de la mañana del primero del mes pasado, el celular me vibró con un mensaje de Telegram de un contacto que había creado seis semanas antes. "Vence la DDJJ mensual. ¿Querés que me encargue?". Le contesté "dale". Unos minutos después llegó la respuesta: número de transacción de AFIP y estado "presentada". No abrí el navegador, no tipeé ningún CUIT, ni estuve sentado en un escritorio. Eso es Sergio haciendo su laburo.
Sergio es como le puse a mi deploy de Hermes Agent, el agente open source de Nous Research. Corre en una app de Fly.io que se llama hermes-fede, con un único volumen dedicado, y le hablo a través de un bot de Telegram. Los audios se transcriben. Los archivos vuelven como archivos. No hay laptop en el medio. El motivo de tener un agente en un servidor remoto con un gateway de Telegram es que no le importa dónde estoy ni qué estoy haciendo.
Cómo desarrollé la skill de impuestos
La primera vez que tuve que presentar la DDJJ mensual de Ingresos Brutos por Convenio Multilateral a través de SIFERE (el sistema federal para contribuyentes que operan en más de una provincia), manejé el navegador yo mismo y le narré cada paso a Sergio mientras lo hacía. Al final le pedí que guardara lo que acabábamos de hacer como una skill. Escribió un archivo markdown bajo skills/argentina-tax/sifere-monthly-filing:
---
name: sifere-monthly-filing
description: Presentar la DDJJ mensual de Ingresos Brutos
por Convenio Multilateral en el portal SIFERE.
---
## Paso 1. Iniciar sesión
1. Abrir el portal de AFIP.
2. Iniciar sesión con CUIT y clave fiscal.
3. Desde el menú de servicios, hacer clic en SIFERE Web.
## Paso 2. Abrir el listado de DDJJ mensuales
1. Hacer clic en "Declaraciones mensuales".
2. Identificar el período pendiente de presentación.
3. Hacer clic en "Nueva DDJJ mensual" y elegir año y mes.
## Paso 3. Cargar valores por jurisdicción
1. Para cada jurisdicción, calcular el total y la deducción.
2. Confirmar los totales antes de presentar.
Al mes siguiente, Sergio la presentó solo
El mes siguiente, el recordatorio del cron disparó a la mañana. Le contesté con un solo mensaje: "dale". Sergio cargó la skill, abrió una sesión de navegador real, entró al portal, abrió la presentación del nuevo período, copió la estructura del mes anterior, la firmó y la presentó. La respuesta fue un número de transacción y el estado "presentada". El agente no se vuelve más inteligente; el archivo de skill sí, y el agente lo lee. Ese es el loop cerrado. Cada sesión exitosa se convierte en un párrafo dentro de un archivo markdown que la próxima sesión consulta.
La carpeta laboral en el peaje
Otra historia. Estaba en la Ruta 5 yendo a Córdoba cuando entró el llamado. La señora que cuidaba a mi abuela había renunciado esa mañana, después de cuatro años en el puesto, sin aviso. Agarré el volante con una mano y el celular con la otra y le grabé un audio de 1:42 a Sergio:
"Andrea renunció hoy. Cuatro años en blanco. Quiero una carta de renuncia, una liquidación final y una guía de lo que le debo. En español, obvio. Estoy manejando, no puedo tipear."
Enviado. Vista de nuevo a la ruta.
Para cuando llegué al siguiente peaje, había tres archivos en el chat, redactados en español: una carta de renuncia para que firme Andrea, una liquidación, y una guía paso a paso de lo que le debía. La guía citaba el Artículo 232 de la Ley de Contrato de Trabajo (Ley 20.744), el artículo que regula la indemnización sustitutiva de preaviso cuando una relación laboral termina abruptamente. Sergio me había hecho cinco preguntas para aclarar antes de redactar (si estaba registrada en AFIP, contrato escrito o de palabra, cuántos años, qué me preocupaba legalmente, si había algo pendiente de pagar), tomó las respuestas, después buscó modelos actuales de renuncia en la web y armó la carpeta contra la ley vigente. El costo no eran los documentos. Era que no tuve que abrir una laptop ni llamar a nadie por dos horas. Los leí con el motor en marcha y la barrera del peaje adelante. Suficientemente buenos como para que mi siguiente llamado fuera al contador a confirmar, no a rehacer.
Explicarle los LLMs a la abuela
Unos días después mi abuela me preguntó qué eran esos modelos de los que todo el mundo habla. Le pedí a Sergio una explicación en español que ella pudiera seguir, y después que me la leyera en voz alta. El texto usó la analogía de "alguien que leyó millones de recetas": no entiende de cocina, pero reconoce por qué el vinagre reacciona con el bicarbonato. Generó el audio con el text-to-speech de OpenAI en lugar del de Edge, porque la prosodia del español suena bastante más natural, lo guardó como un MP3, y eso es lo que ella escuchó. Dijo que sonaba como una persona.
Lo que vendo
Por la misma época, algunos amigos empezaron a pedirme que les armara el suyo. Lo que vendo es el paquete completo: el deploy en un servidor remoto, las conexiones a los servicios que realmente usan (Gmail, calendario, búsqueda web, síntesis de voz), el ruteo y la medición de los tokens del modelo de lenguaje, y un bot de Telegram ya enchufado a todo eso. El cliente nunca abre un archivo de configuración. Para cuando le entrego el bot, todo está armado. Solo manda mensajes. USD 50 por mes en el plan base, 90 con los conectores de email y la voz de ElevenLabs. La landing en español en fedesapuppo.com/hermes lo vende a contadores, abogados y dueños de pymes, porque a esa gente es a la que le tenía historias para contar. El producto no es el modelo y no es el agente. Es el deploy ya enchufado.
Qué cambió en cómo trabajo
- Telegram es una interfaz superior. Tu celular casi siempre va a estar en tu bolsillo; tu laptop, no.
- La unidad de valor es el archivo de skill, no la conversación. Después de cada tarea importante, pedile al agente que escriba lo que aprendió.
- Un agente que vive en la nube en un VPS le gana a uno local más rápido. La persistencia es la feature.
- La honestidad sobre las fallas es lo que hace que un agente sea confiable. Un agente que parece mágico y miente sobre lo que hizo es peor que uno lento que reporta.
La ruta de Alta Gracia a Córdoba sigue siendo de 36 minutos. La diferencia es lo que podés hacer en esos 36 minutos si le enseñaste al celular a ser útil.
Soy Fede Sapuppo, desarrollador Rails en Alta Gracia, Argentina. Llevo crossledger.net y vendo deploys gestionados de Hermes en fedesapuppo.com/hermes.