Praca z dużymi projektami
Zarządzaj dużymi bazami kodu w Bob Shell. Poznaj optymalizację okna kontekstu, obsługę plików i najlepsze praktyki dla projektów na skalę enterprise.
Limity kontekstu w dużych projektach
Bob używa dużych modeli językowych, które mają ograniczone okno kontekstu. To maksymalna ilość tekstu (mierzona w tokenach), którą Bob może przetwarzać jednorazowo. Jeśli kontekst jest zbyt duży, Bob może nie być w stanie zrozumieć Twojego żądania lub wygenerować dokładnych odpowiedzi.
Okno kontekstu obejmuje:
- Prompt systemowy (instrukcje dla Bob)
- Historię rozmowy
- Zawartość plików dołączonych do promptu czatu
- Wyjście poleceń lub narzędzi używanych przez Bob
Strategie zarządzania kontekstem
- Bądź precyzyjny(-a): Odwołując się do plików lub kodu, używaj konkretnych ścieżek plików i nazw funkcji. Unikaj niejasnych odniesień, takich jak „główny plik".
- Odwołuj się do plików precyzyjnie: Dołączaj konkretne pliki do promptu czatu, używając ich ścieżki (na przykład
src/components/MyComponent.tsx), lub odwołuj się do hasha commita, aby wskazać Bob konkretny stan Git. - Dziel zadania: Podziel duże zadania na mniejsze, łatwiejsze do zarządzania podzadania. Pomaga to utrzymać skupiony kontekst.
- Podsumowuj w razie potrzeby: Jeśli musisz odwołać się do dużej ilości kodu, rozważ podsumowanie istotnych fragmentów w prompcie zamiast dołączania całego kodu.
- Priorytetyzuj ostatnią historię: Bob automatycznie kondensuje starsze wiadomości w historii rozmowy, aby pozostać w granicach okna kontekstu. Miej to na uwadze i w razie potrzeby ponownie dołączaj ważny kontekst.
- Zarządzaj użyciem narzędzi MCP: Możesz wyłączać i włączać konkretne narzędzia w serwisie MCP, aby używać tylko tych, których potrzebujesz, zmniejszając zużycie kontekstu przez nieużywane definicje narzędzi.
- Używaj subagentów lub podzadań do izolowanej pracy: W przypadku dużych, samodzielnych fragmentów pracy rozważ użycie subagenta lub podzadania. Oba działają we własnym oddzielnym oknie kontekstu, utrzymując główną sesję terminalową lekką. Szczegóły znajdziesz w dokumentacji Narzędzia dla
spawn_subagentistart_subtask.
Przykład: Refaktoryzacja dużego pliku
Jeśli musisz zrefaktoryzować duży plik TypeScript (src/components/MyComponent.tsx), oto skuteczne podejście:
- Uzyskaj wstępny przegląd:
Wymień funkcje i klasy w src/components/MyComponent.tsx - Celuj w konkretne funkcje:
Zrefaktoryzuj funkcję `processData` w src/components/MyComponent.tsx, aby używała async/await zamiast Promises. - Wprowadzaj iteracyjne zmiany: Wprowadzaj małe, przyrostowe zmiany, przeglądając i zatwierdzając każdy krok.
Dzieląc zadanie i podając konkretny kontekst, możesz efektywnie pracować z dużymi plikami w granicach okna kontekstu.
Jak oceniasz ten temat?