O Claude Code gasta ~33.000 tokens de overhead antes de processar um único caractere do teu prompt. O OpenCode? ~7.000.

A Systima publicou esta semana um estudo técnico que devias ler se trabalhas com agentes de coding. Eles meteram Claude Code e OpenCode lado a lado — mesmo modelo, mesma máquina, mesmas tarefas — e mediram tudo o que cada harness enviou e recebeu. O resultado é uma fotografia nítida do que realmente pagas quando usas estas ferramentas.

Vale a pena perceber onde é que cada harness gasta tokens, porque é que a cache do Claude Code é instável, como subagentes multiplicam o consumo, e porque é que o batching de tool calls pode ou não salvar o Claude Code.


A Medição

A Systima colocou um proxy de logging entre cada harness e o modelo. Isto permitiu-lhes capturar o payload JSON exato de cada pedido e o bloco de usage devolvido pela API. Testaram com Claude Code 2.1.207 e OpenCode 1.17.18, ambos apontados ao claude-sonnet-4-5, e repetiram parte da matriz no claude-fable-5.

Ambientes isolados: sem MCP servers, sem ficheiros de instrução, sem configurações de utilizador. Depois adicionaram variáveis uma de cada vez.


O Custo de Dizer “OK”

O primeiro teste foi o mais básico possível. Pediram a cada harness que respondesse exatamente com “OK” — 22 caracteres.

Componente Claude Code OpenCode
System prompt 27.344 chars, 3 blocos 9.324 chars, 1 bloco
Tool schemas 27 ferramentas, 99.778 chars 10 ferramentas, 20.856 chars
Scaffolding 7.997 chars de <system-reminder> nenhum
Total (calibrado) ~32.800 tokens ~6.900 tokens

A diferença está nas tool schemas. Cerca de 24.000 dos 33.000 tokens do Claude Code são definitions de ferramentas — inclui desde CronCreate e Monitor até à família Task, gestão de worktrees e notificações. O OpenCode traz 10 ferramentas clássicas de coding e fica-se por ~4.800 tokens de schemas.


O Setup Real é Ainda Pior

O estudo testou também configurações reais. Um ficheiro CLAUDE.md de 72KB (perfeitamente normal num repositório de produção) adiciona ~20.000 tokens a cada pedido, em ambos os harnesses. Cinco MCP servers pequenos? Mais 5.000 a 7.000 tokens por request.

No cenário “tudo incluído”, o OpenCode chegou a 90.817 tokens no primeiro pedido (com 179 ferramentas e 277KB de schemas). O Claude Code, com 4 MCP servers e plugins, atingiu ~75.000 tokens com 118 ferramentas.

Isto antes de escreveres uma linha de código ou sequer fazeres uma pergunta.


O Problema da Cache

Aqui está o ponto que mais me custou a digerir.

O OpenCode emitiu prefixos byte-idênticos em todos os pedidos de todas as execuções. Três sessões T1 separadas produziram os mesmos bytes nas tools, no system prompt, nas mensagens. A cache manteve-se estável.

O Claude Code, não. Emitiu três classes distintas de pedido por sessão (warmup, conversação principal, subagentes), cada uma com o seu próprio prefixo e, portanto, a sua própria entrada de cache. Os bytes do sistema variavam entre execuções no mesmo workspace.

O resultado prático? Numa tarefa de leitura de ficheiro, o Claude Code escreveu 53.839 tokens de cache — incluindo uma reescrita completa a meio da tarefa. O OpenCode escreveu 1.003.

Dependendo da temperatura da cache, o Claude Code escreveu entre 5.9x a 54x mais tokens de cache do que o OpenCode. E cache writes pagam-se a prémio (1.25x a 2x a taxa base).


Subagentes: O Verdadeiro Multiplicador

O pior cenário que mediram foi com subagentes. Uma tarefa pequena que custou 121.000 tokens a fazer diretamente saltou para 513.000 tokens quando delegada a dois subagentes paralelos. Cada subagente é um agente novo que relê o seu próprio system prompt e ferramentas em cada turno.

A Systima foi clara: se as tuas sessões pesadas te surpreendem, é aqui que deves olhar primeiro.


Os Números Falam

O estudo faz questão de notar que ambos os harnesses completaram as tarefas corretamente. Mas num benchmark de 10 tarefas com verificação independente (hash-verified test suite), o custo médio por execução foi de ~268.000 tokens para o Claude Code contra ~72.000 para o OpenCode — cerca de 3.7x mais. O OpenCode também terminava cada execução em 1-2 minutos, contra 4-8 minutos do Claude Code.

Claro que há nuances. O Claude Code consegue fazer batch de tool calls num único round trip, o que em tarefas multi-passo lhe permite fechar a diferença. Mas isso depende do comportamento do modelo — no Sonnet funcionou, no Fable o batching desapareceu e o consumo disparou outra vez.


Conclusão

O que este estudo mostra é que o overhead dos harnesses não é abstrato — são tokens reais que pagas, que ocupam contexto e que reduzem o espaço disponível para o teu código. Se estás a usar agentes de coding em produção (ou mesmo no teu projeto pessoal), vale a pena perceber o que cada ferramenta está a enviar.

O método da Systima é o mais valioso aqui: meter um proxy entre o harness e a API, capturar os payloads, e olhar para o que realmente está a acontecer. Como eles dizem, o harness define o piso. A tua configuração define a fatura.

Podes replicar as medições com o rig open-source que disponibilizaram no GitHub.

Recursos adicionais

Comentários (0)

Nenhum comentário ainda. Seja o primeiro!

Deixar comentário