Skip to main content

Gerenciando o contexto em CLI do GitHub Copilot

Entenda como Copilot gerencia o contexto da conversa, o que acontece durante longas sessões e como manter o controle da janela de contexto.

Sobre a janela de contexto

Quando você usa CLI do GitHub Copilot, cada mensagem que você envia, cada resposta de Copilot, cada chamada de ferramenta e seu resultado, bem como as instruções do sistema que definem o comportamento de Copilot, são todos mantidos em uma janela de contexto. A janela de contexto é a quantidade total de informações que o modelo de IA pode considerar ao mesmo tempo ao gerar uma resposta.

A janela de contexto tem um tamanho fixo, medido em tokens, que varia de acordo com o modelo. Os tokens normalmente consistem em palavras curtas, comumente usadas e fragmentos de palavras multi-sílabas. À medida que a conversa progride, a janela de contexto é preenchida com:

  •         **Instruções do sistema e definições de ferramentas**: as instruções internas que informam Copilot como se comportar, além dos esquemas de todas as ferramentas disponíveis. Eles estão sempre presentes e assumem uma parte fixa da janela de contexto.
    
  •         **Suas mensagens**: cada prompt que você enviar.
    
  •         **
            Copilot's respostas**: tudo o que Copilot lhe diz de volta.
    
  •         **Chamadas e resultados da ferramenta**: quando Copilot lê arquivos, executa comandos ou pesquisa sua base de código, a solicitação e a saída são adicionadas ao contexto. Os resultados da ferramenta podem ser especialmente grandes, por exemplo, se uma ferramenta lê um arquivo longo ou executa um comando que produz uma saída extensa.
    

Tudo isso se acumula na janela de contexto. Em uma sessão longa ou complexa, a janela de contexto pode ser preenchida.

Por que a janela de contexto importa

A janela de contexto é o que fornece a Copilot a "memória" da sua conversa. Tudo dentro da janela de contexto está disponível para fazer referência ao responder a você.

Isso significa que, em uma sessão muito longa, Copilot talvez não seja capaz de manter todo o histórico de conversas ao mesmo tempo. CLI do Copilot portanto, tem recursos de gerenciamento de contexto que efetivamente permitem que você continue uma conversa com Copilot pelo tempo que você precisar.

Verificando seu uso de contexto

Você pode verificar quanto da janela de contexto está sendo usada no momento inserindo o /context comando barra. Isso exibe um detalhamento visual do uso do token, mostrando:

  •         **Sistema/Ferramentas**: a sobrecarga fixa de instruções do sistema e definições de ferramentas.
    
  •         **Mensagens**: o espaço usado pelo histórico de conversas.
    
  •         **Espaço Livre**: quanto espaço resta para novas mensagens.
    
  •         **Buffer**: uma parte reservada que dispara o gerenciamento automático de contexto.
    

Captura de tela da saída do comando da CLI '/context'.

Talvez você queira usar o /context comando barra quando:

  • Você está em uma sessão longa e quer saber quanto espaço resta.
  •         Copilot parece estar esquecendo partes anteriores da conversa.
    
  • Você deseja entender se a compactação ocorreu ou provavelmente ocorrerá em breve.

Compactação

Compactação é o processo que permite a CLI do GitHub Copilot dar suporte a sessões de longa duração sem atingir os limites da janela de contexto.

Quando a compactação acontece

Quando sua conversa atinge aproximadamente 80% da capacidade da janela de contexto, CLI do Copilot começa a compactar automaticamente o contexto em segundo plano. Isso deixa um buffer de aproximadamente 20% para que as chamadas de ferramenta possam continuar a ser executadas enquanto a compactação estiver em andamento. Se o contexto se preencher para aproximadamente 95% antes que a compactação seja concluída, CLI do Copilot pausará brevemente para aguardar a conclusão da compactação antes de continuar.

Você também pode disparar a compactação manualmente a qualquer momento inserindo o /compact comando. Isso é útil se você estiver prestes a iniciar uma nova fase de trabalho e quiser liberar espaço de contexto proativamente. Pressione Esc para cancelar uma compactação manual se você mudar de ideia.

O que a compactação faz

Quando a compactação é executada, CLI do Copilot:

  1. Faz uma captura do histórico de conversas atual.
  2. Envia a conversa completa para o modelo de IA com um prompt especial que solicita que ele gere um resumo estruturado. O resumo captura as metas da conversa, o que foi feito, os principais detalhes técnicos, arquivos importantes e as próximas etapas planejadas.
  3. Substitui o histórico de conversa antigo pelo resumo, juntamente com as instruções originais do usuário e o estado atual de quaisquer planos ou listas de to-do.
  4. Mantém todas as mensagens que foram adicionadas enquanto a compactação estava em execução em segundo plano.

O resultado é que o histórico de conversas é compactado em um resumo muito menor, liberando a maior parte da janela de contexto para um novo trabalho. Copilot usa este resumo para manter a continuidade – ele sabe o que foi discutido, o que foi decidido e o que fazer a seguir – mesmo que as mensagens originais tenham sido substituídas.

O que a compactação não preserva

Compactação é um processo de resumo, portanto, alguns detalhes são inevitavelmente perdidos. O resumo captura os pontos-chave, mas detalhes refinados, como a redação exata de cada mensagem, a saída completa de cada comando ou decisões secundárias tomadas no início de uma longa conversa, podem não ser incluídos. Se você precisar Copilot recordar um detalhe muito específico de muito antes da sessão, talvez essa informação não esteja disponível após a compactação.

O que aconteceria sem compactação

Sem compactação, uma vez preenchida a janela de contexto, Copilot teria que voltar a simplesmente remover mensagens antigas do histórico de conversas, removendo-as sem nenhum resumo ou registro. Isso significaria perder o contexto abruptamente, sem nenhuma maneira de Copilot saber o que estava nas mensagens excluídas. A compactação evita isso ao substituir o histórico por um resumo inteligente em vez de descartá-lo.

Pontos de Controle

Sempre que a compactação ocorre, seja automaticamente ou manualmente, um ponto de verificação é criado. Um ponto de verificação é uma cópia salva do resumo da compactação, armazenada como um arquivo numerado e intitulado no espaço de trabalho da sessão.

Exibindo pontos de verificação

Para ver todos os pontos de verificação na sessão atual, insira:

Copilot prompt
/session checkpoints

Isso lista cada ponto de verificação com seu número e título:

Checkpoint History (3 total):
  3. Refactoring authentication module
  2. Implementing user dashboard
  1. Initial planning and setup

Use o número do ponto de verificação para exibir o conteúdo completo de qualquer ponto de verificação. Por exemplo, para exibir o ponto de verificação 2, insira:

Copilot prompt
/session checkpoints 2

Quando pontos de verificação são úteis

  •         **Revisando o que aconteceu**: após uma longa sessão com várias compactações, as fases anteriores da conversa não estão mais no contexto ativo. Os pontos de verificação permitem que você leia novamente o que Copilot fez em cada compactação.
    
  •         **Verificando a continuidade**: se você quiser verificar se o Copilotresumo capturou com precisão seu trabalho anterior antes de continuar, você pode examinar o ponto de verificação mais recente.
    
  •         **Confusão na depuração**: se Copilot parece ter esquecido uma decisão ou está indo em uma direção que contradiz o trabalho anterior, verificar os checkpoints pode revelar o que foi preservado durante a compactação e o que pode ter sido resumido de uma forma diferente do que você esperava.
    

Observação

  • Os pontos de verificação são criados automaticamente. Você não precisa gerenciá-los , eles estão lá se você precisar deles. Para a maioria das sessões, você não precisará consultar pontos de verificação.
  • Não é possível reverter uma compactação depois que ela for concluída.

Usando sessões de longa duração

A compactação automática permite que você continue trabalhando em uma sessão de longa execução sem se preocupar em atingir os limites da janela de contexto. Há momentos em que isso é muito útil e outras vezes em que você pode preferir iniciar uma nova sessão.

Quando sessões longas são úteis

Sessões de execução longa funcionam bem quando:

  • Você está trabalhando em uma tarefa de várias fases, como criar um recurso que requer andaime (estrutura inicial), implementação, teste e, em seguida, criar um pull request.
  • Você está iterando em um problema e quer que Copilot mantenha o contexto do que foi tentado e do que não deu certo.
  • Você está fazendo um trabalho exploratório em uma base de código e criando uma compreensão compartilhada com Copilot ao longo do tempo.

Quando iniciar uma nova sessão

Iniciar uma nova sessão é melhor quando:

  • Você está mudando para uma tarefa não relacionada. Copilot não precisa do contexto do seu trabalho anterior, e uma janela de contexto limpa significa mais espaço para a nova tarefa.
  • A conversa passou por muitas compactações e você sente que um contexto importante está sendo perdido no processo de resumo.
  • Você quer uma ficha limpa , por exemplo, se o trabalho foi na direção errada e você prefere começar de novo do que tentar Copilot reconciliar decisões anteriores com uma nova abordagem.

Dica

Você pode retomar as sessões anteriores a qualquer momento usando o /resume comando. Isso permite que você retome de onde parou, incluindo todos os pontos de verificação criados durante essa sessão.

Leitura adicional

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)