Dieser Artikel ist Teil einer Serie über das Verständnis und den Einsatz von intelligenter KI:
- Intelligent Body AI Serie 1: Vergleich zwischen Devin und Agent Cursor
- Intelligent Body AI Series 2: Vom Denker zum Macher - Paradigmenwechsel und Technologiearchitektur für Intelligent Body AI
- Intelligent Body AI Series 3: Verwandeln Sie $20 in $500 - in einer Stunde! Cursor umwandeln in Devin (Dieser Artikel)
- Intelligent Body AI Series 4: Der Cursor als gemeinsames Portal für KI
In einem früheren Beitrag haben wir über Devin berichtet, eine intelligente Körper-KI, die zur vollautomatischen Programmierung fähig ist. Wie bei Cursor und Windsurfen Im Vergleich zu anderen intelligenten KI-Werkzeugen wie Devin verfügt es über einige zentrale Stärken in den Bereichen Prozessplanung, Selbstentwicklung, erweiterte Werkzeugnutzung und vollautomatische Abläufe. Dies lässt Devin wie ein Werkzeug der nächsten Generation erscheinen und unterscheidet es von den bestehenden KI-Werkzeugen für intelligente Körper.
Nachdem ich es jedoch eine Weile benutzt hatte, wurde meine "Erbauer-Mentalität" wieder geweckt und ich sah mich veranlasst, Windsurf und Cursor zu modifizieren, um die Funktionalität von Devin 90% zu implementieren. Ich habe diese Modifikationen auch als Open Source zur Verfügung gestellt, so dass Sie Cursor oder Windsurf in nur einer Minute in Devin umwandeln können. Dieser Artikel konzentriert sich auf die Einzelheiten, wie diese Modifikationen vorgenommen wurden, und dieses Beispiel zeigt, wie effizient das Bauen und Skalieren im Zeitalter der intelligenten KI sein kann. Um unsere Diskussion zu vereinfachen, werden wir Cursor verwenden, um auf solche Werkzeuge zu verweisen, und schließlich werden wir besprechen, welche kleinen Anpassungen vorgenommen werden müssen, wenn Sie Windsurf verwenden möchten.
Artefakt | Prozessplanung | Selbstentfaltung | Werkzeug Erweiterung | Automatisierte Umsetzung | Preise |
---|---|---|---|---|---|
Devin | Ja (automatisch, vollständig) | Ja (Selbststudium) | genug | Adjuvans | $500/Monat |
Cursor (vor der Änderung) | Zwänge | Verstopft | Begrenztes Instrumentarium | Manuelle Bestätigung | $20/Monat |
Cursor (geändert) | In der Nähe von Devin. | sein | Nähe zu Devin, skalierbar | Bestätigung oder Umgehung noch erforderlich | $20/Monat |
Windsurfen (modifiziert) | In der Nähe von Devin. | Ja, aber indirekt | Nähe zu Devin, skalierbar | Unterstützung für vollständige Automatisierung in Docker-Containern | $15/Monat |
Prozessplanung und Selbstentwicklung
Wie bereits im vorigen Beitrag erwähnt, ist ein interessanter Aspekt von Devin, dass es sich eher wie ein organisierter Praktikant verhält. Sie weiß, dass sie zuerst einen Plan erstellt und dann den Fortschritt des Plans während der Ausführung ständig aktualisiert. Das macht es für uns als KI-Manager einfacher, den aktuellen Fortschritt der KI im Auge zu behalten und gleichzeitig zu verhindern, dass sie vom ursprünglichen Plan abweicht, was zu einem tieferen Denken und einer besseren Qualität der Aufgabenerfüllung führt.
Diese Funktion sieht zwar beeindruckend aus, ist aber in Wirklichkeit sehr einfach mit Cursor zu implementieren.
Für Cursor gibt es im Stammverzeichnis des geöffneten Ordners eine Datei namens .cursorrules
Mit anderen Worten: Alles, was in dieser Datei steht, wird Teil des Prompts, der an die Backend-KI gesendet wird (z. B. GPT oder GPT). Das Besondere daran ist, dass Sie damit die Prompts ändern können, die der Cursor an das große Backend-Sprachmodell sendet; mit anderen Worten, alles in dieser Datei wird zu einem Prompt, der an die Backend-KI gesendet wird (z. B. GPT oder Claude) ist Teil der Eingabeaufforderung. Das gibt uns viel Flexibilität bei der Anpassung.
Wir könnten zum Beispiel den Inhalt des Plans in dieser Datei ablegen, so dass er bei jeder Interaktion mit dem Cursor die neueste Version des Plans erhält. Wir könnten in dieser Datei auch detailliertere Anweisungen geben, z. B. dass der Cursor zu Beginn der Aufgabe denkt und plant und dass er den Plan nach jedem Schritt aktualisiert. Da der Cursor mit Hilfe des Agenten Dateien ändern kann, und die .cursorrules
Es handelt sich um eine eigenständige Datei, die eine geschlossene Schleife bildet. Der Inhalt der Datei wird jedes Mal automatisch gelesen, um herauszufinden, was die letzten Aktualisierungen sind, und nach der Reflexion werden der aktualisierte Fortschritt und die nächsten Schritte in diese Datei geschrieben, um sicherzustellen, dass wir immer die neuesten Aktualisierungen erhalten.
Ein ähnlicher Ansatz kann verwendet werden, um eine sich selbst entwickelnde Funktion zu erreichen. In der .cursorrules
Datei fügen wir einige Aufforderungen hinzu, damit der Cursor über seine Fehler nachdenkt, wenn er vom Benutzer korrigiert wird, und prüft, ob es wiederverwendbare Lektionen gibt, die aufgezeichnet werden können. Wenn dies der Fall ist, aktualisiert er die .cursorrules
relevanten Teil des Dokuments. Auf diese Weise sammelt es projektspezifisches Wissen.
Ein typisches Beispiel dafür ist, dass viele der aktuellen großen Sprachmodelle das GPT-4o-Modell nicht kennen, weil die Wissensfristen relativ früh abgelaufen sind. Wenn man sie bittet, GPT-4o aufzurufen, löschen sie das 'o' und halten es für einen Tippfehler. Wenn Sie sie jedoch korrigieren: "Dieses Modell existiert tatsächlich, Sie wissen es nur nicht", werden sie die gelernte Lektion in der .cursorrules
und die gleichen Fehler nicht noch einmal zu machen, also zu lernen und sich zu verbessern. Dies hängt jedoch immer noch davon ab, dass die Eingabeaufforderung effektiv ist - manchmal kann sie Punkte übersehen und nicht immer Wissen aufzeichnen, von dem wir denken, dass wir es wissen sollten. In diesem Fall können wir die KI auch mit natürlicher Sprache auffordern, den Punkt direkt zu notieren. Dieser direktere Ansatz ermöglicht es der KI auch, Erfahrungen zu sammeln und zu wachsen.
Durch die ausschließliche Verwendung des .cursorrules
Datei und einigen Eingabeaufforderungstricks können wir Devins beeindruckende Fähigkeiten zur Prozessplanung und Selbstevolution zu den bestehenden KI-Programmierwerkzeugen für Intelligenzen hinzufügen.
Wenn Windsurf verwendet wird, gibt es einen Unterschied: Wahrscheinlich aus Sicherheitsgründen erlaubt es der KI nicht, die Daten direkt zu ändern. .windsurfrules
Datei. Daher müssen wir sie in zwei Teile aufteilen, indem wir eine andere Datei wie die scratchpad.md
. Unter .windsurfrules
In dem Dokument haben wir erwähnt, dass Sie vor jedem Denkprozess in Scratchpad nachsehen und den Plan dort aktualisieren sollten. Dieser indirekte Ansatz ist vielleicht nicht so gut, wie wenn man ihn direkt in den .cursorrules
In der Praxis funktioniert es, weil die KI immer noch den Agenten anrufen und auf der Grundlage des Feedbacks denken muss, aber in der Praxis funktioniert es.
Erweiterte Werkzeugnutzung
Einer der Hauptvorteile von Devin gegenüber Cursor ist die Fähigkeit, mehr Tools zu verwenden. Zum Beispiel kann es den Browser aufrufen, um zu suchen, das Web zu durchsuchen und sogar sein eigenes Gehirn zu nutzen, um Inhalte mit Hilfe von Big Language Model Intelligence zu analysieren. Während Cursor dies standardmäßig nicht unterstützt, ist die gute Nachricht, dass wir die .cursorrules
Die direkte Kontrolle über die Eingabeaufforderung des Cursors und die Tatsache, dass er über die Fähigkeit zur Befehlsausführung verfügt, schafft einen weiteren geschlossenen Kreislauf. Wir können vorgefertigte Programme, wie Python-Bibliotheken oder Befehlszeilen-Tools, vorbereiten und sie dann in den .cursorrules
in dem sie eingeführt werden, damit sie sofort lernen und auf natürliche Weise verstehen, wie sie diese Werkzeuge zur Erfüllung ihrer Aufgaben einsetzen können.
Die Werkzeuge selbst können in ein oder zwei Minuten mit Cursor geschrieben werden. Für die Web-Browsing-Funktionalität stelle ich zum Beispiel eine Referenzimplementierung im Open-Source-Projekt zur Verfügung. Es gibt einige technische Entscheidungen zu beachten, wie z. B. die Verwendung eines Browser-Automatisierungstools wie Playwright anstelle der Python-Anforderungsbibliothek für JavaScript-lastige Websites. Um die Kommunikation mit dem großen Sprachmodell zu verbessern und ihm das Verstehen und Crawlen weiterer Inhalte zu erleichtern, verwenden wir außerdem nicht einfach eine schöne Suppe, um den textlichen Inhalt einer Webseite zu extrahieren. Stattdessen haben wir sie nach bestimmten Regeln in das Markdown-Format umgewandelt, so dass detailliertere Basisinformationen wie Klassennamen und Hyperlinks erhalten bleiben, um das Big Language Model beim Schreiben nachfolgender Crawler auf einer einfacheren Ebene zu unterstützen.
Auch bei den Suchwerkzeugen gibt es einen kleinen Vorbehalt: Sowohl Bing als auch Google haben API-Suchen, die in ihrer Qualität weit hinter ihren clientseitigen Suchen zurückbleiben, was größtenteils auf die Geschichte der verschiedenen Teams zurückzuführen ist, die sich mit APIs und Webschnittstellen beschäftigen. DuckDuckGo hat dieses Problem jedoch nicht, daher verwendet unsere Referenzimplementierung die kostenlose API von DuckDuckGo.
Eine eingehende Analyse der Nutzung der eigenen Intelligenz durch Cursor ist relativ komplex. Einerseits verfügt Cursor bis zu einem gewissen Grad über diese Fähigkeit - wenn wir in beiden Tools den Inhalt einer Webseite auf stdout ausgeben, wird er Teil der Eingabeaufforderung, die Cursor an das Big Language Model sendet, so dass es diesen Textinhalt intelligent analysieren kann. Aus einem anderen Blickwinkel betrachtet, verfügt Devin jedoch über die einzigartige Fähigkeit, relativ große Textmengen mit dem Big Language Model in einer Weise zu verarbeiten, wie es Cursor nicht kann. Um ihm diese Fähigkeit zu verleihen, haben wir ein zusätzliches Tool implementiert - ganz einfach, indem wir unseren API-Schlüssel im System voreingestellt haben und dann das Tool GPT oder Claude oder unser lokales Big Language Models API aufrufen lassen, um Cursor die Stapelverarbeitung von Text unter Verwendung der Big Language Models zu ermöglichen. In meiner Referenzimplementierung verwende ich mein eigenes lokales vllm-Cluster, aber es ist sehr einfach zu ändern - entfernen Sie einfach die Zeile base_url.
Doch selbst mit diesen Änderungen können wir aufgrund der Einschränkungen des Cursors immer noch nicht zwei Tools implementieren:
- Devin scheint Bilder zu verstehen, weshalb es Front-End-Interaktionen und -Tests durchführen kann, aber aufgrund der Cursor-Beschränkungen können wir keine Bilder als Eingabe an die Back-End-KI übergeben - was Änderungen an der Implementierung erfordern würde.
- Devin wird mysteriöserweise von Anti-Crawler-Algorithmen während der Datenerfassung nicht als Bot eingestuft, aber unser Web-Retrieval-Tool stößt oft auf CAPTCHA oder wird blockiert. Möglicherweise lässt sich das beheben und ich bin noch dabei, es zu erforschen, aber es ist definitiv eine der einzigartigen Stärken von Devin.
Vollständig automatisierte Ausführung
Die letzte interessante Funktion ist die vollautomatische Ausführung. Da Devin in einer vollständig virtualisierten Cloud-Umgebung läuft, können wir alle möglichen Befehle sicher ausführen lassen, ohne uns Sorgen über Angriffe auf große Sprachmodelle oder die versehentliche Ausführung gefährlicher Befehle zu machen. Selbst wenn Sie ein ganzes System löschen, starten Sie einfach einen neuen Container und alles ist wieder normal. Wenn Cursor jedoch auf einem Localhost-System läuft, stellt dies ein ernsthaftes Sicherheitsrisiko dar. Deshalb müssen wir im Agentenmodus von Cursor jeden Befehl manuell bestätigen, bevor er ausgeführt wird. Dies ist für relativ einfache Aufgaben akzeptabel, aber jetzt, da wir über eine ausgefeilte Prozessplanung und selbstentwickelnde Fähigkeiten verfügen und Cursor langfristige komplexe Aufgaben bewältigen kann, erscheint diese Art der Interaktion für die Fähigkeiten von Cursor ungeeignet.
Dafür habe ich noch keine Lösung gefunden, die auf Cursor basiert (Update: am 17. Dezember 2024 fügte Cursor auch diese Funktion hinzu, genannt Yolo Mode, aber es unterstützt immer noch nicht die Entwicklung in Docker), aber Windsurf hat dies bereits berücksichtigt, und ich denke, man kann an seinem Design erkennen, dass es von Anfang an darauf abzielt, eine Devin-ähnliche Produktform zu schaffen, wobei der aktuelle Code-Editor eine Zwischenform darstellt. Genauer gesagt hat Windsurf die Fähigkeit, sich direkt mit einem Docker-Container zu verbinden und in ihm zu laufen, oder, wenn wir die Konfigurationsdatei haben, kann es Ihnen helfen, einen neuen Docker-Container zu starten, einige Initialisierungen durchzuführen und lokale Ordner zuzuordnen. So werden alle Befehle, die es ausführt, mit Ausnahme von Änderungen an lokalen Ordnern, im Docker-Container ausgeführt, ohne dass dies Auswirkungen auf das Host-System hat, was die Sicherheit erheblich verbessert.
Darüber hinaus führt es einen Blacklist/Whitelist-Mechanismus ein, der Befehle auf der Blacklist automatisch ablehnt und Befehle auf der Whitelist zulässt. Bei Befehlen, die weder auf der Blacklist noch auf der Whitelist stehen, bestimmt das große Sprachmodell auf intelligente Weise, ob ein Risiko für das Hostsystem besteht - wenn beispielsweise eine Datei in einem Ordner gelöscht werden soll, wird der Benutzer um eine Bestätigung gebeten. Pip-Installation
Solche generischen Befehle werden direkt zugelassen. Beachten Sie, dass diese Funktion nur bei der Ausführung in Docker-Containern aktiviert zu sein scheint. Wenn wir die Befehle auf dem Hostsystem ausführen, ist die Erfahrung immer noch ähnlich wie bei Cursor und erfordert häufige Bestätigungen. Darüber hinaus muss die automatische Befehlsausführung in der Konfiguration aktiviert werden.
Zusammenfassungen
Wir sehen also, dass die Produktform und die Designkonzepte von Devin zwar sehr fortschrittlich sind, dass aber der Abstand zu den bestehenden KI-Tools für Intelligenz nicht so groß ist, wie man aus der Perspektive der technischen Barriere meinen könnte. Mit gängigen Tools wie Cursor und Windsurf, die 15 bis 20 Dollar pro Monat kosten, können wir die Funktionen von Devin 90% in weniger als einer Stunde implementieren und damit komplexe Aufgaben erledigen, die vorher unmöglich waren. Ich habe Cursor zum Beispiel beauftragt, die Renditen beliebter Tech-Aktien in den letzten 5 Jahren für eine gründliche Datenanalyse zu analysieren, und es hat einen sehr detaillierten und umfassenden Bericht geliefert. Außerdem habe ich Windsurf gebeten, die Veröffentlichungszeiten der 100 wichtigsten Beiträge in meinem Blog zu erfassen und sie in Form eines GitHub-Beitragsdiagramms zu visualisieren, was das Programm völlig automatisch erledigt. Diese Art von Aufgaben können nicht mit dem traditionellen Cursor und Windsurf erledigt werden - nur Devin kann sie erledigen, aber mit diesen einfachen Änderungen können wir die Ergebnisse eines 500-Dollar-Tools mit einem 20-Dollar-Tool pro Monat erreichen. Ich habe sogar ein ausführlicheres Experiment durchgeführt: Als Entwickler, der mit der Front-End-Entwicklung überhaupt nicht vertraut ist, habe ich anderthalb Stunden damit verbracht, eine Jobbörse zu erstellen, sowohl im Front-End als auch im Back-End. Diese Art von Effizienz kommt der von Devin sehr nahe, wenn nicht sogar besser als diese.
Schließlich können alle in diesem Artikel erwähnten Dateien von der folgenden Website heruntergeladen werden Devin Cursor Regeln Download - Kopieren Sie den Inhalt einfach in Ihren aktuellen Projektordner und verwenden Sie ihn.