Prática de implementação de agentes de IA na programação de backend do Spotify (com a fusão bem-sucedida de mais de 1.500 PRs gerados por IA) Questões e soluções principais Embora o sistema de gerenciamento de frota do Spotify seja excelente na automação de tarefas simples, alterações complexas no código têm se mostrado um desafio constante. Os métodos tradicionais exigem a manipulação de árvores de sintaxe abstrata ou expressões regulares, demandando um alto nível de conhecimento técnico. Por exemplo, o script de atualização de dependências do Maven possui mais de 20.000 linhas de código. A ideia central da equipe é substituir scripts de migração determinísticos por agentes inteligentes definidos em linguagem natural, mantendo toda a infraestrutura do Fleet Management — a seleção do repositório de destino, a iniciação de PRs, a revisão e os processos de fusão permanecem completamente inalterados. Fase 1 do caminho de evolução tecnológica: Exploração de ferramentas de código aberto. A equipe experimentou ferramentas de código aberto como Goose e Aider, mas foi difícil gerar PRs (Pull Requests) que pudessem ser integrados de forma confiável em cenários de migração em larga escala. Fase Dois: Loop desenvolvido internamente. Eles criaram um "loop de agente" baseado na API do LLM, que inclui três etapas: instruções fornecidas pelo usuário, edição de arquivos pelo agente e integração do feedback da compilação, e conclusão após os testes serem aprovados ou os limites serem atingidos. Isso é adequado para pequenas alterações, mas frequentemente fica sem loops ou perde o contexto ao lidar com alterações complexas em vários arquivos. Fase Três: Código Claude Claude Code se destacou como o agente de melhor desempenho, tendo sido utilizado em aproximadamente 50 migrações e na maioria das solicitações de pull request (PRs) de produção. Ele oferece suporte a prompts mais naturais e orientados a tarefas, gerencia listas de afazeres e deriva agentes filhos de forma eficiente. Princípios fundamentais do projeto 1. Ajustes com base nas características do agente - Agentes desenvolvidos internamente são adequados para instruções passo a passo rigorosas, enquanto o Código Claude é mais apropriado para descrever o estado final e permitir autonomia. 2. Definir pré-condições – Os agentes muitas vezes agem com muita pressa; é necessário definir claramente quando não se deve agir. 3. Use exemplos concretos - alguns exemplos de código concretos podem afetar muito os resultados. 4. Defina objetivos verificáveis – idealmente apresentados como testes, evitando instruções vagas. 5. Uma mudança de cada vez – combinar várias mudanças tem maior probabilidade de esgotar o contexto ou produzir resultados parciais. 6. Solicitar feedback do agente - Após o término da conversa, o agente pode apontar quaisquer falhas nas sugestões. Ferramentas e Gestão de Contexto O Spotify adota uma estratégia de ferramentas conservadora para manter a previsibilidade. Seus agentes só podem acessar: • Ferramentas de validação: executar formatação, análise estática e testes. • Ferramentas Git restritas: padronizar operações Git, proibir pushes ou modificações em repositórios remotos. • Comandos Bash permitidos: como ripgrep. Em vez de expor ferramentas de busca de código ou de documentação, elas exigem que os usuários forneçam previamente o contexto relevante nas sugestões. A filosofia de design é: mais ferramentas significam dimensões mais imprevisíveis. O sistema, conforme demonstrado em aplicações práticas, lidou com tarefas complexas de migração, incluindo: • Modernização da linguagem (por exemplo, migração de tipos de valor Java para registros) • Atualizações com mudanças disruptivas • Migrações de componentes da interface do usuário • Atualizações de perfil Essas migrações economizaram de 60% a 90% do tempo. Mais importante ainda, desde meados de 2024, aproximadamente metade dos PRs (Pull Requests) do Spotify são gerados automaticamente por esse sistema. As equipes de desenvolvimento de aplicativos, além da migração, integram agentes ao Slack e ao GitHub Enterprise por meio do protocolo MCP. O fluxo de trabalho é o seguinte: o agente interativo primeiro coleta informações sobre a tarefa, gera prompts e, em seguida, os repassa ao agente de codificação para execução e criação de pull requests. Isso permite que os engenheiros capturem registros de decisões arquiteturais de conversas no Slack ou que os gerentes de produto proponham alterações simples sem precisar compilar localmente. Desafios a serem resolvidos A equipe do Spotify apontou, com franqueza, as limitações atuais: • Problemas de desempenho e previsibilidade • Falta de dicas estruturadas/métodos de avaliação de modelos • Dificuldade em verificar se as PRs realmente resolvem o problema original • Ainda depende principalmente da intuição e da tentativa e erro para desenvolver dicas Parte 1: https://t.co/M5pJCeL5Ds Parte 2:
Carregando detalhes do thread
Buscando os tweets originais no X para montar uma leitura limpa.
Isso normalmente leva apenas alguns segundos.
