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

# Sua primeira sessão

> Inicie sua primeira sessão e veja do que o Devin é capaz

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 iniciar sua primeira sessão, verifique se você já [indexou](/pt-BR/onboard-devin/index-repo) e [configurou](/pt-BR/onboard-devin/environment) seus repositórios. Essas são as etapas fundamentais que ajudam
  o Devin a entender e trabalhar com a sua base de código.
</Note>

Agora que você já concluiu a configuração, inicie sua primeira sessão com o Devin! Este guia vai mostrar a nova interface de sessão e ajudar você a entender as melhores formas de interagir com o Devin.

<Tip>
  Prefere trabalhar no terminal? O [Devin CLI](/pt-BR/cli) permite iniciar sessões diretamente pela linha de comando. Instale em 2 minutos com `curl -fsSL https://cli.devin.ai/install.sh | bash`.
</Tip>

<div id="understanding-the-devin-session-page">
  ## Entendendo a página de sessão do Devin
</div>

Quando você inicia uma nova sessão, verá dois modos principais: **Ask** e **Agent**.

<Note>
  A menos que você já tenha um plano totalmente definido, recomendamos começar com Ask para elaborar o plano junto com o Devin e, em seguida, mudar para o modo Agent para executá-lo.
</Note>

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

**Ask Devin** é um modo simples para explorar sua base de código e planejar tarefas com o Devin, sem alterar o código em si. Agora, o Ask Devin oferece suporte tanto a fazer perguntas quanto a planejar:

* **Fazer perguntas** sobre como seu código funciona. Usa busca avançada em código para produzir respostas detalhadas, precisas e bem fundamentadas, com boas referências.
* **Planejar tarefas** definindo escopo e planejando o trabalho antes da implementação. O Devin gera prompts ricos em contexto para sessões do Agent.

Quando você inicia uma sessão do Devin a partir do Ask Devin, o status da sessão é exibido diretamente na conversa.

<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">
  #### Ativando o modo Ask
</div>

Você pode ativar o modo Ask a partir da página principal ou de uma página do DeepWiki.

Para usar o modo Ask a partir da página principal, alterne para o modo Ask e selecione o(s) repositório(s) sobre o(s) qual(is) você quer perguntar.

<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 a partir da página principal" width="2758" height="1448" data-path="images/get-started/ada-session-page-entry.png" />
</Frame>

Para usar o modo Ask a partir de uma página do DeepWiki, digite uma pergunta no campo de chat na parte inferior da página e clique em Ask. Isso restringirá automaticamente o Knowledge do Devin a esse repositório específico.

<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 a partir do DeepWiki" width="2878" height="1471" data-path="images/get-started/ada-deepwiki-entry.png" />
</Frame>

Saiba mais em nosso [guia Ask Devin](/pt-BR/work-with-devin/ask-devin).

Depois de trabalhar com o Devin para entender o problema e criar um plano, você estará pronto para alternar para o modo Agent.

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

O modo Agent é o modo totalmente autônomo do Devin, em que ele pode escrever código, executar comandos, navegar na web e concluir tarefas complexas de ponta a ponta. Use o modo Agent quando estiver pronto para:

* Implementar recursos ou corrigir bugs
* Criar pull requests
* Executar testes e depurar problemas
* Realizar tarefas em várias etapas que exigem alterações de código

<div id="triggering-agent-mode">
  #### Acionando o Agent mode
</div>

Você pode acionar o Agent mode a partir da página principal ou de uma sessão de Ask Devin. Quando uma sessão é iniciada a partir do Ask Devin, o status dela é exibido na própria conversa do Ask Devin, para que você possa acompanhar o andamento.

Para tarefas que não estão totalmente definidas, recomendamos:

* Comece no **Ask mode** para planejar a tarefa
* **Construa um Devin Prompt**, que usará sua sessão de Ask para criar um plano bem definido
* Clique em **Send to Devin** para passar para o Agent mode e executar a tarefa

Esse fluxo é mostrado abaixo:

<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 o Agent mode a partir da página principal, alterne para o Agent mode e selecione os repositórios com os quais você quer trabalhar.

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

Ao iniciar uma sessão em Agent mode, você configurará algumas opções: selecionar um repositório e selecionar um agente.

<div id="selecting-a-repository">
  #### Selecionando um repositório
</div>

Selecione o repositório no qual você deseja que o Devin trabalhe. Clique no seletor de repositório para ver todos os repositórios que foram [adicionados à máquina do Devin](/pt-BR/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>

Selecionar um repositório garante que o Devin:

* Tenha acesso à sua base de código e possa fazer alterações
* Use a branch correta como ponto de partida
* Possa criar pull requests para o repositório correto

<div id="selecting-an-agent">
  #### Selecionando um agente
</div>

Você pode escolher qual configuração de agente o Devin usará na sua sessão. Diferentes agentes podem ter capacidades distintas ou ser otimizados para tipos específicos de tarefas.

Os agentes disponíveis incluem:

* **Devin** (padrão) — Um engenheiro de software de IA de propósito geral para criar recursos, corrigir bugs, refatorar código e executar a maioria das tarefas de desenvolvimento.
* **Modo Rápido** — Um modo otimizado para tarefas rápidas e bem delimitadas.
* **[Dana](/pt-BR/work-with-devin/data-analyst)** — Um agente analista de dados otimizado para consultar bancos de dados, analisar dados e criar visualizações.

<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>
  Se você não tiver certeza de qual agente usar, o agente padrão do Devin funciona bem para a maioria das tarefas.
</Tip>

<div id="using-mentions">
  ## Usando menções com @
</div>

Use menções com `@` para dar ao Devin contexto específico sobre arquivos, repositórios ou outros recursos. Quando você digitar `@` no campo de entrada do chat, verá um menu suspenso com as menções disponíveis:

* **@Repos** - Referencie um repositório específico
* **@Files** - Referencie um arquivo específico na sua base de código
* **[@Macros](/pt-BR/product-guides/knowledge)** - Referencie uma macro para uma entrada do Knowledge
* **[@Playbooks](/pt-BR/product-guides/creating-playbooks)** - Referencie um playbook da equipe ou da comunidade, que são templates de prompt detalhados que podem ser usados para orientar o comportamento do Devin
* **[@Skills](/pt-BR/product-guides/skills)** - Referencie uma skill definida no seu repositório (procedimentos reutilizáveis versionados como arquivos `SKILL.md`)
* **[@Secrets](/pt-BR/product-guides/secrets)** - Referencie um secret específico (por exemplo, Chaves de API, credenciais etc.) do gerenciador de sessões do Devin
* **@Sessions** - Referencie uma sessão anterior do Devin para dar 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="Menções com @" width="1860" height="1104" data-path="images/get-started/at-mention.png" />
</Frame>

Menções com @ ajudam o Devin a entender exatamente com o que você está trabalhando e reduzem a ambiguidade nos seus prompts.

<div id="scoping-your-first-session">
  ## Definindo o Escopo da Sua Primeira Sessão
</div>

Comece com tarefas que tenham **critérios de sucesso claros** e **forneçam ao Devin o contexto de que ele precisa** — assim como você faria ao repassar trabalho para um colega de equipe. À medida que for se acostumando, experimente tarefas progressivamente mais complexas. Já vimos usuários trabalharem com o Devin em tudo, desde corrigir pequenos bugs até refatorações direcionadas, migrações em larga escala e criar recursos inteiros do zero.

<Tip>
  Como regra geral: se uma tarefa levaria até três horas para você, o Devin provavelmente consegue executá-la. Para projetos maiores, divida-os em sessões focadas e execute-as em paralelo com [Devins gerenciados](/pt-BR/work-with-devin/advanced-capabilities#managed-devins).
</Tip>

<div id="first-time-prompt-ideas">
  ## Ideias de primeiros prompts
</div>

<AccordionGroup>
  <Accordion title="Adicionar um novo endpoint de API" icon="code-pull-request">
    <PromptBlock>
      ```Adding a new API endpoint theme={null}
      Crie um novo endpoint /users/stats que retorne um objeto JSON com a contagem de usuários e a idade média no momento do cadastro. 

      Use nossa tabela users existente no PostgreSQL. 

      Você pode usar o endpoint /orders/stats em statsController.js como referência para como estruturamos as respostas. 

      Garanta que o novo endpoint esteja coberto pela suíte de testes StatsController.test.js.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Pequenos recursos de front-end" icon="sun">
    <PromptBlock>
      ```Small frontend features theme={null}
      No componente UserProfileComponent, adicione um menu suspenso que mostre uma lista de funções de usuário (admin, editor, viewer). 

      Use a estilização de DropdownBase. 

      Quando uma função for selecionada, chame a API existente para definir a função do usuário. 

      Valide verificando se a seleção atualiza a função do usuário no banco de dados. Consulte seu Knowledge para saber como testar corretamente.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Escrever testes unitários" icon="flask">
    <PromptBlock>
      ```Write unit tests theme={null}
      Adicione testes em Jest para os métodos do AuthService: login e logout. 

      Garanta que a cobertura de testes para essas duas funções seja de pelo menos 80%. 

      Use o arquivo UserService.test.js como exemplo.

      Após a implementação, execute `npm test -- --coverage` e verifique se o relatório de cobertura mostra >80% para ambas as funções. 

      Também confirme que os testes passam com credenciais válidas e inválidas, e que o logout limpa corretamente os dados de sessão.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Migração ou refatoração de código existente" icon="code-pull-request">
    <PromptBlock>
      ```Migrating or refactoring existing code theme={null}
      Migre logger.js de JavaScript para TypeScript. 

      Já temos um tsconfig.json e uma suíte de testes LoggerTest.test.js para validação. 

      Certifique-se de que o código seja compilado sem erros e não altere a configuração existente!

      Após a migração, verifique:
      1) executando `tsc` para confirmar que não há erros de tipo
      2) executando a suíte de testes com `npm test LoggerTest.test.js` para garantir que todos os testes passem
      3) verificando se todas as chamadas de métodos existentes de logger em toda a base de código ainda funcionam sem erros de tipo.
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Atualizar APIs ou consultas ao banco de dados" icon="database">
    <PromptBlock>
      ```Updating APIs or database queries theme={null}
      Estamos migrando de pg para sequelize (leia https://sequelize.org/api/v6/identifiers). 

      Atualize as consultas do UserModel para usar os métodos do Sequelize. 

      Consulte o OrderModel para ver como fazemos isso nesta base de código.

      Após a implementação, valide:
      1) executando `npm run test:integration UserModel.test.js` para verificar se todos os testes de integração passam
      2) confirmando que o desempenho das consultas não foi degradado, verificando o tempo de execução em um conjunto de dados de teste com 1000 usuários
      3) validando que todas as operações CRUD ainda mantêm a integridade dos dados executando `npm run test:e2e user-flows.test.js`
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="Crie um PR rápido (recomendamos usar este prompt em um Playbook)" icon="code-pull-request">
    <PromptBlock>
      ```txt Quick PR theme={null}
      ## Visão geral
      A tarefa é fazer um pull request rápido para um repositório.
      Como este é um PR "rápido", você não precisará executar nenhum código ou testar nada; simplesmente faça o PR e o usuário cuidará dos testes. Sua única responsabilidade é ler e escrever código.

      ## O que precisamos do usuário
      - O repositório para o qual criar um pull request

      ## Procedimento
      ### Prepare seu ambiente de trabalho
      1. Navegue até o repositório relevante na sua máquina (confirme com o usuário se você não conseguir descobrir qual é).
          - Faça checkout na branch principal e anote o nome da branch principal.
          - Crie uma nova branch e faça checkout nela, já que você fará um pull request. O nome da branch deve ser no formato `devin/<timestamp>-<your-branch-name>`. Por exemplo, `devin/1700000000-fix-popup`. Rode `git remote -v && git pull && git checkout -b devin/$(date +%s)-{branch-name}` e substitua `{branch-name}` pelo nome da branch que você quer criar.
      2. Estude a solicitação, o codebase e planeje as alterações
          - Revise os arquivos e trechos de código mais relevantes, identificando os trechos importantes.
          - Informe ao usuário o seu plano
      ### Trabalhe no próprio PR
      3. Faça as alterações de código
          - Não mude nada que não tenha sido especificamente solicitado pelo usuário
      4. Faça o PR
          - Faça commit e push das alterações e avise o usuário.
          - Veja a seção de recomendações para o comando exato para criar o PR
          - Crie um pull request e revise o PR para garantir que está tudo certo.
          - Garanta que todas as GitHub Actions sejam bem-sucedidas e faça as alterações necessárias até que sejam.
          - Envie o link do PR para o usuário e resuma o que você alterou.
      5. Trate de qualquer feedback da revisão; envie o link do PR novamente sempre que fizer qualquer alteração
          - Se você precisar fazer atualizações, apenas envie mais commits para a mesma branch; não crie uma nova


      ## Especificação da tarefa
      - O link do PR está incluído nas suas mensagens para o usuário
      - O PR foi revisado após a criação
      - O PR não inclui alterações não relacionadas
      - O PR não altera nada que não tenha sido especificamente solicitado pelo usuário
      - A descrição do PR deve incluir um resumo das alterações, formatado como uma checklist
      - A descrição do PR deve mencionar que o código foi escrito sem testes e incluir - [ ] Testar as alterações como um item
      - A descrição do PR deve incluir o seguinte rodapé: "Este PR foi escrito por [Devin](https://devin.ai/) :angel:"
      - A descrição do PR deve incluir quaisquer metadados que o usuário tenha fornecido (por exemplo, tags de tickets do Linear na sintaxe apropriada)
      - A descrição do PR não deve estar malformatada (use --body-file em vez de --body se as quebras de linha estiverem bagunçadas!)

      ## Ações proibidas
      - NÃO tente acessar github.com pelo navegador, você não estará autenticado.
      - NUNCA dê force push em branches! Prefira fazer merge em vez de rebase para não perder nenhum trabalho.
      - NÃO faça push diretamente na branch principal.

      ## Recomendações e dicas
      - Confira o nome da branch principal (que pode ser `main` ou `master`) usando `git branch`.
      - Para repositórios com CI/CD em GitHub Actions, você pode verificar os logs de build usando o gh CLI. Se pedirem para corrigir um build/corrigir lint, você deve começar olhando os logs de builds recentes.
      - Verifique `git status` antes de fazer commit ou adicionar arquivos.
      - Use `git diff` para ver quais alterações você fez antes de fazer commit.
      - Se você estiver atualizando um repositório existente, use o gh CLI para criar pull requests.
      - Envie o link do PR para o usuário sempre que atualizar e peça para ele revisar novamente, para facilitar para ele
      - Você já deve estar autorizado a acessar quaisquer repositórios que o usuário mencionar. Caso contrário, peça acesso ao usuário.
      ```
    </PromptBlock>
  </Accordion>
</AccordionGroup>

Se você quiser se aprofundar em exemplos mais detalhados do que o Devin pode fazer (e como), confira nossos **casos de uso**.

<CardGroup cols={1}>
  <Card title="Explorar casos de uso" icon="grid-2" href="/pt-BR/use-cases/gallery/index">
    Explore exemplos práticos em fluxos de trabalho de engenharia — cada um inclui prompts que você pode experimentar imediatamente.
  </Card>
</CardGroup>

<div id="after-your-session">
  ## Após sua sessão
</div>

Quando Devin terminar, abra o [Session Insights](/pt-BR/product-guides/session-insights) e clique em **Gerar análise** — você verá uma linha do tempo do que aconteceu, recomendações práticas e um prompt aprimorado para usar em tarefas semelhantes no futuro.

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

Quando estiver familiarizado com sessões básicas, explore estes recursos para tirar ainda mais proveito do Devin:

<CardGroup cols={2}>
  <Card title="Integrações" icon="plug" href="/pt-BR/integrations/overview">
    Conecte o Devin às suas ferramentas existentes, como GitHub, Slack, Jira e muito mais.
  </Card>

  <Card title="Playbooks" icon="book" href="/pt-BR/product-guides/creating-playbooks">
    Aprenda a usar Playbooks para realizar tarefas.
  </Card>

  <Card title="Knowledge" icon="lightbulb" href="/pt-BR/product-guides/knowledge">
    Adicione Knowledge para ajudar o Devin a entender melhor as práticas da sua equipe.
  </Card>
</CardGroup>
