Rozwiązania · Usługi finansowe
Agent, który klasyfikuje ruchy pieniężne, wybierając z zamkniętej listy, a nie pisząc zdanie, które potem ktoś interpretuje.
W organizacji finansowej użyteczny agent nie doradza i niczego nie zatwierdza: czyta dokumenty i transakcje, klasyfikuje je do kategorii z ustalonego zestawu, mówi, jak bardzo jest pewny, i może odpowiedzieć „nie wiem”. Reszta — decyzja, zatwierdzenie, polityka — pozostaje po stronie ludzi.
Oferta, z warunkamiNie piszemy „dostarczone”, ponieważ nie mamy takiego agenta wdrożonego produkcyjnie u klienta z sektora finansowego. To, co mamy i pokazujemy dokładnie jako takie, to własny pipeline ingestii działający na naszych danych: pięć modułów Python, 1.526 linii, które czytają powiadomienia bankowe z e-maili i wyciągów PDF, klasyfikują każdą transakcję za pomocą narzędzi i zapisują ją do PostgreSQL z deduplikacją, plus cztery przepływy automatyzacji dla webhooków od trzech procesorów płatności. Rzeczywisty stan, powiedziany w tym samym zdaniu: repozytorium nie jest pod git, katalogi `tests/` i `webhook-server/` są puste, a przybliżone dopasowanie nazw kontrahentów korzysta z heurystyki n-gramów oznaczonej w kodzie jako „do zastąpienia usługą osadzania przed produkcją”. Część platformy finansowej w produkcji — przepływ wniosku, kontrakt, wykres płatności, audyt — jest osobną pracą, z własnymi dowodami, i tam piszemy „dostarczone”.
Wnioski o agentów AI w usługach finansowych prawie zawsze przychodzą w formie „żeby odpowiadał klientom na pytania o nasze produkty”. To uzasadnione żądanie, ale nie tam oszczędza się czas. Czas traci się gdzie indziej: ktoś codziennie otwiera dziesiątki powiadomień bankowych i wyciągów, patrzy na opis typu ciąg wielkich liter z kodem i decyduje, czy to wpływ od klienta, wynagrodzenie, podatek, rata do wierzyciela czy koszt operacyjny. Ta praca jest powtarzalna, nudna i właśnie dlatego pełna błędów.
Model językowy nadaje się do tego, pod jednym warunkiem: nie wolno prosić go o pisanie odpowiedzi w wolnym tekście. Jeśli poprosisz o zdanie, to Ty je sparsujesz, a parsowanie zrobisz źle. W naszym przepływie model nie pisze: dostaje siedem narzędzi i musi wywołać dokładnie jedno — wpływ od klienta, wynagrodzenie, podatek, płatność do wierzyciela, koszt operacyjny, opłatę bankową albo nieznane. Każde narzędzie wymaga, oprócz nazwy kontrahenta lub kategorii, wskaźnika pewności między 0 a 1. „Nieznane” wymaga zapisanego powodu. Wynik jest strukturą, a nie opinią.
Druga zasada jest taka, że nic nie wchodzi dwa razy. Każda transakcja wyodrębniona z powiadomienia albo z wyciągu dostaje zewnętrzny identyfikator obliczony jako 16-znakowy prefiks z odcisku SHA-256 nad jej polami, kolumna jest unikalna w tabeli, a wstawianie odbywa się przez `ON CONFLICT (external_id) DO NOTHING`. Praktyczna konsekwencja: skrzynka pocztowa może być odczytana ponownie tyle razy, ile chcesz, a saldo się nie podwaja. Bez tej reguły każdy finansowy przepływ ingestii w trzecim tygodniu zaczyna produkować duplikaty, które ktoś czyści ręcznie.
Czego taki agent nie robi i dlaczego ważne jest, żeby napisać to na stronie: nie zatwierdza płatności, nie podejmuje decyzji kredytowej, nie daje rekomendacji inwestycyjnych i nie odpowiada klientowi w imieniu instytucji. Wskaźnik pewności, który zwraca, to ocena modelu o samym modelu, a nie pomiar dokładności wykonany przez nas — ta różnica to różnica między narzędziem a iluzją kontroli.