Conteúdo da trilha
8 minNarração em inglês, legenda em portuguêsPodcast (RSS)
Capítulos
  1. 0:00Abertura
  2. 1:07O diagnóstico
  3. 2:04Por que acontece
  4. 3:09Quanto custa
  5. 4:22Um desafio
  6. 5:16O tratamento
  7. 7:08Quando ignorar
  8. 7:46Fechamento
Transcrição

Abertura

Um agente interno de operações começou com cinco ferramentas. A cada sprint, algum time pedia mais uma. Um ano depois, a lista enviada em toda chamada estava assim.

Get user. Fetch user. Get user profile. Look up customer. Search users. Cinco ferramentas, todas dizendo, mais ou menos, busca um usuário.

Depois, get account, e get account versão dois, descrita como: busca uma conta, nova. E mais trinta e três.

O trace mostra o efeito. Chega um pedido: qual é o plano do cliente com este CPF?

O modelo chama get user, com o CPF no campo de id. Erro de tipo.

Tenta search users, com o CPF como texto livre. Nada útil.

E só na terceira tentativa encontra look up customer. Três turnos, para uma consulta. Nesta aula, você vai aprender a reconhecer esse smell, quanto ele custa de verdade e a ordem de trabalho para enxugar a lista.

O diagnóstico

O formato é este. Chega um pedido simples.

O modelo precisa escolher entre dezenas de opções descritas de forma vaga.

Ele escolhe a que tem o nome mais parecido com o pedido.

O resultado é um erro, ou um dado que não ajuda.

E depois de turnos extras, ele acerta. Ou desiste.

Como identificar? Mais de quinze ou vinte ferramentas disponíveis na mesma chamada.

Nomes parecidos, como get alguma coisa, fetch alguma coisa e alguma coisa versão dois, com descrições quase iguais.

Descrições de uma linha que dizem o que a ferramenta faz, mas nunca quando usar.

Traces em que a ferramenta errada é chamada primeiro e corrigida depois. E definições de ferramenta somando milhares de tokens em toda chamada.

E ninguém sabe dizer quais ferramentas ainda são usadas.

Por que acontece

Cada time acrescenta a sua. Uma ferramenta nova é o jeito mais fácil de dar ao agente uma capacidade nova, e ninguém é dono da lista inteira.

Remover parece arriscado. Sem dado de uso, tirar uma ferramenta pode quebrar um fluxo que alguém usa uma vez por mês.

As APIs internas viram ferramentas uma a uma. Cada endpoint vira uma ferramenta, com o nome do endpoint. O agente herda o formato do seu backend, não o formato da tarefa.

Versões novas convivem com as antigas. A versão dois entrou para a um não quebrar, e as duas ficaram.

E conectar um servidor de ferramentas via MCP, o model context protocol, muitas vezes expõe dezenas de ferramentas de uma vez. O time liga o servidor e esquece de filtrar o que o agente precisa de verdade.

A armadilha de quem está começando é tratar mais ferramentas como mais capacidade. Muitas vezes é o contrário. Poucas ferramentas, bem distintas, vencem uma caixa de ferramentas que o modelo não consegue ler inteira.

Quanto custa

Agora, o custo. Primeiro, acerto. A escolha de ferramenta piora quando as opções são muitas, e parecidas. Cada erro custa um turno a mais, ou uma resposta errada.

Depois, dinheiro, com números ilustrativos. Digamos que cada definição de ferramenta tem uns cento e cinquenta tokens, e o agente faz dez mil chamadas por dia. Com quarenta ferramentas, são uns seis mil tokens por chamada, e uns sessenta milhões de tokens por dia. Só do catálogo.

Com oito ferramentas, uns doze milhões. E cada escolha errada ainda paga um turno a mais, com o histórico inteiro de novo.

E segurança. Mais ferramentas, mais superfície. Imagine o agente de um marketplace com três ferramentas de pagamento. Pagar boleto, enviar Pix e transferir por TED. As três descritas como: paga o cliente. Um pedido de estorno pode disparar a errada. Aí o erro deixa de ser custo. O dinheiro vai pelo trilho errado. E uma ferramenta de escrita esquecida na lista é uma porta aberta. Em segurança, isso tem nome. Agência excessiva. O modelo tem mais poder do que a tarefa precisa.

Um desafio

Uma pergunta para você. Você conectou o servidor de ferramentas de um produto interno, e o agente agora vê oitenta ferramentas, a maioria de administração. Em produção, um usuário pediu o status de um pedido, e o modelo chamou delete workspace. O que esse caso mostra, primeiro?

Que a lista enviada ao modelo é larga demais para a tarefa, com ferramentas destrutivas no mesmo conjunto de leituras simples. Status de pedido não precisa de delete workspace.

Não é que o protocolo seja ruim. Ele é um jeito de expor ferramentas, não a causa. E culpar o usuário com um filtro de entrada vem depois. O desenho já entregou uma ferramenta destrutiva para uma tarefa de leitura. Filtre o que o servidor expõe, consolide, e mantenha efeito colateral separado de leitura.

O tratamento

São três refatorações. Consolidar ferramentas, quando há duplicadas, quase gêmeas, ou ferramentas que ninguém chama. É quase sempre o primeiro passo.

Introduzir um roteador, quando mesmo depois de consolidar ainda sobram muitas ferramentas, porque o agente cobre vários assuntos. Cada rota recebe só as suas. O agente de pedidos não precisa ver as ferramentas de RH.

E mover as instruções para a descrição da ferramenta, quando as regras de quando usar cada uma moram no prompt de sistema, longe de onde o modelo realmente escolhe.

Na prática, a ordem é esta. Meça o uso nos traces dos últimos noventa dias. Uma ferramenta que nunca aparece é candidata a sair.

Junte as ferramentas que fazem a mesma coisa com chaves diferentes. Uma ferramenta, vários parâmetros.

Reescreva cada descrição para o momento da escolha. O que faz, quando usar, quando não usar e o que devolve.

E se a lista ainda passa de uma dúzia, e os assuntos são distintos, roteie.

De volta ao pedido do CPF. Antes, quarenta ferramentas visíveis, cinco delas de usuário, e três turnos. Depois, oito ferramentas, e uma delas é find customer, com uma chave e um valor. A primeira chamada já usa o CPF como chave. Um turno.

E digamos que você consolidou, e ainda sobraram vinte e oito ferramentas, porque o mesmo agente atende RH, pedidos e financeiro. A escolha continua ruim em pedidos. Não coloque um bloco no prompt dizendo, se o assunto for pedidos, use só estas. O modelo continua vendo as vinte e oito. A restrição tem que estar na lista que você manda, não na prosa. É isso que o roteador faz.

Quando ignorar

Quando dá para ignorar? Vinte ferramentas de domínios diferentes, com nomes e descrições claros, podem funcionar bem. O smell é confusão, não quantidade. E o contrário também vale. Oito ferramentas, em que três fazem a mesma busca de cliente com chaves diferentes, é esse smell.

Se o seu provedor deixa o modelo ver só um índice e carregar as definições sob demanda, o custo de tokens some. A confusão entre ferramentas parecidas continua.

E num protótipo, começar largo para descobrir o que o agente precisa, e podar depois, tudo bem.

Fechamento

Então, a ideia para levar. O modelo escolhe a partir do que você entrega, no momento da escolha. Entregue menos portas, uma por trabalho, cada uma com uma placa dizendo quando entrar. Você ganha menos turnos, menos tokens e menos jeitos de causar estrago.

Na próxima aula, a gente faz o primeiro corte passo a passo: consolidate tools. Até lá.

SmellInchaços

Ferramentas Demais

Tool Sprawl

Ferramentas Demais (Tool Sprawl) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Inchaços. O agente tem 40 ferramentas com nomes parecidos e escolhe a errada com frequência.

Elemento
02/37
Nível
Intermediário
Leitura
5 min
Atualizado
Nesta página 7
  1. 01Como reconhecer
  2. 02Por que acontece
  3. 03Quanto custa ignorar
  4. 04Tratamento
  5. 05O que você ganha
  6. 06Quando ignorar
  7. 07É esse smell?
  8. ··Perguntas rápidas

Como reconhecer

O agente interno de operações nasceu com cinco ferramentas. A cada sprint, um time pedia mais uma. Um ano depois, a lista enviada em toda chamada tinha este trecho (anonimizado):

get_user(id)                 Busca um usuário.
fetch_user(email)            Busca um usuário.
get_user_profile(id)         Retorna o perfil do usuário.
lookup_customer(document)    Procura cliente.
search_users(query)          Busca usuários.
get_account(id)              Busca conta.
get_account_v2(id)           Busca conta (novo).
...
[mais 33 ferramentas]

O trace mostra o efeito. Pedido: “qual o plano do cliente com CPF 123.456.789-00?”. O modelo chamou get_user com o CPF no campo id, recebeu erro de tipo, tentou search_users com o CPF como texto livre, e só na terceira tentativa achou lookup_customer. Três voltas para um lookup.

Sinais de Ferramentas Demais:

  • Mais de 15 ou 20 ferramentas disponíveis na mesma chamada.
  • Nomes parecidos, como get_x, fetch_x e x_v2, com descrições quase iguais.
  • Descrições de uma linha que dizem o que a ferramenta faz, mas não quando usar.
  • O trace mostra ferramentas erradas chamadas primeiro e corrigidas depois.
  • As definições de ferramenta somam milhares de tokens em toda chamada.
  • Ninguém sabe dizer quais ferramentas ainda são usadas.
flowchart LR
  P(["1. Pedido"]):::io --> M(["2. Modelo com 40 ferramentas"]):::llm
  M --> W["3. Ferramenta parecida, mas errada"]:::tool
  W --> E["4. Erro ou dado inútil"]:::tool
  E --> M
  M --> R["5. Ferramenta certa, tarde"]:::tool
  1. Um pedido simples chega.
  2. O modelo precisa escolher entre dezenas de opções descritas de forma vaga.
  3. Ele escolhe a que tem o nome mais parecido com o pedido.
  4. O resultado é um erro ou um dado que não serve.
  5. Depois de voltas extras, ele acerta. Ou desiste.
Checagem +20 XP de primeiraSeu agente chama get_user, erra, chama search_users, erra, e só então chama lookup_customer com o CPF. As três descrições dizem 'busca um usuário'. Qual é o diagnóstico mais útil?

Por que acontece

  • Cada time acrescenta a sua. Ferramenta nova é o jeito mais fácil de dar ao agente uma capacidade nova, e ninguém é dono da lista inteira.
  • Tirar parece arriscado. Sem trace de uso, remover uma ferramenta pode quebrar um fluxo que alguém usa uma vez por mês.
  • APIs internas viram ferramentas uma a uma. Cada endpoint vira uma ferramenta, com o nome que o endpoint tinha. O agente herda o desenho do backend, não o da tarefa.
  • Versões novas convivem com as antigas. get_account_v2 entrou para não quebrar get_account, e as duas ficaram.
  • MCP (Model Context Protocol) amplia a lista sem revisão. Conectar um servidor MCP costuma expor dezenas de ferramentas de uma vez. O time liga o servidor e esquece de filtrar o que o agente realmente precisa.

A armadilha mais comum de quem está começando: tratar “mais ferramentas” como “mais capaz”. O oposto costuma ser verdade. O post “Building effective agents”, da Anthropic (dez. 2024), recomenda poucas ferramentas, bem distintas. Confusão entre opções parecidas é o custo de ignorar isso.

Quanto custa ignorar

  • Acerto. A escolha de ferramenta piora quando as opções são muitas e parecidas. Cada erro custa uma volta extra ou uma resposta errada.
  • Dinheiro e latência. Todas as definições vão em toda chamada. Dezenas de ferramentas somam milhares de tokens de entrada por volta do loop.
  • Segurança. Mais ferramentas é mais superfície. Uma ferramenta de escrita esquecida na lista é uma porta aberta. O OWASP Top 10 for LLM Applications trata isso como agência excessiva: o modelo tem poder demais para a tarefa.
  • Manutenção. Mudar o contrato de uma API interna exige achar todas as ferramentas que a envolvem.

Uma conta para ver o peso

Os números abaixo são ilustrativos. Suponha que cada definição de ferramenta (nome, parâmetros, descrição) ocupe cerca de 150 tokens. O agente faz 10 mil chamadas por dia.

Lista Tokens de definição por chamada Tokens de definição por dia
40 ferramentas cerca de 6.000 cerca de 60 milhões
8 ferramentas cerca de 1.200 cerca de 12 milhões

Isso é só o catálogo. Cada escolha errada ainda paga uma volta extra, com o histórico inteiro de novo. No trace do CPF, três tentativas transformaram um lookup barato em três chamadas.

Imagine um marketplace brasileiro em que o agente também tem pagar_boleto, enviar_pix e transferir_ted, as três descritas como “paga o cliente”. Um pedido de reembolso via Pix pode disparar boleto. O erro deixa de ser só custo: vira dinheiro no lugar errado.

Tratamento

Refatoração Escolha quando
Consolidar Ferramentas Há ferramentas duplicadas, quase iguais ou sem uso. É quase sempre o primeiro passo.
Introduzir Roteador Mesmo depois de consolidar, as ferramentas são muitas porque o agente cobre vários assuntos. Cada rota recebe só as suas, como no Roteador de Ferramentas.
Mover Instrução para a Ferramenta As regras de quando usar cada ferramenta estão no system prompt, longe de onde o modelo escolhe.

Ordem prática:

  1. Meça uso nos traces dos últimos 90 dias. Ferramenta que não aparece é candidata a sair. Se o sinal for “existe mas ninguém chama”, veja também Ferramentas Fantasma.
  2. Agrupe as que fazem a mesma coisa com chaves diferentes. Uma ferramenta, vários parâmetros.
  3. Reescreva a descrição para o momento da escolha: o que ela faz, quando usar, quando não usar, o que devolve.
  4. Se a lista ainda passar de uma dezena e os assuntos forem distintos, roteie. O agente de pedidos não precisa ver as ferramentas de RH.

Antes e depois, no mesmo pedido do CPF:

Antes Depois
Ferramentas visíveis 40, cinco delas de “usuário” 8, uma delas find_customer(key, value)
Primeira chamada get_user com tipo errado find_customer com key=cpf
Voltas 3 1
Checagem +20 XP de primeiraVocê consolidou duplicatas e ainda restam 28 ferramentas, porque o mesmo agente atende RH, pedidos e financeiro. O eval de escolha de ferramenta continua ruim em pedidos. Qual é o próximo passo?

O que você ganha

  • Menos chamadas erradas e menos voltas por tarefa.
  • Menos tokens de entrada em toda chamada.
  • Uma lista que alguém consegue ler e revisar em dez minutos.
  • Menos superfície de ataque.

Quando ignorar

  • Ferramentas muito distintas e bem descritas. Vinte ferramentas de domínios diferentes, com nomes e descrições claros, podem funcionar bem. O smell é a confusão, não o número.
  • Busca de ferramentas pelo provedor. Se você usa um mecanismo em que o modelo vê só um índice e carrega as definições sob demanda, o custo de tokens some. A confusão entre ferramentas parecidas continua.
  • Protótipo. Para descobrir quais capacidades o agente precisa, começar largo e podar depois é aceitável.

É esse smell?

Checagem +20 XP de primeiraO agente tem 8 ferramentas, mas três delas fazem a mesma busca de cliente com chaves diferentes (id, e-mail e CPF). O trace mostra trocas frequentes entre elas. É Ferramentas Demais?

Checagem +20 XP de primeiraO agente tem 35 ferramentas, mas 30 delas nunca aparecem nos traces dos últimos 3 meses. Qual é o diagnóstico mais preciso?

Checagem +20 XP de primeiraUm agente tem 12 ferramentas claras. O system prompt tem um parágrafo para cada uma dizendo quando usar, e o modelo às vezes ignora essas regras. O que fazer primeiro?

Checagem +20 XP de primeiraVocê ligou um servidor MCP de um produto interno e o agente passou a ver 80 ferramentas, a maior parte de administração. Em produção, um usuário pediu o status de um pedido e o modelo chamou delete_workspace. O que o caso mostra primeiro?

Perguntas rápidas

O que é Ferramentas Demais?

Ferramentas Demais (Tool Sprawl) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Inchaços. O agente tem 40 ferramentas com nomes parecidos e escolhe a errada com frequência.

Como corrigir Ferramentas Demais?

Com Consolidar Ferramentas, Introduzir Roteador e Mover Instrução para a Ferramenta. Cada refatoração traz o passo a passo seguro, com eval antes e depois.

Onde Ferramentas Demais aparece na prática?

Nos cenários reais Agente de código e Automação de back-office com execução durável.

Para ir além

Relações

Aparece nas trilhas 1
Buscar