
Seit kurzem ist Jules, der Coding Assistent von Google in seiner Beta-Version für jeden nutzbar. Nachdem ich gerade JetBrains Junie getestet habe, dachte ich es wäre ein guter Zeitpunkt auch diesen Assistenten genauer unter die Lupe zu nehmen.
Was ist Google Jules überhaupt?
Google Jules ist ein asynchroner Entwicklungsagent, der darauf ausgelegt ist, Software-Engineering-Aufgaben wie das Beheben von Fehlern oder die Implementierung kleinerer Features zu übernehmen. Das Besondere daran ist die direkte Exportmöglichkeit zu GitHub, was den Workflow erheblich beschleunigen kann. Es ist im Grunde ein KI-gestützter Assistent, der Code verstehen, analysieren und modifizieren kann, um Entwickler bei wiederkehrenden oder komplexen Aufgaben zu entlasten.
So sieht Jules im Webbrowser aus.
Der Zweck von Jules ist es, die Produktivität von Entwicklerteams zu steigern, indem es ihnen repetitive Arbeiten abnimmt und sie sich auf anspruchsvollere, kreative Aufgaben konzentrieren können. Es ist ein Projekt, das von Google entwickelt wird und sich derzeit noch in der Beta-Phase befindet. Das bedeutet, es ist noch nicht perfekt, aber die Richtung stimmt.
Einer mein ersten Tests: n98-magerun2 Dokumentation auf Vordermann bringen.
Ich habe Jules den Auftrag gegeben, die mir als Maintainer von n98-magerun2 schon länger auf dem Herzen lag: die Überarbeitung der README.md Dokumentation. Ziel war es, fehlende Optionen und Argumente bei den Kommandos zu ergänzen und die Doku auf den neuesten Stand zu bringen. Das ist eine Aufgabe die einfach eine Fleißarbeit darstellt. Nichts kompliziertes. Einfach eine Aufgabe für die man nie Zeit reserviert, weil andere Dinge mehr Prio haben.
Julie verbindet sich direkt mit dem Repository über einen GitHub Account. Man gibt die Repositories über Github frei. Bisher sehe ich auch nur die Unterstützung für GitHub.
Man startet mit einem einfachen Prompt in der eine Aufgabe beschrieben wird.
Und nach einem Prompt rennt Jules dann los:
- Projekt-Klonen & Abhängigkeiten: Jules hat das n98-magerun2-Projekt von GitHub geklont und eigenständig die PHP-Abhängigkeiten installiert. Das ist schon mal ein starker Start – kein manuelles
composer install
für mich. Das macht der Assistent (wie erwartet) im Hintergrund in einer VM. Man kann es der KI hier auch ein wenig leichter machen und in einer Repository Konfiguration eine Reihe von Bash-Befehlen interlegen. Damit können Software-Dependencies die benötigt werden installiert werden. In meinem Fall brauche ich mindestens mal PHP und Composer.
-
Planung: Der Clou war, dass Jules clevererweise
bin/n98-magerun2 list
aufgerufen hat. Damit hat es sich eine vollständige Liste aller verfügbaren Kommandos mit deren Optionen und Argumenten verschafft. -
er läuft und läuft und läuft:
Der Asstistent arbeitet. Je nach Server-Ressourcen bei Google kann das auch mal länger laufen (gerade war die Google I/O und es ist besonders viel Last auf den Servern).
- Vergleich & Überarbeitung: Anschließend hat Jules diese gesammelten Informationen mit der bestehenden README.md verglichen. Fehlende Einträge wurden ergänzt und bestehende Beschreibungen mit detaillierteren Optionen und Argumenten angereichert, basierend auf den Hilfetexten der Kommandos.
Und hier ist das Ergebnis:
Jules hat einen Pull Request auf GitHub erstellt, den man sich hier anschauen kann: https://github.com/netz98/n98-magerun2/pulls.
Die Änderungen waren repräsentativ und haben die Dokumentation deutlich verbessert. Davon profiert jetzt jeder. Gleichzeitig hat Jules auch alle Optionen in schön formatierte Tabellen gepackt. Wunderschön :-)
Was geht (schon) und was (noch) nicht?
Was geht:
Code-Analyse und -Verständnis: Jules kann Projekte klonen, Abhängigkeiten installieren und Code analysieren, um fehlende Dokumentation oder potenzielle Fehler zu identifizieren.
Dokumentations-Generierung: Wie mein Test gezeigt hat, ist Jules in der Lage, bestehende Dokumentation zu erweitern und zu aktualisieren, indem es sich die "Source of Truth" (in diesem Fall die --help-Ausgaben der Kommandos) selbst beschafft.
Direkter GitHub-Export: Die Möglichkeit, die Änderungen direkt als Pull Request zu exportieren, ist ein riesiger Vorteil für den Workflow.
Kleine Features und Bugfixes: Der primäre Anwendungsfall von Jules liegt in der Bearbeitung kleinerer, klar definierter Aufgaben.
Was (noch) nicht geht (oder verbesserungsbedürftig ist):
Komplexe Architekturen: Für tiefgreifende architektonische Entscheidungen oder die Entwicklung völlig neuer, komplexer Features ist Jules (noch) nicht gedacht. Hier ist weiterhin menschliches Fachwissen und kreatives Denken gefragt.
Feinheiten und Nuancen: Manchmal fehlt es der KI noch an dem "Gefühl" für bestimmte Feinheiten oder den Kontext, der nur durch jahrelange Erfahrung in einem Projekt entsteht. Eine menschliche Überprüfung der generierten Änderungen ist daher unerlässlich.
Interaktion und Nachfragen: Obwohl Jules einen Plan erstellt und um Genehmigung bittet, ist die iterative Kommunikation noch nicht so flüssig wie mit einem menschlichen Kollegen.
Tageslimit: Aktuell gibt es ein tägliches Aufgabenlimit, wie man auf dem Screenshot sehen kann. Das ist verständlich in einer Beta-Phase, aber für den produktiven Einsatz natürlich ein limitierender Faktor. Hier habe ich mich bei Google für ein größeres Limit registriert. Mal sehen ob Google ein Herz für Open Source Maintainer hat.
Fazit und Ausblick
Google Jules ist ein spannendes Tool, das einen vielversprechende Ansätze hat. Gerade für Aufgaben wie die Aktualisierung von Dokumentationen, das Beheben kleinerer Bugs oder das Hinzufügen einfacher Features kann es eine enorme Zeitersparnis bedeuten. Es arbeitet nicht direkt in der IDE sondern ist eher wie ein Kollege zu sehen, dem man einen Auftrag gibt und der sich nach einer Weile mit einem Ergebnis zurückmeldet. Wie im echten Leben gibt es dann eine QA/Code Review und man gibt einen Kommentar mit Verbesserungsvorschlägen oder es passt.
Ich bin gespannt, wie sich Jules weiterentwickeln wird. Die Idee eines intelligenten Entwicklungsagenten, der uns bei der täglichen Arbeit unterstützt, ist nicht neu, aber Google scheint hier einen praktikablen Ansatz gefunden zu haben. Ein paar Dinge konnte der Assistent nicht lösen. Das liegt zum Teil aber am nicht ganz einfachen Dev-Setup. Hier sehe ich schon, dass ich für den KI Assistenten nachbessern muss. Wenn das Setup für den Entwickler einfach ist, dann ist es auch für den KI Assistenten einfach und man bekommt bessere Ergebnisse von der KI. Es gibt also viel zu tun :-)