Ejemplo de prompt
En el repositorio de Devin, quiero que desarrolles una herramienta que supervise el uso de RAM y CPU de las máquinas remotas en las que se ejecuta Devin. Para ello, realiza las siguientes tareas:
- Crea una tarea en segundo plano que se inicie automáticamente cuando se inicie
devin.rs. - La tarea debe abrir una conexión a todas las máquinas remotas generadas mediante fork que se usen en esta sesión de Devin y supervisar su uso de RAM y CPU.
- Si el uso supera el 80% de los recursos disponibles, emite un nuevo tipo de evento de Devin para indicarlo (revisa cómo usamos Kafka).
- Diseña esto de forma inteligente, de modo que no bloquee otras operaciones. Debes entender cómo interactúan entre sí todos los contenedores de los subagentes de Devin.
Por qué esto funciona bien
Proporciona contexto útil
- Detalle: Especifica el repositorio de Devin y el propósito más amplio (monitorear el uso de recursos).
- Beneficio: Devin conoce claramente el alcance y el dominio.
Da instrucciones paso a paso
- Detalle: Tareas como “crear una tarea en segundo plano” y “emitir un evento al 80 % de uso”.
- Beneficio: Divide el trabajo en partes lógicas.
Define criterios de éxito claros
- Detalle: Define el “éxito” como emitir un evento específico cuando se alcance el 80 % de uso.
- Beneficio: Devin sabe exactamente qué debe lograr.
Hace referencia a patrones y código existentes
- Detalle: Menciona Kafka e interacciones con contenedores.
- Beneficio: Fomenta la reutilización de código o enfoques de diseño ya establecidos.
Buenas prácticas: lo que se debe y lo que no se debe hacer
Ten opiniones claras y sé específico
Ten opiniones claras y sé específico
Haz esto: proporciona instrucciones claras
- Por qué: Devin puede atascarse sin un camino claro o cuando se enfrenta a demasiadas posibles interpretaciones.
- Cómo:
- Toma tú las decisiones importantes y los juicios de valor por Devin.
- Ofrece opciones de diseño concretas y estrategias de implementación específicas.
- Define con claridad el alcance, los límites y los criterios de éxito.
- Ejemplo: “Optimize the getOrderDetails query in orderService.js by adding a composite index on the order_id and product_id columns in the order_items table. Refactor the query to replace the existing correlated subquery with a JOIN to the products table for fetching product details.”
- Por qué: Las instrucciones vagas pueden llevar a que Devin implemente soluciones que no se alineen con tus necesidades reales.
- Cómo:
- Evita enunciados que requieran que Devin tome decisiones de diseño o implementación significativas sin orientación. Esto puede generar resultados inesperados.
- Ejemplo: No hagas esto: “Improve our database’s performance.”
Aprovecha las capacidades de Devin
Aprovecha las capacidades de Devin
Haz: Elige tareas en las que Devin es bueno
- Por qué:
- Maximiza los resultados: Al asignar tareas que se alinean con las capacidades de Devin, puedes obtener los mejores resultados con el menor esfuerzo y la menor cantidad de ACUs posible. Pedirle a Devin que haga tareas que estén muy fuera de sus capacidades actuales a menudo puede dar resultados deficientes.
- Cómo:
- Lee esta guía: Cuándo usar Devin
- Especialmente para tareas avanzadas, proporciona ejemplos, módulos, recursos y plantillas que Devin pueda seguir.
- Comparte enlaces directos a sitios de documentación para que Devin pueda leer detalles como los cuerpos de las solicitudes de API y funcionalidades que podría no conocer.
- Comparte nombres de archivos específicos que quieras que Devin revise y de los que aprenda.
- Ejemplo: Haz: “Refactoriza la gestión de estado en el componente Header para usar el hook useReducer de React y lograr mejor escalabilidad y mantenibilidad. Asegúrate de que se preserve toda la funcionalidad existente y agrega pruebas unitarias para cubrir la nueva lógica de estado.”
- Ejemplo: Haz: “Usa authTemplate.rs como referencia para mantener la coherencia en el manejo de errores.”
- Ejemplo: Haz: “Revisa la documentación oficial de Sequelize en https://sequelize.org/docs/v6/getting-started/ para los pasos de migración.”
- Por qué: Asignar tareas que requieren conocimientos avanzados del dominio o decisiones de diseño complejas sin la orientación adecuada puede generar ineficiencias y desperdicio de ACUs.
- Cómo:
- Evita tareas que requieran un aporte creativo significativo o un enfoque estratégico de alto nivel sin instrucciones o referencias claras.
- Evita tareas que requieran habilidades visuales avanzadas, por ejemplo implementar diseños de Figma, ya que aunque Devin puede ver páginas web, su visión no es perfecta.
- Evita pedirle a Devin que cree aplicaciones móviles, ya que no tiene acceso a un teléfono y no puede probar su trabajo fácilmente.
- Ejemplo: No hagas: “Crea un sistema de autenticación nuevo para mi sitio web desde cero.”
- Ejemplo: No hagas: “Convierte este mockup de Figma en un componente de React.”
- Ejemplo: No hagas: “Crea una aplicación de compras basada en IA.”
Asumir el control cuando sea necesario
Asumir el control cuando sea necesario
Haz: Colabora completando tareas parciales
- Por qué: A veces es más rápido que tú termines el último 20 % de una tarea.
- Cómo:
- Deja que Devin se encargue de la mayor parte de la implementación y luego encárgate de refinarla.
- Usa Devin para acelerar las partes del flujo de trabajo que son repetitivas, mientras tú te enfocas en los aspectos más críticos.
- Ejemplo: Haz: “Genera el código base (boilerplate) inicial para el nuevo endpoint de la API y luego yo lo integraré con el sistema de autenticación existente.”
- Por qué: Confiar en exceso en Devin para tareas que requieren una comprensión detallada o una resolución creativa de problemas puede causar retrasos y resultados subóptimos.
- Cómo:
- Evita asignarle a Devin tareas que sabes que requerirán una intervención humana significativa para completarse de forma efectiva.
- Ejemplo: No hagas: “Desarrolla toda la infraestructura de backend para nuestra nueva funcionalidad de IA generativa”
Utiliza ciclos de retroalimentación
Utiliza ciclos de retroalimentación
Haz esto: establece comprobaciones claras y frecuentes
- Por qué: Los comentarios frecuentes (tanto tuyos como de pruebas/verificaciones/linters) garantizan que Devin corrija los errores de forma eficaz.
- Cómo:
- Usa pruebas (unitarias/de integración) para confirmar la corrección.
- Mantén validaciones de compilación, comprobaciones de lint y análisis estático para asegurar la calidad del código.
- Ejemplo: Haz esto: “Run npm test after each iteration.”
- Ejemplo: Haz esto: “Ensure the pipeline on CircleCI doesn’t fail.”
- Ejemplo: Haz esto: “Pass ESLint/Prettier checks before pushing any commits.”
- Por qué: Sin comentarios, Devin no sabrá si sus soluciones cumplen con tus estándares.
- Cómo:
- Evita asignar tareas sin definir cómo las evaluarás.
Configurar puntos de control
Configurar puntos de control
Haz esto: define puntos de control y subtareas claras
- Por qué: Dividir tareas complejas en subtareas y puntos de control más pequeños ayuda a que Devin se mantenga concentrado y reduce los errores.
- Cómo:
- Divide las tareas en subtareas verificables e inicia una sesión de Devin para cada subtarea.
- Define qué se considera éxito para cada subtarea y, opcionalmente, establece puntos de control dentro de cada una.
- Pídele a Devin que te informe al completar cada punto de control o subtarea.
- Ejemplo: Haz esto: “Al trabajar con el conjunto de datos, verifica que tenga al menos 500 filas y contenga las columnas X, Y, Z.”
- Ejemplo: Haz esto: “Al modificar la API, confirma que el endpoint devuelva el código de estado 200 e incluya todos los campos requeridos.”
- Ejemplo: Haz esto: “Al actualizar la UI, comprueba que el componente se renderice sin errores en la consola y que coincida con la especificación de diseño.”
- Por qué: Sin pasos de validación definidos, Devin no puede dar por completadas las tareas con seguridad.
- Cómo:
- Evita criterios de éxito vagos.
- No dejes los pasos de verificación implícitos o sin definir.
- Ejemplo: No hagas esto: “Asegúrate de que funcione.”
Usar Playbooks
Usar Playbooks
Para tareas repetitivas o complejas, recomendamos usar e iterar con los Playbooks. Obtén más información sobre cómo usar playbooks de forma eficaz. Los playbooks son prompts reutilizables y compartibles que optimizan la delegación de tareas. Por ejemplo, si quieres que Devin se encargue de fallos recurrentes en los builds de CI, crea un playbook que incluya los pasos generales que Devin debe seguir cada vez.
Conclusión
Plantea las tareas con la suficiente estructura y claridad para obtener resultados fiables y satisfactorios.

