
Claude está consumindo tokens em suas saídas de ferramentas. Aqui está a solução (com código)
Claude está queimando tokens nas saídas da sua ferramenta. Aqui está a solução.
Se você está construindo agentes alimentados por Claude ou integrações MCP, você provavelmente está fazendo isso:
result = run_tool('read_file', {'path': '/data/config.json'})
messages.append({'role': 'tool', 'content': str(result)})
E se esse arquivo tiver 50KB de JSON, Claude acabou queimando ~12.000 tokens lendo-o de volta para si mesmo.
Aqui está o que realmente está acontecendo — e três soluções concretas.
O problema: Claude lê tudo o que você envia
As saídas da ferramenta vão para a janela de contexto. Cada caractere de cada resultado da ferramenta é tokenizado, processado e pago. Se você estiver executando um loop de agente com 10 chamadas de ferramenta e cada uma retornar 5KB de dados, você adicionou ~130.000 tokens à sua conversa antes que Claude escreva uma única palavra de sua resposta.
Nos preços da API da Anthropic, isso é caro. Com assinaturas de $20/mês, é invisível — até que atinja limites de taxa ou cause truncamento de contexto.
Solução 1: Truncar antes de enviar
A maioria das saídas da ferramenta contém mais do que Claude precisa. Uma leitura de arquivo não precisa do arquivo inteiro — precisa da seção relevante.
def truncate_tool_output(output: str, max_chars: int = 2000) -> str:
"""Cortar a saída da ferramenta para evitar o inchaço de tokens."""
if len(output) <= max_chars:
return output
# Manter o início e o fim, cortar o meio
half = max_chars // 2
return output[:half] + f"\n...({len(output) - max_chars} caracteres truncados)...\n" + output[-half:]
# Antes:
messages.append({'role': 'tool', 'content': file_contents})
# Depois:
messages.append({'role': 'tool', 'content': truncate_tool_output(file_contents)})
Isso sozinho reduz o uso de tokens em 60-80% na maioria dos agentes de leitura de arquivos.
Solução 2: Resumir grandes saídas antes da injeção
Para dados estruturados (JSON, CSV, XML), pré-processar antes de enviar:
import json
def summarize_json_output(data: dict | list, max_keys: int = 10) -> str:
"""Resumir a saída da ferramenta JSON para Claude."""
if isinstance(data, list):
sample = data[:3]
return f"Array de {len(data)} itens. Primeiros 3: {json.dumps(sample, indent=2)}"
if isinstance(data, dict):
keys = list(data.keys())
if len(keys) > max_keys:
summary = {k: data[kEmpresas brasileiras que utilizam agentes Claude podem enfrentar altos custos com tokens. Implementar as soluções apresentadas pode reduzir significativamente esses custos, melhorando a eficiência das operações e a experiência do usuário.
Noticias relacionadas

Sucesso na Busca com IA: Como Avaliar o Desempenho do Site na Sua Indústria
Aprenda a criar um painel de benchmarking para otimizar seu site, melhorando a visibilidade e a experiência do usuário nos resultados de busca.

O Problema da Camada de Dados na IA Agentiva — Por que Seu Agente Sabe Tudo, Exceto o que Precisa
O artigo discute como a camada de dados é crucial para o funcionamento eficaz de agentes de IA, destacando falhas comuns e a importância de uma arquitetura de dados confiável.

SEO Cultural: Uma estrutura prática para mercados hispânicos na busca por IA
Sistemas de IA achatam mercados hispânicos em um padrão único. Aprenda a construir sinais específicos de mercado em conteúdo, recuperação e entidades.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.