Решения · Финансовые услуги
Агент, который классифицирует денежные движения, выбирая из закрытого списка, а не составляя предложение, которое затем кто-то интерпретирует.
В финансовой организации полезный агент не дает советов и ничего не одобряет: он читает документы и транзакции, относит их к категории из фиксированного набора, говорит, насколько он уверен, и может ответить «не знаю». Остальное — решение, одобрение, политика — остается за людьми.
Предложение с условиямиNu 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”.
Запросы на AI-агентов в финансовых сервисах почти всегда приходят в форме «чтобы отвечал клиентам на вопросы о наших продуктах». Это законный запрос, но время там не выигрывается. Время теряется в другом месте: кто-то каждый день открывает десятки банковских уведомлений и выписок, смотрит на описание в виде строки из заглавных букв с кодом и решает, является ли это поступлением от клиента, зарплатой, налогом, платежом кредитору или операционным расходом. Эта работа повторяющаяся, скучная и, именно поэтому, полная ошибок.
Языковая модель хороша в этом, при одном условии: от неё нельзя требовать писать ответ в свободном тексте. Если вы просите предложение, его будете парсить вы, и парсинг вы ошибёте. В нашей проводке модель не пишет: она получает семь инструментов и должна вызвать ровно один — поступление от клиента, зарплата, налог, платёж кредитору, операционный расход, банковская комиссия или неизвестно. Каждый инструмент требует, помимо имени контрагента или категории, показатель уверенности от 0 до 1. «Неизвестно» требует письменную причину. Выход — структура, а не мнение.
Второе правило — ничто не попадает дважды. Каждая транзакция, извлечённая из уведомления или из выписки, получает внешний идентификатор, рассчитанный как префикс из 16 символов от SHA-256-хэша по её полям, столбец уникален в таблице, а вставка выполняется с `ON CONFLICT (external_id) DO NOTHING`. Практическое следствие: почтовый ящик можно перечитывать сколько угодно раз, а баланс не удваивается. Без этого правила любая финансовая ingest-проводка к третьей неделе начинает порождать дубликаты, которые кто-то чистит вручную.
Чего такой агент не делает и почему важно писать это на странице: он не утверждает платёж, не принимает кредитное решение, не даёт инвестиционные рекомендации и не отвечает клиенту от имени учреждения. Показатель уверенности, который он возвращает, — это оценка модели о самой себе, а не измерение точности, сделанное нами — это различие и есть разница между инструментом и иллюзией контроля.