Soluções · Serviços financeiros
Um agente que classifica movimentos de dinheiro escolhendo de uma lista fechada, e não escrevendo uma frase que depois alguém interpreta.
Numa organização financeira, um agente útil não dá conselhos e não aprova nada: lê documentos e transações, enquadra-os numa categoria de um conjunto fixo, diz quão seguro está e pode responder «não sei». O resto — a decisão, a aprovação, a política — fica com as pessoas.
Oferta, com condiçõesNu 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”.
Os pedidos de agentes AI em serviços financeiros vêm quase sempre na forma de «responder aos clientes a perguntas sobre os nossos produtos». É um pedido legítimo, mas não é aí que se ganha tempo. O tempo perde-se noutro lado: alguém abre diariamente dezenas de notificações bancárias e de extratos, olha para uma descrição do tipo uma cadeia de maiúsculas com um código e decide se é um recebimento de um cliente, um salário, um imposto, uma prestação a um credor ou uma despesa operacional. Esse trabalho é repetitivo, aborrecido e, precisamente por isso, cheio de erros.
Um modelo linguístico é bom nisso, com uma condição: não lhe ser pedido para escrever uma resposta em texto livre. Se lhe pedir uma frase, você vai fazer o parsing, e o parsing vai sair errado. No nosso pipeline, o modelo não escreve: recebe sete ferramentas e tem de chamar exatamente uma — recebimento de um cliente, salário, imposto, pagamento a um credor, despesa operacional, comissão bancária ou desconhecido. Cada ferramenta pede, além do nome da contraparte ou da categoria, um score de confiança entre 0 e 1. «Desconhecido» pede um motivo escrito. A saída é uma estrutura, não uma opinião.
A segunda regra é que nada entra duas vezes. Cada transação extraída de uma notificação ou de um extrato recebe um identificador externo calculado como um prefixo de 16 caracteres de uma impressão SHA-256 sobre os seus campos, a coluna é única na tabela, e a inserção faz-se com `ON CONFLICT (external_id) DO NOTHING`. A consequência prática: a caixa de correio pode ser lida quantas vezes quiser, e o saldo não duplica. Sem esta regra, qualquer pipeline de ingestão financeira acaba, na terceira semana, a produzir duplicados que alguém limpa manualmente.
O que um agente assim não faz, e por que é importante escrever isso na página: não aprova um pagamento, não toma uma decisão de crédito, não dá recomendações de investimento e não responde ao cliente em nome da instituição. O score de confiança que devolve é a avaliação do modelo sobre si próprio, não uma medição de exatidão feita por nós — essa distinção é a diferença entre uma ferramenta e uma ilusão de controlo.