> ## 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.

# Engenharia de Prompts

> Boas práticas para criar prompts eficazes e obter código de alta qualidade do Devin Desktop, incluindo objetivos claros, contexto e restrições.

Se você está lendo isso, provavelmente já entende alguns dos casos de uso e das limitações dos LLMs. Quanto melhores forem o prompt e o contexto que você fornece ao modelo, melhor será o resultado.

Da mesma forma, no Devin Desktop, há boas práticas para criar prompts mais eficazes, aproveitar ao máximo a ferramenta e obter código da melhor qualidade possível para ajudar você a acelerar seus fluxos de trabalho.

<Tip>Para tarefas mais complexas que possam exigir que você [@-Mention](/pt-BR/desktop/chat/overview#mentions) blocos de código específicos, use o [Chat](/pt-BR/desktop/chat/overview) em vez do [Command](/pt-BR/desktop/command/plugins-overview). </Tip>

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

* ***Objetivo ou resultado claro***
  * O que você está pedindo que o modelo produza?
  * Você está pedindo ao modelo um plano? Código novo? É uma refatoração?
* ***Todo o contexto relevante para executar a(s) tarefa(s)***
  * Você usou corretamente as @-Mentions para garantir que o contexto adequado esteja incluído?
  * Há algum contexto específico do cliente que possa não estar claro para o Devin Desktop?
* ***Restrições necessárias***
  * Há frameworks, bibliotecas ou linguagens específicas que precisam ser usados?
  * Há restrições de complexidade de tempo ou espaço?
  * Há alguma consideração de segurança?

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

***Exemplo #1:***

* **Ruim**: Escreva testes unitários para todos os cenários de teste de um objeto Order Book.

* **Bom**: Use `@class:unit-testing-module` para escrever testes unitários para `@func:src-order-book-add`, verificando as exceções lançadas quando estiver acima ou abaixo do stop loss

***Exemplo #2***:

* **Ruim**: Refatore rawDataTransform.

* **Bom**: Refatore `@func:rawDataTransform` transformando o loop while em um loop for e usando a mesma estrutura de dados de saída que `@func:otherDataTransformer`

***Exemplo #3***:

* **Ruim**: Crie um novo Button para o Formulário de Contato.

* **Bom**: Crie um novo componente Button para `@class:ContactForm` usando o guia de estilo em `@repo:frontend-components`, que diz “Continuar”
