Pratiques d'implémentation d'agents d'IA pour la programmation backend de Spotify (plus de 1 500 PR générées par l'IA ont été fusionnées avec succès) Problèmes et solutions fondamentaux Bien que le système de gestion de flotte de Spotify excelle dans l'automatisation des tâches simples, les modifications complexes de code se sont toujours révélées problématiques. Les méthodes traditionnelles nécessitent la manipulation d'arbres de syntaxe abstraite ou d'expressions régulières, ce qui exige un haut niveau d'expertise. Par exemple, leur script de mise à jour des dépendances Maven compte plus de 20 000 lignes de code. L'idée principale de l'équipe est de remplacer les scripts de migration déterministes par des agents intelligents définis en langage naturel, tout en conservant l'intégralité de l'infrastructure de Fleet Management : la sélection du référentiel cible, l'initiation des demandes de fusion, la révision et les processus de fusion restent totalement inchangés. Première phase du processus d'évolution technologique : exploration des outils open source. L'équipe a testé des outils open source tels que Goose et Aider, mais il s'est avéré difficile de générer de manière fiable des demandes de fusion dans le cadre de migrations à grande échelle. Deuxième phase : Boucle développée en interne. Ils ont conçu une « boucle d’agent » basée sur l’API LLM, comprenant trois étapes : les invites fournies par l’utilisateur, l’agent modifiant les fichiers et intégrant les retours de compilation, et la finalisation après la réussite des tests ou l’atteinte des limites. Cette méthode convient aux modifications mineures, mais elle atteint souvent ses limites ou perd le contexte lors de modifications complexes impliquant plusieurs fichiers. Troisième phase : Code Claude Claude Code s'est imposé comme l'agent le plus performant, ayant été utilisé dans une cinquantaine de migrations et la plupart des demandes de fusion en production. Il prend en charge des invites plus naturelles et orientées tâches, gère les listes de tâches et génère efficacement des agents enfants. Principes clés du projet 1. Ajustements basés sur les caractéristiques de l'agent - Les agents développés en interne conviennent aux instructions strictes étape par étape, tandis que le code Claude est mieux adapté à la description de l'état final et permet l'autonomie. 2. Définir les conditions préalables – Les agents agissent souvent trop hâtivement ; il est nécessaire de définir clairement les situations où il ne faut pas agir. 3. Utilisez des exemples concrets – quelques exemples de code concrets peuvent avoir un impact considérable sur les résultats. 4. Définir des objectifs vérifiables – idéalement présentés sous forme de tests, en évitant les instructions vagues. 5. Un changement à la fois – combiner plusieurs changements risque davantage d’épuiser le contexte ou de produire des résultats partiels. 6. Demandez un retour d'information à l'agent - Une fois la conversation terminée, l'agent peut vous signaler toute lacune dans ses suggestions. Gestion des outils et du contexte Spotify utilise une stratégie d'outillage prudente afin de garantir la prévisibilité. Ses agents n'ont accès qu'à : • Outils de validation : exécution du formatage, de l’analyse statique et des tests. • Outils Git restreints : standardisation des opérations Git, interdiction des envois ou des modifications vers les dépôts distants. • Commandes Bash autorisées : telles que ripgrep. Au lieu de proposer des outils de recherche de code ou de documentation, ils exigent que les utilisateurs fournissent au préalable le contexte pertinent dans les suggestions. La philosophie de conception est la suivante : plus d’outils signifie plus d’imprévisibilité. Le système, comme l'ont démontré des applications pratiques, a géré des tâches de migration complexes, notamment : • Modernisation du langage (par exemple, migration des types de valeurs Java vers des enregistrements) • Mises à jour majeures • Migrations de composants d'interface utilisateur • Mises à jour de profils Ces migrations ont permis de gagner entre 60 et 90 % de temps. Plus important encore, depuis mi-2024, environ la moitié des relations publiques de Spotify sont générées automatiquement par ce système. Au-delà de la migration, les équipes applicatives intègrent des agents à Slack et GitHub Enterprise via le protocole MCP. Le flux de travail est le suivant : l’agent interactif collecte les informations relatives aux tâches, génère des invites, puis les transmet à l’agent de développement pour exécution et création de demandes de tirage. Cela permet aux ingénieurs de centraliser les journaux de décisions architecturales issus des conversations Slack, ou aux chefs de produit de proposer des modifications simples sans avoir à effectuer de compilation locale. Défis à résoudre L'équipe Spotify a franchement souligné les limitations actuelles : • Problèmes de performance et de prévisibilité • Absence d'indications structurées/méthodes d'évaluation des modèles • Difficulté à vérifier si les PR résolvent réellement le problème initial • Repose encore principalement sur l'intuition et les essais et erreurs pour faire évoluer les indications Partie 1 : https://t.co/M5pJCeL5Ds Partie 2 :
Chargement du thread
Récupération des tweets originaux depuis X pour offrir une lecture épurée.
Cela ne prend généralement que quelques secondes.
