Travailler avec de grands projets
Gérez de grandes bases de code dans Bob Shell. Comprenez l'optimisation de la fenêtre de contexte, la gestion des fichiers et les bonnes pratiques pour les projets à l'échelle entreprise.
Limites de contexte dans les grands projets
Bob utilise des modèles de langage de grande taille qui ont une fenêtre de contexte limitée. C'est la quantité maximale de texte (mesurée en tokens) que Bob peut traiter à la fois. Si le contexte est trop grand, Bob peut ne pas être en mesure de comprendre votre requête ou de générer des réponses précises.
La fenêtre de contexte comprend :
- Le prompt système (les instructions pour Bob)
- L'historique de la conversation
- Le contenu des fichiers que vous incluez dans votre prompt de chat
- La sortie des commandes ou outils que Bob utilise
Stratégies pour gérer le contexte
- Soyez spécifique : Lorsque vous faites référence à des fichiers ou du code, utilisez des chemins de fichiers et des noms de fonctions précis. Évitez les références vagues comme « le fichier principal ».
- Référencez les fichiers avec précision : Incluez des fichiers spécifiques dans votre prompt de chat via leur chemin (par exemple,
src/components/MyComponent.tsx), ou référencez un hash de commit pour pointer Bob vers un état Git précis. - Décomposez les tâches : Divisez les grandes tâches en sous-tâches plus petites et gérables. Cela aide à garder le contexte focalisé.
- Résumez si nécessaire : Si vous devez faire référence à une grande quantité de code, pensez à résumer les parties pertinentes dans votre prompt plutôt qu'à inclure l'intégralité du code.
- Privilégiez l'historique récent : Bob condense automatiquement les messages plus anciens dans l'historique de la conversation pour rester dans la fenêtre de contexte. Gardez cela à l'esprit et réintégrez le contexte important si nécessaire.
- Gérez l'utilisation des outils MCP : Vous pouvez désactiver et activer des outils spécifiques dans un service MCP pour n'utiliser que ce dont vous avez besoin, réduisant la consommation de contexte liée aux définitions d'outils inutilisés.
- Utilisez des sous-agents ou des sous-tâches pour le travail isolé : Pour les grandes portions de travail autonomes, envisagez d'utiliser un sous-agent ou une sous-tâche. Les deux s'exécutent dans leur propre fenêtre de contexte séparée, gardant la session du terminal principal légère. Consultez Outils pour des détails sur
spawn_subagentetstart_subtask.
Exemple : Refactorisation d'un grand fichier
Si vous avez besoin de refactoriser un grand fichier TypeScript (src/components/MyComponent.tsx), voici une approche efficace :
- Obtenez une vue d'ensemble initiale :
Liste les fonctions et classes dans src/components/MyComponent.tsx - Ciblez des fonctions spécifiques :
Refactorise la fonction `processData` dans src/components/MyComponent.tsx pour utiliser async/await au lieu des Promises. - Effectuez des modifications itératives : Faites de petits changements progressifs, en examinant et approuvant chaque étape.
En décomposant la tâche et en fournissant un contexte spécifique, vous pouvez travailler efficacement avec de grands fichiers dans les limites de la fenêtre de contexte.