Trabalhando com projetos grandes

Gerencie grandes bases de código no Bob Shell. Entenda a otimização da janela de contexto, o tratamento de arquivos e as melhores práticas para projetos em escala empresarial.

Limites de contexto em projetos grandes

O Bob usa grandes modelos de linguagem que têm uma janela de contexto limitada. Esse é o volume máximo de texto (medido em tokens) que o Bob pode processar de uma vez. Se o contexto for muito grande, o Bob pode não conseguir entender sua solicitação ou gerar respostas precisas.

A janela de contexto inclui:

  • O prompt do sistema (instruções para o Bob)
  • O histórico da conversa
  • O conteúdo de qualquer arquivo incluído no prompt do chat
  • A saída de quaisquer comandos ou ferramentas que o Bob utiliza

Estratégias para gerenciar o contexto

  1. Seja específico: Ao referenciar arquivos ou código, use caminhos de arquivo e nomes de função específicos. Evite referências vagas como "o arquivo principal".
  2. Referencie arquivos com precisão: Inclua arquivos específicos no prompt do chat usando o caminho (por exemplo, src/components/MyComponent.tsx), ou referencie um hash de commit para apontar o Bob para um estado específico do Git.
  3. Divida as tarefas: Separe tarefas grandes em subtarefas menores e mais gerenciáveis. Isso ajuda a manter o contexto focado.
  4. Resuma quando necessário: Se precisar referenciar uma grande quantidade de código, considere resumir as partes relevantes no prompt em vez de incluir o código inteiro.
  5. Priorize o histórico recente: O Bob condensa automaticamente mensagens mais antigas no histórico da conversa para se manter dentro da janela de contexto. Tenha isso em mente e reinsira contexto importante quando necessário.
  6. Gerencie o uso de ferramentas MCP: Você pode desabilitar e habilitar ferramentas específicas em um serviço MCP para usar apenas o que precisa, reduzindo o consumo de contexto por definições de ferramentas não utilizadas.
  7. Use subagentes ou subtarefas para trabalho isolado: Para partes grandes e independentes do trabalho, considere usar um subagente ou subtarefa. Ambos executam em sua própria janela de contexto separada, mantendo a sessão terminal principal enxuta. Veja Ferramentas para detalhes sobre spawn_subagent e start_subtask.

Exemplo: Refatorando um arquivo grande

Se você precisa refatorar um arquivo TypeScript grande (src/components/MyComponent.tsx), aqui está uma abordagem eficaz:

  1. Obtenha uma visão geral inicial:
    Liste as funções e classes em src/components/MyComponent.tsx
  2. Foque em funções específicas:
    Refatore a função `processData` em src/components/MyComponent.tsx para usar async/await em vez de Promises.
  3. Faça mudanças iterativas: Faça mudanças pequenas e incrementais, revisando e aprovando cada etapa.

Ao dividir a tarefa e fornecer contexto específico, você pode trabalhar efetivamente com arquivos grandes dentro dos limites da janela de contexto.

Como está este tópico?