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.