GitHub Copilot w VSCode od wersji 1.101 obsługuje tzw. custom chat modes, które pozwalają przekształcić Copilota w eksperta wyspecjalizowanego w konkretnej dziedzinie. Możesz go skonfigurować, by zachowywał się jak mentor, debuger, code reviewer czy Twój własny prywatny nauczyciel.
Co to jest chatmode?
Chatmode jest to kolejny tryb Copilota (obok Ask, Edit, Agent), który może być spersonalizowany pod Twoje potrzeby. Możesz zdefiniować w nim:
- rolę i zachowanie Copilota – kim ma być, np. ekspertem od danej technologii
- dostępne narzędzia – jakich narzędzi może użyć, np przeszukiwanie kodu, uruchamianie komend, wyszukiwanie w sieci
- styl wypowiedzi – zasady udzielania odpowiedzi, ich format, długość, styl.
Chatmode konfiguruje się jako plik markdown np. .github/chatmodes/<NAZWA>.chatmode.md i automatycznie pojawia się w pluginie Copilot Chat w VS Code.
Chatmode jako expert od Playwrighta
Od jakiegoś czasu mocno interesuję się zarówno Copilotem, jak i Playwrightem. Często zdarza mi się szukać informacji o tym, jak coś skonfigurować, jak działają poszczególne funkcje, albo jakie są dobre praktyki przy pisaniu testów. Dlatego stworzyłem swój własny chatmode, który działa jako mój osobisty ekspert od Playwrighta.
Gdy pytam AI o pomoc, zależy mi na tym, aby odpowiedzi były rzetelne i nieoparte na halucynacjach. Bardzo ważne jest dla mnie, by móc sprawdzić informacje u źródła. Dlatego konfigurując swojego asystenta, poprosiłem go, aby zawsze odwoływał się do dokumentacji. Dokumentacja pobierana jest ze strony context7.com, a jej format jest zoptymalizowany pod LLMy.
Chcę też, by odpowiedzi były spersonalizowane – nie ogólne, ale dopasowane do mojego projektu i konkretnego kontekstu, nad którym aktualnie pracuję. Ten sposób pracy pozwala mi szybciej uczyć się i rozumieć, jak Playwright działa na konkretnych przykładach z mojego kodu.
Przykład: Tryb „Playwright Expert”
Poniżej przykład konfiguracji. Zawiera opis (description), narzędzia, które może użyć Copilot (tools) oraz opis trybu tego chata.
Plik: .github/chatmodes/playwright-expert.chatmode.md
---
description: 'Playwright Expert'
tools: ['codebase', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'search', 'searchResults', 'testFailure']
---
# Playwright Expert
## Rola
Jesteś ekspertem od programowania w TypeScript i automatyzacji testów z użyciem Playwright. Twoim zadaniem jest wyjaśnianie zagadnień związanych z TypeScript oraz Playwright, opierając się na najnowszych informacjach i najlepszych praktykach.
## Zasady pracy z dokumentacją
- **Zawsze sięgaj do dokumentacji** za pomocą `#fetch https://context7.com/microsoft/playwright/llms.txt?topic=<TEMAT>`
- Jeżeli znajdziesz odpowiedź w dokumentacji, użyj jej jako podstawy do odpowiedzi
- Dodawaj cytaty z dokumentacji, aby potwierdzić swoje odpowiedzi
- Dołączaj linki do dokumentacji, aby użytkownik mógł samodzielnie sprawdzić szczegóły
## Podejście do rozwiązywania problemów
- **Kontekst przede wszystkim**: Jeśli użytkownik prosi o pomoc w rozwiązaniu problemu, zawsze pytaj o kontekst przed zaproponowaniem rozwiązania
- Upewnij się, że rozumiesz problem i kontekst, zanim zaczniesz pisać kod
- Jeśli użytkownik nie poda kontekstu, poproś o więcej informacji
## Styl odpowiedzi
- **Wyjaśniaj mechanizmy**: Tłumacz jak działają mechanizmy w Playwright i TypeScript
- **Nie pisz kodu automatycznie**: Pisz kod tylko wtedy, gdy użytkownik wyraźnie o to poprosi
- **Bądź uczciwy**: Jeśli nie znasz odpowiedzi, powiedz, że nie wiesz i zaproponuj, aby użytkownik poszukał informacji w dokumentacji lub na Stack OverflowPo dodaniu pojawi się nowy tryb „playwright-expert”:

Aktualna dokumentacja
Zadając Copilotowi pytania chcielibyśmy, aby jego odpowiedzi bazowały na aktualnej dokumentacji i miał najświeższą wiedzę dotyczącą wszystkich funkcjonalności, w tym najnowszych. Jak go do tego zmusić?
Copilot używa narzędzia fetch, aby pobrać zasoby z internetu. Możemy wykorzystać go do tego, aby dynamicznie pobrać dokumentację. Może to być np. zoptymalizowana pod LLMy dokumentacja z portalu context7.com. Dzięki czemu odpowiedzi są trafniejsze i aktualne. Format zapytań jest prosty:
#fetch https://context7.com/microsoft/playwright/llms.txt?topic=<SZUKANY TEMAT>Copilot potrafi sam wyszukać w dokumentacji Playwright w Context7 konkretne fragmenty, które są analizowane przez LLMa. Dzięki temu zawężeniu liczba tokenów jest ograniczona i nie przekraczamy limitu kontekstu.
Można też się pokusić o użycie MCP od Context7: https://github.com/upstash/context7
Scenariusz użycia
Poniżej kilka przykładów jak wykorzystać asystenta. Zachęcam do eksperymentowania. 🙂
Jak lokalizować elementy na stronie za pomocą playwright?

Jak ustawić timeout na teście?

Tryb Ask vs Tryb Playwright-Expert
Aby faktycznie zobaczyć moc naszego trybu chatu spróbujmy porównać go z trybem Ask. Spróbujmy zapytać Copilota o jakąś nową funkcjonalność w Playwright.
Patrząc na release notes https://playwright.dev/docs/release-notes widzimy, że w wersji 1.54 została dodana opcja noSnippets:

Zacznijmy od zapytania o nią w trybie Ask:

Odpowiedź nie pokrywa się z dokumentacją. Cutoff date modelu jest starsze niż data wprowadzenia tej funkcjonalności przez Playwright, a więc LLM nie ma o niej pojęcia i w tym wypadku halucynuje.
Spróbujmy użyć teraz naszego trybu Playwright-Expert:

Widać, że Copilot sięga do dokumentacji. Dostajemy poprawną odpowiedź.
Podsumowanie
Tworząc własny chatmode, możesz zamienić Copilota w wyspecjalizowanego eksperta. W moim przykładzie pokazałem, jak skonfigurować asystenta TypeScript + Playwright, który:
- działa kontekstowo w edytorze VS Code
- korzysta z aktualnej dokumentacji z Context7
- edukuje i wspiera użytkownika zgodnie z najlepszymi praktykami.