Mentions: #file, #selection, #codebase, #web i @-mentions
Jak używać mentions do precyzyjnego wskazywania kontekstu w rozmowie z Copilotem: pliki, zaznaczenie, cały projekt, web i participanty typu @vscode.
Czego się nauczysz
- Jak działa różnica między
#-mentions a@-mentions - Kiedy użyć
#file,#selection,#codebasealbo#web/fetch - Jak przestać opisywać kontekst słowami i zacząć dołączać go jawnie
Najkrótsza droga do lepszej odpowiedzi
Jeśli z całego modułu masz wynieść jeden nawyk, to ten: nie opisuj kontekstu dookoła. Dołącz go.
To jest ogromna różnica.
Wielu ludzi pisze do Copilota coś w stylu: “mam tu taki plik z autoryzacją” albo “w selection mam funkcję, która parsuje dane”. Tylko że model nie widzi tego dlatego, że Ty o tym wspomniałeś. Model widzi to dopiero wtedy, gdy VS Code realnie doda ten fragment do promptu.
Właśnie po to są mentions i context picker.
# i @ rozwiązują dwa różne problemy
Dokumentacja VS Code rozdziela to bardzo sensownie.
#-mentions służą do dokładania kontekstu albo narzędzi@-mentions służą do przekazania pytania wyspecjalizowanemu participantowi
To nie jest kosmetyczna różnica.
Jeśli chcesz pokazać modelowi konkretny plik, folder, symbol, selection albo web content, zwykle zaczynasz od #.
Jeśli chcesz skierować pytanie do kogoś wyspecjalizowanego w konkretnej domenie, używasz @.
Najprostsze praktyczne rozróżnienie:
#odpowiada na pytanie: co ma zobaczyć?@odpowiada na pytanie: kto ma to obsłużyć?
#file i #selection to codzienny fundament
Najczęściej wystarczą Ci dwa najprostsze mechanizmy:
- konkretny plik
- konkretne zaznaczenie
To właśnie one najszybciej zamieniają ogólnik w realną analizę.
Jeśli pytasz: “co tu jest nie tak?”, dostaniesz zwykle odpowiedź szeroką albo zgadującą. Jeśli pytasz to samo, ale z #selection albo z dołączonym plikiem, nagle model odnosi się do realnego kodu.
W cheat sheecie VS Code widać to bardzo wyraźnie: Add Context pozwala dołączyć workspace files, symbols, current editor selection, terminal selection i inne źródła bez ręcznego opisywania ich w promptcie.
To jest dokładnie ten nawyk, który warto zbudować od początku.
#codebase nie oznacza “wrzuć całe repo do promptu”
To bardzo ważny detal, bo tu rodzi się dużo błędnych oczekiwań.
W docsach #codebase jest pokazane jako jawny sygnał: chcę, żeby AI potraktowało cały codebase jako przestrzeń wyszukiwania kontekstu.
To nie oznacza, że cały projekt trafia w jednej chwili do modelu. Oznacza, że VS Code ma szukać relewantnych fragmentów w workspace.
Czyli #codebase to bardziej:
- przeszukaj repo szerzej
- znajdź istotne miejsca
- dołącz to, co potrzebne
a nie:
- wyślij wszystko, co mamy na dysku
To ważne, bo jeśli potraktujesz #codebase jak magiczny skrót do pełnej wiedzy, będziesz oczekiwał od Copilota zbyt wiele.
#web/fetch i URL-e są po to, żeby nie pracować na starych danych
Dokumentacja pokazuje dwa sposoby pracy z webem:
- wkleić URL bezpośrednio w prompt
- użyć
#fetchalbo#web/fetch
To jest bardzo praktyczne, gdy temat dotyczy:
- aktualnej dokumentacji frameworka
- zmian API
- migracji do nowszej wersji
- release notes
I to jest znacznie lepszy ruch niż zakładanie, że model pamięta najnowszy stan dokumentacji z treningu.
W dodatku VS Code pyta o zgodę przy dostępie do zewnętrznych URL-i, więc to też naturalnie wpina się w bezpieczny workflow.
@-mentions to participanty, nie kontekst
To jest druga rzecz, którą wiele osób miesza.
@vscode i @terminal nie są po to, żeby dorzucić dodatkowy plik do promptu. One zmieniają specjalistę, który przejmuje pytanie.
Przykłady z oficjalnych docs są bardzo konkretne:
@vscode how to enable word wrapping@terminal what are the top 5 largest files in the current directory
To pokazuje sens participantów. Nie prosisz ogólnego asystenta o wszystko. Kierujesz pytanie tam, gdzie domena jest najbardziej czytelna.
Warto też zauważyć, że aktualne docs pokazują jako built-in participants przede wszystkim @vscode, @terminal i @github. To ważne, bo starsze mental modele typu “@workspace” nie opisują już obecnego produktu tak dobrze, jak #codebase plus konkretne participanty.
Context picker jest niedoceniany
Nie musisz wszystkiego pamiętać z głowy.
VS Code ma przycisk Add Context i Quick Pick, z którego możesz dołączać:
- pliki
- foldery
- symbole
- selection
- terminal output
- problems
- inne dostępne context items
To jest szczególnie wygodne na początku, gdy jeszcze nie pamiętasz, które mentiony istnieją i jak dokładnie się nazywają.
Lepszy workflow to nie jest pamięciowe opanowanie każdej komendy. Lepszy workflow to szybkie dokładanie właściwego kontekstu najtańszą drogą.
Drag and drop też jest częścią workflow
Docs wspominają też o czymś bardzo praktycznym: możesz przeciągać pliki, foldery i problemy do chatu.
To może brzmieć banalnie, ale przy pracy na realnym projekcie jest często szybsze niż ręczne wypisywanie nazw.
Szczególnie dobrze działa to wtedy, gdy:
- już masz otwarty Explorer albo Search
- chcesz szybko porównać dwa pliki
- chcesz dołączyć konkretny problem z Problems panel
To kolejny przykład na to, że kontekstu nie trzeba opisywać. Kontekst trzeba podpiąć.
Jak myśleć o mentions praktycznie
Prosty filtr wygląda tak:
- pytanie o konkretny fragment:
#selection - pytanie o konkretny plik albo symbol:
#filealbo symbol przez picker - pytanie o repo szerzej:
#codebase - pytanie o zewnętrzną dokumentację: URL albo
#fetch/#web/fetch - pytanie domenowe o terminal lub VS Code:
@terminalalbo@vscode
To wystarczy, żeby większość rozmów z Copilotem stała się zauważalnie konkretniejsza.
Ćwiczenie praktyczne
Wybierz jedno pytanie o swój projekt i zrób cztery warianty:
- Zadaj je bez dodatkowego kontekstu.
- Powtórz je z
#selectionalbo konkretnym plikiem. - Powtórz je z
#codebase. - Jeśli temat dotyczy narzędzia albo dokumentacji, użyj jeszcze
@terminal,@vscodealbo#web/fetch.
Porównaj:
- czy odpowiedź zaczęła odwoływać się do realnych nazw i plików
- czy mniej zgaduje
- czy szybciej przechodzi do konkretu
To ćwiczenie zwykle bardzo szybko pokazuje, że jakość rozmowy zależy nie od piękna promptu, tylko od jakości dołączonego kontekstu.
Kluczowe wnioski
#-mentions służą głównie do dokładania kontekstu i narzędzi, a@-mentions do kierowania pytania do participantów.#selectioni konkretne pliki są najtańszą drogą do bardziej trafnych odpowiedzi.#codebaseoznacza szerokie wyszukiwanie w repo, a nie pełny zrzut całego projektu do modelu.- URL-e i
#fetchpomagają pracować na aktualnej dokumentacji, zamiast na domysłach modelu. - Context picker i drag-and-drop są częścią dobrego workflow, nie tylko dodatkiem do UI.
Co dalej
Skoro wiesz już, jak jawnie dokładać kontekst, pora zrozumieć, jak VS Code szuka go w repo automatycznie, czyli czym naprawdę jest workspace indexing.