Um microagente para uma etapa confusa de um sistema contábil
Digamos que entrem US$ 10 mil numa conta. No extrato, é um pagamento só. Dentro da contabilidade, esse mesmo pagamento pode envolver um monte de mercadorias e materiais diferentes. Parte do material vai para a produção e precisa ser acompanhada conforme é usada. Ou um cliente paga um depósito para o mês e vai consumindo esse valor aos poucos. Uma entrada, mas vários controles pequenos por trás dela.
E ainda é preciso tirar os detalhes dos documentos. Alguém manda um e-mail, outro escreve uma mensagem, outro preenche uma ficha. Um parser comum funciona bem quando a entrada já está estruturada: pega o valor do campo A e coloca no campo B. Mas, se o texto chega solto, essa ligação entre campos não diz qual número é o valor e pelo que ele foi pago. Os módulos antigos de leitura de documentos também podiam errar, então muitas vezes o contador acabava lançando tudo à mão.
Foi nesse ponto que colocamos um microagente, entre a informação não estruturada e o parser. Usamos Terra ou Luna. Nem era questão de treiná-lo em contabilidade, porque essa não era a tarefa dele. O prompt era bem restrito: encontrar cada valor e pelo que foi pago, e devolver esses campos numa estrutura que o parser pudesse usar.
Os limites faziam parte da tarefa. O agente não podia reescrever uma posição, pular outra ou juntar várias só para entregar uma resposta que parecesse completa. Se não conseguisse identificar alguma coisa, tinha que dizer. Aí o parser comum pegava os campos que entendia e os colocava no banco de dados estruturado.
Para mim, esse é um exemplo prático de módulo. O modelo faz a parte que exige interpretação do sentido; o parser faz o mapeamento que já é conhecido. Existe uma passagem clara entre os dois, e dá para verificar o resultado da extração separadamente. Chamar os dois de “agentes” não deixaria esse limite mais claro.
Conforme o sistema foi crescendo, a mesma pergunta voltava: quem é responsável pelo resultado de cada etapa, que estado continua existindo fora da conversa e o que acontece quando uma resposta é incerta? O código chegava mais rápido do que eu conseguia revisar e conectar. A parte difícil tinha passado a ser administrar a sequência de decisões em torno dele.
Denis Ostapenko · ORCID 0009-0006-2630-7280