3 Punkte von GN⁺ 2025-01-18 | 1 Kommentare | Auf WhatsApp teilen

Was ist Devin?

  • Im März 2024 trat ein neues AI-Unternehmen auf den Plan, das eine Series-A-Finanzierung über insgesamt 21 Millionen US-Dollar erhielt, unterstützt von mehreren Tech-Branchenführern wie Founders Fund, den Collison-Brüdern und Elad Gil
  • Das Team des Unternehmens besteht aus IOI-Goldmedaillengewinnern und stellte sich als fähig dar, komplexe Programmierprobleme eigenständig zu lösen
  • Ihr Produkt Devin soll wie ein menschlicher Kollege im Dialog arbeiten und den gesamten Softwareentwicklungsprozess autonom bewältigen können, darunter das Erlernen neuer Technologien, das Debuggen bestehenden Codes, das Deployment kompletter Anwendungen und das Training von AI-Modellen
  • Im veröffentlichten Demo-Video löste Devin selbstständig eine Upwork-Prämienaufgabe und installierte sowie startete ein PyTorch-Projekt[1]
  • Das Unternehmen behauptete, auf Basis von SWE-bench etwa 13,86 % realer GitHub-Issues vollständig zu lösen, und hob hervor, dass dies etwa dreimal besser sei als frühere Systeme
  • Anfangs hatten nur ausgewählte Nutzer Zugriff, und über soziale Netzwerke verbreitete sich die Erwartung, dass dies die Softwareentwicklung revolutionieren würde
  • Das Team von Answer.AI experimentiert häufig mit AI-Entwicklungstools und hatte die Intuition, dass Devin etwas anderes zeigen könnte als bestehende Werkzeuge
  • Daher wurde Devin direkt in einer realen Arbeitsumgebung eingesetzt, verschiedene Aufgaben wurden ausprobiert und die Nutzungserfahrungen dokumentiert

Frühe Erfolgsfälle

  • Die erste ausprobierte Aufgabe war, Informationen aus einer Notion-Datenbank in Google Sheets zu übernehmen
  • Devin durchsuchte die Notion- und Google-API-Dokumentation und führte Schritt für Schritt durch die Einrichtung der nötigen Zugangsdaten in der Google Cloud Console
  • Statt nur knapp die API-Nutzung zu erklären, wies Devin sogar auf konkrete Menüs und Schaltflächen hin und verkürzte so den Zeitaufwand für lästige Arbeiten deutlich
  • Der von Devin geschriebene Code war etwas ausschweifend, funktionierte aber korrekt
  • Diese Erfahrung ließ das Potenzial einer AI erkennen, die „Glue Code“ übernehmen kann
  • Ein anderes Teammitglied konnte ebenfalls nur mit dem Smartphone mit Devin interagieren und damit eine Anwendung erstellen, die frühere Positionen von Jupiter und Saturn nachverfolgt

Ausweitung der Tests

  • Ermutigt durch die ersten Erfolge wurde ausprobiert, Devin asynchron einzusetzen, etwa für das Schreiben von Dokumentation oder zum Debuggen, während das Team selbst am Design arbeitete
  • Allmählich zeigte sich jedoch, dass Devin selbst bei simpel wirkenden Aufgaben in technische Sackgassen geriet oder nutzlos komplexen Code erzeugte
  • Besonders häufig trat auf, dass Devin auch tatsächlich unmögliche Aufgaben blind anging, etwa mehrere Apps gleichzeitig in ein einziges Railway-Deployment zu packen, und dabei Funktionen „halluzinierte“
  • Das Problem war nicht nur das Scheitern an sich, sondern dass viel Zeit damit verschwendet wurde, unmögliche Lösungswege zu verfolgen

Vertiefte Beobachtungen zu den Problemen

  • Es stellte sich die Frage, warum Devin bei manchen Aufgaben recht kompetent wirkte, bei anderen jedoch scheiterte
  • Im Verlauf eines Monats wurden insgesamt 20 Aufgaben ausprobiert und in die folgenden drei Kategorien eingeordnet
    • (1) Neues Projekt erstellen
    • (2) Rechercheaufgaben
    • (3) Analyse und Änderung bestehender Projekte
  • Am Ende erwiesen sich 14 von 20 Aufgaben als Fehlschläge, 3 als Erfolge (einschließlich der frühen Erfolgsfälle) und 3 als unklar (Inconclusive)
  • Es gab kein klares Muster, das Erfolg und Misserfolg trennte; selbst ähnlich wirkende Aufgaben scheiterten auf unerwartete Weise
  • Detaillierte Einzelfälle sind im Anhang am Ende des Textes zusammengefasst

1. Neues Projekt erstellen

  • Angesichts des Firmen-Demos und der frühen Erfolgsbeispiele wurde erwartet, dass Devin beim vollständigen Erstellen neuer Projekte stark sein würde
  • In der Praxis erzeugte Devin jedoch oft übermäßig komplexe Code-Strukturen oder scheiterte sogar an einfachem Web Scraping
  • Zum Beispiel scheiterte das Hochladen synthetischer Daten in Braintrust daran, dass Devins Code übertrieben komplex war und nicht aus einer Fehlerspirale herauskam
  • Auch der Versuch, Spiral.computer mit dem AI-Notiztool Circleback zu integrieren, wurde aufgegeben, nachdem Devin spaghettiartigen, unnötig komplexen Code zurückgeliefert hatte
  • Die Aufgabe, die neuesten 25 Veröffentlichungen eines bestimmten Autors aus Google Scholar zu holen, blieb beim HTML-Parsing stecken und wurde nicht korrekt ausgeführt

2. Rechercheaufgaben

  • Grundlegende Recherchen wie das Nachschlagen einfacher Dokumentation waren bis zu einem gewissen Grad möglich
  • Bei komplexeren Problemen, etwa der Zusammenfassung von Transkripten unter Beibehaltung exakter Timestamps, verstand Devin die eigentliche Fragestellung jedoch nicht und listete nur irrelevante Beispiele auf
  • Auch die Aufforderung, ein minimales DaisyUI-Theme zu erstellen, führte praktisch nicht zu einem funktionierenden Ergebnis, da lediglich die Standardfarben des Basis-Themes weiterverwendet wurden

3. Analyse und Änderung bestehenden Codes

  • Besonders deutlich wurden Devins Grenzen bei Wartungsaufgaben, die das Verständnis bestehenden Codes und seines Kontexts erfordern
  • Bei der Arbeit an einem nbdev-Projekt verfolgte Devin ineffiziente Ansätze, etwa unnötig Python-Skripte hinzuzufügen, obwohl schlicht ein Notebook hätte bearbeitet werden müssen
  • Auch bei Sicherheitsreviews wies Devin auf nicht existierende Schwachstellen hin oder verfehlte die eigentlichen Kernprobleme
  • Bei der Diagnose eines Fehlers im SSH-Key-Forwarding starrte Devin nur auf das Skript selbst und zog gar nicht in Betracht, dass die Ursache woanders liegen könnte
  • Selbst bei der Implementierung einer Konfliktprüfung zwischen Benutzereingaben und Datenbankwerten ging so viel Zeit für die Nachbearbeitung von Devins Code verloren, dass eine direkte Eigenimplementierung in 90 Minuten letztlich schneller war

Rückblick des Teams

  • Nach einem Monat intensiver Tests lautete die Einschätzung im Team zu Devin wie folgt
    • „Kleine, klar definierte Aufgaben erledigt man eher schneller selbst, und bei großen Aufgaben ist die Wahrscheinlichkeit hoch, dass Devin scheitert, sodass der Nutzen stark begrenzt ist.“ (Johno Whitaker)
    • „Anfangs dachte ich, mit ein paar Korrekturen könnte es funktionieren, aber am Ende musste ich viel mehr anpassen und hatte das Gefühl, dass es besser gewesen wäre, gleich selbst von vorne anzufangen.“ (Isaac Flath)
    • „Es gab Kompatibilitätsprobleme, etwa weil es sich nicht gut mit internen AnswerAI-Tools verbinden ließ und die bereitgestellte Dokumentation und Beispiele schlecht nutzte. Werkzeuge wie Cursor waren dagegen besser, weil man in kleinen Einheiten kontinuierlich Feedback austauschen kann.“ (Hamel Husain)
  • Devin zeichnet sich dadurch aus, autonom große Schritte zu unternehmen, doch dadurch entstehen erhebliche Kosten, wenn Menschen später eine falsche Richtung korrigieren müssen
  • Dagegen erwies sich ein Workflow, in dem Entwickler die Führung übernehmen und AI unterstützend wirkt, etwa mit Circleback oder Cursor, als deutlich stabiler

Fazit

  • Die Erfahrung mit Devin gab einen Einblick in das Zukunftsbild, auf das autonome AI-Entwicklungstools abzielen
  • Besonders das dialogorientierte UI auf Slack-Basis und die automatische Einrichtung von Umgebungen in Docker-Containern waren aus Sicht der User Experience beeindruckend
  • Tatsächlich funktionierten jedoch nur 3 von 20 Fällen reibungslos, und selbst ähnliche Aufgaben scheiterten oft auf unnötig komplizierte Weise
  • Gerade wegen seines „autonomen“ Charakters kann eine Aufgabe bei Fehlentwicklung lange in eine völlig falsche Richtung weiterlaufen
  • Nach den bisherigen Erfahrungen ist es häufig so, dass Begeisterung in sozialen Netzwerken oder eine hohe Unternehmensbewertung nicht automatisch zu realer Produktivität oder ausgereifter Qualität führen
  • Das Team von Answer.AI will daher vorerst bei der Einschätzung bleiben, dass die praktischste Form von AI derzeit in der Unterstützung des Entwicklungsprozesses liegt

Anhang: Liste der mit Devin bearbeiteten Aufgaben

  • Nachfolgend eine kurze Übersicht über die Projekte, die Devin übernehmen sollte, und deren Ergebnisse
  • Sie wurden in vier Kategorien eingeteilt
    • (1) Neues Projekt erstellen
    • (2) Recherche
    • (3) Analyse bestehenden Codes
    • (4) Änderung eines bestehenden Projekts

1. Neues Projekt erstellen

  • Planet Tracker

    • Status: Success
    • Description: Eine App zur Überprüfung von Behauptungen über frühere Positionen von Jupiter und Saturn
    • Reflection: Es wurde ausschließlich mobil über Slack mit Devin kommuniziert, und Devin erledigte den Großteil der Arbeit autonom, sodass die App erfolgreich fertiggestellt wurde
  • Migrating data from Notion into Google Sheets

    • Status: Success
    • Description: Automatischer Import von Notion-Dokumenten in Google Sheets
    • Reflection: Devin führte sogar Schritt für Schritt durch die Google-Cloud-Console-Konfiguration und sorgte damit erstmals für ein „vollkommen neues Erlebnis“
  • Multi-app deploys on Railway

    • Status: Inconclusive
    • Description: Mehrere Apps sollten in einem einzelnen Railway-Deployment laufen und sich dieselbe DB teilen
    • Reflection: Tatsächlich unterstützt Railway diesen Ansatz nicht, sodass es praktisch unmöglich war. Devin versuchte es dennoch weiter und verfolgte halluzinierte Ansätze
  • Generate synthetic data and upload it to Braintrust

    • Status: Failure
    • Description: Es sollten synthetische Daten erzeugt und auf die Braintrust-Plattform hochgeladen werden
    • Reflection: Der Code war übermäßig komplex und die Fehler blieben ungelöst, weshalb die Implementierung schließlich Schritt für Schritt mit Cursor erfolgte
  • Create an integration between Circleback and Spiral.computer

    • Status: Failure
    • Description: Obwohl die jeweilige Dokumentation bereitgestellt wurde, erzeugte Devin zu komplexen Spaghetti-Code, sodass der Versuch aufgegeben wurde
  • Web scraping Papers by Following Google Scholar Links

    • Status: Failure
    • Description: Die neuesten 25 Arbeiten eines bestimmten Autors sollten geholt werden, wobei kostenpflichtige Papers übersprungen werden sollten
    • Reflection: Die Arbeit geriet in eine Endlosschleife beim HTML-Parsing und wurde abgebrochen
  • Create minimal HTMX bulk upload example app

    • Status: Failure
    • Description: Ein HTMX-Beispiel sollte vereinfacht für FastHTML nachgebaut werden
    • Reflection: Der Beispielcode funktionierte nicht und zusätzliche unnötige Elemente machten das Ergebnis verwirrend
  • Create a DaisyUI Themes to match FrankenUI Theming

    • Status: Failure
    • Description: DaisyUI- und FrankenUI-Themes sollten vereinheitlicht werden
    • Reflection: Das Mapping funktionierte nicht korrekt, und es wurde so viel Code hinzugefügt, dass das Ergebnis praktisch kaum nutzbar war

2. Perform Research

  • Research How to make a discord bot

    • Status: Success
    • Description: Recherche dazu, wie man mit Python einen Discord-Bot baut, der Nachrichten zusammenfasst und per E-Mail versendet
    • Reflection: Devin fasste zwischendurch einen Plan in einer Markdown-Datei zusammen; der finale Code war zwar nicht perfekt, half aber beim Verständnis des Konzepts
  • Research on Transcript Summarization With Accurate Timestamps

    • Status: Failure
    • Description: Es sollte ein Ansatz gefunden werden, Zusammenfassungen bei gleichzeitiger Beibehaltung von Timestamp-Informationen zu erstellen
    • Reflection: Devin listete nur grob verwandte Themen auf, ohne eine echte Lösungsrichtung für das eigentliche Problem zu liefern
  • Create a minimal DaisyUI theme as an example

    • Status: Failure
    • Description: Es wurde um ein minimales Beispiel für ein DaisyUI-Theme gebeten
    • Reflection: Das Theme wurde tatsächlich nicht angewendet; stattdessen blieben die Standardfarben des Basis-Themes erhalten

3. Analyze Existing Code

  • Performing a security review of a code base

    • Status: Inconclusive
    • Description: Ein GitHub-Repository mit weniger als 700 Zeilen sollte unter dem Blickwinkel von Sicherheitslücken geprüft werden
    • Reflection: Teilweise lagen die Hinweise richtig, zugleich wurden aber übertrieben viele Sicherheitsprobleme markiert, darunter auch nicht existierende Schwachstellen
  • Review blog posts and make a pull request with improvements

    • Status: Failure
    • Description: Devin sollte Blogposts prüfen und einen PR mit Verbesserungen passend zur Quarto-basierten Quelle erstellen
    • Reflection: Weil Devin die Struktur von Quarto nicht verstand, gerieten Metadaten und Front Matter durcheinander und der Versuch scheiterte
  • Review an application and identify potential areas of improvement

    • Status: Failure
    • Description: Für die zuvor erstellte Timekeeping-App sollte ein umfassender Verbesserungsvorschlag erstellt werden
    • Reflection: Die meisten Vorschläge waren in der Praxis wenig brauchbar
  • Debug why ssh key forwarding is not working in a setup script

    • Status: Inconclusive
    • Description: Beim serverseitigen Setup per Skript funktionierte SSH-Key-Forwarding nicht
    • Reflection: Devin untersuchte verbissen nur das Skript und erkannte nicht, dass die eigentliche Ursache an anderer Stelle liegen könnte

4. Modify An Existing Project

  • Making changes to a nbdev project

    • Status: Failure
    • Description: An eine mit FastHTML + nbdev gebaute Zeiterfassungs-App sollte eine API für Apple Shortcuts angebunden werden
    • Reflection: Statt die Notebooks direkt zu bearbeiten, versuchte Devin sie per Python-Skript zu verändern, was die Komplexität unnötig erhöhte
  • Migration of Python Project To nbdev

    • Status: Failure
    • Description: Ein bestehendes Python-Projekt sollte nach nbdev migriert werden
    • Reflection: Schon die grundlegende nbdev-Konfiguration gelang nicht sauber, wodurch das Projekt in Unordnung geriet
  • Integrate Styling Package Into FastHTML

    • Status: Failure
    • Description: MonsterUI sollte in ein nbdev-basiertes Projekt integriert werden
    • Reflection: Devin verstand die Struktur des nbdev-Repositories nicht richtig und scheiterte daran
  • Add feature to check for conflicts between user input and database

    • Status: Failure
    • Description: Einer bestehenden App sollte ein UI hinzugefügt werden, das Konflikte zwischen Benutzereingaben und DB-Werten meldet
    • Reflection: Die Korrektur von Devins Versuch kostete so viel Zeit, dass eine direkte Eigenimplementierung in 90 Minuten deutlich schneller gewesen wäre
  • Generate LLMs context file with the contents of every fasthtml gallery example

    • Status: Failure
    • Description: Es wurde verlangt, aus allen fasthtml-Galeriebeispielen eine LLMs-Textdatei zu erzeugen
    • Reflection: Interessant war zwar, dass Devin für jedes Beispiel eine eigene Markdown-Datei erzeugte, doch die tatsächliche Umsetzung wich von der Dokumentation ab und fügte unnötige Abhängigkeiten hinzu, was zu vielen Problemen führte

1 Kommentare

 
GN⁺ 2025-01-18
Hacker-News-Kommentare
  • Der Ersteller von OpenHands betont, dass AI noch nicht das Niveau erreicht hat, Softwareingenieure zu ersetzen. Von AI geschriebener Code müsse wie der Code eines Junior-Engineers gründlich geprüft werden. Wer AI jedoch gut einsetzt, könne die Produktivität deutlich steigern. Etwa 20 % der OpenHands-Codebasis wurden von AI geschrieben oder mitverfasst. Für einfache Aufgaben wie das Auflösen von Merge-Konflikten oder das Beheben von Linter-Fehlern sei AI nützlich. Außerdem werde AI jede Woche besser, und der Wettbewerb sei intensiv

  • Ein Nutzer, der täglich AI-Coding-Tools verwendet, sieht den agentischen Ansatz wie bei Devin als Versuch, zu viel auf einmal zu erledigen. AI-Coding-Tools sollten sich eher als Werkzeuge für Entwickler etablieren als als Ersatz für Entwickler. GitHub Copilot sei nützlich, um repetitiven Code zu vervollständigen, und Aider könne höherwertige Editieraufgaben übernehmen. Dennoch seien die Tools noch nicht perfekt und könnten bei der Problemlösung unnötige Änderungen vornehmen

  • Das Problem mit AI-Agenten wie Devin sei, dass ihre Intelligenz auf einem bestimmten Niveau stehenbleibe. Manchmal lösen sie Aufgaben, für die ein Mid-Level- oder Senior-Engineer Stunden brauchen würde, in wenigen Minuten, machen dabei aber auch einfache Fehler. Eine wichtige Eigenschaft von Junior-Engineers sei ihre Lern- und Anleitbarkeit, und genau darin hätten AI-Agenten ihre Grenzen, weil sie sich nicht anleiten lassen

  • Es herrscht Skepsis gegenüber der Behauptung, AI könne menschliche Engineers ersetzen. Für kleine, repetitive Aufgaben eigne sich AI, aber nicht für komplexe Arbeiten wie Infrastrukturverwaltung oder App-Deployment. Man wolle solche Behauptungen erst glauben, wenn man tatsächlich sehe, dass AI Menschen ersetzen kann

  • AI-Agenten sollten in der Lage sein, bei Bedarf menschlichen Input anzufordern, doch Devin scheine das in "Soft-Stop"-Situationen nicht gut zu tun. Ein menschlicher Entwickler würde nach ein paar Stunden um Hilfe bitten, AI könne dagegen in einer Endlosschleife festhängen

  • Ähnlich wie bei der AI-Bildgenerierung zeigen auch AI-Coding-Tools anfangs beeindruckende Ergebnisse, enthalten aber noch viele Fehler. Dennoch wird erwartet, dass es in einigen Jahren erstaunliche Fortschritte geben wird. Tools wie Midjourney können Ergebnisse liefern, die von den Erwartungen abweichen, und es werde Funktionen brauchen, mit denen Nutzer schnell iterieren können

  • Erfahrungsberichte zur Nutzung von Devin bewerten den Agenten als hinter den Erwartungen zurückbleibend. Agenten seien leicht zu implementieren, aber schwer nützlich umzusetzen. Die Grenzen von Devin wecken Bedenken hinsichtlich der Weiterentwicklung agentischer Systeme

  • Devin habe versucht, zu viel zu leisten, und es sei wertvoll, in begrenztem Rahmen Code-Artefakte zu erzeugen. Wichtig sei, sich auf bestimmte Elemente des Entwicklungs-Loop zu konzentrieren. Unternehmen wie Factory AI verfolgen diesen Ansatz und erhalten dafür Aufmerksamkeit für ihr Produkt

  • Devin beeindrucke zwar beim Verständnis von Code-Formatierung und lokaler Testkonfiguration, könne aber unnötige Änderungen hinzufügen und dadurch andere Dinge kaputtmachen. Diese Änderungen ließen sich nicht ohne Weiteres zurücknehmen, sodass zusätzliche Aufräumarbeit nötig werde. Devin habe das Potenzial agentischer Workflows gezeigt, werde aber nicht empfohlen, weil es keine Zeit spare

  • Ein Nutzer, der Cursor intensiv verwendet hat, hat das Gefühl, dass man das System in eine bestimmte Richtung zwingen muss. Es gebe zwar Fälle, in denen das LLM nützliche Code-Snippets liefere, doch wenn es in die falsche Richtung gehe, müsse man die Vorschläge stoppen und in eine andere Richtung lenken. Cursor sei besonders beim Refactoring nützlich und spare viel Tipparbeit und Zeit.