00:00:00Wenn du den Kanal verfolgst,
00:00:01kennst du sicher die verschiedenen Arten von Context-Engineering-Workflows,
00:00:04die wir hier behandelt haben.
00:00:05Nun hat auch Google einen weiteren veröffentlicht.
00:00:07Ich wünschte,
00:00:07ich könnte sagen,
00:00:08dass er besser ist als andere Workflows.
00:00:10Aber die Wahrheit ist, dass er es nicht ist.
00:00:11Und es gibt viele Probleme damit.
00:00:13Selbst wenn man argumentiert,
00:00:14dass er für das Gemini-Ökosystem besser ist,
00:00:16ist er immer noch nicht gut.
00:00:17Bevor wir uns damit befassen,
00:00:18warum es nicht nötig war,
00:00:19dies zu veröffentlichen,
00:00:20machen wir eine kurze Pause,
00:00:21um über Automata zu sprechen.
00:00:22Nachdem wir Millionen von Menschen beigebracht haben,
00:00:24wie man mit KI entwickelt,
00:00:25haben wir begonnen,
00:00:26diese Workflows selbst zu implementieren.
00:00:28Wir haben festgestellt,
00:00:29dass wir bessere Produkte schneller als je zuvor entwickeln können.
00:00:31Wir helfen dabei,
00:00:32deine Ideen zum Leben zu erwecken,
00:00:34egal ob Apps oder Websites.
00:00:35Vielleicht hast du unsere Videos gesehen und gedacht: Ich habe eine großartige Idee,
00:00:38aber kein Tech-Team,
00:00:39um sie umzusetzen.
00:00:40Genau hier kommen wir ins Spiel..
00:00:42Betrachte uns als deinen technischen Co-Piloten.
00:00:44Wir wenden die gleichen Workflows,
00:00:46die wir Millionen beigebracht haben,
00:00:48direkt auf dein Projekt an und verwandeln Konzepte in echte,
00:00:50funktionierende Lösungen,
00:00:52ohne die Kopfschmerzen beim Einstellen oder Verwalten eines Entwicklerteams.
00:00:55Bereit, deine Idee in die Realität umzusetzen?
00:00:57Melde dich unter hello@automata.dev..
00:00:59Bevor ich nun erkläre,
00:01:00warum dies nur ein weiterer schwacher Versuch eines Context-Engineering-Workflows ist,
00:01:04schauen wir uns zunächst an,
00:01:05wie Conductor tatsächlich funktioniert.
00:01:07Das ist der Artikel und ich werde einen Link dazu in der Beschreibung unten einfügen.
00:01:11Am Ende erhältst du einen Befehl,
00:01:12um dies tatsächlich als Erweiterung in Gemini CLI zu installieren.
00:01:15Für diejenigen unter euch,
00:01:16die es nicht wissen: Erweiterungen sind Befehlssätze,
00:01:18MCPs und andere Regeln,
00:01:19die zusammen gebündelt und zu einem Paket gemacht werden,
00:01:22das Leute dann hosten und mit anderen teilen können.
00:01:24Claude hat auch etwas Ähnliches namens Plugins.
00:01:26Um den Workflow tatsächlich zu starten,
00:01:28verwendest du den Befehl und er wird installiert.
00:01:30Nach der Installation kannst du seine Slash-Befehle in Conductor verwenden.
00:01:33Du erhältst diese fünf Befehle,
00:01:35die Conductor tatsächlich steuern und wie du den Workflow verwendest.
00:01:38Der allererste Befehl,
00:01:39den du verwenden wirst,
00:01:40ist der Setup-Befehl..
00:01:41Was dieser Befehl macht,
00:01:42ist zunächst zu prüfen,
00:01:43ob die vorhandenen Conductor-Dateien wie der Setup-Status und die anderen Dateien,
00:01:47die ihm mitteilen,
00:01:48ob ein Projekt bereits initialisiert wurde,
00:01:50verfügbar sind oder nicht.
00:01:51Anstelle von Stories erstellt es diese Dateien namens Tracks und vervollständigt diese nacheinander.
00:01:56Danach initialisierte es ein neues GitHub-Repo und fragte,
00:01:59was gebaut werden sollte.
00:02:00Um es zu testen,
00:02:01habe ich ein einfaches Projekt erstellt,
00:02:02wollte aber prüfen,
00:02:03ob die erstellte Architektur tatsächlich gut sein würde.
00:02:06Also um tatsächlich zu testen,
00:02:07ob es die Dinge empfehlen würde,
00:02:09die ich wirklich brauche,
00:02:10habe ich ihm gesagt,
00:02:11dass es produktionsreif und skalierbar für eine größere Anzahl von Benutzern sein sollte.
00:02:15Danach erstellte es die product.md-Datei,
00:02:16die das tatsächliche Konzept dessen enthielt,
00:02:18was ich bauen wollte.
00:02:19Um es tatsächlich zu verfeinern und zu gestalten,
00:02:21begann es mir Fragen zu stellen,
00:02:23und am Ende,
00:02:23weil die Fragen eigentlich nirgendwohin führten und wirklich simpel waren,
00:02:27ließ ich es einfach alles automatisch generieren.
00:02:29Nachdem es den Produktleitfaden genehmigt und gespeichert hatte,
00:02:32wollte es eine weitere Datei erstellen,
00:02:34die Produktrichtlinien,
00:02:35die sich hauptsächlich auf das Styling des Produkts und einige Designprinzipien konzentrierten.
00:02:39Es genehmigte das auch und speicherte die Produktrichtlinien ebenfalls.
00:02:42Danach definierte es den Technologie-Stack und das ist einer der Gründe,
00:02:45warum der Workflow nicht gut war.
00:02:47Es hat den Tech-Stack durcheinandergebracht,
00:02:49den es mir anbot,
00:02:50weil es wusste,
00:02:50was mein gesamtes Projekt war,
00:02:52und trotzdem nicht wirklich empfahl,
00:02:53was angemessen war.
00:02:54Nachdem ich das korrigiert hatte,
00:02:56genehmigte es auch den Tech-Stack und aktualisierte diese MD-Datei ebenfalls.
00:02:59Es hat auch diese Dateien namens Code-Style-Guides.
00:03:01Wenn ich in den tatsächlichen Ordner gehe,
00:03:03sind das die einzigen Sprachen,
00:03:05die es hat,
00:03:05und wenn es denkt,
00:03:06dass wir eine davon im Projekt verwenden werden,
00:03:08fügt es sie während der Initialisierung zu den Code-Style-Guides unseres aktuellen Projekts hinzu.
00:03:13Der Standard-Workflow,
00:03:14den es verwendet,
00:03:14ist tatsächlich ziemlich gut.
00:03:16Standardmäßig beinhaltet er 80% Code-Test-Abdeckung,
00:03:18und während es Sachen einrichtete und Basiskomponenten schrieb,
00:03:21stellte es sicher,
00:03:22dass auch die Tests geschrieben wurden,
00:03:23und nach Abschluss der Aufgaben testete es sie ebenfalls.
00:03:26Gleichzeitig commitete es Änderungen nach jeder Aufgabe und verwendete auch Git-Notes,
00:03:30damit wir tatsächlich nachverfolgen konnten,
00:03:32wo oder wann etwas schiefging.
00:03:33Nach Abschluss des initialen Setups erstellte es einige übergeordnete Produktanforderungen,
00:03:37damit wir auf den ersten Track kommen konnten.
00:03:40Dies ist der erste Track,
00:03:41den es zu implementieren versuchte..
00:03:45Auch dies war zu breit gefasst und musste in kleinere Tracks aufgeteilt werden.
00:03:48Das war zu viel,
00:03:49um es in einem Track zu erledigen,
00:03:50und es gab viele Chancen,
00:03:52Fehler zu machen,
00:03:52wenn es so viel gleichzeitig machte.
00:03:54Nachdem du das abgeschlossen hast,
00:03:55kannst du mit der Arbeit beginnen,
00:03:57indem du den Implement-Befehl ausführst,
00:03:59und im Tracks-Ordner hast du verschiedene Tracks,
00:04:01die es nacheinander implementiert.
00:04:02Jeder Track hat zwei Dateien, eine plan.md und eine spec.md.
00:04:05Die spec.md enthält das Ziel und die technischen Details,
00:04:07die aus dem Tech-Stack und den Informationen extrahiert wurden,
00:04:10die wir zu Beginn eingegeben haben.
00:04:12Die plan.md enthält tatsächlich die Aufgaben,
00:04:14die es nacheinander implementieren muss.
00:04:15Wenn du tatsächlich den Implement-Befehl verwendest,
00:04:18schaut es sich die tracks.md an und betrachtet im Grunde jeden Track,
00:04:21wo es basierend auf dem Status tatsächlich weiß,
00:04:23was zu tun ist.
00:04:23Wenn es leer ist, wurde es nicht gestartet.
00:04:25Das bedeutet,
00:04:26dass es in Bearbeitung ist,
00:04:27und das bedeutet,
00:04:28dass der Track abgeschlossen wurde.
00:04:29Und wie du sehen kannst,
00:04:30ist dieser aktuelle Track in Bearbeitung.
00:04:32Was die anderen Befehle betrifft,
00:04:33gibt dir der Status-Befehl einen Statusbericht darüber,
00:04:36was gerade vor sich geht und welche Tracks verfolgt werden und welche nicht abgeschlossen sind.
00:04:40Wenn du den New-Track-Befehl verwendest,
00:04:42wird es dir die verschiedenen Fragen erneut für die neue Aufgabe stellen.
00:04:45Ich habe es auch in einem bereits vorhandenen Repository implementiert und es lief ziemlich genauso ab.
00:04:49Es war etwas anders,
00:04:50weil es sich die vorhandenen Dateien ansah und mir nur klärende Fragen stellte,
00:04:54und es fragte nicht nach einem neuen Track..
00:04:57Ich musste selbst einen neuen Track als neues Feature implementieren.
00:05:00Und dann gibt es Revert,
00:05:01ein weiteres wirklich cleveres Feature,
00:05:03das tatsächlich jeden Schaden abmildert und Git-bewusst ist.
00:05:06Es verwendet also Git,
00:05:07um zu helfen,
00:05:07falls der Agent irgendwo einen Fehler macht.
00:05:09Nun,
00:05:10derzeit ist das Dateimanagement und die Struktur gar nicht so schlecht.
00:05:13Die Art und Weise,
00:05:13wie es neue Features oder vorhandene Aufgaben in Tracks implementiert und sie dann nachverfolgt,
00:05:18ist tatsächlich ziemlich gut.
00:05:19Aber die Art und Weise,
00:05:20wie die Anweisungen geschrieben wurden oder wie diese Befehlsdateien geschrieben wurden,
00:05:24braucht Arbeit,
00:05:24weil sie nicht wirklich die Kontextschleife richtig verwalten,
00:05:27wo es alles überprüfen muss.
00:05:28Und wenn es eine Änderung gibt, dann wie es das ändern muss.
00:05:31Denn selbst während dieses anfänglichen Prozesses gab es viele Fehler.
00:05:34Der erste Fehler ist,
00:05:35dass es während der Anfrage zur Erstellung jedes Dokuments meine Idee nicht wirklich richtig zerlegt hat.
00:05:39Und ich musste es durch viele Sachen führen.
00:05:41Als ich dachte,
00:05:42es wäre ausreichend,
00:05:42ließ ich es einfach den Rest des Inhalts automatisch generieren.
00:05:45Und wie ich bereits erwähnt habe,
00:05:47verfehlte es auch beim Definieren des Technologie-Stacks viele Dinge.
00:05:50Option B war gut.
00:05:50Aber da ich ihm sagte,
00:05:51dass ich eine voll skalierbare App mit einer großen Anzahl von Benutzern wollte,
00:05:55verfehlte es viele Dinge,
00:05:56die ich klären und explizit sagen musste,
00:05:58dass es sie auch benötigte,
00:05:59und dann modifizierte es den Plan.
00:06:00Als der erste Track generiert wurde,
00:06:02ging ich tatsächlich hinein und schaute mir den Plan und die Spezifikationen an,
00:06:05die es generiert hatte,
00:06:06und das Datenbankschema war völlig unvollständig.
00:06:08Es hatte viele Dinge verpasst,
00:06:10die entscheidend für die Einrichtung der App waren,
00:06:12und ich musste es erneut führen und in die richtige Richtung lenken.
00:06:15Nun, Gemini ist tatsächlich ein wirklich gutes Modell.
00:06:17Also muss ich vermuten,
00:06:18dass die Befehle,
00:06:19die implementiert wurden,
00:06:20das sind,
00:06:20was es sich so verhalten lässt..
00:06:23Und der größte Grund,
00:06:24warum ich glaube,
00:06:25dass,
00:06:25obwohl das Setup an sich eigentlich gut ist,
00:06:27viele Probleme in den Haupt-Slash-Befehlen und insbesondere in der workflow.md bestehen,
00:06:31ist,
00:06:31weil es einen wirklich großen Teil durcheinander gebracht hat,
00:06:34nachdem ich ihm sagte,
00:06:35dass ich NPM ändern wollte.
00:06:36Und stattdessen wollte ich PNPM verwenden,
00:06:38da ich vergessen hatte,
00:06:39es früher zu erwähnen.
00:06:40Aus irgendeinem Grund versuchte es zuerst,
00:06:42ein Backup zu erstellen..
00:06:43Und dabei gab es an,
00:06:44dass es die mit NPM erstellten Dateien entfernen müsse.
00:06:46Aber am Ende hat es den gesamten Conductor-Ordner selbst gelöscht,
00:06:49der alle Planungsdateien enthielt.
00:06:51Nachdem es das gelöscht hatte,
00:06:52suchte es kontinuierlich nach dem Ordner.
00:06:54Und als es ihn nicht finden konnte,
00:06:56sagte es,
00:06:56dass es den Conductor-Ordner anhand seines Kontexts und allem,
00:06:59was es in seinem Speicher hatte,
00:07:01rekonstruieren würde..
00:07:02Im Grunde musste es also alles neu schreiben,
00:07:04im Gegensatz zu dem,
00:07:05was ein normaler Kontext-Workflow tun sollte,
00:07:06bei dem die Änderung nur die Hauptkontextdateien und die Dateien betreffen sollte,
00:07:10die mit dieser spezifischen Aufgabe zusammenhängen,
00:07:12was genau das ist,
00:07:13was Be Mad tut,
00:07:13um effizient zu arbeiten.
00:07:14Nun,
00:07:15wenn ich es nicht abrupt gebeten hätte,
00:07:16etwas zu ändern,
00:07:17wäre es vielleicht gut gelaufen.
00:07:18Aber trotzdem,
00:07:19als es alle Aufgaben initialisierte und ich es bat,
00:07:21mit der ersten Aufgabe zu beginnen,
00:07:22fing es an,
00:07:23das Projekt und die anderen benötigten Kerndienste zu initialisieren.
00:07:26Als es nun darum ging,
00:07:27die Umgebungsvariablen für die Supabase-Verbindung zu konfigurieren,
00:07:29markierte es aus irgendeinem Grund die Aufgabe automatisch als abgeschlossen,
00:07:33während es dort eindeutig einen Dummy-Schlüssel eingefügt hatte.
00:07:35Es hat mich nicht einmal gebeten,
00:07:37das Supabase-Projekt einzurichten oder einen tatsächlichen Schlüssel bereitzustellen.
00:07:40Und es versuchte automatisch, das Datenbankschema zu pushen.
00:07:43Da es keinen tatsächlichen Schlüssel gab, schlug es fehl.
00:07:45Und dann bat es mich, die Zeichenfolge zu überprüfen.
00:07:47Also werden nicht einmal die Aufgaben ordnungsgemäß aktualisiert,
00:07:50und es hat sie nicht wirklich korrekt befolgt.
00:07:52Ich würde das ehrlich gesagt jetzt nicht für End-to-End-Spec-Entwicklung verwenden.
00:07:55Be Mad ist die viel bessere Option.
00:07:57Und für kleine Projekte erstelle ich immer noch meine eigenen Kontextdateien.
00:08:00Damit kommen wir zum Ende dieses Videos.
00:08:01Wenn ihr den Kanal unterstützen und uns helfen möchtet,
00:08:04weiterhin solche Videos zu machen,
00:08:05könnt ihr das tun,
00:08:06indem ihr den Super-Thanks-Button unten verwendet.
00:08:08Wie immer,
00:08:08vielen Dank fürs Zuschauen und wir sehen uns im nächsten Video..