stamatios
← Voltar ao feed
Funil de trânsito desvia arquivos de código para uma porta menor com faixa premium aberta, Portal do Spotify economiza tokens do Claude Code
Dev & Engenharia · Agentes

Portal do Spotify reduz uso de tokens do Claude Code em 90%

resumo de ~3 min

{ "resumo": "## O problema: tokens gastos com trabalho mecânico\n\nSegundo Dimitri Mazmanov, Principal Product Manager do Spotify, a maior parte do que um agente de programação como o Claude Code faz não é raciocínio, mas entrada e saída de dados: ler cinco arquivos para responder uma pergunta sobre um método, gerar um arquivo de teste que segue o padrão de outros vinte, atualizar documentação. Essas tarefas consomem milhares de tokens de um modelo de fronteira sem exigir quase nada de capacidade. O autor observa que o custo real não é a licença, mas os tokens - e cita projeções de que, até 2028, os custos de codificação com IA podem superar o salário médio de um desenvolvedor. Um quarto dos líderes de engenharia já gasta entre US$ 200 e US$ 500 por desenvolvedor por mês em tokens, e alguns passam de US$ 2.000.\n\n## A solução: dois modos declarativos\n\nA alternativa apresentada usa os AiKA Modes do Portal by Spotify: agentes declarativos que rodam em um runtime efêmero, semelhante ao AWS Lambda, mas para agentes. O usuário define instruções, escolhe o modelo, ajusta parâmetros como temperatura e anexa ferramentas MCP; o Portal cuida da infraestrutura, sem chaves de API nem servidores persistentes.\n\nForam criados dois modos, ambos com Gemini 2.5 Flash como modelo de trabalho nos exemplos (o campo aceita qualquer modelo configurado):\n\n- bulk-reader: para quando o Claude leria vários arquivos grandes só para responder uma pergunta. Recebe os arquivos e responde com bullets estruturados e concisos.\n- code-writer: para testes, scaffolding de configuração e código previsível, gerando saída que replica os padrões de um arquivo de referência. A instrução de emitir apenas código importa: sem ela, o modelo inclui texto explicativo que o Claude teria de processar.\n\n## Roteamento em três camadas\n\nA primeira versão usava regras de roteamento no CLAUDE.md, mas elas eram apenas orientativas - o Claude podia ignorá-las, e cada projeto precisava de sua própria cópia. A versão atual é um plugin do Claude Code chamado shunt, organizado em três camadas:\n\n1. Hooks: dois hooks PreToolUse. O check-file-size bloqueia leituras de arquivos acima de um limite configurável (padrão: 350 linhas) e redireciona para a skill /bulk-reader; leituras direcionadas passam. O check-bash-read intercepta comandos como cat, head, tail, less e more em arquivos grandes, mas permite comandos com pipe, que já são leituras direcionadas.\n2. Scripts: dois scripts bash que encapsulam chamadas ao Portal CLI. O bulk-read envolve os arquivos em tags XML e envia junto com a pergunta; o code-write envia especificação e arquivo de referência, remove cercas de markdown e pode escrever direto no disco, sem o Claude ver o código gerado.\n3. Skills: arquivos markdown que mostram ao Claude quando e como chamar os scripts. Se o Claude ignorar a skill, o hook ainda bloqueia a leitura cara - o sistema degrada de forma gradual.\n\n## Resultados e limitações\n\nTestado em um monorepo Java em quatro cenários, o bulk-read trouxe economia média de cerca de 90% nos tokens que o Claude consumiria. O cenário de escrita de código é mais difícil de medir em tokens, mas o código vai direto ao disco sem passar pelo contexto do Claude.\n\nO autor lista limites claros: não é possível delegar edição (os resumos não têm números de linha confiáveis, então o Claude precisa ler a seção específica para editar); não é possível delegar raciocínio - no teste, o modelo de trabalho detectou apenas padrões superficiais e deixou passar um bug sutil de thread-safety que o Claude identificou em segundos; a latência também pesa, com respostas de 10 a 30 segundos e teto de 30 segundos por invocação, o que torna a delegação contraproducente para leituras pequenas - daí o limite de linhas.\n\n## Conclusão\n\nPara o autor, o ganho maior está nos modos AiKA: são reutilizáveis entre projetos e ferramentas, compartilháveis (os dois modos já são públicos), compostos (podem surgir modos para documentação, revisão ou tradução) e desacoplam a decisão de roteamento do modelo de trabalho - trocar o Gemini Flash ou ajustar o prompt não exige mudar o plugin. A conclusão é que os modos transformam o roteamento de modelos de um problema de engenharia de sistemas em um problema de configuração. Os plugins estão disponíveis no marketplace spotify/portal-ai-plugins.", "hook": "Um engenheiro de produto do Spotify descobriu que a maior parte do que o Claude Code consome em tokens não é raciocínio, é leitura e escrita mecânica de arquivos. Com dois agentes declarativos no Portal e um plugin de roteamento, ele cortou o uso de tokens em cerca de 90% em um monorepo Java. O detalhe: o trabalho pesado foi delegado ao Gemini 2.5 Flash, deixando o modelo caro para o que realmente importa.", "entities": ["Spotify", "Claude Code", "Gemini 2.5 Flash", "Portal", "AiKA Modes"], "themes": ["economia-de-tokens", "engenharia-com-ia", "agentes-e-automacao"], "story_key": "portal-shunt-reduz-tokens-claude-code-90-por-cento", "reasoning": { "story_key": "Fato canônico: plugin shunt/Portal do Spotify reduz em ~90% o uso de tokens do Claude Code por roteamento para modelo mais barato.", "themes": { "economia-de-tokens": "O assunto central é reduzir gasto de tokens delegando tarefas a um modelo mais barato, com benchmarks de economia.", "engenharia-com-ia": "Claude Code com hooks, skills e plugin de delegação é o fluxo agentic de código descrito em detalhe.", "agentes-e-automacao": "AiKA Modes são agentes declarativos com runtime efêmero e ferramentas MCP, assunto de plataforma de agentes." }, "entities": { "Spotify": "Empresa que criou Portal e publicou o caso.", "Claude Code": "Agente cujo consumo de tokens é reduzido pelo roteamento.", "Gemini 2.5 Flash": "Modelo de trabalho usado na delegação nos exemplos.", "Portal": "Ferramenta do Spotify que hospeda os modos e o CLI usado pelo plugin.", "AiKA Modes": "Mecanismo de agentes declarativos que sustenta o roteamento." }, "excluded": { "shunt": "Nome do plugin, parte da implementação, não sujeito do fato.", "Dimitri Mazmanov": "Autor, excluído por regra.", "Anthropic": "Menção apenas em artigos relacionados, secundária." } } }