Pourquoi OpenAI a créé Symphony et l'a rendu gratuit
BBetter Stack
Computing/SoftwareManagementInternet Technology
Transcript
00:00:00Voici Symphony d'OpenAI, un outil open-source pour orchestrer des agents de longue durée via un
00:00:05gestionnaire de tickets existant comme Linear, pour aider votre agent à accomplir des tâches en autonomie
00:00:10sans supervision humaine. Mais pourquoi un agent n'a-t-il pas besoin de tout créer de zéro ?
00:00:14Supporte-t-il uniquement Codex CLI ? Et est-ce le début de nouveaux
00:00:18outils open-source d'OpenAI ? Abonnez-vous et découvrons-le.
00:00:25Symphony n'existe que parce qu'OpenAI a atteint un goulot d'étranglement de l'attention humaine,
00:00:30signifiant que les ingénieurs ne pouvaient superviser que 3 à 5 sessions Codex simultanément avant que
00:00:35le changement de contexte n'affecte la productivité. Cela ne pouvait évidemment pas passer à l'échelle.
00:00:41Alors, devinez comment OpenAI a résolu ce problème ? Ils ont supprimé les managers humains. Enfin, presque.
00:00:47Car avec Symphony, les humains placent les tâches sur un tableau, un nouvel agent est lancé pour l'exécuter,
00:00:52et l'agent ne sollicitera l'humain qu'en cas de révision nécessaire.
00:00:55Mais comment Symphony se compare-t-il à des outils comme Multica et Conductor ? Eh bien,
00:00:58regardez la démo et ce sera limpide. Avant de commencer, je dois dire que
00:01:03Symphony possède le processus d'installation le plus étrange que j'aie jamais vu de ma vie. Ou peut-être
00:01:07la manière la plus géniale d'installer un logiciel. Nous y reviendrons plus tard.
00:01:10D'abord, voyons un exemple basique. Symphony est en cours d'exécution,
00:01:14guettant les tâches dans Linear. Et dans Linear, je vais créer un nouveau ticket,
00:01:18qui consistera à créer une application Hello World avec TypeScript et BUN.
00:01:22Actuellement, Symphony n'est pas configuré pour le backlog. Je change donc le statut en To-Do
00:01:27et je clique sur Créer. Retenez bien l'ID de la tâche : SYN7.
00:01:31Après un moment, Symphony repère l'ID de cette tâche. Et quelques secondes plus tard,
00:01:36nous avons une erreur de validation GraphQL, rien de grave et très facile à corriger pour Codex.
00:01:41Ensuite, nous voyons que Codex a terminé le travail, a passé le ticket
00:01:45de To-Do à Done, et a laissé un commentaire via Symphony. Ce qui signifie que si nous allons
00:01:49dans notre répertoire de travail Symphony, nous en reparlerons, nous voyons un nouvel
00:01:53espace de travail avec le même ID que notre ticket. Et à l'intérieur,
00:01:58de fichiers créés pour l'application BUN Hello World TypeScript. Et si l'on va dans le dossier source,
00:02:04le code de l'application est bien présent. Et voilà l'essentiel de Symphony.
00:02:08Voyons maintenant comment l'installer. Il y a deux méthodes d'installation
00:02:12selon le repo. L'option deux est classique : installer Elixir,
00:02:16cloner le repo, compiler le code et l'exécuter avec le fichier de workflow existant.
00:02:20L'option une est sans doute la plus étrange ou la plus visionnaire.
00:02:25Vous donnez simplement ce prompt à votre agent de code, il lira le fichier de spécification,
00:02:30qui fait plus de 2000 lignes. Il donne essentiellement à votre agent des
00:02:34instructions détaillées pour construire Symphony. C'est fou car si tout le monde faisait cela,
00:02:39aucune version de Symphony ne serait identique. Certains auraient des fonctionnalités différentes
00:02:43dans divers langages, ce qui serait un chaos de maintenance pour OpenAI.
00:02:47Mais c'est aussi génial car si vous construisez votre propre version de Symphony,
00:02:51vous vous en sentez responsable. Vous corrigeriez les bugs, ajouteriez des fonctions,
00:02:55et vous l'entretiendriez. Et si vous ne vouliez pas que Symphony utilise Linear ou
00:02:59Codex, c'est votre choix. Quelqu'un a créé une version Go fonctionnant sur Charm CLI,
00:03:04un autre une version via le SDK Claude. N'étant pas si créatif,
00:03:09j'ai mis le prompt par défaut dans Codex avec GPT 5.5 Low Effort, et j'ai obtenu une version Python
00:03:15de Symphony, ce qui est logique vu que les LLM sont très bons en Python. Ensuite,
00:03:19il vous faut une clé API personnelle Linear, disponible dans les paramètres de sécurité,
00:03:23que vous créez en cliquant ici. Ajoutez ensuite cette clé à votre profil de travail,
00:03:28un fichier dictant à Symphony ses tâches, contenant du YAML avec la clé API,
00:03:32les états actifs pour que l'agent sache quand travailler,
00:03:37ainsi que la racine de l'espace de travail et la commande Codex utilisée pour lancer
00:03:42l'agent de code. Plus bas se trouve le prompt Markdown envoyé à l'agent
00:03:46pour chaque ticket. Le fichier de workflow d'OpenAI est disponible sur leur repo.
00:03:51Cependant, ce workflow n'est pas encore prêt pour un vrai projet. Disons que je veuille modifier
00:03:56mon application d'émulation de film. Je devrais ajouter un hook create-after, qui s'exécute
00:04:01après la création de l'espace de travail, pour cloner le repo dans le répertoire
00:04:06puis ouvrir une nouvelle branche. J'ai aussi ajouté un hook run-after,
00:04:10qui s'exécute quand Codex a fini. Il indexe les fichiers, crée
00:04:15un commit, pousse la branche et crée une pull request avec ces valeurs.
00:04:20Si je lance Symphony avec UV, également racheté par OpenAI (un sujet pour plus tard),
00:04:25il guette les tickets. Je crée un nouveau ticket pour mettre à jour le README, spécifiquement
00:04:30la section du traitement par lots pour utiliser un joker au lieu de lister plusieurs fichiers.
00:04:35Je passe du backlog à To-Do et je valide. Symphony a détecté
00:04:40le ticket. Dans le répertoire des espaces de travail Symphony, un nouveau dossier
00:04:45correspondant à l'ID contient le projet cloné. Une fois que Symphony a terminé,
00:04:49il a passé le statut à Done et créé une PR avec un lien vers le ticket Linear
00:04:54et le changement exact demandé. Bien sûr, je pourrais modifier mon code Symphony pour
00:04:59améliorer la description de la PR et lier celle-ci aux commentaires, ce qui est très facile
00:05:04pour Codex. Voilà donc un aperçu rapide de Symphony. Si vous utilisez déjà Linear
00:05:08en entreprise, l'interface vous sera familière. Et si vous utilisez Codex,
00:05:13vous pouvez exploiter vos compétences et vos outils MCP existants. Personnellement,
00:05:18je n'utilise pas Codex, mais je vois bien la vision d'OpenAI avec Symphony. Imaginez
00:05:22une équipe de développeurs collaborant sur un projet avec l'IA. Au lieu d'avoir
00:05:28chacun son propre workflow, il y aurait un agent central avec des compétences et outils
00:05:33centralisés. Chaque développeur communique avec lui via des tâches,
00:05:37voit ce que font les autres, quels prompts ils utilisent, et peut voir d'un coup d'œil
00:05:41quelles fonctionnalités pourraient impacter leur propre travail. Même s'il est
00:05:46difficile d'isoler totalement une modification du reste du code sur lequel d'autres
00:05:49travaillent. Mais aussi cool soit Symphony, à mon avis, Multica fait mieux car il est
00:05:54plus simple à configurer, à créer des agents, et permet de planifier des tâches. Néanmoins,
00:05:59Symphony a toute sa place. C'est une version épurée de Multica où vous pouvez
00:06:04ajouter exactement les fonctions voulues plutôt que d'utiliser un produit fini. Voyez
00:06:08Symphony comme un harnais brut et des outils comme Multica ou Conductor comme Claude Code. Et si
00:06:13vous ne connaissez pas Multica, regardez cette vidéo qui explique tout ce qu'il faut
00:06:18savoir à son sujet.