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

# Ingeniería de prompts

> Prácticas recomendadas para crear prompts efectivos y obtener código de alta calidad con Devin Desktop, incluidos objetivos claros, contexto y restricciones.

Si estás leyendo esto, probablemente ya comprendas algunos de los casos de uso y las limitaciones de los LLM. Cuanto mejores sean el prompt y el contexto que proporciones al modelo, mejor será el resultado.

Del mismo modo, en Devin Desktop también hay prácticas recomendadas para crear prompts más efectivos, sacar el máximo partido de la herramienta y obtener código de la mayor calidad posible para ayudarte a acelerar tus flujos de trabajo.

<Tip>Para tareas más complejas que puedan requerir mencionar bloques de código específicos con [@-Mention](/es/desktop/chat/overview#mentions), usa [Chat](/es/desktop/chat/overview) en lugar de [Command](/es/desktop/command/plugins-overview). </Tip>

<div id="components-of-a-high-quality-prompt">
  ## Componentes de un prompt de alta calidad
</div>

* ***Objetivo o resultado claro***
  * ¿Qué le estás pidiendo al modelo que genere?
  * ¿Le estás pidiendo al modelo un plan? ¿Código nuevo? ¿Se trata de una refactorización?
* ***Todo el contexto relevante para realizar la tarea o tareas***
  * ¿Has usado correctamente las @-Menciones para asegurarte de incluir el contexto adecuado?
  * ¿Hay algún contexto específico del cliente que pueda no resultarle claro a Devin Desktop?
* ***Restricciones necesarias***
  * ¿Hay marcos de trabajo, bibliotecas o lenguajes específicos que deban utilizarse?
  * ¿Hay restricciones de complejidad espacial o temporal?
  * ¿Hay consideraciones de seguridad?

<div id="examples">
  ## Ejemplos
</div>

***Ejemplo n.º 1:***

* **Malo**: Escribe pruebas unitarias para todos los casos de prueba de un objeto Order Book.

* **Bueno**: Usa `@class:unit-testing-module` para escribir pruebas unitarias para `@func:src-order-book-add`, comprobando las excepciones que se lanzan cuando está por encima o por debajo del stop loss

***Ejemplo n.º 2***:

* **Malo**: Refactoriza rawDataTransform.

* **Bueno**: Refactoriza `@func:rawDataTransform` convirtiendo el bucle while en un bucle for y usando la misma estructura de datos de salida que `@func:otherDataTransformer`

***Ejemplo n.º 3***:

* **Malo**: Crea un nuevo Button para el formulario de contacto.

* **Bueno**: Crea un nuevo componente Button para `@class:ContactForm` usando la guía de estilo de `@repo:frontend-components`, donde dice «Continuar»
