Czym są hooki w GitHub Copilot
Wprowadzenie do systemu hooków Copilot - jak pozwalają uruchamiać automatyczne akcje przed i po operacjach AI bez opuszczania VS Code.
Czego się nauczysz
- Czym hook różni się od promptu, instructions i zwykłego tool approval
- Jakie momenty cyklu życia agenta można przechwycić hookiem
- Kiedy hooki są świetnym narzędziem, a kiedy są tylko zbędną komplikacją
Hook to nie jest “sprytniejszy prompt”
To najważniejsze rozróżnienie na start.
Instructions i prompt files wpływają na to, jak agent myśli i jak interpretuje zadanie. Hook działa inaczej: uruchamia Twój kod w konkretnym momencie pracy agenta.
To znaczy, że hook nie prosi modelu o lepsze zachowanie. Hook wymusza zachowanie.
Jeśli chcesz, żeby agent zawsze uruchamiał formatter po edycji pliku, to instrukcja może pomóc, ale nie daje gwarancji. Hook daje.
Dlaczego hooki w ogóle istnieją
Aktualna dokumentacja VS Code podaje kilka bardzo praktycznych powodów:
- egzekwowanie polityk bezpieczeństwa
- automatyzacja jakości kodu
- budowanie audit trail
- wstrzykiwanie dodatkowego kontekstu do sesji
- kontrola approvali dla narzędzi
Wspólny mianownik jest prosty: są rzeczy, których nie chcesz zostawiać tylko dobrej woli modelu.
Hooki siedzą w cyklu życia sesji agenta
VS Code obsługuje osiem eventów hooków:
SessionStartUserPromptSubmitPreToolUsePostToolUsePreCompactSubagentStartSubagentStopStop
Nie wszystkie są równie ważne na początku.
W praktyce najczęściej myślisz o trzech grupach:
- start sesji i wstrzykiwanie kontekstu
- kontrola działań narzędzi przed i po wykonaniu
- zamknięcie sesji albo subagenta
To wystarcza, żeby zbudować większość sensownych automatyzacji.
Gdzie hooki są przechowywane
Dokumentacja pokazuje kilka lokalizacji:
- workspace:
.github/hooks/*.json - user level: hooki prywatne w profilu użytkownika
- kompatybilne lokalizacje Claude Code
- hooki osadzone w custom agencie
- hooki dostarczane przez plugin
To ważne, bo hook nie musi być tylko lokalnym eksperymentem. Może być:
- polityką repozytorium
- osobistym workflow developera
- częścią konkretnego agenta
- elementem większego pluginu
Minimalny model działania jest prosty
Hook dostaje przez stdin ustrukturyzowany JSON z kontekstem zdarzenia. Może też zwrócić JSON na stdout, żeby wpłynąć na zachowanie agenta.
To oznacza, że hook może:
- niczego nie zmieniać i tylko logować
- przekazać dodatkowy komunikat do modelu
- zablokować operację
- wymusić
ask,allowalbodenydla wywołania narzędzia
To jest pełnoprawna warstwa kontroli, a nie dekoracja.
Hook vs instructions vs approval
Najprostszy filtr decyzyjny wygląda tak:
- instructions: gdy chcesz ustawić regułę zachowania
- approval: gdy chcesz podjąć decyzję ręcznie w danym momencie
- hook: gdy chcesz zautomatyzować decyzję albo akcję deterministycznie
Przykład:
- instructions mówią agentowi, żeby uważał na wrażliwe pliki
- approval pozwala Ci ręcznie kliknąć Allow albo Deny
- hook sprawdza parametry wywołania i sam blokuje niebezpieczny przypadek
Hooki są mocne, ale nie darmowe
To nie jest funkcja, którą warto włączać tylko dlatego, że brzmi zaawansowanie.
Hook ma sens, gdy:
- masz powtarzalny problem jakościowy albo bezpieczeństwa
- chcesz zmniejszyć liczbę ręcznych kliknięć
- potrzebujesz spójności między sesjami i członkami zespołu
Hook nie ma sensu, gdy:
- reguła jest rzadko potrzebna
- prościej byłoby zawęzić toolset
- automatyzacja jest bardziej skomplikowana niż problem, który rozwiązuje
Trzeba też znać cenę tej automatyzacji
Docs bardzo uczciwie podkreślają, że hooki uruchamiają shell commands z uprawnieniami VS Code.
To oznacza dwie rzeczy:
- hook może realnie przyspieszyć pracę
- hook może też powiększyć promień błędu albo nadużycia
Dlatego hooki najlepiej traktować jak kod infrastrukturalny dla agenta: wersjonowany, czytelny, świadomie ograniczony.
Kluczowe wnioski
- Hooki to deterministyczna warstwa automatyzacji i kontroli nad agentem.
- Nie zastępują promptów ani instrukcji, tylko uzupełniają je tam, gdzie potrzebna jest gwarancja działania.
- Najważniejsze eventy na start to zwykle
PreToolUse,PostToolUsei zdarzenia początku albo końca sesji. - Hooki mają sens tylko wtedy, gdy rozwiązują realny, powtarzalny problem.
Co dalej
Skoro masz już model działania hooków, następny krok jest praktyczny: jak zbudować konkretne pre i post akcje do formatowania, testów, lintowania i blokowania ryzykownych operacji.