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
- 智能体 AI 系列 3:将 20 美元变成 500 美元 – 一小时内将 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 | etw. unterstützen | $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 im vorherigen 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. Dies gibt uns eine Menge Flexibilität für die 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 er zu Beginn der Aufgabe denkt und plant und 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.
一个典型的例子是,当前的大语言模型由于知识截止日期相对较早,很多都不知道 GPT-4o 模型。如果你要求它们调用 GPT-4o,它们会删除 ‘o’,认为这是一个错别字。但如果你纠正它们:“这个模型实际上存在,你只是不知道它”,它们会将这个经验教训记录在 .cursorrules
的相关部分,并且不会再犯同样的错误,从而实现学习和改进。然而,这仍然取决于 prompt 是否有效 – 有时它可能会遗漏一些要点,并且不一定会记录我们认为应该注意的知识。在这种情况下,我们也可以使用自然语言来提示它,直接告诉它记下这一点。这种更直接的方法也可以实现 AI 的经验积累和成长。
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 treffen, 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 der nachfolgenden 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 konvertiert, wodurch 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 befassen. DuckDuckGo hat dieses Problem jedoch nicht, daher verwendet unsere Referenzimplementierung die kostenlose API von DuckDuckGo.
关于 Cursor 使用自己的脑力进行深入分析,这相对更复杂。一方面,Cursor 确实具有一定程度的这种能力 – 在上述两个工具中,当我们向 stdout 打印网页内容时,它会成为 Cursor 发送给 大语言模型 的 prompt 的一部分,使其能够对该文本内容进行智能分析。但从另一个角度来看,Devin 具有一种独特的能力,可以使用 大语言模型 对相对大量的文本进行批量处理,而 Cursor 无法做到这一点。因此,为了赋予它这种能力,我们实现了一个额外的工具 – 非常简单,只是预先在系统中设置我们的 API 密钥,然后让这个工具调用 GPT 或 Claude 或我们本地的 大语言模型 API,从而使 Cursor 能够使用 大语言模型 批量处理文本。在我的参考实现中,我使用我自己的本地 vllm 集群,但修改起来非常简单 – 只需删除 base_url 行即可。
Doch selbst mit diesen Änderungen können wir aufgrund der Einschränkungen des Cursors immer noch nicht zwei Werkzeuge implementieren:
- Devin 似乎具有图像理解能力,这就是为什么它可以执行前端交互和测试,但由于 Cursor 的限制,我们无法将图像作为输入传递给后端 AI – 这需要对其实现进行更改。
- 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 Arten von Befehlen 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 keine Lösung gefunden, die auf Cursor basiert (Update: am 17. Dezember 2024 fügte auch Cursor diese Funktion hinzu, genannt Yolo Mode, aber es unterstützt immer noch nicht die Entwicklung in Docker), aber Windsurf hat dies berücksichtigt, und ich denke, dass man an seinem Design erkennen kann, dass es von Anfang an das das Ziel war, 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 darin 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.
在此基础上,它还引入了黑名单/白名单机制,自动拒绝黑名单上的命令,允许白名单上的命令。对于既不在列表中也不在黑名单上的命令,大语言模型 会智能地判断是否存在对主机系统的风险 – 例如,如果它想删除文件夹中的文件,它会要求用户确认,但像 pip install
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
因此,我们可以看到,虽然 Devin 的产品形式和设计理念确实非常先进,但从技术壁垒的角度来看,它与现有智能体 AI 工具之间的差距并不像我们想象的那么大。使用每月花费 15-20 美元的流行工具,如 Cursor 和 Windsurf,我们可以在一小时内实现 Devin 90% 的功能,并用它来完成以前不可能完成的复杂任务。例如,我给 Cursor 分配了一个任务,分析过去 5 年热门科技股的回报率,进行深入的数据分析,它提供了一份非常详细而全面的报告。此外,我让 Windsurf 抓取我博客上排名前 100 的文章的发布时间,并以 GitHub 贡献图表的形式将其可视化,它可以完全自动完成。这些类型的任务是传统的 Cursor 和 Windsurf 无法完成的 – 只有 Devin 可以完成它们,但在进行了这些简单的修改之后,我们可以用每月 20 美元的工具实现每月 500 美元工具的效果。我甚至做了一个更深入的实验:作为一个完全不熟悉前端开发的开发者,我花了一个半小时创建了一个招聘网站,包括前端和后端。这种效率非常接近甚至高于 Devin。
Schließlich können alle in diesem Artikel erwähnten Dateien von der folgenden Website heruntergeladen werden Devin Cursor Regeln 下载 – 只需将内容复制到您当前的项目文件夹中即可使用。