Saltar al contenido principal
Antes de comenzar tu primera sesión, asegúrate de que has indexado y configurado tus repositorios. Estos son los pasos fundamentales que ayudan a Devin a comprender y trabajar con tu base de código.
Ahora que ya tienes todo configurado, inicia tu primera sesión con Devin. Esta guía te explicará la nueva interfaz de sesión y te ayudará a comprender las mejores formas de interactuar con Devin.

Comprender la página de sesión de Devin

Cuando inicias una nueva sesión, verás dos modos principales: Ask y Agent.
A menos que ya cuentes con un plan bien definido, recomendamos empezar con Ask para colaborar con Devin en la creación de un plan y luego pasar al modo Agent para ejecutarlo.

Modo Ask

Ask Devin es un modo ligero para explorar tu base de código y planificar tareas con Devin, sin modificar el código. Usa el modo Ask para:
  • Hacer preguntas sobre cómo funciona tu código
  • Explorar la arquitectura y las dependencias
  • Planificar y definir el alcance de las tareas antes de la implementación
  • Generar prompts con mucho contexto para sesiones de Agent
Ask Mode

Activar el modo Ask

Puedes activar el modo Ask desde la página principal o desde una página de DeepWiki. Para usar el modo Ask desde la página principal, cambia al modo Ask y selecciona los repositorios sobre los que quieres preguntar.
Modo Ask desde la página principal
Para usar el modo Ask desde una página de DeepWiki, escribe una consulta en el cuadro de chat en la parte inferior de la página y haz clic en Ask. Esto delimitará automáticamente el conocimiento de Devin a ese repositorio en particular.
Modo Ask desde DeepWiki
Obtén más información en nuestra guía de Ask Devin. Una vez que hayas trabajado con Devin para entender el problema y crear un plan, estarás listo para pasar al modo Agent.

Modo Agente

El modo Agente es el modo totalmente autónomo de Devin, en el que puede escribir código, ejecutar comandos, navegar por la web y completar tareas complejas de principio a fin. Usa el modo Agente cuando quieras:
  • Implementar nuevas funciones o corregir errores
  • Crear pull requests
  • Ejecutar pruebas y depurar problemas
  • Realizar tareas de varios pasos que requieran cambios de código

Activar el modo Agent

Puedes activar el modo Agent desde la página principal o desde una sesión de Ask Devin. Para tareas cuyo alcance no esté completamente definido, recomendamos:
  • Comenzar con el modo Ask para planificar la tarea
  • Crear un Devin Prompt, que se basará en tu sesión de Ask para crear un plan bien delimitado
  • Hacer clic en Send to Devin para pasar al modo Agent y ejecutar la tarea
Este flujo se muestra a continuación:
Ask Mode to Agent Mode
Para usar el modo Agent desde la página principal, cambia al modo Agent y selecciona los repositorios con los que quieras trabajar.
Agent Mode
Al iniciar una sesión de Agent, podrás configurar algunas opciones: seleccionar un repositorio y seleccionar un Agent.

Seleccionar un repositorio

Selecciona el repositorio con el que quieres que Devin trabaje. Haz clic en el selector de repositorios para ver todos los repositorios que se han añadido a la máquina de Devin.
Repository Selector
Seleccionar un repositorio permite que Devin:
  • Tenga acceso a tu código y pueda hacer cambios
  • Use la rama correcta como punto de partida
  • Pueda crear pull requests en el repositorio adecuado

Seleccionar un agente

Puedes elegir qué configuración de agente utiliza Devin para tu sesión. Diferentes agentes pueden tener distintas capacidades o estar optimizados para tipos específicos de tareas. Actualmente, tenemos un agente predeterminado que funciona bien para la mayoría de las tareas y un agente analista de datos llamado Dana que está optimizado para tareas de análisis de datos.
Agent Selector
Si no estás seguro de qué agente usar, el agente predeterminado funciona bien para la mayoría de las tareas.

Uso de menciones @

Usa menciones @ para darle a Devin contexto específico sobre archivos, repositorios u otros recursos. Cuando escribes @ en el campo de entrada del chat, verás un menú desplegable con las menciones disponibles:
  • @Repos - Hace referencia a un repositorio específico
  • @Files - Hace referencia a un archivo específico en tu base de código
  • @Macros - Hace referencia a una macro para una entrada de Knowledge
  • @Playbooks - Hace referencia a un playbook de equipo o de la comunidad, que son plantillas de prompts detalladas que se pueden usar para guiar el comportamiento de Devin.
  • @Secrets - Hace referencia a un secreto específico (por ejemplo, API keys, credenciales, etc.) del administrador de sesiones de Devin
Menciones @
Las menciones @ ayudan a Devin a comprender exactamente con qué estás trabajando y reducen la ambigüedad en tus prompts.

Uso de comandos de barra diagonal

Los comandos de barra diagonal son atajos que se expanden en plantillas de prompt predefinidas. Escribe / en el campo de entrada del chat para ver los comandos disponibles:
  • /plan - Haz que Devin te ayude a definir y planificar una tarea
  • /review - Configura un flujo de trabajo de revisión de código
  • /test - Crea pruebas o analiza la cobertura de pruebas
  • /think-hard - Haz que Devin piense con más detenimiento sobre problemas complejos
  • /implement - Implementa una funcionalidad o cambio específico
Slash Commands
Las organizaciones Enterprise también pueden crear comandos de barra diagonal personalizados para flujos de trabajo específicos de cada equipo. Obtén más información en nuestra guía de comandos de barra diagonal.

Definir el alcance de tu primera sesión

Comienza con tareas de alcance más reducido y recuerda darle a Devin el mismo nivel de detalle que le darías a un ingeniero junior humano. Hemos visto a usuarios trabajar con Devin en todo tipo de tareas, desde la corrección de pequeños errores hasta refactorizaciones puntuales y migraciones a gran escala.

Ideas de prompts para empezar

a new API endpoint
Crea un nuevo endpoint /users/stats que devuelva un objeto JSON con el número de usuarios y la edad promedio al registrarse. 

Usa nuestra tabla existente users en PostgreSQL. 

Puedes usar como referencia el endpoint /orders/stats en statsController.js para ver cómo estructuramos las respuestas. 

Asegúrate de que el nuevo endpoint esté cubierto por la suite StatsController.test.js.
frontend features
En UserProfileComponent, añade un menú desplegable que muestre una lista de roles de usuario (admin, editor, viewer). 

Usa el estilo de DropdownBase. 

Cuando se seleccione un rol, llama a la API existente para configurar el rol del usuario. 

Valida verificando que la selección actualiza el rol del usuario en la base de datos. Consulta tu Knowledge para ver cómo probarlo correctamente.
unit tests
Añade pruebas de Jest para los métodos de AuthService: login y logout. 

Asegúrate de que la cobertura de pruebas para estas dos funciones sea de al menos un 80 %. 

Usa UserService.test.js como ejemplo.

Después de la implementación, ejecuta `npm test -- --coverage` y verifica que el informe de cobertura muestre >80 % para ambas funciones. 

También confirma que las pruebas pasen tanto con credenciales válidas como inválidas, y que logout borre correctamente los datos de sesión.
or refactoring existing code
Migra logger.js de JavaScript a TypeScript. 

Ya tenemos un tsconfig.json y una suite de pruebas LoggerTest.test.js para validación. 

Asegúrate de que compile sin errores y de no cambiar la configuración existente.

Después de la migración, verifica:
1) ejecutando `tsc` para confirmar que no haya errores de tipo
2) ejecutando la suite de pruebas con `npm test LoggerTest.test.js` para asegurarte de que todas las pruebas pasen
3) comprobando que todas las llamadas existentes a métodos de logger en toda la base de código sigan funcionando sin errores de tipo.
unit tests
Estamos cambiando de pg a Sequelize (consulta https://sequelize.org/api/v6/identifiers). 

Actualiza las consultas de UserModel para usar métodos de Sequelize. 

Consulta OrderModel para ver cómo lo hacemos en este código.

Después de implementar, verifica lo siguiente:
1) ejecutando `npm run test:integration UserModel.test.js` para comprobar que pasan todas las pruebas de integración
2) confirmando que el rendimiento de las consultas no se ha degradado, comprobando el tiempo de ejecución en un conjunto de datos de prueba de 1000 usuarios
3) validando que todas las operaciones CRUD siguen manteniendo la integridad de los datos, ejecutando `npm run test:e2e user-flows.test.js`
Quick PR
## Overview
La tarea consiste en hacer una pull request rápida a un repositorio.
Como se trata de una PR "rápida", no necesitarás ejecutar ningún código ni probar nada; simplemente crea una PR y el usuario se encargará de las pruebas. Tu única responsabilidad es leer y escribir código.

## What's Needed From User
- El repositorio al que se debe crear la pull request

## Procedure
### Prepare your workspace
1. Navega al repositorio correspondiente en tu máquina (acláralo con el usuario si no puedes identificarlo).
    - Haz checkout de la rama principal y toma nota del nombre de esa rama.
    - Haz checkout a una rama nueva, ya que vas a crear una pull request. El nombre de la rama debe tener el formato `devin/<your-branch-name>/X` donde X es un número aleatorio. Por ejemplo, `devin/fix-popup/3234`. Ejecuta `git remote -v && git pull && git checkout -b devin/{branch-name}/$RANDOM` y reemplaza `{branch-name}` con el nombre de la rama que quieres crear.
2. Estudia la petición, el codebase y planifica los cambios
    - Revisa los archivos y secciones de código más relevantes, identificando los fragmentos pertinentes.
    - Informa al usuario de tu plan
### Work on the PR itself
3. Realiza los cambios de código
    - No cambies nada que el usuario no haya solicitado específicamente
4. Crea la PR
    - Haz commit y push de los cambios e informa al usuario.
    - Consulta la sección de consejos para ver el comando exacto para crear la PR
    - Crea una pull request y revísala para asegurarte de que se ve bien.
    - Asegúrate de que todas las GitHub Actions pasan correctamente y realiza los cambios necesarios hasta que lo hagan
    - Envía el enlace de la PR al usuario y resume lo que cambiaste.
5. Atiende cualquier comentario de la revisión; envía el enlace de la PR de nuevo cada vez que hagas cambios
    - Si necesitas hacer actualizaciones, simplemente haz push de más commits a la misma rama; no crees una nueva


## Task Specification
- El enlace de la PR se incluye en tus mensajes al usuario
- La PR fue revisada después de su creación
- La PR no incluye cambios accidentales
- La PR no cambia nada que el usuario no haya solicitado específicamente
- La descripción de la PR debe incluir un resumen de los cambios, con formato de checklist
- La descripción de la PR debe mencionar que el código se escribió sin pruebas, e incluir - [ ] Test the changes como un elemento
- La descripción de la PR debe incluir el siguiente pie de página: "This PR was written by [Devin](https://devin.ai/) :angel:"
- La descripción de la PR debe incluir cualquier metadata que el usuario haya proporcionado (por ejemplo, etiquetas de tickets de Linear con la sintaxis adecuada)
- La descripción de la PR no debe estar malformateada (usa --body-file en lugar de --body si los saltos de línea se estropean)

## Forbidden Actions
- NO intentes acceder a github.com a través del navegador; no estarás autenticado.
- NUNCA hagas force push en ramas. Prefiere hacer merge en lugar de rebase para no perder trabajo.
- NO hagas push directamente a la rama principal.

## Advice and Pointers
- Verifica dos veces el nombre de la rama principal (que podría ser `main` o `master`) usando `git branch`.
- Para repos con CI/CD en GitHub Actions, puedes revisar los registros de build usando la gh cli. Si te piden arreglar un build/arreglar lint, deberías empezar mirando los registros de builds recientes.
- Revisa `git status` antes de hacer commit o agregar archivos.
- Usa `git diff` para ver qué cambios has hecho antes de hacer commit.
- Si estás actualizando un repo existente, usa `gh cli` para crear pull requests.
- Envía el enlace de la PR al usuario cada vez que la actualices y pídele que la revise de nuevo para que le resulte cómodo.
- Ya deberías estar autorizado para acceder a cualquier repositorio que el usuario te indique. Si no es así, pídele acceso al usuario.
Si quieres profundizar en ejemplos más detallados de lo que Devin puede hacer (y cómo), consulta nuestros tutoriales introductorios a continuación.

Próximos pasos

Una vez que estés familiarizado con las sesiones básicas, explora estos recursos para sacar más provecho de Devin: