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.

Key Takeaway

Symphony automatise l'orchestration d'agents de codage longue durée via Linear pour permettre aux développeurs de gérer plus de 5 sessions Codex simultanées sans perte de productivité.

Highlights

  • Symphony permet aux ingénieurs de s'affranchir du goulot d'étranglement de l'attention humaine qui limite la supervision manuelle à seulement 3 ou 5 sessions Codex simultanées.

  • L'outil s'appuie sur des gestionnaires de tickets comme Linear pour automatiser le cycle de vie des tâches sans intervention humaine constante.

  • Une méthode d'installation consiste à fournir un prompt de 2000 lignes à un agent de code pour qu'il génère sa propre version personnalisée du logiciel.

  • L'intégration avec des outils comme UV et l'ajout de hooks de type 'create-after' permettent de cloner des dépôts et d'ouvrir des branches automatiquement.

  • Symphony transforme les tickets Linear en espaces de travail locaux portant le même identifiant pour organiser le code généré par l'IA.

  • Le système permet de créer des pull requests incluant des liens directs vers les tickets d'origine et des descriptions détaillées des modifications effectuées.

Timeline

Résolution de la saturation cognitive des ingénieurs

  • Le changement de contexte dégrade la productivité humaine au-delà de 5 sessions de travail simultanées.
  • Symphony délègue l'exécution des tâches à des agents autonomes lancés depuis un tableau de bord central.
  • L'intervention humaine se limite désormais uniquement aux phases de révision nécessaires.

Le besoin de Symphony découle d'une limite physique de l'attention chez OpenAI. Les ingénieurs ne pouvaient plus suivre la cadence de plusieurs agents Codex sans erreurs. Le système inverse le flux de travail habituel : l'humain dépose une tâche et l'IA ne revient vers lui qu'en cas de blocage spécifique.

Automatisation du flux de travail via Linear

  • Le passage d'un ticket au statut 'To-Do' déclenche immédiatement la détection par Symphony.
  • L'agent crée un répertoire de travail local nommé selon l'identifiant du ticket SYN7.
  • Codex corrige les erreurs de validation GraphQL et publie le code finalisé de manière autonome.

L'exemple d'une application Hello World avec TypeScript et BUN illustre la réactivité du système. Symphony surveille en permanence le backlog et réagit aux changements de statut des tickets. Une fois le code généré dans l'espace de travail dédié, l'agent met à jour le statut de la tâche sur Linear et ajoute un commentaire de clôture.

Installation par génération de code et configuration

  • Le logiciel peut être auto-construit par un agent à partir d'un fichier de spécification massif.
  • L'utilisation de GPT 5.5 Low Effort produit une version Python fonctionnelle de l'outil.
  • La configuration requiert une clé API Linear et un fichier YAML définissant les états actifs et les commandes Codex.

La méthode d'installation par prompt de 2000 lignes encourage la responsabilité de l'utilisateur sur son propre outil. Cette approche permet de créer des versions adaptées à différents langages comme Go ou d'utiliser des SDK tiers comme celui de Claude. Le fichier de profil de travail est le centre de contrôle où sont définis les déclencheurs et les racines des espaces de travail.

Optimisation des workflows complexes et hooks

  • Les hooks 'create-after' automatisent le clonage des dépôts et la création de branches Git.
  • Le hook 'run-after' gère l'indexation, le commit, le push et la création automatique de pull requests.
  • L'utilisation combinée avec l'outil UV accélère le lancement et la gestion de l'environnement Symphony.

Pour les projets réels, le workflow de base est insuffisant et nécessite des scripts supplémentaires pour manipuler les dépôts. En ajoutant des instructions spécifiques de post-exécution, Symphony peut non seulement coder mais aussi gérer l'intégralité du processus CI/CD. L'exemple montre la modification d'un README où l'IA remplace une liste de fichiers par un joker, puis soumet une PR documentée.

Vision collaborative et comparaison avec le marché

  • Symphony centralise les compétences et les outils MCP pour toute une équipe de développement.
  • L'outil offre une transparence totale sur les prompts et les actions des agents au sein du groupe.
  • Symphony se distingue de Multica ou Conductor par sa nature de harnais brut hautement personnalisable.

L'objectif à long terme est de créer un environnement où l'IA est un membre central de l'équipe accessible par tous. Contrairement à des produits finis plus simples à configurer comme Multica, Symphony privilégie la flexibilité totale. Il s'adresse aux utilisateurs souhaitant construire leurs propres fonctions sur une base épurée plutôt que d'adopter une solution clé en main.

Community Posts

View all posts