Lavorare con progetti di grandi dimensioni

Gestisci codebase di grandi dimensioni in Bob Shell. Comprendi l'ottimizzazione della finestra di contesto, la gestione dei file e le best practice per progetti su scala enterprise.

Limiti di contesto nei progetti di grandi dimensioni

Bob usa modelli di linguaggio di grandi dimensioni che hanno una finestra di contesto limitata. Questa è la quantità massima di testo (misurata in token) che Bob può elaborare alla volta. Se il contesto è troppo grande, Bob potrebbe non essere in grado di comprendere la tua richiesta o generare risposte accurate.

La finestra di contesto include:

  • Il system prompt (istruzioni per Bob)
  • La cronologia della conversazione
  • Il contenuto di eventuali file inclusi nel prompt della chat
  • L'output di eventuali comandi o strumenti usati da Bob

Strategie per gestire il contesto

  1. Sii specifico: Quando fai riferimento a file o codice, usa percorsi di file specifici e nomi di funzioni. Evita riferimenti vaghi come "il file principale."
  2. Fai riferimento ai file con precisione: Includi file specifici nel prompt della chat usando il loro percorso (ad esempio, src/components/MyComponent.tsx), oppure fai riferimento a un hash di commit per puntare Bob a uno stato Git specifico.
  3. Suddividi i task: Dividi i task di grandi dimensioni in sotto-task più piccoli e gestibili. Questo aiuta a mantenere il contesto focalizzato.
  4. Riassumi quando necessario: Se hai bisogno di fare riferimento a una grande quantità di codice, considera di riassumere le parti rilevanti nel tuo prompt invece di includere l'intero codice.
  5. Dai priorità alla cronologia recente: Bob condensa automaticamente i messaggi più vecchi nella cronologia della conversazione per rimanere entro la finestra di contesto. Tieni presente questo comportamento e reincludi il contesto importante se necessario.
  6. Gestisci l'uso degli strumenti MCP: Puoi disabilitare e abilitare strumenti specifici in un servizio MCP per usare solo ciò di cui hai bisogno, riducendo il consumo di contesto dalle definizioni degli strumenti inutilizzati.
  7. Usa subagent o sub-task per lavori isolati: Per lavori di grandi dimensioni e autonomi, considera di usare un subagent o un sub-task. Entrambi vengono eseguiti nella loro finestra di contesto separata, mantenendo la sessione del terminale principale leggera. Consulta Strumenti per i dettagli su spawn_subagent e start_subtask.

Esempio: Refactoring di un file di grandi dimensioni

Se hai bisogno di eseguire il refactoring di un file TypeScript di grandi dimensioni (src/components/MyComponent.tsx), ecco un approccio efficace:

  1. Ottieni una panoramica iniziale:
    Elenca le funzioni e le classi in src/components/MyComponent.tsx
  2. Punta su funzioni specifiche:
    Esegui il refactoring della funzione `processData` in src/components/MyComponent.tsx per usare async/await invece delle Promise.
  3. Apporta modifiche iterative: Apporta piccole modifiche incrementali, esaminando e approvando ogni passo.

Suddividendo il task e fornendo contesto specifico, puoi lavorare efficacemente con file di grandi dimensioni entro i limiti della finestra di contesto.

Come valuti questo argomento?