Existe um padrão popular no setor de IA atualmente: dar a um modelo de linguagem acesso a ferramentas e deixá-lo descobrir quais chamar. Funciona muito bem em demonstrações. Falha em produção.
No Atlas Verified, nosso agente de IA tem acesso a mais de 100 ferramentas especializadas — bases governamentais de conformidade, APIs de rastreamento de navios, serviços de triagem de sanções, provedores de dados comerciais, sistemas de rastreamento de contêineres e outras. Cada ferramenta existe porque um profissional de conformidade precisa daquele dado específico para tomar uma decisão de verificação. O desafio de engenharia não é construir as ferramentas. É garantir que as ferramentas corretas sejam chamadas na ordem correta, com as entradas corretas, todas as vezes.
Este artigo detalha os problemas reais de orquestração de ferramentas em escala e os padrões de engenharia que desenvolvemos para resolvê-los.
O problema da proliferação de ferramentas
Quando seu agente tem 5 ferramentas, a seleção é trivial. O modelo lê as descrições de cada ferramenta, escolhe a correta e a chama. Mas algo falha quando você ultrapassa 20, 50, 100 ferramentas.
Primeiro, há o problema da janela de contexto. Cada ferramenta precisa de descrição, esquema de parâmetros e orientações de uso no comando de sistema. Com 100+ ferramentas, são dezenas de milhares de tokens consumidos antes mesmo de a pergunta do usuário entrar no contexto. O modelo passa mais tempo lendo a documentação das ferramentas do que pensando no problema.
Segundo, há o problema da precisão da seleção. Modelos de linguagem são bons em escolher entre poucas opções claramente distintas. São ruins em escolher entre dezenas de ferramentas com nomes semelhantes. Quando há várias ferramentas com nomes sobrepostos para consultas e triagem de sanções, o modelo frequentemente escolhe a errada — ou chama várias que retornam dados sobrepostos.
Terceiro, há o problema de custo e latência. Cada descrição de ferramenta no comando custa tokens. Cada chamada desnecessária custa chamadas de API a serviços externos, muitos cobrados por solicitação. Um agente que chama 8 ferramentas quando 3 bastariam é caro e lento.
Por que o roteamento estático não funciona
A solução ingênua é o roteamento estático: identificar padrões na pergunta do usuário e encaminhar a conjuntos predefinidos de ferramentas. "Verifique esta empresa" aciona a triagem de sanções. "Rastreie este contêiner" aciona o rastreamento de navios. "Verifique este certificado" aciona a consulta ao USDA.
Isso falha imediatamente na prática. Considere a pergunta: "Você pode verificar este certificado orgânico da Índia?" Um roteador estático poderia acionar uma consulta à base de orgânicos do USDA — razoável. Mas um profissional de conformidade também quer saber: o agente certificador está sancionado? Há alertas ativos de importação da FDA para o produto daquele país? O exportador consta em listas de partes proibidas? Há anomalias comerciais na rota declarada?
Uma única pergunta do usuário pode legitimamente exigir cinco ou mais ferramentas de áreas completamente diferentes. O roteamento estático deixa de fazer verificações críticas ou aciona tudo em excesso, retomando os problemas de custo e precisão.
O contexto importa muito. "Fale sobre esta empresa" significa coisas totalmente diferentes conforme o usuário esteja analisando um conhecimento de embarque, um certificado orgânico ou tendo uma conversa geral de pesquisa. As mesmas palavras exigem ferramentas diferentes em cada contexto.
Arquitetura de duas camadas: seleção e execução
Nossa solução separa a seleção da execução de ferramentas usando duas camadas distintas de modelos.
A camada de seleção usa um modelo rápido e econômico. Seu único trabalho é analisar a pergunta do usuário, o contexto da conversa e um manifesto compacto das ferramentas disponíveis, e escolher quais devem estar disponíveis para esta interação específica. Ela não chama as ferramentas — apenas decide a quais o modelo de execução terá acesso.
O modelo de seleção vê uma representação simplificada de cada ferramenta: uma descrição de uma linha, os dados que retorna e suas limitações. Isso é muito mais compacto que esquemas completos de parâmetros, permitindo avaliar todas as 100+ ferramentas sem atingir limites de contexto. Normalmente seleciona 8-12 ferramentas relevantes à pergunta atual.
A camada de execução usa um modelo de raciocínio mais capaz. Recebe apenas as ferramentas escolhidas pela camada de seleção, com esquemas completos de parâmetros e orientações de uso. Como trabalha com um conjunto focado em vez do catálogo inteiro, toma decisões melhores sobre quais chamar, em que ordem e com quais parâmetros.
Essa separação tem benefícios mensuráveis. A seleção leva uma fração de segundo e custa muito pouco. O modelo de execução vê um contexto claro e focado e comete menos erros. O total de chamadas de ferramentas por interação caiu significativamente após a introdução dessa arquitetura.
Filtragem baseada em capacidades
Além da seleção em duas camadas, cada ferramenta do nosso sistema declara suas capacidades — os tipos de tarefas que pode realizar. Uma ferramenta pode declarar utilidade para verificações de conformidade, inteligência comercial, análise documental ou rastreamento de remessas.
Quando o sistema determina a intenção do usuário, filtra o catálogo para incluir apenas ferramentas com capacidades correspondentes. O modelo de seleção nem sequer vê ferramentas irrelevantes ao tipo de tarefa atual.
Isso importa por uma razão sutil: modelos de linguagem são sugestionáveis. Se uma ferramenta de triagem de sanções estiver no contexto, o modelo pode decidir executá-la mesmo quando o usuário faz uma pergunta simples sobre rotas de transporte. Ao remover ferramentas irrelevantes antes da seleção, eliminamos toda uma classe de chamadas desnecessárias.
Ciclos de feedback de qualidade
A seleção de ferramentas é apenas metade do desafio. A outra metade é garantir que retornem resultados úteis — e saber o que fazer quando não retornam.
Após cada execução de ferramenta, nosso sistema avalia a qualidade do resultado. Modos comuns de falha incluem:
Resultados vazios. A ferramenta foi executada com sucesso, mas não retornou dados. Isso pode significar que a entidade não existe naquela base (uma constatação válida e informativa) ou que a consulta foi mal formulada (um problema que deve ser corrigido e tentado novamente).
Correspondências de baixa confiança. Uma pesquisa aproximada de nomes retorna resultados, mas a pontuação de correspondência fica abaixo do limite. O sistema precisa decidir se os apresenta como correspondências potenciais ou os descarta e tenta outra estratégia de pesquisa.
Tamanho de amostra insuficiente. Uma consulta comercial retorna resultados de apenas uma fonte quando várias deveriam ser cruzadas para garantir confiabilidade. O sistema reconhece essa lacuna e pode solicitar chamadas adicionais para preenchê-la.
Quando as verificações de qualidade falham, o sistema insere orientações no ciclo de raciocínio do agente. Não é uma simples nova tentativa — é uma tentativa direcionada que explica o que deu errado e sugere como reformular a consulta.
Entrega progressiva de resultados
A verificação de conformidade comercial envolve inerentemente várias etapas. Um usuário envia um conhecimento de embarque e pede ao agente que o verifique. O agente precisa conferir o embarcador em listas de sanções, verificar a certificação orgânica, consultar a posição atual do navio, conferir alertas de importação da FDA para a commodity e validar a classificação tarifária. Essas verificações levam tempos diferentes.
Em vez de fazer o usuário esperar todas as verificações terminarem antes de mostrar algo, transmitimos os resultados progressivamente. À medida que cada ferramenta retorna, seus resultados são imediatamente formatados e entregues à interface. O usuário vê os resultados de sanções, depois os dados do navio, depois o status de certificação orgânica, cada um exibido como cartão estruturado assim que fica pronto.
A etapa final de síntese, que produz um resumo narrativo conectando todos os resultados, só é executada depois que todas as ferramentas terminam.
Verificação automática: fechando o ciclo
Quando documentos são processados pelo nosso fluxo de OCR, o sistema de extração identifica dados importantes — IDs NOP, nomes de empresas, identificadores de navios, números de contêineres, códigos de portos e códigos HS. Cada dado corresponde a ferramentas específicas de verificação.
Em vez de esperar o usuário pedir "verifique este documento", o sistema calcula antecipadamente indicações de verificação. Quando o usuário abre uma conversa sobre um documento, o agente já sabe quais ferramentas chamar e com quais parâmetros. Isso reduz drasticamente o tempo de verificação: o agente não precisa ler o documento, identificar entidades e depois descobrir o que conferir. Já tem um plano de verificação pronto para executar.
Os princípios
A construção desse sistema consolidou vários princípios que acreditamos serem amplamente aplicáveis à engenharia de agentes de IA:
Separe a seleção da execução. Não faça seu modelo de raciocínio ser também seu modelo de roteamento. Use modelos rápidos e econômicos para classificação e modelos caros e capazes para raciocínio.
Reduza as opções, aumente a precisão. Um modelo escolhendo entre 10 ferramentas bem ajustadas supera sempre um escolhendo entre 100 ferramentas. Invista na filtragem antes da seleção.
Valide após a execução, não apenas antes. Chamadas de ferramentas falham de maneiras imprevisíveis. Construa ciclos de feedback de qualidade que detectem resultados ruins e orientem novas tentativas.
Transmita progressivamente, não em lote. Os usuários devem ver os resultados conforme chegam. A entrega progressiva não é apenas uma melhoria de experiência — muda fundamentalmente como os usuários interagem com dados de verificação.
Torne a intenção explícita. Não deixe o modelo inferir o que significa "bom". Diga a ele. O planejamento de objetivos transforma exploração aberta em verificação direcionada.
O agente de IA do Atlas Verified orquestra 100+ ferramentas especializadas de verificação para automatizar consultas de conformidade comercial em toda a cadeia global de suprimentos.
