Comment configurer l'agent Symphony pour résoudre les tickets GitHub de manière autonome
9 मई 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
Pour que l'agent puisse traiter directement les tickets accumulés dans votre gestionnaire d'incidents, vous devez d'abord placer un fichier WORKFLOW.md à la racine du projet. Symphony est structuré pour détecter les changements d'état sur le tableau de gestion de projet et allouer des espaces de travail isolés. En fait, lorsqu'une équipe interne d'OpenAI a adopté cette méthode, le nombre de Pull Requests fusionnées a bondi de 500 % en seulement trois semaines. Ce chiffre peut paraître excessif, mais il signifie simplement que l'agent gère lui-même la configuration de l'environnement et l'attribution des tâches, laissant le développeur se concentrer uniquement sur le code.
Tout d'abord, insérez le chemin du dépôt GitHub et des labels de déclenchement tels que ai-fix dans votre configuration YAML. Ensuite, lancez un démon comme broomva/symphony écrit en Rust ou la version Go itervox/symphony-go pour surveiller les tickets toutes les 30 secondes. Avec cette configuration, vous ne perdrez plus de temps à chercher sur les messageries qui devrait s'occuper de quelle tâche.
Lorsqu'on confie du travail à un agent, il arrive qu'il soumette fièrement un code totalement aberrant, par exemple en exposant des clés de sécurité ou en ignorant les conventions de l'équipe. Le hooks.after_run de Symphony est un point de contrôle qui s'active juste avant que les résultats produits par l'agent ne soient enregistrés dans le dépôt. Si le script exécuté ici renvoie une erreur, Symphony interrompt immédiatement la tâche, empêchant ainsi l'introduction de code de mauvaise qualité.
Ajoutez seulement trois lignes à l'étape after_run. Vous devez formater le code avec npx prettier --write, corriger la syntaxe avec npx eslint --fix, puis terminer par une vérification des types avec npx tsc --noEmit. L'utilisation de cette boucle de validation automatique réduit de moitié l'effort humain nécessaire pour corriger le code généré par l'agent. C'est indispensable si vous voulez éviter de passer tout votre temps à nettoyer les erreurs laissées par l'agent.
Faire tourner plusieurs agents en même temps finit inévitablement par faire souffrir votre machine locale. Le processeur peut être totalement saturé, provoquant le blocage de la souris, ou le système de fichiers peut s'emmêler, entraînant des écrasements de code accidentels. Bien que l'orchestrateur Symphony utilise en interne la fonction filepath.EvalSymlinks pour analyser les chemins et empêcher les tentatives d'évasion de répertoire, la répartition des ressources doit être configurée manuellement.
Pour faire tourner plus de 5 sessions de manière stable, utilisez des conteneurs Docker comme des slots. Il est plus sûr de limiter les ressources avec les options --memory="2g" et --cpu-shares=100, et de couper les communications externes avec --network=none. Si vous ne voulez pas voir l'agent envoyer des données n'importe où sur le réseau ou paralyser votre système, ce niveau d'isolation est une mesure évidente.
Laisser un agent soumettre des commits directement sur la branche principale (main) est une mission suicide. Peu importe les performances de l'IA, aucune ligne ne doit être fusionnée sans l'approbation finale d'un humain. Les résultats du travail doivent impérativement être poussés vers des branches temporaires préfixées par quelque chose comme staging/ai-patch-.
Insérez des commandes de la CLI GitHub (gh) à la fin de votre pipeline. Exécutez gh pr create en mode non interactif pour vous désigner comme réviseur et envoyer une notification sur Slack. Il ne vous reste plus qu'à parcourir le code et, si tout est correct, à fusionner avec gh pr merge --squash. Cette structure, où la machine prépare le brouillon et l'humain appose sa validation, est à la fois la plus rapide et la plus sûre.