> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tu primera sesión

> Inicia tu primera sesión y descubre lo que Devin puede hacer

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<Note>
  Antes de comenzar tu primera sesión, asegúrate de que has [indexado](/es/onboard-devin/index-repo) y [configurado](/es/onboard-devin/environment) tus repositorios. Estos son los pasos fundamentales que ayudan a Devin a comprender y trabajar con tu base de código.
</Note>

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.

<Tip>
  ¿Prefieres trabajar desde la terminal? [Devin CLI](/es/cli) te permite iniciar sesiones directamente desde la línea de comandos. Instálalo en 2 minutos con `curl -fsSL https://cli.devin.ai/install.sh | bash`.
</Tip>

<div id="understanding-the-devin-session-page">
  ## Comprender la página de sesión de Devin
</div>

Cuando inicias una nueva sesión, verás dos modos principales: **Ask** y **Agent**.

<Note>
  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.
</Note>

<div id="ask-mode">
  ### Modo Ask
</div>

**Ask Devin** es un modo ligero para explorar tu base de código y planificar tareas con Devin, sin modificar el código. Ask Devin ahora permite tanto hacer preguntas como planificar:

* **Hacer preguntas** sobre cómo funciona tu código. Utiliza búsqueda de código avanzada para producir respuestas detalladas, precisas y bien fundamentadas.
* **Planificar tareas** definiendo el alcance y planificando el trabajo antes de la implementación. Devin genera prompts con mucho contexto para sesiones de Agent.

Cuando inicias una sesión de Devin desde Ask Devin, el estado de la sesión es visible directamente en la conversación.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/ada-main-page.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=4322113b3a37d34381ed9ce3643ce361" alt="Ask Mode" width="2758" height="1448" data-path="images/get-started/ada-main-page.png" />
</Frame>

<div id="triggering-ask-mode">
  #### Activar el modo Ask
</div>

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.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/ada-session-page-entry.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=419e52527134041c36d32968bd89cc70" alt="Modo Ask desde la página principal" width="2758" height="1448" data-path="images/get-started/ada-session-page-entry.png" />
</Frame>

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.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/ada-deepwiki-entry.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=8c6b34541551d6f6d879d75c1ae3b719" alt="Modo Ask desde DeepWiki" width="2878" height="1471" data-path="images/get-started/ada-deepwiki-entry.png" />
</Frame>

Obtén más información en nuestra [guía de Ask Devin](/es/work-with-devin/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.

<div id="agent-mode">
  ### Modo Agente
</div>

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

<div id="triggering-agent-mode">
  #### Activar el modo Agent
</div>

Puedes activar el modo Agent desde la página principal o desde una sesión de Ask Devin. Cuando una sesión se inicia desde Ask Devin, su estado se muestra en la conversación de Ask Devin para que puedas hacer seguimiento del progreso.

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:

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/o-vVqnQzugDuTQBr/images/get-started/ada-to-agent.gif?s=7b6553fa3595bf3d6382c6657e3e5adb" alt="Ask Mode to Agent Mode" width="800" height="541" data-path="images/get-started/ada-to-agent.gif" />
</Frame>

Para usar el modo Agent desde la página principal, cambia al modo Agent y selecciona los repositorios con los que quieras trabajar.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/agent-mode.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=730174eadb0bbd98f231b9ace8ce7a8d" alt="Agent Mode" width="2660" height="1431" data-path="images/get-started/agent-mode.png" />
</Frame>

Al iniciar una sesión de Agent, podrás configurar algunas opciones: seleccionar un repositorio y seleccionar un Agent.

<div id="selecting-a-repository">
  #### Seleccionar un repositorio
</div>

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](/es/onboard-devin/environment).

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/repo-selector.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=3b61fbcd38b6aaf1c82984afeb481afa" alt="Repository Selector" width="2004" height="1094" data-path="images/get-started/repo-selector.png" />
</Frame>

Seleccionar un repositorio permite que Devin:

* Tenga acceso a tu base de código y pueda hacer cambios
* Use la rama correcta como punto de partida
* Pueda crear pull requests en el repositorio adecuado

<div id="selecting-an-agent">
  #### Seleccionar un Agent
</div>

Puedes elegir qué configuración de Agent usa Devin para tu sesión. Los distintos Agents pueden tener capacidades diferentes o estar optimizados para tipos específicos de tareas.

Los Agents disponibles incluyen:

* **Devin** (predeterminado) — Un ingeniero de software de IA de propósito general para crear funcionalidades, corregir errores, refactorizar código y realizar la mayoría de las tareas de desarrollo.
* **Fast Mode** — Un modo optimizado para tareas rápidas y de ámbito bien definido.
* **[Dana](/es/work-with-devin/data-analyst)** — Un Agent analista de datos optimizado para consultar bases de datos, analizar datos y crear visualizaciones.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/agent-selector.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=f2b6da8aa45e29b237e8ef0ea0cfbef8" alt="Agent Selector" width="2046" height="908" data-path="images/get-started/agent-selector.png" />
</Frame>

<Tip>
  Si no estás seguro de qué Agent usar, el Agent predeterminado de Devin funciona bien para la mayoría de las tareas.
</Tip>

<Note>
  No necesitas iniciar una nueva sesión para cambiar de modo. Puedes cambiar de Agent en mitad de la sesión con el selector de Agent situado junto al campo de entrada de mensajes en la página de la sesión; el cambio surtirá efecto con tu siguiente mensaje. En Slack, puedes cambiar de modo en mitad de la sesión empezando un mensaje con `!ultra`, `!fast`, `!lite` o `!agent` (consulta [Slack mode keywords](/es/integrations/slack)).
</Note>

<div id="using-mentions">
  ## Uso de menciones @
</div>

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](/es/product-guides/knowledge)** - Hace referencia a una macro para una entrada de Knowledge
* **[@Playbooks](/es/product-guides/creating-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
* **[@Skills](/es/product-guides/skills)** - Hace referencia a una skill definida en tu repositorio (procedimientos reutilizables confirmados en archivos `SKILL.md`)
* **[@Secrets](/es/product-guides/secrets)** - Hace referencia a un secreto específico (por ejemplo, API keys, credenciales, etc.) del administrador de sesiones de Devin
* **@Sessions** - Hace referencia a una sesión anterior de Devin para obtener contexto

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/F5oUw1qMUFyqdYvx/images/get-started/at-mention.png?fit=max&auto=format&n=F5oUw1qMUFyqdYvx&q=85&s=dbcade626b2b560f9dbf90589b27a6b8" alt="Menciones @" width="1860" height="1104" data-path="images/get-started/at-mention.png" />
</Frame>

Las menciones @ ayudan a Devin a comprender exactamente con qué estás trabajando y reducen la ambigüedad en tus prompts.

<div id="scoping-your-first-session">
  ## Definir el ámbito de tu primera sesión
</div>

Empieza con tareas que tengan **criterios de éxito claros** y **proporcionen a Devin el contexto que necesita**, igual que harías al delegar trabajo a un compañero de equipo. A medida que te sientas más cómodo, prueba tareas progresivamente más complejas. Hemos visto a usuarios trabajar con Devin en todo, desde corregir pequeños errores hasta refactorizaciones específicas, migraciones a gran escala y la creación de funcionalidades completas desde cero.

<Tip>
  Como regla general: si una tarea te llevaría tres horas o menos, lo más probable es que Devin pueda hacerla. Para proyectos más grandes, divídelos en sesiones específicas y ejecútalos en paralelo con [Devins gestionados](/es/work-with-devin/advanced-capabilities#managed-devins).
</Tip>

<div id="first-time-prompt-ideas">
  ## Ideas de prompts para empezar
</div>

<AccordionGroup>
  <Accordion title="Añadir un nuevo endpoint de la API" icon="code-pull-request">
    <PromptBlock>
      ```Adding a new API endpoint theme={null}
      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.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Pequeñas funcionalidades de frontend" icon="sun">
    <PromptBlock>
      ```Small frontend features theme={null}
      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.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Escribir pruebas unitarias" icon="flask">
    <PromptBlock>
      ```Write unit tests theme={null}
      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.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Migración o refactorización de código existente" icon="code-pull-request">
    <PromptBlock>
      ```Migrating or refactoring existing code theme={null}
      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.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Actualización de API o consultas de bases de datos" icon="database">
    <PromptBlock>
      ```Updating APIs or database queries theme={null}
      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`
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Crea una PR rápida (recomendamos usar este prompt en un Playbook)" icon="code-pull-request">
    <PromptBlock>
      ```txt Quick PR theme={null}
      ## 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/<timestamp>-<your-branch-name>`. Por ejemplo, `devin/1700000000-fix-popup`. Ejecuta `git remote -v && git pull && git checkout -b devin/$(date +%s)-{branch-name}` y sustituye `{branch-name}` por 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.
      ```
    </PromptBlock>
  </Accordion>
</AccordionGroup>

Si quieres profundizar en ejemplos más detallados de lo que Devin puede hacer (y cómo), consulta nuestros **casos de uso**.

<CardGroup cols={1}>
  <Card title="Explorar casos de uso" icon="grid-2" href="/es/use-cases/gallery/index">
    Explora ejemplos prácticos en flujos de trabajo de ingeniería — cada uno incluye prompts que puedes probar de inmediato.
  </Card>
</CardGroup>

<div id="after-your-session">
  ## Después de tu sesión
</div>

Cuando Devin haya terminado, abre [Session Insights](/es/product-guides/session-insights) y haz clic en **Generar análisis**: obtendrás una línea de tiempo de lo ocurrido, comentarios accionables y un prompt mejorado que podrás reutilizar para tareas similares en el futuro.

<div id="next-steps">
  ## Próximos pasos
</div>

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

<CardGroup cols={2}>
  <Card title="Integraciones" icon="plug" href="/es/integrations/overview">
    Conecta Devin a tus herramientas actuales como GitHub, Slack, Jira y más.
  </Card>

  <Card title="Playbooks" icon="book" href="/es/product-guides/creating-playbooks">
    Aprende cómo usar Playbooks para ejecutar tareas.
  </Card>

  <Card title="Knowledge" icon="lightbulb" href="/es/product-guides/knowledge">
    Añade Knowledge para ayudar a Devin a comprender las prácticas de tu equipo.
  </Card>
</CardGroup>
