Voltar as noticias
Claude está consumindo tokens em suas saídas de ferramentas. Aqui está a solução (com código)
Agentic SEOAltaEN

Claude está consumindo tokens em suas saídas de ferramentas. Aqui está a solução (com código)

Dev.to - MCP·28 de abril de 2026

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[k
Contexto Triplo Up

Empresas 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

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.