Soluții · Servicii financiare
Un agent care clasifică mișcări de bani alegând dintr-o listă închisă, nu scriind o propoziție pe care apoi o interpretează cineva.
Într-o organizație financiară, un agent util nu dă sfaturi și nu aprobă nimic: citește documente și tranzacții, le încadrează într-o categorie dintr-un set fix, spune cât de sigur e și are voie să răspundă „nu știu”. Restul — decizia, aprobarea, politica — rămâne la oameni.
Ofertă, cu condițiiNu scriem „livrat”, pentru că nu avem un agent de acest fel pus în producție la un client din sectorul financiar. Ce avem, și arătăm exact ca atare, e o conductă proprie de ingestie care rulează pe datele noastre: cinci module Python, 1.526 de linii, care citesc notificări bancare din e-mail și extrase în PDF, clasifică fiecare tranzacție prin unelte și o scriu în PostgreSQL cu dedublare, plus patru fluxuri de automatizare pentru webhookuri de la trei procesatori de plăți. Starea reală, spusă în aceeași frază: depozitul nu e sub git, directoarele `tests/` și `webhook-server/` sunt goale, iar potrivirea aproximativă a numelor de contrapartidă folosește o euristică de n-grame marcată în cod ca „de înlocuit cu un serviciu de înglobare înainte de producție”. Partea de platformă financiară în producție — flux de cerere, contract, grafic de plăți, audit — e o lucrare separată, cu dovezile ei, și acolo scriem „livrat”.
Cererile de agenți AI în servicii financiare vin aproape întotdeauna în forma „să răspundă clienților la întrebări despre produsele noastre”. E o cerere legitimă, dar nu acolo se câștigă timp. Timpul se pierde în altă parte: cineva deschide zilnic zeci de notificări bancare și de extrase, se uită la o descriere de tipul unui șir de majuscule cu un cod și decide dacă e o încasare de la client, un salariu, un impozit, o rată către un creditor sau o cheltuială de exploatare. Munca asta e repetitivă, plictisitoare și, exact de aceea, plină de greșeli.
Un model lingvistic e bun la ea, cu o condiție: să nu i se ceară să scrie un răspuns în text liber. Dacă îi ceri o propoziție, o vei parsa tu, iar parsarea o vei greși. În conducta noastră, modelul nu scrie: primește șapte unelte și trebuie să cheme exact una — încasare de la client, salariu, impozit, plată către creditor, cheltuială de exploatare, comision bancar sau necunoscut. Fiecare unealtă cere, pe lângă numele contrapartidei sau categoria, un scor de încredere între 0 și 1. „Necunoscut” cere un motiv scris. Ieșirea e o structură, nu o părere.
A doua regulă e că nimic nu intră de două ori. Fiecare tranzacție extrasă dintr-o notificare sau dintr-un extras primește un identificator extern calculat ca prefix de 16 caractere dintr-o amprentă SHA-256 peste câmpurile ei, coloana e unică în tabel, iar inserarea se face cu `ON CONFLICT (external_id) DO NOTHING`. Consecința practică: cutia poștală poate fi recitită de câte ori vrei, iar soldul nu se dublează. Fără regula asta, orice conductă de ingestie financiară ajunge, în a treia săptămână, să producă dubluri pe care cineva le curăță manual.
Ce nu face un asemenea agent, și de ce e important să scriem asta pe pagină: nu aprobă o plată, nu ia o decizie de creditare, nu dă recomandări de investiție și nu răspunde clientului în numele instituției. Scorul de încredere pe care îl întoarce e evaluarea modelului despre el însuși, nu o măsurătoare a acurateței făcută de noi — distincția asta e diferența dintre un instrument și o iluzie de control.