Transformez Cursor et Windsurf en 500 $/mois de Devin en une heure !

Dans le billet précédent, nous avons parlé de Devin, une IA agentique qui permet une programmation entièrement automatisée. avec d'autres outils d'IA agentique comme Curseur et Windsurf), il offre des avantages significatifs en termes de planification des processus, d'auto-évolution, d'extension des outils et de fonctionnement entièrement automatisé. Cela fait de Devin Devenir une nouvelle génération d'outils pour se différencier des outils d'IA agentique existants.

Cependant, après avoir utilisé Devin pendant un certain temps, ma "mentalité de constructeur" a repris le dessus et m'a conduit à Planche à voile et Cursor pour implémenter Devin 90%. Cet article se concentre sur les spécificités de ces modifications et utilise cet exemple pour montrer à quel point elles peuvent être construites et mises à l'échelle efficacement à l'ère de l'IA agentique. Pour simplifier la discussion, nous utiliserons Cursor comme substitut de cet outil, et nous conclurons par une discussion sur les petites modifications que vous devrez apporter si vous souhaitez utiliser Windsurf.

artefactplanification du processusauto-évolutionExtension de l'outilMise en œuvre automatiséeprix
DevinOui (automatique, complet)Oui (autoformation)multiadjuvant$500/mois
Curseur (avant modification)contraintesbouchéUne panoplie d'outils limitéeConfirmation manuelle requise$20/mois
Curseur (modifié)Près de Devin.êtreProche de Devin, évolutifConfirmation ou solution encore nécessaire$20/mois
Planche à voile (modifié)Près de Devin.Oui, mais indirectementProche de Devin, évolutifPrise en charge de l'automatisation complète dans les conteneurs Docker$15/mois

 

Planification des processus et auto-évolution

Comme indiqué précédemment, un aspect intéressant de Devin est qu'il s'apparente davantage à un stagiaire organisé. Il crée un plan avant d'exécuter une tâche et met continuellement à jour l'état d'avancement du plan pendant l'exécution. Cela permet aux responsables de l'IA de suivre plus facilement les progrès en cours tout en empêchant l'IA de s'écarter du plan initial, ce qui favorise une réflexion plus approfondie et une meilleure qualité d'exécution des tâches.

Bien que cette fonctionnalité puisse sembler impressionnante, elle est en fait très simple à mettre en œuvre sur le curseur.

Pour le curseur, ouvrez le dossier racine du dossier avec un fichier nommé .cursorrules Il s'agit d'un fichier spécial. Il vous permet de modifier les mots-clés du curseur qui seront transmis à un modèle de grand langage d'arrière-plan tel que GPT ou Claude. En d'autres termes, tout ce qui se trouve dans ce fichier fait partie du mot de repère envoyé à l'IA d'arrière-plan, ce qui offre une grande souplesse de personnalisation.

Par exemple, nous pourrions mettre le contenu du plan dans ce fichier afin que chaque fois que nous interagissons avec le curseur, il reçoive la dernière version du plan. Nous pourrions également fournir des instructions plus détaillées dans ce fichier, en demandant par exemple au curseur de réfléchir et de créer le plan au début de la tâche, et de mettre à jour le plan après chaque étape. Puisque le curseur peut utiliser l'agent pour modifier le fichier, et que l'agent peut utiliser l'agent pour modifier le plan, le curseur peut utiliser l'agent pour modifier le plan. .cursorrules Il s'agit d'un fichier en soi, qui crée une boucle fermée. Il lit automatiquement le contenu du fichier à chaque fois, comprend la dernière mise à jour et écrit la progression actualisée et les prochaines étapes dans ce fichier au fur et à mesure qu'il y pense, garantissant ainsi que nous disposons toujours de la dernière mise à jour.

De même, la fonction auto-évolutive peut être réalisée de la même manière. Dans le .cursorrules nous ajoutons des invites pour que le curseur réfléchisse et examine s'il existe une expérience documentable réutilisable lorsque l'utilisateur corrige l'erreur. Si c'est le cas, il mettra à jour le fichier .cursorrules des parties pertinentes du document, ce qui permet d'accumuler des connaissances spécifiques au projet.

Un exemple typique est que les modèles actuels de grands langages ne sont pas conscients de l'existence de GPT-4o pour de nombreux modèles en raison des délais de connaissance antérieurs. Si vous lui dites : "Ce modèle existe, mais vous ne le connaissez pas", il enregistrera cette expérience dans la base de données des .cursorrules documenté afin que les mêmes erreurs ne soient pas répétées à l'avenir, ce qui permet d'apprendre et de s'améliorer. Cependant, cela dépend encore de l'efficacité de l'indice - il peut parfois manquer des points et ne pas enregistrer des connaissances dont nous pensons qu'elles devraient être connues. Dans ce cas, nous pouvons également utiliser le langage naturel pour l'inviter directement à les enregistrer. Cette approche plus directe peut également favoriser l'expérience et la croissance de l'IA.

Par conséquent, seule la .cursorrules et quelques conseils et astuces, nous pouvons ajouter les capacités de planification de processus et d'auto-évolution de Devin à nos outils de programmation d'IA Agentic existants.

Si Windsurf est utilisé, il y a une différence : probablement pour des raisons de sécurité, il ne permet pas à l'IA de modifier directement l'image de l'ordinateur. .windsurfrules Fichier. Par conséquent, nous devons le diviser en deux parties, en utilisant un autre fichier (tel que le fichier scratchpad.md). Dans le cadre de l .windsurfrules La documentation indique qu'il faut consulter le Scratchpad avant chaque processus de réflexion et y mettre à jour le plan. Cette méthode indirecte n'est peut-être pas aussi efficace que celle qui consiste à placer le plan directement sur le .cursorrules Cela fonctionne dans la mesure où l'IA doit toujours appeler l'agent et réfléchir en fonction du retour d'information, mais cela fonctionne réellement.

 

Extension de l'outil

L'un des principaux avantages de Devin par rapport à Cursor est sa capacité à utiliser davantage d'outils. Par exemple, il peutAppelez votre navigateur pour effectuer des recherches, naviguer sur le web et même utiliser l'intelligence LLM pour analyser le contenu !. Bien que Cursor ne prenne pas en charge ces fonctionnalités par défaut, il est heureusement possible de les utiliser avec la fonction .cursorrules Le contrôle direct du mot-clé du curseur et le fait qu'il soit capable d'exécuter des commandes créent une autre boucle fermée. Nous pouvons préparer des programmes pré-écrits (tels que des bibliothèques Python ou des outils de ligne de commande) et les ajouter à l'interface utilisateur du .cursorrules Le curseur est initié à ces outils afin qu'il puisse apprendre à les utiliser dès maintenant et à faire avancer les choses.

En fait, les outils eux-mêmes peuvent être écrits en quelques minutes à l'aide de Cursor. Par exemple, pour la fonctionnalité de navigation sur le web, l'outil Devin.cursorrules Une implémentation de référence est fournie dans Certaines décisions techniques doivent être prises en compte, comme l'utilisation d'outils d'automatisation du navigateur (par exemple, playwright) plutôt que la bibliothèque de requêtes de Python pour les sites web à forte intensité de JavaScript. En outre, pour mieux communiquer avec LLM et l'aider à comprendre et à explorer le contenu ultérieur, plutôt que d'extraire simplement le contenu textuel d'une page web en utilisant une belle soupe, nous suivons certaines règles pour le convertir au format Markdown, qui préserve des informations de base plus détaillées (telles que les noms de classe et les liens hypertextes), et soutient la capacité de LLM à écrire des crawlers ultérieurs à un niveau plus basique.

De même, pour les outils de recherche, il y a un petit détail : Bing et Google ont des recherches API qui sont de bien moins bonne qualité que les recherches côté client, en grande partie à cause de l'histoire des API et des interfaces web qui sont maintenues par des équipes différentes. Cependant, DuckDuckGo n'a pas ce problème, c'est pourquoi notre implémentation de référence utilise l'API gratuite de DuckDuckGo.

En ce qui concerne l'utilisation par Cursor de sa propre intelligence pour une analyse approfondie, la question est relativement complexe. D'une part, Cursor possède un certain degré de cette capacité - dans les deux outils ci-dessus, lorsque nous imprimons le contenu d'une page web sur stdout, cela devient une partie de l'indice de Cursor au LLM, lui permettant d'analyser intelligemment ce contenu textuel. D'un autre côté, Devin a la capacité unique de traiter par lots des quantités relativement importantes de texte en utilisant le LLM d'une manière que Cursor ne peut pas. Pour ce faire, nous avons implémenté un outil supplémentaire - il est très simple de prédéfinir la clé API sur votre système, puis de demander à l'outil d'appeler GPT, Claude ou l'API LLM native pour donner à Cursor la possibilité d'effectuer un traitement de texte par lots à l'aide de LLM. Dans mon implémentation de référence, j'ai utilisé ma propre API native vllm mais il est très simple à modifier - il suffit de supprimer la ligne base_url.

Malgré ces modifications, deux outils ne peuvent toujours pas être mis en œuvre en raison des limitations du curseur :

  1. Devin semble avoir des capacités de compréhension des images, ce qui lui permet d'effectuer des interactions et des tests frontaux, mais en raison des limitations du curseur, nous ne pouvons pas transmettre d'images en entrée à l'IA back-end - ce qui nécessiterait des changements dans sa mise en œuvre.
  2. Devin n'est pas signalé comme un robot par les algorithmes anti-crawling lors de la collecte des données, alors que nos outils de recherche sur le web se heurtent souvent à des CAPTCHA ou sont bloqués. Ce problème peut être résolu et je continue à l'étudier, mais il s'agit certainement de l'un des atouts uniques de Devin.

Mise en œuvre entièrement automatisée

La dernière caractéristique intéressante est l'exécution entièrement automatisée. Comme Devin fonctionne dans un environnement cloud entièrement virtualisé, nous pouvons en toute confiance le laisser exécuter diverses commandes sans nous soucier des attaques LLM ou de l'exécution incorrecte de commandes dangereuses. Même si le système entier est supprimé, il peut être récupéré en démarrant simplement un nouveau conteneur. Cependant, Cursor s'exécute sur un système hôte local, et la sécurité est donc une préoccupation importante. C'est pourquoi, dans le mode Agent de Cursor, nous devons confirmer manuellement chaque commande avant de l'exécuter. Ceci est acceptable pour des tâches relativement simples, mais maintenant, avec une planification sophistiquée des processus et la capacité d'évoluer lui-même, Cursor est également capable de gérer des tâches complexes à long terme, ce qui rend ce type d'interaction incompatible avec ses capacités.

Pour résoudre ce problème, je n'ai pas encore trouvé de solution basée sur Cursor (mise à jour : 17 décembre 2024 Cursor ajoute également cette fonctionnalité, appelée Yolo mode, mais ne supporte toujours pas le développement dans Docker), mais Windsurf prend cela en compte. Comme vous pouvez le voir dans son design, il vise une forme de produit de type Devin, et l'éditeur de code actuel n'est qu'une forme intermédiaire. Plus précisément, Windsurf a une fonctionnalité qui peut se connecter directement à un conteneur Docker et l'exécuter là, ou si nous avons un fichier de configuration, il peut nous aider à démarrer un nouveau conteneur Docker, faire quelques initialisations, et mapper un dossier local. Ainsi, toutes les commandes qu'il exécute (à l'exception des modifications apportées au dossier local) sont effectuées dans le conteneur Docker sans impact sur le système hôte, ce qui augmente considérablement la sécurité.[Exemple de configuration]

En outre, il introduit un mécanisme de liste noire/liste blanche qui rejette automatiquement les commandes de la liste noire et autorise les commandes de la liste blanche. Pour les commandes qui ne figurent ni sur la liste noire ni sur la liste blanche, le LLM détermine intelligemment s'il y a un risque pour le système hôte - par exemple, s'il veut supprimer un fichier dans un dossier, il demandera à l'utilisateur de confirmer, mais les commandes telles que pip install Les commandes ordinaires telles que celles-ci sont simplement autorisées. Notez que cette fonctionnalité ne semble être activée que lors de l'exécution dans des conteneurs Docker. Si nous exécutons des commandes sur le système hôte, l'expérience est toujours similaire à celle de Cursor et nécessite une confirmation fréquente. De plus, l'exécution automatisée des commandes doit être activée dans la configuration.

 

résumés

Ainsi, nous pouvons constater que si la forme du produit et la philosophie de conception de Devin sont effectivement très avancées, l'écart entre ce produit et les outils d'IA agentique existants n'est pas aussi important que nous pourrions le penser du point de vue du seuil technique. En utilisant des outils populaires comme Cursor et Windsurf (seulement $15-20 par mois), nous pouvons mettre en œuvre la fonctionnalité de Devin 90% en moins d'une heure et l'utiliser pour effectuer des tâches complexes que nous ne pouvions pas réaliser avant les modifications. Par exemple, j'ai confié à Cursor la tâche d'analyser les rendements d'actions technologiques populaires au cours des cinq dernières années pour une analyse approfondie des données et il a fourni un rapport très détaillé et complet. En outre, j'ai demandé à Windsurf d'analyser les heures de publication des 100 articles les plus populaires sur mon blog et de visualiser les données dans le style d'un graphique de contribution GitHub, des tâches qu'il peut entièrement automatiser. Ce type de tâches n'est pas possible avec Cursor et Windsurf traditionnels - seul Devin peut les réaliser, mais avec une simple modification, nous pouvons obtenir les résultats de l'outil $20/mois avec l'outil $500/mois. J'ai même réalisé une expérience plus approfondie : en tant que développeur totalement étranger au développement front-end, j'ai passé une heure et demie à créer un tableau d'offres d'emploi, à la fois front-end et back-end. Cette efficacité est comparable à celle de Devin, voire supérieure.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...