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

  1. 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".
  2. 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.
  3. Dziel zadania: Podziel duże zadania na mniejsze, łatwiejsze do zarządzania podzadania. Pomaga to utrzymać skupiony kontekst.
  4. 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.
  5. 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.
  6. 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.
  7. 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_subagent i start_subtask.

Przykład: Refaktoryzacja dużego pliku

Jeśli musisz zrefaktoryzować duży plik TypeScript (src/components/MyComponent.tsx), oto skuteczne podejście:

  1. Uzyskaj wstępny przegląd:
    Wymień funkcje i klasy w src/components/MyComponent.tsx
  2. Celuj w konkretne funkcje:
    Zrefaktoryzuj funkcję `processData` w src/components/MyComponent.tsx, aby używała async/await zamiast Promises.
  3. 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?