Fa dos anys vam escriure sobre per què vam posar un agent d'IA a WhatsApp en lloc de construir una altra app per als clients d'esports de muntanya de Lueira. Uns mesos després vam aprofundir en la mecànica del function-calling: com l'agent comprova de veritat la disponibilitat, crea una reserva i envia un enllaç de pagament sense inventar-se una plaça que no existeix. Tots dos posts es van escriure des de dins, mentre encara estàvem construint i provant. Aquest està escrit des de fora, després de dos anys amb el sistema funcionant en producció per a escoles d'esquí, centres de busseig, campaments de surf i botigues de lloguer els propietaris de les quals no sabrien dir-te què és una function call, ni ho necessiten.
Dos anys és temps suficient perquè un sistema deixi de ser un projecte i es converteixi en infraestructura, una cosa que la gent oblida que sigui ni tan sols "IA" perquè simplement contesta el telèfon, per dir-ho així, cada dia. També és temps suficient per ser honestos sobre què ens va sorprendre, què vam fer malament, i què significa de debò "IA per a petits negocis" un cop s'acaba la demo.
1. El que ens va sorprendre amb volum real
Les converses que l'agent gestiona bé són les que esperàvem: "hi ha plaça a la classe de grup de demà", "puc llogar un vestit de neoprè talla L", "he pagat però no m'ha arribat la confirmació". Això és el pa de cada dia d'un negoci de reserves, i després de dos anys l'agent gestiona la immensa majoria sense que ningú noti que hi ha un model darrere del número de WhatsApp.
El que no vam anticipar del tot va ser la pura varietat de maneres d'escriure que fan servir els clients reals un cop el volum és prou alt. La gent no escriu com els casos de prova que vam redactar el juny de 2024. Escriuen mitja frase, després una foto, després una nota de veu, després "res, ja ho he trobat". Al Val d'Aran en concret, les converses barregen habitualment castellà, català, francès i aranès en el mateix fil, de vegades en el mateix missatge, perquè així és senzillament com es parla allà entre la gent i amb els comerços. L'agent va necessitar acostumar-se a aquesta barreja en lloc de demanar educadament als clients que triessin un idioma, que és el que feia una versió anterior, més rígida.
L'altra sorpresa va ser la negociació. No havíem construït per a la freqüència amb què els clients demanen alguna cosa fora de les regles: un descompte perquè porten cinc amics, un canvi de data fora de la finestra de cancel·lació, una plaça privada encaixada en una tarda completa. Res d'això és un bug de l'agent; és un error en assumir que els clients només demanen coses que el sistema ja permet. La resposta correcta, la majoria de vegades, no és deixar que l'agent decideixi. És reconèixer que la petició necessita una persona, i derivar-la amb netedat en lloc d'endevinar.
2. La confiança va trigar més a construir-se que el codi
L'enginyeria del function-calling va estar pràcticament acabada al quart mes. Que els propietaris confiessin prou com per deixar de comprovar cada reserva va trigar prop d'un any, i per a alguns, més que això.
Això no és una crítica a ningú. És una reacció completament raonable d'algú el negoci del qual depèn d'un número de WhatsApp que ha contestat personalment durant anys. Al principi, més d'un propietari ens va demanar que el poséssim en còpia a cada conversa, o revisava el calendari de reserves cada matí "per si de cas". Aquest comportament no va desaparèixer perquè expliquéssim millor l'arquitectura. Es va anar esvaint perquè, setmana rere setmana, les reserves eren correctes, els enllaços de pagament funcionaven, i els casos límit que sí que s'escolaven es detectaven i corregien prou de pressa perquè res esclatés davant d'un client.
3. Què significa de debò "petits negocis i IA" a la pràctica
Cap dels propietaris que fan servir aquest agent va configurar un prompt, ajustar un model, ni escriure una barrera de seguretat. No ho van necessitar, i aquí està la clau. Que la "IA funcioni" per a un negoci així no vol dir que el propietari es converteixi en enginyer d'IA a temps parcial a més de portar les classes i els lloguers. Vol dir que algú altre, en aquest cas Maladeta Studio, ja va fer la feina poc glamurosa descrita al post de function-calling: decidir exactament què pot fer l'agent, què no ha de fer mai pel seu compte, i què passa quan no n'està segur.
Aquest és el mateix argument que hem fet sobre el motor de reserves de Lueira, la multi-tenancy, el compliment de facturació electrònica i les signatures eIDAS: un operador petit no hauria de convertir-se en expert en res d'això per portar un negoci seriós.
4. On encara ha d'entrar-hi una persona
Mentiríem si diguéssim que l'agent ho gestiona tot ara. Encara no ho fa, i no hauria de fer-ho. Les queixes genuïnes, qualsevol cosa que impliqui un accident o una preocupació de seguretat, peticions inusuals que no encaixen netament en una reserva, i qualsevol conversa en què la resposta correcta depengui del criteri i no d'una regla: aquestes van a una persona, i així ha de ser.
Saber exactament quan derivar continua sent un problema de disseny obert, no resolt. Hem millorat a detectar els senyals: frustració, ambigüitat, una petició per a la qual l'agent no té funció, però "millor" no és "acabat".
Dos anys després, el resum honest és aquest: l'agent ja no és la part interessant. El que és interessant és com de normal s'ha tornat per a les persones que en depenen, i quant de manteniment invisible i avorrit cal per mantenir alguna cosa tan normal.
