¡Convierte a Cursor en Devin en una hora y aprende la diferencia!
Base de conocimientos de IAPublicado hace 7 meses Círculo de intercambio de inteligencia artificial 2.6K 00
Este artículo forma parte de una serie sobre Comprensión e implantación de la IA inteligente:
- Intelligent Body AI Series 1: Comparación entre Devin y el Agente Cursor
- Intelligent Body AI Series 2: From Thinker to Doer - Paradigm Revolution and Technology Architecture for Intelligent Body AI
- Intelligent Body AI Series 3: Convierte $20 en $500 - ¡en una hora! Cursor cambiar a Devin (Este artículo)
- Intelligent Body AI Series 4: Uso de Cursor como portal común para la IA
En un post anterior hablábamos de Devin, una IA corporal inteligente capaz de programar de forma totalmente automatizada. Al igual que Cursor y Windsurf Tiene algunos puntos fuertes en la planificación de procesos, la autoevolución, el uso ampliado de herramientas y las operaciones totalmente automatizadas en comparación con otras herramientas de IA para cuerpos inteligentes como Devin. Esto hace que Devin parezca una herramienta de nueva generación, lo que la diferencia de las herramientas de IA para organismos inteligentes existentes.
Sin embargo, después de usarlo durante un tiempo, mi "mentalidad de constructor" se reavivó y me impulsó a modificar Windsurf y Cursor para implementar la funcionalidad de Devin 90%. También he abierto estas modificaciones para que puedas convertir Cursor o Windsurf a Devin en sólo un minuto, y este artículo se centra en los detalles de cómo se hicieron estas modificaciones, y este ejemplo demuestra lo eficiente que puede ser construir y escalar en la era de la IA inteligente. Para simplificar nuestra discusión, usaremos Cursor para referirnos a tales herramientas, y finalmente, discutiremos qué pequeños ajustes hay que hacer si quieres usar Windsurf.
artefacto | planificación de procesos | autoevolución | Extensión de herramientas | Aplicación automatizada | precios |
---|---|---|---|---|---|
Devin | Sí (automático, completo) | Sí (autoaprendizaje) | suficiente | adyuvante | $500/mes |
Cursor (antes de la modificación) | limitaciones | obstruido | Herramientas limitadas | Confirmación manual | $20/mes |
Cursor (modificado) | Cerca de Devin. | sea | Cerca de Devin, escalable | Se requiere confirmación o solución | $20/mes |
Windsurf (modificado) | Cerca de Devin. | Sí, pero indirectamente | Cerca de Devin, escalable | Soporte para la automatización completa en contenedores Docker | $15/mes |
Planificación de procesos y autoevolución
Como se mencionó en el post anterior, un aspecto interesante de Devin es que se comporta más como un interno organizado. Sabe que primero debe crear un plan y luego ir actualizando el progreso del plan a medida que se ejecuta. Esto nos facilita, como gestores de IA, el seguimiento del progreso actual de la IA, al tiempo que evita que se desvíe del plan original, lo que conduce a un pensamiento más profundo y a la calidad de la realización de las tareas.
Aunque esta función parece impresionante, en realidad es muy fácil de implementar utilizando Cursor.
Para Cursor, hay un archivo en la raíz de la carpeta abierta llamado .cursorrules
En otras palabras, todo lo que hay en este archivo se convierte en parte del prompt que se envía a la IA del back-end (por ejemplo, GPT o GPT). Lo que tiene de especial es que te permite modificar las indicaciones que el Cursor envía al modelo de gran lenguaje del back-end; en otras palabras, todo lo que hay en este archivo se convierte en una indicación que se envía a la IA del back-end (por ejemplo, GPT o Claude) forma parte del mensaje. Esto nos da mucha flexibilidad para la personalización.
Por ejemplo, podríamos poner el contenido del plan en este archivo para que cada vez que interactuemos con el Cursor, éste reciba la última versión del plan. También podríamos dar instrucciones más detalladas en este archivo, como hacer que piense y planifique al comienzo de la tarea, y que actualice el plan después de cada paso. Dado que el Cursor puede utilizar el agente para modificar archivos, y el .cursorrules
Es un archivo en sí mismo, que crea un bucle cerrado. Lee automáticamente el contenido del archivo cada vez para averiguar cuáles son las últimas actualizaciones y, al reflexionar, escribe el progreso actualizado y los próximos pasos en este archivo, lo que garantiza que siempre obtengamos las últimas actualizaciones.
Un enfoque similar puede utilizarse para lograr una función autoevolutiva. En la .cursorrules
añadimos algunos avisos para que el Cursor reflexione sobre sus errores cuando el usuario los corrija, y considere si hay lecciones reutilizables que registrar. En caso afirmativo, actualizará el .cursorrules
parte relevante del documento. De este modo, acumula conocimientos específicos del proyecto.
Un ejemplo típico es que muchos de los grandes modelos lingüísticos actuales desconocen el modelo GPT-4o debido a unos plazos de conocimiento relativamente tempranos. Si les pides que invoquen GPT-4o, borrarán la "o" pensando que es una errata. Pero si les corriges: "Este modelo existe de verdad, sólo que no lo conocéis", documentarán la lección aprendida en el .cursorrules
y no volver a cometer los mismos errores, aprendiendo y mejorando así. Sin embargo, esto sigue dependiendo de que el prompt sea eficaz: a veces puede pasar por alto puntos y no siempre registrar conocimientos que creemos que deberíamos tener en cuenta. En este caso, también podemos utilizar el lenguaje natural para indicarle que tome nota del punto en cuestión. Este enfoque más directo también permite a la IA adquirir experiencia y crecer.
Por lo tanto, utilizando únicamente el .cursorrules
y unos cuantos trucos puntuales, podemos añadir las impresionantes capacidades de planificación de procesos y autoevolución de Devin a las herramientas de programación de inteligencia artificial existentes.
Si se utiliza Windsurf, hay una diferencia: probablemente por razones de seguridad, no permite a la IA modificar directamente el .windsurfrules
archivo. Por lo tanto, tenemos que dividirlo en dos partes, utilizando otro archivo como el scratchpad.md
. En .windsurfrules
En el documento, mencionamos que antes de cada proceso de reflexión, deberías consultar el Bloc de notas y actualizar el plan allí. Este enfoque indirecto puede no ser tan bueno como ponerlo directamente en el .cursorrules
Funciona en la práctica porque sigue siendo necesario que la IA llame al agente y piense en función de la respuesta, pero funciona en la práctica.
Uso ampliado de herramientas
Una de las principales ventajas de Devin sobre Cursor es su capacidad para utilizar más herramientas. Por ejemplo, puede llamar al navegador para buscar, navegar por la web, e incluso utilizar su propio cerebro para analizar contenidos utilizando la inteligencia de Big Language Model. Mientras que Cursor no soporta esto por defecto, la buena noticia es que como podemos usar el .cursorrules
El control directo del prompt del Cursor y el hecho de que tenga capacidades de ejecución de comandos crea otro bucle cerrado. Podemos preparar programas preescritos, como librerías Python o herramientas de línea de comandos, y luego añadirlos a la línea de comandos .cursorrules
en el que se introducen para que pueda aprender al instante y de forma natural a utilizar estas herramientas para realizar sus tareas.
De hecho, las propias herramientas pueden escribirse en uno o dos minutos utilizando Cursor. Por ejemplo, para la funcionalidad de navegación web, proporciono una implementación de referencia en el proyecto de código abierto. Hay algunas decisiones técnicas a tener en cuenta, como el uso de una herramienta de automatización del navegador como playwright en lugar de la biblioteca de peticiones de Python para sitios web con mucho JavaScript. Además, para comunicarnos mejor con el gran modelo lingüístico y facilitarle la comprensión y el rastreo del contenido posterior, no nos limitamos a utilizar beautiful soup para extraer el contenido textual de una página web. En su lugar, lo convertimos a formato markdown de acuerdo con ciertas reglas, conservando así información básica más detallada, como nombres de clases e hipervínculos, para ayudar al Big Language Model a escribir rastreadores posteriores a un nivel más básico.
Del mismo modo, para las herramientas de búsqueda, hay una pequeña advertencia: tanto Bing como Google tienen búsquedas API que son muy inferiores en calidad a sus búsquedas del lado del cliente, en gran parte debido a la historia de los diferentes equipos que se ocupan de las API y las interfaces web. Sin embargo, DuckDuckGo no tiene este problema, por lo que nuestra implementación de referencia utiliza la API gratuita de DuckDuckGo.
Un análisis en profundidad del uso que hace Cursor de su propia capacidad intelectual es relativamente más complejo. Por un lado, Cursor tiene algún grado de esta capacidad - en ambas herramientas, cuando imprimimos el contenido de una página web a stdout, se convierte en parte del prompt que Cursor envía al Big Language Model, permitiéndole analizar inteligentemente ese contenido de texto. Desde otra perspectiva, sin embargo, Devin tiene una habilidad única para procesar por lotes cantidades relativamente grandes de texto usando el Gran Modelo de Lenguaje de una manera que Cursor no puede. Así que para darle esta capacidad, implementamos una herramienta adicional - muy simple, sólo preestablecer nuestra clave API en el sistema, y luego hacer que la herramienta llame a GPT o Claude o a nuestra API local de Big Language Models para permitir a Cursor procesar texto por lotes usando los Big Language Models. En mi implementación de referencia, utilizo mi propia API local de vllm pero es muy fácil de modificar: basta con eliminar la línea base_url.
Sin embargo, incluso con estas modificaciones, seguimos sin poder implantar dos herramientas debido a las limitaciones del Cursor:
- Devin parece tener comprensión de imágenes, por lo que puede realizar interacciones y pruebas front-end, pero debido a las limitaciones de Cursor no podemos pasar imágenes como entrada a la IA back-end - lo que requeriría cambios en su implementación.
- Devin misteriosamente no es marcado como bot por los algoritmos anti-crawler durante el proceso de recogida de datos, pero nuestra herramienta de recuperación web a menudo encuentra CAPTCHA o es bloqueada. Esto puede ser solucionable y todavía lo estoy explorando, pero es definitivamente una de las fortalezas únicas de Devin.
Ejecución totalmente automatizada
La última característica interesante es la ejecución totalmente automatizada. Dado que Devin se ejecuta en un entorno de nube totalmente virtualizado, podemos hacer que ejecute con seguridad todo tipo de comandos sin preocuparnos por los ataques a grandes modelos de lenguaje o por ejecutar comandos peligrosos por error. Incluso si se borra un sistema entero, basta con iniciar un nuevo contenedor y todo vuelve a la normalidad. Sin embargo, Cursor corriendo en un sistema localhost es un serio riesgo de seguridad. Por eso, en el modo agente de Cursor, necesitamos confirmar manualmente cada comando antes de ejecutarlo. Esto es aceptable para tareas relativamente simples, pero ahora que tenemos sofisticadas capacidades de planificación de procesos y auto-evolución, Cursor también puede manejar tareas complejas a largo plazo, haciendo que este método de interacción parezca inadecuado para las capacidades de Cursor.
Para abordar esto, todavía no he encontrado una solución basada en Cursor (actualización: el 17 de diciembre de 2024, Cursor añadió esta característica también, llamada Modo Yolo, pero todavía no soporta el desarrollo en Docker), pero Windsurf ha tenido esto en cuenta, y creo que por su diseño se puede ver que desde el principio fue pretende crear una forma de producto similar a Devin, siendo el actual editor de código una forma intermedia. Más específicamente, Windsurf tiene la capacidad de conectarse directamente a un contenedor Docker y ejecutarse en él, o si tenemos el archivo de configuración, puede ayudarte a iniciar un nuevo contenedor Docker, hacer alguna inicialización, y mapear carpetas locales. Así que todos los comandos que ejecuta, excepto los cambios en las carpetas locales, se ejecutan en el contenedor Docker sin ningún impacto en el sistema anfitrión, lo que mejora enormemente la seguridad.
Además, introduce un mecanismo de lista negra/lista blanca que deniega automáticamente los comandos de la lista negra y permite los de la lista blanca. En el caso de los comandos que no están ni en la lista blanca ni en la negra, el gran modelo de lenguaje determina de forma inteligente si existe un riesgo para el sistema anfitrión: por ejemplo, si quiere borrar un archivo de una carpeta, pedirá confirmación al usuario, pero comandos como pip install
Estos comandos genéricos se permitirán directamente. Nótese que esta característica parece estar habilitada sólo cuando se ejecuta en contenedores Docker. Si ejecutamos los comandos en el sistema anfitrión, la experiencia sigue siendo similar a Cursor y requiere confirmaciones frecuentes. Además, es necesario habilitar la ejecución automática de comandos en la configuración.
resúmenes
Así, podemos ver que, aunque el factor de forma del producto y los conceptos de diseño de Devin son realmente muy avanzados, la distancia que lo separa de las herramientas de inteligencia artificial existentes no es tan grande como podríamos pensar desde el punto de vista de la barrera técnica. Utilizando herramientas populares como Cursor y Windsurf, que cuestan entre 15 y 20 dólares al mes, podemos implementar la funcionalidad de Devin 90% en menos de una hora y utilizarla para realizar tareas complejas que antes eran imposibles. Por ejemplo, asigné a Cursor la tarea de analizar los rendimientos de valores tecnológicos populares durante los últimos 5 años para un análisis de datos en profundidad y me proporcionó un informe muy detallado y completo. Además, le pedí a Windsurf que obtuviera las horas de publicación de las 100 entradas más importantes de mi blog y las visualizara en forma de gráfico de contribución a GitHub, lo que hace de forma totalmente automática. Este tipo de tareas no se pueden hacer con Cursor y Windsurf tradicionales - sólo Devin puede hacerlas, pero con estas simples modificaciones, podemos conseguir los resultados de una herramienta de 500$ al mes con una herramienta de 20$ al mes. Incluso hice un experimento más profundo: como desarrollador completamente no familiarizado con el desarrollo front-end, pasé una hora y media creando una bolsa de trabajo, tanto front-end como back-end. Ese tipo de eficiencia está muy cerca, si no es que es mejor, que Devin.
Por último, todos los archivos mencionados en este artículo pueden descargarse de la página Reglas del cursor Devin Descargar - Simplemente copie el contenido en la carpeta de su proyecto actual y utilícelo.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...