# Różnice: Tryb Czat (Chat Mode) vs. Tryb Agent (Agent Mode) w Gemini

W rozszerzeniu Gemini dla Visual Studio Code istnieją dwa fundamentalnie różne sposoby interakcji z modelem językowym. Zrozumienie różnicy między nimi jest kluczowe, aby w pełni wykorzystać potencjał tego narzędzia.

## Podsumowanie w Tabeli

| Cecha / Zdolność              | Tryb Czat (Chat Mode)                                  | Tryb Agent (Agent Mode)                                                    |
| ----------------------------- | ------------------------------------------------------ | -------------------------------------------------------------------------- |
| **Główny Cel**                | Konwersacja, generowanie kodu, odpowiadanie na pytania | Wykonywanie zadań, modyfikacja projektu, automatyzacja                      |
| **Interakcja z Plikami**      | ❌ Nie (może tylko czytać otwarte pliki w kontekście)   | ✅ Tak (może czytać, pisać i modyfikować pliki w całym projekcie)          |
| **Wykonywanie Komend**        | ❌ Nie                                                 | ✅ Tak (może uruchamiać komendy w terminalu, np. testy, buildy, instalacje) |
| **Świadomość Projektu**       | Ograniczona (kontekst rozmowy i otwarty plik)          | Pełna (może przeszukiwać całą strukturę plików i katalogów)                |
| **Sposób Działania**          | Odpowiada na Twoje polecenia w formie tekstu           | Tworzy plan działania i wykonuje go krok po kroku, używając narzędzi      |
| **Typowe Zastosowania**       | "Jak napisać funkcję X?", "Wyjaśnij ten fragment kodu" | "Zrefaktoryzuj tę klasę", "Dodaj testy dla tej funkcji", "Zainstaluj nową bibliotekę" |

---

## Czym jest Tryb Czat (Chat Mode)?

Tryb czatu to klasyczna konwersacja z AI, jaką znasz z innych narzędzi. Działa na zasadzie pytanie-odpowiedź.

-   **Działa jak rozmówca:** Zadajesz pytania, prosisz o wyjaśnienia lub o wygenerowanie fragmentów kodu, a Gemini odpowiada w formie tekstu w oknie czatu.
-   **Brak dostępu do środowiska:** Model nie ma bezpośredniego dostępu do Twojego systemu plików ani terminala. Nie może samodzielnie zapisać pliku, uruchomić testów ani zainstalować zależności. Jego wiedza o projekcie jest ograniczona do kodu, który mu wkleisz, lub do aktualnie otwartego pliku, który jest częścią kontekstu.
-   **Idealny do:** Szybkiego prototypowania, generowania kodu "boilerplate", nauki i zrozumienia koncepcji programistycznych, burzy mózgów.

> **Przykład:** Prosisz: "Napisz funkcję w Pythonie, która sortuje listę liczb". Gemini odpowiada gotowym fragmentem kodu, który możesz skopiować i wkleić.

## Czym jest Tryb Agent (Agent Mode)?

Tryb agenta to zaawansowana forma współpracy, w której **przekazujesz modelowi cel, a on sam podejmuje działania, aby go zrealizować**. To jest tryb, w którym obecnie pracujemy.

-   **Działa jak autonomiczny asystent:** Zamiast tylko odpowiadać tekstem, agent ma dostęp do zestawu **narzędzi** (`tools`). Może na przykład:
    -   Czytać i pisać pliki (`read_file`, `write_file`).
    -   Modyfikować istniejący kod (`replace`).
    -   Przeszukiwać projekt (`search_file_content`, `glob`).
    -   Uruchamiać komendy w terminalu (`run_shell_command`).
-   **Pełna świadomość projektu:** Agent może samodzielnie przeglądać strukturę katalogów, analizować zależności między plikami i wprowadzać zmiany w całym projekcie.
-   **Planowanie i wykonywanie:** Kiedy dajesz mu zadanie (np. "dodaj nową funkcjonalność"), agent najpierw tworzy plan (np. "1. Utworzyć plik X, 2. Dodać kod Y, 3. Zaktualizować plik Z, 4. Uruchomić testy"), a następnie wykonuje go krok po kroku, informując Cię o postępach.
-   **Bezpieczeństwo:** Każda potencjalnie niebezpieczna akcja (jak modyfikacja pliku czy uruchomienie komendy) wymaga Twojego zatwierdzenia.
-   **Idealny do:** Refaktoryzacji kodu, implementacji nowych funkcji, pisania i uruchamiania testów, automatyzacji powtarzalnych zadań, konfigurowania środowiska.

> **Przykład:** Prosisz: "Dodaj nową regułę do mojego pliku konfiguracyjnego lintera". Agent samodzielnie znajduje plik konfiguracyjny, odczytuje go, dodaje nową regułę we właściwym formacie i zapisuje zmiany.

## Kiedy którego używać?

-   Użyj **Trybu Czat**, gdy potrzebujesz szybkiej odpowiedzi, fragmentu kodu lub wyjaśnienia. Traktuj go jak wszechwiedzącego partnera do rozmowy.
-   Użyj **Trybu Agent**, gdy masz do wykonania zadanie, które wymaga interakcji z projektem. Traktuj go jak młodszego programistę, któremu zlecasz zadania do wykonania.
