Transforma Cursor y Windsurf en $500/mes de Devin ¡en una hora!
Tutoriales prácticos sobre IAActualizado hace 7 meses Círculo de intercambio de inteligencia artificial 2.8K 00
En el post anterior, hablamos de Devin, una IA Agentic que permite la programación totalmente automatizada. con otras herramientas de IA Agentic como Cursor y Windsurf), ofrece importantes ventajas en términos de planificación de procesos, autoevolución, ampliación de herramientas y funcionamiento totalmente automatizado. Esto hace que Devin Convertirse en una nueva generación de herramientas para diferenciarse de las herramientas existentes de IA Agentic.
Sin embargo, después de utilizar a Devin durante un tiempo, mi "mentalidad de constructor" volvió a hacer acto de presencia y me llevó a Windsurf y Cursor para implementar Devin 90%. Este artículo se centra en los detalles específicos de estas modificaciones y utiliza este ejemplo para mostrar cómo de eficientemente pueden ser construidas y escaladas en la era de la Inteligencia Artificial Agenética. Para simplificar la discusión, usaremos Cursor como un proxy para esta herramienta, y concluiremos con una discusión de qué pequeños ajustes necesitarás 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) | multi | adyuvante | $500/mes |
Cursor (antes de la modificación) | limitaciones | obstruido | Herramientas limitadas | Se requiere 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 ya se ha mencionado, un aspecto interesante de Devin es que se parece más a un becario organizado. Crea un plan antes de ejecutar una tarea y actualiza continuamente el progreso del plan durante la ejecución. Esto facilita a los gestores de la IA el seguimiento del progreso actual, al tiempo que evita que la IA 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 funcionalidad pueda parecer impresionante, en realidad es muy sencilla de implementar en Cursor.
Para Cursor, abra la carpeta raíz de la carpeta con un archivo llamado .cursorrules
Este es un archivo especial. Lo que tiene de especial este archivo es que te permite modificar las palabras clave del Cursor para pasarlas a un modelo de lenguaje back-end como GPT o Claude. En otras palabras, todo lo que hay en este archivo se convierte en parte de la palabra de referencia enviada a la IA back-end, lo que proporciona una gran flexibilidad de 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 proporcionar instrucciones más detalladas en este archivo, como pedir al Cursor que piense y cree el plan 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 el archivo, y el .cursorrules
Es un archivo en sí mismo, que crea un bucle cerrado. Lee automáticamente el contenido del archivo cada vez, entiende la última actualización, y escribe el progreso actualizado y los próximos pasos en este archivo a medida que lo piensa, asegurando que siempre tengamos la última actualización.
Del mismo modo, la función autoevolutiva puede realizarse de la misma manera. En la .cursorrules
para que el Cursor reflexione y considere si hay una experiencia reutilizable documentable mientras el usuario corrige el error. Si la hay, actualizará el .cursorrules
partes relevantes del documento, acumulando así conocimientos específicos del proyecto.
Un ejemplo típico es que los modelos actuales de grandes lenguajes no son conscientes de la existencia de GPT-4o para muchos modelos debido a plazos de conocimiento anteriores. Si se le dice: "Este modelo existe, lo que pasa es que no lo conoces", registrará esta experiencia al .cursorrules
documentados para no volver a cometer los mismos errores en el futuro, lo que permite aprender y mejorar. Sin embargo, esto sigue dependiendo de la eficacia de la pista: a veces puede pasar por alto puntos y no registrar conocimientos de los que creemos que deberíamos ser conscientes. En este caso, también podemos utilizar el lenguaje natural para pedirle directamente que lo registre. Este enfoque más directo también puede facilitar la experiencia y el crecimiento de la IA.
Como resultado, sólo .cursorrules
y algunos consejos y trucos, podemos añadir las capacidades de planificación de procesos y autoevolución de Devin a nuestras herramientas de programación de IA Agentic 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 archivo scratchpad.md
). En .windsurfrules
La documentación indica que debe consultar el Bloc de notas antes de cada proceso de reflexión y actualizar allí el plan. Este método indirecto puede no ser tan eficaz como colocarlo directamente en .cursorrules
Funciona en el sentido de que sigue requiriendo que la IA llame al Agente y piense basándose en la respuesta, pero funciona de verdad.
Extensión de herramientas
Una de las principales ventajas de Devin sobre Cursor es su capacidad para utilizar más herramientas. Por ejemplo, puedeAbre tu navegador para buscar, navegar por la web e incluso utilizar la inteligencia de LLM para analizar contenidos.. Aunque Cursor no soporta estas características por defecto, afortunadamente, ya que podemos utilizarlas con la función .cursorrules
El control directo de la palabra de aviso del Cursor y el hecho de que tenga capacidad de ejecución de comandos crea otro bucle cerrado. Podemos preparar programas preescritos (como bibliotecas Python o herramientas de línea de comandos) y luego añadirlos a la línea de comandos .cursorrules
Al Cursor se le presentan estas herramientas para que aprenda a utilizarlas ahora y pueda hacer las cosas.
De hecho, las propias herramientas pueden escribirse en minutos utilizando Cursor. Por ejemplo, para la funcionalidad de navegación web, el Devin.cursorrules En Hay algunas decisiones técnicas que hay que tener en cuenta, como el uso de herramientas de automatización del navegador (por ejemplo, playwright) en lugar de la biblioteca de peticiones de Python para sitios web con un uso intensivo de JavaScript. Además, para comunicarnos mejor con LLM y ayudarle a comprender y rastrear el contenido posterior, en lugar de limitarnos a extraer el contenido textual de una página web utilizando beautiful soup, seguimos ciertas reglas para convertirlo a formato Markdown, que conserva información básica más detallada (como nombres de clases e hipervínculos) y admite la capacidad de LLM para escribir rastreadores posteriores a un nivel más básico.
Del mismo modo, en el caso de las herramientas de búsqueda, hay un pequeño detalle: tanto Bing como Google tienen búsquedas por API que son de mucha menos calidad que las búsquedas del lado del cliente, en gran parte debido a un historial de API e interfaces web mantenidas por diferentes equipos. Sin embargo, DuckDuckGo no tiene este problema, por lo que nuestra implementación de referencia utiliza la API gratuita de DuckDuckGo.
En cuanto al uso de Cursor de su propia inteligencia para el análisis profundo, esto es relativamente complejo. Por un lado, Cursor tiene algún grado de esta capacidad - en las dos herramientas anteriores, cuando imprimimos el contenido de una página web a stdout, se convierte en parte de la señal de Cursor al LLM, permitiéndole analizar inteligentemente ese contenido de texto. Por otro lado, sin embargo, Devin tiene la habilidad única de procesar por lotes cantidades relativamente grandes de texto usando LLM de una manera que Cursor no puede. Para hacer esto, implementamos una herramienta adicional - es muy simple preestablecer la clave API en tu sistema, y luego hacer que la herramienta llame a GPT, Claude, o a la API LLM nativa para darle a Cursor la habilidad de hacer procesamiento por lotes de texto usando LLM. En mi implementación de referencia, utilicé mi propia API nativa vllm cluster, pero es muy sencillo de modificar: basta con eliminar la línea base_url.
A pesar de estas modificaciones, todavía hay dos herramientas que no se pueden implementar debido a las limitaciones de Cursor:
- Devin parece tener capacidades de comprensión de imágenes, lo que le permite realizar interacciones y pruebas front-end, pero debido a las limitaciones del Cursor, no podemos pasar imágenes como entrada a la IA back-end - lo que requeriría cambios en su implementación.
- Devin no es marcado como bot por los algoritmos anti-crawling durante la recogida de datos, mientras que nuestras herramientas de búsqueda web a menudo encuentran CAPTCHA o son bloqueadas. Esto puede ser solucionable y todavía lo estoy explorando, pero sin duda es uno de los puntos fuertes únicos de Devin.
Aplicació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 dejar que ejecute con confianza varios comandos sin preocuparnos por ataques LLM o por la ejecución incorrecta de comandos peligrosos. Incluso si se borra todo el sistema, puede recuperarse simplemente iniciando un nuevo contenedor. Sin embargo, Cursor se ejecuta en un sistema anfitrión local, por lo que la seguridad es una preocupación seria. 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 con la sofisticada planificación de procesos y la capacidad de evolucionar por sí mismo, Cursor también es capaz de manejar tareas complejas a largo plazo, lo que hace que este tipo de interacción parezca incompatible con sus capacidades.
Para resolver este problema, todavía no he encontrado una solución basada en Cursor (actualización: 17 de diciembre de 2024 Cursor también añade esta característica, llamada modo Yolo, pero todavía no soporta el desarrollo en Docker), pero Windsurf tiene esto en cuenta. Como puedes ver por su diseño, su objetivo es una forma de producto al estilo Devin, y el editor de código actual es sólo una forma intermedia. Más específicamente, Windsurf tiene una característica que puede conectarse directamente a un contenedor Docker y ejecutarlo allí, o si tenemos un archivo de configuración, puede ayudarnos a iniciar un nuevo contenedor Docker, hacer alguna inicialización, y mapear una carpeta local. De este modo, todos los comandos que ejecuta (excepto los cambios en la carpeta local) se realizan en el contenedor Docker sin impacto en el sistema anfitrión, lo que aumenta enormemente la seguridad.[Ejemplo de configuración]
Además, introduce un mecanismo de lista negra/lista blanca que rechaza 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 negra ni en la lista blanca, LLM determina de forma inteligente si existe algún 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
Los comandos ordinarios como estos simplemente están permitidos. Nótese que esta característica parece estar habilitada sólo cuando se ejecuta en contenedores Docker. Si ejecutamos comandos en el sistema anfitrión, la experiencia sigue siendo similar a Cursor y requiere confirmación frecuente. Además, la ejecución automatizada de comandos debe estar habilitada en la configuración.
resúmenes
Así, podemos ver que, aunque la forma del producto y la filosofía de diseño de Devin son realmente muy avanzadas, la brecha entre él y las herramientas de IA Agentic existentes no es tan grande como podríamos pensar desde una perspectiva de umbral técnico. Usando herramientas populares como Cursor y Windsurf (sólo $15-20 al mes), podemos implementar la funcionalidad de Devin 90% en menos de una hora y usarla para realizar tareas complejas que no podíamos antes de las modificaciones. Por ejemplo, asigné a Cursor la tarea de analizar en profundidad los rendimientos de valores tecnológicos populares durante los últimos 5 años y me proporcionó un informe muy detallado y completo. Además, hice que Windsurf rastreara las horas de publicación de las 100 entradas más populares de mi blog y visualizara los datos al estilo de un gráfico de contribución de GitHub, tareas que puede automatizar completamente. Este tipo de tareas no son posibles con Cursor y Windsurf tradicionales - sólo Devin puede hacerlas, pero con una simple modificación podemos conseguir los resultados de la herramienta $20/mes con la herramienta $500/mes. Incluso hice un experimento más en profundidad: como desarrollador completamente desconocedor del desarrollo front-end, empleé una hora y media en crear una bolsa de trabajo, tanto front-end como back-end. Esta eficacia es comparable a la de Devin, si no superior.
© 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...