- In einer Realität, in der AI-Coding-Modelle nicht einmal einen einzelnen Befehl zuverlässig ausführen können, entstehen überzogene Erwartungen an agentisches Coding, das autonom im Hintergrund arbeitet
- Der Autor erlebte, dass sowohl GPT-5 als auch Gemini Pro trotz Bereitstellung einer Golang-Funktion mit rund 100 Zeilen als Referenz Teile der Logik ausließen oder Updates vergaßen
- Dass agentische Systeme 50 Dateien und zahlreiche Funktionen autonom bearbeiten, ist auf dem aktuellen technischen Stand unrealistisch und birgt eher das Risiko, dass mehr Zeit fürs Debugging draufgeht
- Die Reaktionen der Community spalten sich in die Ansicht, dass durch systematisches Prompting, Dokumentation und schrittweise Validierung ein begrenzt erfolgreicher Einsatz möglich ist, und in skeptische Stimmen, die agentische Ansätze noch nicht für praxistauglich halten
- Aktuelle LLMs sind wissensbasierte Systeme, keine Intelligenz, daher ist ein werkzeugorientierter Einsatz realistisch, bei dem Entwickler den Kontext selbst bereitstellen und jeden Schritt validieren
Problemaufriss des Autors des Originalbeitrags
- Beispiel für das Scheitern an einer einfachen Anweisung: Eine 100-zeilige Golang-Funktion wurde als Referenz bereitgestellt mit der Bitte, eine andere Funktion in derselben Struktur zu aktualisieren, doch sowohl GPT-5 als auch Gemini Pro ließen Teile der Logik aus oder vergaßen einzelne Änderungen
- Unrealismus agentischen Codings: Wenn nicht einmal eine einzelne Funktion sauber verarbeitet werden kann, dürfte ein agentischer Ansatz, der autonom zahlreiche Funktionen über 50 Dateien hinweg ändert, noch mehr Probleme verursachen
- Frage zur Aktualisierung einer 6000-Zeilen-Datei: Die Community wurde nach Meinungen gefragt, wie sich eine Datei im Umfang von 6000 Zeilen, etwa bei einem Stripe-Versionsupdate, sicher ändern lässt
Positive Einsatzbeispiele und Methoden
Ansatz mit systematischer Dokumentation und Indexierung
- Verwendung von Markdown-Referenzdateien: Wenn Referenzen in einer
.md-Datei gespeichert werden und die AI angewiesen wird, diese zu lesen, steigen Konsistenz und Genauigkeit
- Beispiel-Prompt: "Nutze die angehängte Datei
goLang_Update_reference.md als Referenz, fasse die Kernpunkte der Update-Funktion zusammen und erstelle darauf basierend einen Entwurf für das Software-Update"
- Lokalen Index aufbauen: Bei großen Dateien (über 6000 Zeilen) wird in Blöcken zu 1000 Zeilen gescannt, um einen Index mit Funktionsnamen und Zeilenreferenzen zu erstellen
- Bei Frontend-Arbeiten werden Indizes wie
fr.index.md genutzt, die nur bestimmte Bereiche separat abbilden
Agentenverwaltung und Strukturierung der Arbeit
- Spezialisierung von Agenten: Agenten für Rollen wie Design (architect), Code-Erkundung (codeseeker) und Implementierung (coder) werden getrennt aufgesetzt und jeweils mit passenden
.md-Regeldateien versehen
- Vertical-Slice-Ansatz: Aufgaben werden in kleine Funktionseinheiten zerlegt, die sich mit weniger als 100.000 Tokens abschließen lassen
- Oberhalb von 100.000 Tokens steigt die Wahrscheinlichkeit von Fehlverhalten der Agenten stark an
- Dokumentation der Arbeit erzwingen: Updates in
docs/TASKS.md, docs/WORKLOG.md und docs/DECISIONS.md werden verpflichtend gemacht, um Arbeitskontinuität sicherzustellen
Einsatz von Plan Mode und Ask Mode
- Plan Mode: Das gesamte Projekt wird geprüft, anschließend wird gemäß der Anfrage ein Plan erstellt und Schritt für Schritt abgearbeitet
- Ask Mode: Nützlich für Abfragen im Codebestand, das Erkunden von Ideen und das Prüfen von Optionen; kann als Ersatz für Google oder StackOverflow dienen
Ansatz mit vorgeschalteten Unit-Tests
- Testgetriebene Entwicklung: Vor dem Schreiben einer Funktion werden zuerst Unit-Tests erstellt, anschließend lässt man die AI wiederholt Code generieren, bis die Tests bestehen
- Die Wahrscheinlichkeit, funktional korrekten Code zu erhalten, steigt deutlich; danach sind meist nur noch Optimierung und Bereinigung nötig
Skeptische Sichtweisen und Wahrnehmung von Grenzen
Praktische Grenzen agentischer Ansätze
- Arbeiten ohne Aufsicht ist selbstzerstörerisch: Auf dem aktuellen Stand der Technik ist es sehr wahrscheinlich, dass das Zuweisen eines Tickets und autonomes Arbeiten im Hintergrund scheitert
- Möglichkeit von Falschaussagen: Modelle erzeugen eher Halluzinationen als verlässlichen Erfolg und können im schlimmsten Fall bestehenden Code beschädigen
- Redundanz des Planning Mode: Es reicht oft schon, das Basismodell nach einem detaillierten Plan zu fragen; Planning Mode liefert praktisch keine neue Funktionalität
Grundlegende Einschränkungen von LLMs
- Vorhersage statt Schlussfolgern: Modelle arbeiten, indem sie das nächste Wort vorhersagen, ohne Ergebnisse zu verifizieren; daher bleibt die Zuverlässigkeit instabil, bis sich grounding, memory und feedback verbessern
- Wissensbasis ohne Intelligenz: LLMs sind hochentwickelte Wissensbasen ohne eigene Intelligenz; Entwickler müssen Intelligenz (BYOI: Bring Your Own Intelligence) und Kontext selbst mitbringen
- Mangel an Gedächtnis: Modelle besitzen kein echtes Gedächtnis und verlassen sich nur auf context und context cache, weshalb der Kontext bei jedem neuen Chat zurückgesetzt wird
Sprach- und Datenbias
- Relative Benachteiligung von Golang: Für Golang gibt es im Vergleich zu Python oder JavaScript weniger öffentliche Codebasen, weshalb den Modellen weniger gelernte Muster und Konventionen zur Verfügung stehen
- Das ist ein struktureller Faktor, der konsistente Editierungen oder Transformationen erschwert
Praktischer Leitfaden für eine erfolgreiche Nutzung
Prompting und Bereitstellung von Kontext
- Klare und detaillierte Anweisungen: Syntax und Zeichensetzung präzise verwenden und statt vager Formulierungen explizite Anweisungen geben
- Alle relevanten Dateien explizit referenzieren: Wenn nicht alle von den Agenten benötigten Dateien genannt werden, steigt die Wahrscheinlichkeit für Spaghetti-Code
- Regeldateien einrichten: Workspace-weite Regeln und projektspezifische Regeldateien helfen dabei, konsistente Codegenerierung zu fördern
- @Docs nutzen: Dokumentreferenz-Funktionen verwenden, um Agenten das notwendige Kernwissen bereitzustellen (funktioniert in einigen Versionen instabil)
Arbeitsumfang und Validierung
- In kleine Einheiten zerlegen: Aufgaben in die kleinstmöglichen Einheiten aufteilen, jeden Schritt validieren und erst dann zum nächsten übergehen
- Prüfung in Echtzeit: Sämtlichen generierten Code direkt prüfen und bei Bedarf sofort Korrekturen anfordern, um Spaghetti-Code zu vermeiden
- Backups und Versionsverwaltung: Nach jedem Schritt ein Backup anlegen und Versionsverwaltungssysteme wie GitHub nutzen
- Tests ausführen: Mit
pytest --testmon -q inkrementell die betroffenen Tests ausführen und vor Abschluss den kompletten Testlauf starten
Modularisierung und Codestruktur
- 6000-Zeilen-Datei aufteilen: 6000 Zeilen in einer einzelnen Datei sind unmodular und ungünstig für die Kontextbereitstellung; wirksamer ist die Aufteilung in 12 Dateien mit jeweils etwa 500 Zeilen
- Vertical Slices bevorzugen: Entwicklung in kleinen, Ende-zu-Ende lauffähigen Funktionseinheiten
Modellauswahl und Kostenmanagement
- Claude Sonnet 4.5 bevorzugt prüfen: Im Vergleich zu GPT oder Gemini bietet es höhere Konsistenz und Genauigkeit und kann den Mehrpreis rechtfertigen
- Auf Token-Verbrauch achten: Groß angelegte Planungen verbrauchen viele Tokens; kosteneffizienter ist es, die tatsächliche Ausführung in kleine Schritte zu zerlegen
Spezielle Anwendungsfälle
Erstellung von Einweg-Skripten
- Analyse-Skripte: Wenn täglich Hunderte einmaliger Skripte zur Datenanalyse geschrieben werden müssen, kann selbst eine Genauigkeit von 50 % im Vergleich zur manuellen Erstellung zu einer 1000-fach schnelleren Generierung und Ausführung führen
- Überprüfbarkeit der Ergebnisse: Da sich die Resultate direkt verifizieren lassen, bleibt der Einsatz auch bei geringerer Genauigkeit praktisch sinnvoll
Aufbau einer App von Grund auf
- Multi-Agenten-Struktur: Beim Aufbau einer großen App von Grund auf prüft ein überwachender Agent die Arbeit anderer Agenten, um Konsistenz zu sichern
- Wirksam etwa bei der Konsistenz von Importnamen und Variablennamen sowie beim Vermeiden von Code-Duplikaten
- Effizienz im Verhältnis zu den Kosten: Komplexe Änderungen und Refactorings bleiben weiterhin nötig, weshalb ein schrittweiser Ansatz langfristig günstiger ist
Zusammenfassung der Community-Meinungen
Positive Erfahrungen (3- bis 5-fache Produktivitätssteigerung)
- Next.js-Website: In wenigen Minuten wurde aus dem Nichts eine vollständig funktionsfähige und deploymentfähige Website aufgebaut
- Implementierung komplexer Funktionen: Eine Threads-Funktion wurde in einer Chat-App in 3 bis 4 Minuten umgesetzt (geschätzter Arbeitsaufwand sonst 3 Tage)
- Bei systematischem Vorgehen: Mit klaren Regeln, ausreichend Kontext und schrittweiser Validierung sind konsistente Erfolge möglich
Negative Erfahrungen (derzeit unpraktisch)
- Produktion von Spaghetti-Code: Bei weit gefassten Zielen treten Probleme wie ausgelassene Dokument-Updates oder nicht gelöschte Restdateien auf
- Semantische Fehler: Technisch funktioniert der Code zwar, ist aber strukturell problematisch, etwa weil er an der falschen Stelle eingefügt wird oder bestehende Funktionen neu implementiert
- Scheitern bei mehr als 5 Minuten Laufzeit: Längere Abläufe von mehr als 5 Minuten erzeugen meist unbrauchbare Ergebnisse
Noch keine Kommentare.