o problema
Um agente sério hoje não fala com três ferramentas, fala com centenas. Um assistente de IDE quer git, manipulação de arquivo, gerenciador de pacote, framework de teste e pipeline de deploy. Um coordenador de operações quer Slack, GitHub, Drive, Jira, o banco da empresa e mais uma dúzia de servidores MCP. O padrão de uso de ferramenta que existia até aqui manda tudo isso para dentro do prompt antes de o modelo ler uma linha do pedido. A Anthropic dá a conta: GitHub com 35 ferramentas custa cerca de 26.000 tokens, Slack com 11 custa 21.000, e um setup de cinco servidores com 58 ferramentas chega a 55.000 tokens de definição antes da conversa começar. Só o Jira adiciona 17.000. Internamente, eles já viram 134.000 tokens gastos só em definição.
E o custo de token nem é a pior parte. As falhas mais comuns são escolher a ferramenta errada e passar parâmetro errado — especialmente quando os nomes se parecem, tipo notification-send-user e notification-send-channel. Some a isso o segundo problema: cada resultado de ferramenta cai inteiro no contexto. Se Claude analisa um log de 10 MB para achar padrão de erro, o log inteiro entra, mesmo que a resposta útil seja um histograma de dez linhas. E cada chamada custa uma passada de inferência completa, com o modelo tendo que ler, comparar e somar no olho aquilo que um for faria melhor.
a ideia
Três recursos, cada um atacando um gargalo diferente, e a recomendação explícita do post é não usar os três de saída: comece pelo que dói.
O Tool Search Tool troca carregamento antecipado por descoberta sob demanda. Você continua mandando todas as definições para a API, mas marca a maioria com defer_loading: true. Elas não entram no contexto; entra só a ferramenta de busca, com uns 500 tokens. Quando Claude precisa de GitHub, procura por “github” e recebe as duas ou três definições que importam.
O Programmatic Tool Calling troca ida e volta por orquestração em código. Claude escreve um script Python que chama as ferramentas, junta os resultados e imprime só a conclusão. O dado bruto passa pelo sandbox, não pelo contexto.
Os Tool Use Examples atacam o terceiro buraco: schema não expressa convenção. Você anexa chamadas de exemplo à definição, e o modelo aprende pelo caso concreto.
como funciona
Na busca, as ferramentas adiadas ficam fora do prompt inicial e por isso o prompt cache continua válido — o system prompt e as ferramentas críticas seguem cacheáveis. A plataforma entrega buscadores por regex e por BM25 prontos; você pode escrever o seu com embedding. Para MCP, dá para adiar um servidor inteiro via mcp_toolset e manter uma ferramenta específica carregada.
Na orquestração por código, você adiciona a ferramenta code_execution e marca cada ferramenta elegível com allowed_callers. A API converte a definição em função Python. Claude emite um server_tool_use com o código; quando o script chama get_expenses(), você recebe um tool_use normal com um campo caller apontando para o bloco de código, devolve o resultado, e ele é entregue ao script, não ao modelo. No fim, só o stdout volta para o contexto.
No exemplo de checagem de orçamento, o caminho tradicional traria 2.000 itens de despesa — mais de 50 KB — para dentro do contexto. Com o script, entram cerca de 1 KB: os dois ou três nomes que estouraram o limite.
o que isso custou
Cada recurso é um trade-off declarado. A busca adiciona um passo antes da invocação, então só compensa acima de umas 10 ferramentas ou 10.000 tokens de definição; com biblioteca pequena, ou quando todas as ferramentas são usadas sempre, atrapalha. A orquestração por código adiciona uma etapa de execução e é contraindicada quando você quer que Claude veja e raciocine sobre os resultados intermediários — o que ela esconde, ela esconde do modelo também. Os exemplos custam tokens na definição, e o próprio post sugere de um a cinco por ferramenta, só onde o schema é ambíguo.
Os ganhos declarados são de teste interno, não de benchmark público, e são desiguais: 72% para 90% em parâmetros complexos é grande; 25,6% para 28,5% em recuperação de conhecimento interno é ruído com barra de erro. Os números de contexto do post também não fecham entre si — ele afirma 85% de redução e 95% da janela preservada citando 8,7 mil tokens contra 77 mil. Tudo isso é beta, atrás do header advanced-tool-use-2025-11-20.
onde isso aparece hoje
É a versão de produto de uma ideia que vinha circulando: o próprio post cita como origem o Code execution with MCP, além do LLMVM de Joel Pobar e do Code Mode da Cloudflare. Faz par direto com o Model Context Protocol, que criou o problema de escala ao tornar barato plugar servidor, e com Writing effective tools for AI agents, cujo conselho de nomear e descrever bem passa a ter consequência mecânica: a busca casa contra nome e descrição. O enquadramento geral é o de Effective context engineering for AI agents — tratar a janela como orçamento, não como depósito. E o detalhe de que ferramenta adiada não invalida o prompt caching é o que torna a coisa viável em produção. Em uso interno, o Claude para Excel usa a orquestração por código para mexer em planilhas de milhares de linhas.