Implicit vs Explicit kontekst: co Copilot widzi automatycznie
Różnica między kontekstem, który Copilot zbiera sam (otwarty plik, zaznaczenie, historia git) a tym, który musisz podać explicite.
Czego się nauczysz
- Co VS Code dodaje do promptu automatycznie, a co tylko po Twoim sygnale
- Jak wygląda realne składanie promptu w Copilot Chat
- Dlaczego rozróżnienie implicit i explicit context praktycznie poprawia odpowiedzi
To, czego nie dołączysz, często po prostu nie istnieje dla modelu
Najbardziej praktyczna definicja contextu brzmi tak: to wszystko, co model może zobaczyć przy generowaniu odpowiedzi.
Nie więcej.
To oznacza, że bardzo dużo nieporozumień bierze się z prostego błędu: użytkownik zakłada, że model “wie”, podczas gdy model w danym requestcie w ogóle tego nie widzi.
Dlatego rozróżnienie na implicit i explicit context nie jest teorią. To narzędzie pracy.
Siedem warstw promptu w VS Code
Docs Context pokazują bardzo ważny model mentalny. Kiedy wysyłasz wiadomość, VS Code składa prompt z kilku warstw:
- system instructions
- customizations
- user message
- conversation history
- implicit context
- explicit references
- tool outputs
To jest świetna rama, bo porządkuje myślenie.
Model nie odpowiada na samo ostatnie zdanie wpisane w oknie chatu. Odpowiada na całą złożoną paczkę informacji, którą VS Code zebrał dla bieżącego requestu.
Implicit context: to, co wchodzi automatycznie
Implicit context to rzeczy, które VS Code dorzuca na podstawie Twojej bieżącej aktywności.
W docsach są wymienione między innymi:
- currently selected text
- file name albo notebook name aktywnego edytora
- aktywny plik w Ask
- decyzja Agenta, czy aktywny plik trzeba dołączyć
- visible errors i git state w szerszym opisie context assembly
To oznacza, że ten sam prompt zadany w dwóch różnych momentach może mieć inny wynik tylko dlatego, że masz inny aktywny plik albo inne zaznaczenie.
I to jest normalne.
Explicit context: to, czym sterujesz świadomie
Explicit references to wszystko, co dodajesz świadomie:
#file#selection#codebase- URL albo
#fetch - inne context items przez Add Context
To jest moment, w którym przestajesz liczyć na domysły systemu i zaczynasz sterować wejściem.
W praktyce to zwykle daje dużo większy zwrot niż dopieszczanie samego promptu językowo.
Bo między pytaniem:
- jak działa autoryzacja
a pytaniem:
- jak działa autoryzacja w tym projekcie
#file
różnica nie polega na lepszym stylu wypowiedzi. Różnica polega na lepszym wejściu do modelu.
Implicit nie zastępuje explicit
To jeden z najczęstszych błędów.
To, że masz otwarty plik i jakieś zaznaczenie, nie oznacza jeszcze, że system zrozumie dokładnie, o co Ci chodzi. Implicit context jest pomocny, ale nie zawsze wystarczający.
Jest szczególnie słaby, gdy:
- pytanie jest niejednoznaczne
- temat dotyczy więcej niż jednego pliku
- chcesz dodać zewnętrzną dokumentację
- chcesz wymusić konkretny zakres analizy
Wtedy explicit context robi całą różnicę.
Ask i Agent nie traktują aktywnego pliku identycznie
Docs zaznaczają tu ważny detal.
W Ask aktywny plik jest automatycznie dołączany jako context.
W Agent sytuacja jest bardziej dynamiczna: agent sam decyduje, czy aktywny plik jest potrzebny do rozwiązania zadania.
To praktycznie oznacza, że Agent ma większą autonomię w zarządzaniu kontekstem, ale też większą złożoność. Nie zawsze będzie pracował dokładnie na tym samym zestawie danych, który Ty intuicyjnie uznałbyś za oczywisty.
Jeśli chcesz mieć pewność, że konkretny plik wejdzie do rozmowy, dołącz go jawnie.
Tool outputs to też część contextu
To jest bardzo ważne w pracy agentowej.
Jeśli agent czyta plik, odpala grep, wykonuje komendę terminalową albo pobiera wynik narzędzia, ten output staje się materiałem wejściowym do kolejnego kroku.
Czyli context nie jest statyczny. W agentowych workflow on rośnie i zmienia się w trakcie pracy.
To daje dużą moc, ale ma też koszt: każde dodatkowe narzędzie zjada miejsce w context window.
Dlatego więcej kontekstu nie zawsze znaczy lepiej. Lepszy jest kontekst trafniejszy.
Conversation history jest pożyteczna, dopóki nie staje się szumem
Historia rozmowy też jest częścią promptu.
To bardzo przydatne, bo możesz budować wieloetapową rozmowę. Ale po pewnym czasie zaczyna działać przeciwko Tobie.
Starsze cele, założenia i poboczne wątki konkurują z nowym pytaniem. Wtedy odpowiedzi robią się mniej ostre, bardziej rozmyte albo zaskakująco odwołują się do starego tematu.
Dlatego docs rekomendują nową sesję dla nowego zadania. I to nie jest dobra praktyka “dla porządku”. To jest sposób na lepsze odpowiedzi.
Context window control daje realny sygnał, nie ozdobę UI
Na dole chatu masz wskaźnik użycia context window.
To nie jest dekoracja. To kontrolka, która pokazuje:
- jak dużo kontekstu już zużyto
- jak blisko jesteś compaction
- jaki jest breakdown użycia
Jeśli ją ignorujesz, łatwo wchodzisz w długie sesje, które zaczynają działać coraz gorzej. Jeśli ją obserwujesz, możesz zawczasu:
- zacząć nową sesję
- zrobić
/compact - odciąć poboczny wątek
To proste, ale bardzo skuteczne.
Najbardziej praktyczny filtr
Jeśli chcesz szybko ocenić sytuację, zadaj sobie dwa pytania:
- Co VS Code już prawdopodobnie widzi automatycznie?
- Czego jeszcze nie widzi, a powinno zobaczyć?
To jest często lepsza rama niż zastanawianie się, jak “lepiej napisać prompt”.
Ćwiczenie praktyczne
Weź jedno pytanie o kod i zrób trzy warianty:
- Zadaj je przy otwartym pliku i aktywnym zaznaczeniu.
- Zadaj to samo pytanie bez zaznaczenia.
- Zadaj je jeszcze raz, ale ręcznie dołącz
#filealbo#selection.
Na końcu sprawdź:
- co najwyraźniej było implicit context
- co musiałeś dopiąć explicite
- czy różnica w odpowiedzi była większa niż różnica w samej treści promptu
Kluczowe wnioski
- VS Code składa prompt z wielu warstw, a nie tylko z ostatniej wiadomości użytkownika.
- Implicit context to to, co trafia do promptu automatycznie z bieżącej aktywności.
- Explicit context to wszystko, co dołączasz świadomie przez mentions, URL-e i context picker.
- Ask i Agent różnią się sposobem traktowania aktywnego pliku i kontekstu roboczego.
- Tool outputs i conversation history są częścią contextu, ale z czasem mogą też zacząć obniżać jakość odpowiedzi.
Co dalej
Skoro masz już model działania kontekstu, można przejść do najważniejszej lekcji praktycznej: jakie nawyki najczęściej niszczą jakość odpowiedzi Copilota i jak je zastąpić lepszym workflow.