Warum OpenAI Symphony entwickelt hat – und es kostenlos verschenkt

BBetter Stack
Computing/SoftwareManagementInternet Technology

Transcript

00:00:00Das ist OpenAIs Symphony, ein Open-Source-Tool zur Orchestrierung langlebiger Agenten unter Verwendung
00:00:05eines bestehenden Issue-Trackers wie Linear, damit Ihr Agent Aufgaben autonom und ohne
00:00:10menschliche Aufsicht erledigen kann. Aber warum muss ein Agent es nicht erst von Grund auf bauen, bevor man es nutzt?
00:00:14Unterstützt es nur das Codex CLI? Und ist dies der Beginn von weiteren
00:00:18Open-Source-Tools von OpenAI? Abonniert den Kanal und finden wir es heraus.
00:00:25Symphony existiert nur, weil OpenAI an einen Engpass bei der menschlichen Aufmerksamkeit stieß, was bedeutet, dass Ingenieure
00:00:30nur 3 bis 5 Codex-Sitzungen gleichzeitig überwachen konnten, bevor der Kontextwechsel begann,
00:00:35die Produktivität negativ zu beeinflussen. Das war natürlich nicht skalierbar. Ratet also, wie OpenAI das Problem
00:00:41“schneller Agent – langsame menschliche Manager” gelöst hat? Sie haben die menschlichen Manager abgeschafft. Gewissermaßen.
00:00:47Denn mit Symphony stellen Menschen Aufgaben auf ein Board, ein neuer Agent wird gestartet, um die Aufgabe zu erledigen,
00:00:52und der Agent bezieht den Menschen nur ein, wenn es etwas zu überprüfen gibt.
00:00:55Aber wie schneidet Symphony im Vergleich zu ähnlichen Tools wie Multica und Conductor ab? Nun,
00:00:58schaut euch die Demo an, dann wird das glasklar. Bevor wir beginnen, möchte ich nur sagen,
00:01:03Symphony hat den seltsamsten Installationsprozess, den ich je in meinem Leben gesehen habe. Oder es könnte der
00:01:07genialste Weg sein, etwas zu installieren. Dazu kommen wir später.
00:01:10Gehen wir jedoch zuerst ein grundlegendes Beispiel durch. Ich habe Symphony am Laufen,
00:01:14das in Linear nach Aufgaben sucht. Und in Linear erstelle ich ein neues Issue,
00:01:18nämlich eine Hello-World-App mit TypeScript und BUN zu bauen.
00:01:22Im Moment ist Symphony nicht so konfiguriert, dass es an Backlog-Aufgaben arbeitet. Also ändere ich den Status auf “To-Do”
00:01:27und klicke auf “Create Issue”. Merkt euch die ID der Aufgabe, sie lautet SYN7.
00:01:31Nach einer Weile erfasst Symphony die ID dieser Aufgabe. Und ein paar Sekunden später
00:01:36haben wir einen GraphQL-Validierungsfehler, was keine große Sache ist und von Codex leicht behoben werden kann.
00:01:41Aber danach sehen wir, dass Codex die Arbeit abgeschlossen hat, den Status des Issues
00:01:45von “To-Do” auf “Done” geändert und hier einen Kommentar von Symphony hinterlassen hat. Wenn wir also
00:01:49in unser Symphony-Workspace-Verzeichnis gehen – darüber sprechen wir später noch –, sehen wir einen neuen
00:01:53Workspace mit der gleichen ID wie unser Issue. Und wenn wir in diesen Workspace gehen, haben wir die Liste
00:01:58der Dateien, die für die Hello-World TypeScript BUN App erstellt wurden. Und wenn wir in das Quellverzeichnis gehen,
00:02:04sehen wir, dass der Code für die App hier drüben ist. Und das ist Symphony im Wesentlichen.
00:02:08Gehen wir nun durch, wie man es einrichtet. Es gibt zwei Möglichkeiten, Symphony
00:02:12laut diesem Repo zu installieren. Option zwei, die wir gewohnt sind: Wir richten Elixir ein,
00:02:16klonen das Repo, bauen den Code und führen ihn mit der vorhandenen Workflow-Datei aus.
00:02:20Option eins ist jedoch die vielleicht seltsamste oder zukunftsweisendste Art, etwas zu installieren.
00:02:25Man gibt seinem Coding-Agenten im Grunde diesen Prompt, und er liest die Spezifikationsdatei,
00:02:30die mehr als 2000 Zeilen lang ist. Aber sie gibt Ihrem Agenten detaillierte
00:02:34Anweisungen zum Erstellen von Symphony. Das ist verrückt, denn wenn jeder diesen Weg ginge,
00:02:39würden keine zwei Versionen von Symphony gleich aussehen. Einige Leute hätten unterschiedliche Funktionen in
00:02:43verschiedenen Sprachen, was für OpenAI ein Chaos bei der Wartung und Unterstützung wäre.
00:02:47Aber es ist auch irgendwie genial, denn wenn man seine eigene Version von Symphony gebaut hat,
00:02:51fühlt man sich dafür verantwortlich. Man behebt die Bugs, fügt die Funktionen hinzu
00:02:55und wartet es im Grunde selbst. Und wenn man nicht wollte, dass Symphony Linear oder
00:02:59Codex verwendet, dann liegt das bei einem selbst. Jemand hat eine Go-Version von Symphony gebaut, die auf Charm CLI läuft,
00:03:04und jemand anderes baute eine, die vom Claude SDK angetrieben wurde. Ich war nicht so kreativ,
00:03:09also gab ich den Standard-Prompt in Codex mit GPT 5.5 Low Effort ein, und es lieferte mir eine Python-Version
00:03:15von Symphony, was Sinn ergibt, da LLMs sehr gut in Python sind. Sobald das erledigt ist,
00:03:19benötigen Sie einen persönlichen Linear-API-Key, den Sie unter “Security and Access” erhalten,
00:03:23und Sie können einen erstellen, indem Sie hier klicken. Dann müssen Sie diesen Key zu Ihrem Arbeitsprofil hinzufügen,
00:03:28einer Datei, die Symphony sagt, wie es seinen Job machen soll, und die einiges an YAML-Frontmatter enthält,
00:03:32natürlich den API-Key, aktive Status, damit der Agent weiß, wann er an einer Aufgabe arbeiten kann,
00:03:37sowie das Workspace-Root und den Codex-Befehl, den Shell-Befehl, den Symphony nutzt,
00:03:42um einen Coding-Agenten zu starten. Darunter befindet sich der Markdown-Prompt, der für jedes Issue
00:03:46an den Coding-Agenten gesendet wird. Bei Interesse finden Sie den Workflow in der D-Datei von OpenAIs Repo.
00:03:51Aber aktuell ist dieser Workflow noch nicht für ein echtes Projekt geeignet. Nehmen wir an, ich wollte Änderungen an
00:03:56meiner Film-Emulations-App vornehmen, an der ich gearbeitet habe. Ich müsste einen Create-After-Hook hinzufügen, der läuft,
00:04:01nachdem Symphony einen Workspace für ein Issue erstellt hat. Dieser Hook klont zuerst das Repo in das
00:04:06Workspace-Verzeichnis und checkt dann einen neuen Branch in diesem Repo aus. Ich habe auch einen Run-After-Hook
00:04:10hinzugefügt, der ausgeführt wird, nachdem Codex die Arbeit am Issue beendet hat. Dieser stuft die Dateien ein, erstellt
00:04:15dann einen neuen Commit, bevor er den Branch pusht und einen neuen Pull-Request mit diesen Werten erstellt.
00:04:20Wenn ich Symphony jetzt mit UV ausführe – was ebenfalls von OpenAI übernommen wurde, aber das ist ein Thema für ein
00:04:25anderes Video –, sucht es nach neuen Issues. Wenn ich nun ein neues Issue erstelle, um die Readme zu aktualisieren, genau
00:04:30in dem Abschnitt, der die Stapelverarbeitung zeigt, um eine Wildcard zu verwenden, statt mehrere Dateien anzuzeigen,
00:04:35ändere ich es wieder von Backlog auf To-Do und klicke auf “Create Issue”. Symphony hat das Issue nun
00:04:40erfasst. Und wenn ich in das Symphony-Workspace-Verzeichnis schaue, sehen wir einen neuen Ordner passend
00:04:45zu unserer Issue-ID, der das geklonte Projekt enthält. Und da Symphony die Arbeit am Issue nun
00:04:49beendet hat, wurde der Status auf “Done” gesetzt und ein neuer PR mit Link zum Linear-Ticket
00:04:54und der exakten Änderung, die ich angefordert hatte, erstellt. Natürlich könnte ich meinen Symphony-Code ändern, um eine
00:04:59bessere PR-Beschreibung hinzuzufügen und einen Link zum PR in die Kommentare zu setzen, aber ich bin sicher,
00:05:04dass das für Codex sehr einfach ist. Das war ein kurzer Überblick über Symphony. Wenn Sie bereits mit Linear vertraut sind
00:05:08oder in einer Firma arbeiten, die es nutzt, werden Sie sich im Interface sofort zu Hause fühlen. Und wenn Sie Codex-Nutzer sind,
00:05:13können Sie Ihre Fähigkeiten, MCP-Tools und Plugins nutzen, die Sie bereits installiert haben. Ich persönlich nutze
00:05:18Codex nicht, aber ich kann die Vision, die OpenAI mit Symphony verfolgt, definitiv erkennen. Stellen Sie sich vor,
00:05:22Sie hätten ein Team von Entwicklern, die alle mit KI am selben Projekt arbeiten. Anstatt dass jeder sein eigenes
00:05:28persönliches Harness mit eigenem Workflow hat, gäbe es einen zentralen Agenten mit zentralen Fähigkeiten, zentralen
00:05:33Tools, zentralen Workflows und Plugins. Jeder Entwickler kann damit kommunizieren, indem er ihm eine
00:05:37Aufgabe gibt. Sie können sehen, woran andere arbeiten, welche Prompts sie genutzt haben und
00:05:41auf einen Blick erkennen, welche anderen Features das eigene Feature beeinflussen könnten. Auch wenn
00:05:46es sehr schwierig ist, ein Feature zu entwickeln, das keinen anderen Teil des Codes berührt, an dem gerade
00:05:49jemand anderes arbeitet. Aber so cool Symphony auch ist, meiner Meinung nach macht Multica einen besseren Job, weil es
00:05:54einfacher einzurichten ist, man verschiedene Agenten erstellen und hinzufügen und sogar Aufgaben planen kann. Dennoch
00:05:59sehe ich absolut einen Platz für Symphony. Es ist quasi die Basisversion von Multica, bei der man
00:06:04genau die Features hinzufügen kann, die man möchte, statt ein fertiges Produkt zu haben. Man kann sich
00:06:08Symphony wie das Pi-Harness vorstellen und andere Tools wie Multica oder Conductor als Claude Code. Und wenn
00:06:13Sie nichts über Multica wissen, schauen Sie sich dieses Video an, das alles Wissenswerte
00:06:18darüber erklärt.

Key Takeaway

OpenAI Symphony automatisiert die Koordination langlebiger KI-Agenten über bestehende Issue-Tracker wie Linear, um die Skalierungsgrenze von maximal fünf gleichzeitig überwachten Sitzungen pro Ingenieur zu durchbrechen.

Highlights

  • Symphony reduziert den Engpass bei der menschlichen Aufmerksamkeit, indem Ingenieure nicht mehr auf 3 bis 5 gleichzeitige Sitzungen beschränkt sind.

  • Die Installation erfolgt primär über einen 2000 Zeilen langen Prompt, der den KI-Agenten anweist, das Tool in einer beliebigen Programmiersprache selbst zu bauen.

  • Das System nutzt Issue-Tracker wie Linear als Schnittstelle, um Aufgaben autonom zu erfassen und den Status nach Abschluss auf Done zu setzen.

  • Benutzer integrieren eigene Arbeitsabläufe durch Hooks, wie das automatische Klonen von Repositories oder das Erstellen von Pull Requests nach der Code-Generierung.

  • Eine Python-Version von Symphony entstand durch die Nutzung von GPT 5.5 Low Effort, da Large Language Models eine hohe Kompetenz in dieser Sprache aufweisen.

Timeline

Lösung für Skalierungsprobleme in der Agenten-Orchestrierung

  • Menschliche Produktivität sinkt bei der Überwachung von mehr als 5 Codex-Sitzungen durch häufige Kontextwechsel.
  • Symphony ersetzt die kontinuierliche menschliche Aufsicht durch eine asynchrone Aufgabenverwaltung.
  • Menschen greifen nur noch bei expliziten Überprüfungsanfragen in den Prozess ein.

Die manuelle Steuerung von KI-Agenten stößt bei OpenAI an Kapazitätsgrenzen. Symphony fungiert als Open-Source-Tool, das Aufgaben autonom abarbeitet. Es nutzt Linear als Board, auf dem Menschen Aufgaben platzieren, während das System im Hintergrund neue Agenten für die Erledigung startet.

Funktionsweise und Integration mit Linear

  • Das System überwacht definierte Statusänderungen in Linear, um neue Arbeitsaufträge zu identifizieren.
  • Symphony erstellt für jedes Issue ein dediziertes Workspace-Verzeichnis mit der entsprechenden ID.
  • KI-Agenten beheben Validierungsfehler eigenständig und hinterlassen Kommentare im Issue-Tracker.

Ein praktisches Beispiel zeigt die Erstellung einer Hello-World-App mit TypeScript und BUN. Sobald der Status eines Issues auf To-Do springt, erfasst Symphony die Aufgabe. Nach der Code-Erstellung werden alle relevanten Dateien im lokalen Dateisystem abgelegt und das Ticket automatisch geschlossen.

Generative Installation und Konfiguration

  • Die primäre Installationsmethode nutzt eine Spezifikationsdatei statt eines fertigen Binärpakets.
  • Individuelle Versionen existieren bereits in Sprachen wie Go, Python oder unter Nutzung des Claude SDK.
  • Die Konfiguration erfolgt über eine YAML-Datei mit API-Keys, Shell-Befehlen und Markdown-Prompts.

Der Installationsprozess ist ungewöhnlich, da der Nutzer einen Prompt an seinen Coding-Agenten gibt, der Symphony basierend auf einer Spezifikation baut. Dies führt zu einer hohen Eigenverantwortung für den Code und ermöglicht maßgeschneiderte Funktionen. Für den Betrieb sind ein Linear-API-Key und definierte Workspace-Roots zwingend erforderlich.

Erweiterung für reale Entwicklungsprojekte

  • Create-After-Hooks ermöglichen das automatische Klonen von Repositories und das Auschecken neuer Branches.
  • Run-After-Hooks automatisieren Commits, Pushes und die Erstellung von Pull Requests.
  • Symphony lässt sich mit Tools wie UV kombinieren, um die Ausführung zu optimieren.

Für den produktiven Einsatz reichen einfache Dateioperationen nicht aus. Durch Hooks führt Symphony komplexe Git-Workflows aus, sobald ein Issue bearbeitet wird. Dies schließt die Aktualisierung von Dokumentationen und die Verknüpfung von Pull Requests mit den ursprünglichen Tickets ein.

Vision zentralisierter Agenten-Teams

  • Symphony dient als zentraler Hub für geteilte Fähigkeiten, Tools und Workflows innerhalb eines Teams.
  • Entwickler erhalten volle Transparenz über genutzte Prompts und gegenseitige Code-Beeinflussungen.
  • Das Tool positioniert sich als anpassbare Basisversion im Vergleich zu spezialisierteren Lösungen wie Multica.

Die langfristige Vision sieht ein Team von Entwicklern vor, die über einen zentralen Agenten kommunizieren. Dies verhindert isolierte Workflows und schafft eine Übersicht über das gesamte Projekt. Während Konkurrenzprodukte wie Multica durch einfachere Einrichtung punkten, bietet Symphony maximale Flexibilität für spezifische Anpassungen.

Community Posts

View all posts