Paweł Łukasiewicz: programista blogger
Paweł Łukasiewicz
2026-03-03
Paweł Łukasiewicz: programista blogger
Paweł Łukasiewicz
2026-03-03
Udostępnij Udostępnij Kontakt
Wprowadzenie

Zanim zaczniesz cokolwiek konfigurować w GitHub Copilot, warto zrozumieć z czego w ogóle składa się ten ekosystem. W dokumentacji szybko natrafiasz na trzy pojęcia: Agents, Skills i Instructions. Brzmi prosto, ale w praktyce ludzie często mylą te pojęcia albo używają ich zamiennie – a to trzy zupełnie różne narzędzia, które pełnią różne role.

W tym wpisie wyjaśniam każde z nich, pokazuję jak się do siebie mają i – co najważniejsze – kiedy po które sięgać. Na końcu znajdziesz tabelkę porównawczą, którą możesz zachować jako ściągawkę.

Oryginalna dokumentacja, na której bazuje ten wpis: What are Agents, Skills, and Instructions – Awesome GitHub Copilot Learning Hub.

Agents – wyspecjalizowany asystent

Agent to plik konfiguracyjny (*.agent.md), który opisuje wyspecjalizowanego asystenta. Możesz myśleć o nim jak o pracowniku z określonym profilem kompetencji – "ekspert od Terraform", "specjalista od feature flag w LaunchDarkly", "senior .NET developer z wiedzą o naszej architekturze".

Konkretnie, plik agenta określa:

  • jakie zadania agent obsługuje i w czym się specjalizuje
  • z jakich narzędzi i serwerów MCP może korzystać
  • jakie ma instrukcje dotyczące stylu rozmowy i ograniczeń

W VS Code możesz przełączać się między agentami w panelu Agents albo przypisywać konkretnego agenta do issue na GitHubie. Zamiast za każdym razem tłumaczyć Copilotowi "hej, pracuję z .NETem, używamy czystej architektury, testy piszemy w xUnit" – po prostu uruchamiasz odpowiedniego agenta, który to wszystko już wie.

AGENT Kiedy po niego sięgać?
  • Masz powtarzający się workflow wymagający głębokiej integracji z narzędziami (np. zawsze pracujesz z tym samym stosem technologicznym)
  • Chcesz, żeby Copilot proaktywnie wykonywał komendy lub pobierał kontekst przez MCP bez Twojego każdorazowego wskazywania
  • Potrzebujesz guardrails na poziomie persony – zasad, które mają obowiązywać przez całą sesję kodowania
🌟 Przykład z życia – .NET developer

Wyobraź sobie agenta dotnet-senior.agent.md, który wie że: używasz .NET 9, architektura to Clean Architecture z CQRS, testy w xUnit + FluentAssertions, linter to Roslynator. Za każdym razem gdy otwierasz VS Code i włączasz tego agenta – Copilot operuje z pełnym kontekstem Twojego projektu, bez konieczności wklejania tego samego opisu przy każdej sesji.

Skills – wielokrotnego użytku, samowystarczalne

Skill to samowystarczalny folder z możliwościami, które Copilot może załadować gdy uzna je za potrzebne. Każdy skill mieszka w swoim katalogu i zawiera plik SKILL.md – plus opcjonalne zasoby: dokumenty referencyjne, szablony, skrypty.

Plik SKILL.md definiuje:

  • nazwę – używaną jako komenda /nazwa w VS Code Chat i do automatycznego wykrywania przez agenty
  • opis – który mówi agentom i użytkownikom kiedy skill jest relevant
  • szczegółowe instrukcje jak skill ma być wykonany
  • odniesienia do bundlowanych zasobów – skryptów, szablonów, dokumentów
🔍 Skills zastąpiły stare prompt files (*.prompt.md)

Jeśli pamiętasz stary pattern z plikami *.prompt.md – skills to ich ewolucja. Oto co zyskałeś na przejściu:

Stare prompt files Skills (nowe)
Uruchamianie Tylko ręcznie przez slash command ✅ Automatycznie przez agenty + ręcznie
Zasoby Tylko tekst instrukcji ✅ Skrypty, szablony, dokumenty, dane
Przenośność Tylko GitHub Copilot ✅ Działa na wielu systemach (open spec)
Wykrywalność Niewidoczne dla agentów ✅ Agenty same je odkrywają i uruchamiają

Skills działają według otwartego standardu Agent Skills specification – co oznacza że skill napisany dla GitHub Copilot zadziała też w Claude Code, Codex i innych kompatybilnych systemach. To inwestycja która się nie deprecjonuje razem z konkretnym narzędziem.

SKILL Kiedy po niego sięgać?
  • Chcesz ustandaryzować odpowiedź Copilota na powtarzające się zadanie (np. "zawsze generuj testy według naszego wzorca")
  • Do wykonania zadania potrzebujesz bundlowanych zasobów – szablonów, schematów, skryptów
  • Chcesz żeby agenty same wykrywały i uruchamiały tę zdolność bez Twojego wskazywania
  • Wolisz sam prowadzić rozmowę, ale z bogatym kontekstem i guardrails pod spodem
🌟 Przykład z życia – skill do generowania testów

Skill o nazwie generate-unit-tests z opisem "Use when asked to write unit tests for C# code". W folderze skilla ląduje SKILL.md z instrukcją jak pisać testy (xUnit, FluentAssertions, wzorzec AAA, mockowanie przez NSubstitute) plus templates/test-template.cs jako punkt startowy. Teraz gdy napisze "napisz testy do tej klasy" – Copilot automatycznie ładuje skilla i generuje testy zgodnie z Twoimi wzorcami, nie generycznymi przykładami z internetu.

Instructions – trwałe tło dla każdej sesji

Instructions (*.instructions.md) to tło – kontekst który Copilot czyta zawsze, gdy pracuje na pasujących plikach. Nie uruchamiasz ich ręcznie, nie trzeba ich aktywować. Są po prostu zawsze tam.

Typowe zastosowania:

  • standardy kodowania i style guide – konwencje nazewnictwa, strategia testowania, formatowanie
  • wskazówki specyficzne dla frameworka – "w Angular używaj standalone components", "w .NET nie wyłączaj analizatorów Roslynatora"
  • reguły specyficzne dla repozytorium – "nie commituj sekretów", "feature flagi muszą być w katalogu flags/", "każda nowa encja wymaga migracji EF Core"

Instructions możesz scopować globalnie, per język programowania, albo per katalog za pomocą glob patternów. Dzięki temu Copilot automatycznie rozumie Twój engineering playbook – bez konieczności wklejania kontekstu przy każdej rozmowie.

⚠️ Ważna różnica: Instructions vs Skills

Łatwo je pomylić, bo oba pliki zawierają instrukcje tekstowe. Różnica jest jednak fundamentalna: Instructions działają pasywnie i zawsze – Copilot je czyta niejako w tle, jako kontekst. Skill jest aktywowany – albo ręcznie przez slash command, albo gdy agent uzna go za odpowiedni do zadania. Instructions to zasady, Skills to zdolności.

INSTRUCTION Kiedy po nie sięgać?
  • Potrzebujesz trwałych wytycznych obowiązujących przez wiele sesji i wielu developerów
  • Kodujesz decyzje architektoniczne lub wymagania compliance – rzeczy które zawsze muszą być spełnione
  • Chcesz żeby Copilot rozumiał wzorce projektu bez każdorazowego wklejania kontekstu na początku sesji
🌟 Przykład z życia – instructions dla projektu .NET

Plik dotnet.instructions.md scopowany na pliki **/*.cs zawiera: "Projekt używa Clean Architecture. Nigdy nie dodawaj logiki biznesowej do kontrolerów. Używaj wyłącznie rekordów (record types) dla DTOs. Każda metoda publiczna musi mieć XML doc comment. Testy piszemy w xUnit z FluentAssertions." Teraz każda sesja w plikach C# automatycznie startuje z tym kontekstem – bez żadnego dodatkowego wysiłku z Twojej strony.

Jak te trzy warstwy działają razem?

Dokumentacja opisuje to jako uzupełniające się warstwy i to dobre ujęcie. Pomyśl o tym w ten sposób:

🔍 Trzy warstwy – od ogółu do szczegółu

1. Instructions – fundament. Trwałe zasady, zawsze aktywne. "Tak zawsze robimy w tym projekcie."
2. Skills – możliwości na żądanie. Aktywowane gdy potrzebne. "Tak wykonujemy to konkretne zadanie."
3. Agents – wyspecjalizowana persona. Łączy narzędzia i instrukcje w jeden spójny asystent. "To jest ekspert który obsługuje ten typ problemów."

Połączenie wszystkich trzech daje naprawdę mocne efekty:

  • Spójny onboarding nowych developerów – każdy dostaje tego samego Copilota z tym samym kontekstem projektu od pierwszego dnia
  • Powtarzalne zadania ops z minimalnym przełączaniem kontekstu – agent wie co robić, skill wie jak to zrobić
  • Dostosowane doświadczenie dla wyspecjalizowanych domen – security, infrastruktura, data science – każda dziedzina może mieć swojego agenta
🌟 Przykład: kompletny setup dla projektu e-commerce w .NET

Instructions: dotnet.instructions.md – zasady czystego kodu, Clean Architecture, zakaz logiki w kontrolerach.

Skills:

  • generate-unit-tests – generuje testy w xUnit według wzorca AAA z przykładami z tego projektu
  • create-ef-migration – tworzy migrację EF Core, sprawdza czy nie brakuje indeksów, dodaje rollback
  • write-api-endpoint – scaffolduje endpoint z validacją FluentValidation i obsługą błędów
Agent: dotnet-senior.agent.md – łączy powyższe z integracją MCP do bazy danych i repozytorium GitHub. Wie o całej architekturze projektu i proaktywnie korzysta ze skilli gdy widzi potrzebę.

Tabelka porównawcza – kiedy co stosować?

Poniżej zebrałem kluczowe różnice w jednej tabelce. Możesz ją zachować jako ściągawkę gdy będziesz decydować po co sięgnąć w konkretnej sytuacji.

Cecha INSTRUCTION SKILL AGENT
Format pliku *.instructions.md folder + SKILL.md *.agent.md
Kiedy aktywny? Zawsze, pasywnie w tle Na żądanie lub wykryty przez agenta Gdy go wybierzesz / przypisano do sesji
Zakres działania Wiele sesji, wiele plików Konkretne, powtarzalne zadanie Cała sesja / workflow
Może zawierać skrypty / zasoby? ❌ Nie ✅ Tak (szablony, skrypty, dokumenty) ✅ Tak (przez powiązane skille i MCP)
Integracja z narzędziami / MCP? ❌ Nie Pośrednio przez skrypty ✅ Tak – to główna siła agentów
Przenośność między systemami AI Częściowa ✅ Tak (open standard) Zależy od platformy
Typowe zastosowanie Standardy kodu, zasady architektury, compliance Generowanie testów, scaffolding, migracje Ekspert domenowy, zautomatyzowany workflow
Gdzie mieszka w repo? .github/instructions/ .github/skills/ .github/agents/
💪 Zadanie dla Ciebie – zanim przejdziesz dalej

Pomyśl o swoim aktualnym projekcie i odpowiedz na te trzy pytania:

  1. Jakie zasady kodowania wklejasz ręcznie na początku każdej sesji z Copilotem? → To są Twoje przyszłe Instructions.
  2. Jakie powtarzające się zadania wykonujesz regularnie i zawsze w ten sam sposób? → To są Twoje przyszłe Skills.
  3. Czy masz różne "tryby pracy" – raz pracujesz przy backendzie, raz przy infrastrukturze, raz robisz security review? → To są Twoi przyszli Agents.

W kolejnych wpisach cyklu dowiesz się jak każdą z tych odpowiedzi zamienić w działający plik konfiguracyjny.

Podsumowanie

Trzy pojęcia, trzy różne role:

  • Instructions – trwałe tło, pasywne zasady, zawsze aktywne. Kodujesz w nich "jak zawsze robimy w tym projekcie".
  • Skills – samowystarczalne zdolności na żądanie. Bundlują instrukcje z zasobami i mogą być wykrywane automatycznie przez agenty.
  • Agents – wyspecjalizowane persony łączące narzędzia, MCP i instrukcje w jeden spójny asystent na czas sesji lub workflow.

Wszystkie trzy uzupełniają się nawzajem i dopiero razem dają pełnię możliwości. Nie musisz wdrażać wszystkiego naraz – zacznij od Instructions (najłatwiejsze do stworzenia), potem dodaj pierwsze Skills, a agenty zostawić na czas gdy poczujesz potrzebę głębszej integracji z narzędziami.

W kolejnym wpisie wchodzimy głębiej w temat który jest podstawą wszystkiego: jak Copilot rozumie i przetwarza kontekst – skąd bierze informacje, co do niego trafia, a czego nie widzi. Bez tej wiedzy każda konfiguracja będzie trochę strzelaniem na ślepo.