Lekcja 4 · Delegowanie zamiast płacenia za wszystko naraz

Subagenci: osobne okno kontekstu

W glosariuszu subagent jest zdefiniowany jako "wyspecjalizowany asystent w osobnym, świeżym oknie kontekstu". Ta lekcja pokazuje, co dokładnie to znaczy w praktyce: co subagent widzi, co wraca do Ciebie, i kiedy delegowanie zadania faktycznie oszczędza tokeny, a kiedy tylko dodaje opóźnienie.

Polecane źródło Create custom subagents — Claude Code Docs — pełna specyfikacja subagentów wbudowanych i własnych, w tym forków.

Co dokładnie wraca do głównej rozmowy

Subagent startuje z pustym oknem kontekstu — nie widzi historii Twojej rozmowy, plików, które już przeczytałeś, ani skilli, które już wywołałeś. Dostaje tylko własny system prompt i wiadomość zlecającą zadanie, którą pisze Claude. Po zakończeniu pracy do głównej rozmowy wraca wyłącznie streszczenie wyniku — cały research, logi, przeczytane pliki zostają w kontekście subagenta i znikają razem z nim.

Kluczowy wniosek: to dokładnie ten sam mechanizm oszczędności, co przenoszenie treści ze skilla — płacisz w głównym oknie tylko za wynik, nie za drogę do niego. Różnica: skill oszczędza na tym, co ładuje się na wejściu; subagent oszczędza na tym, co wraca na wyjściu.

Trzy wbudowane subagenty

ExplorePlangeneral-purpose
ModelHaiku (szybki)dziedziczy z rozmowydziedziczy z rozmowy
Narzędziatylko odczyttylko odczytwszystkie
Do czegoszukanie i analiza koduresearch w trybie planowaniazadania wieloetapowe ze zmianami
CLAUDE.md i git statuspomijapomijaładuje

Explore i Plan celowo pomijają CLAUDE.md i status gita — to research jednorazowy, ma być tani i szybki. Ty (w głównej rozmowie) i tak czytasz ich wynik z pełnym kontekstem CLAUDE.md, więc te reguły nie muszą docierać do subagenta. Wyjątek: jeśli reguła musi dotrzeć do subagenta (np. "pomiń katalog vendor/"), trzeba ją powtórzyć wprost w zleceniu.

Kiedy delegować, kiedy zostać w głównej rozmowie

Zostań w głównej rozmowie, gdy…Deleguj do subagenta, gdy…
Zadanie wymaga częstego dialogu i doprecyzowańPraca produkuje dużo tekstu, którego nie potrzebujesz później
Kolejne fazy dzielą dużo wspólnego kontekstuChcesz wymusić ograniczenia narzędzi (np. tylko odczyt)
Liczy się szybkość odpowiedziZadanie jest samodzielne i da się streścić w wyniku

Subagent startuje "na zimno", więc dla szybkiej, punktowej zmiany w toczącej się rozmowie zwykle nie warto — narzut na zebranie kontekstu od zera przewyższa oszczędność.

Jak wywołać subagenta

Claude deleguje automatycznie, gdy treść zadania pasuje do pola description subagenta. Możesz też wymusić wybór:

SposóbEfekt
Nazwij subagenta w zdaniu ("użyj Explore, żeby…")Claude zwykle deleguje, ale decyduje samo
@nazwa-subagentagwarantuje, że użyty zostanie ten konkretny subagent
claude --agent nazwacała sesja działa jako ten subagent (prompt, narzędzia, model)

Własny subagent projektowy

Podobnie jak skille, subagenty projektowe mieszkają w .claude/agents/nazwa.md i wersjonują się w git, żeby zespół dostał ten sam zestaw. Wymagane są tylko dwa pola frontmatteru:

PoleDo czego służy
nameUnikalny identyfikator (małe litery, myślniki)
descriptionKiedy Claude ma delegować do tego subagenta — jedyne pole, które Claude widzi przed wywołaniem
toolsOpcjonalnie: lista dozwolonych narzędzi (bez tego — dziedziczy wszystkie)
modelOpcjonalnie: sonnet, opus, haiku albo inherit (domyślne)

Reszta pliku to markdown — system prompt subagenta, dokładnie tak jak treść SKILL.md jest promptem skilla.

Fork: wyjątek od reguły "pusty kontekst"

Fork (/fork) to jedyny subagent, który dziedziczy całą dotychczasową rozmowę zamiast zaczynać od zera — widzi ten sam system prompt, narzędzia i historię, co główna sesja. Dzięki temu jego pierwsze zapytanie współdzieli prompt cache z główną sesją, więc jest tańszy niż zwykły subagent do zadań wymagających tego samego tła. Cena: traci izolację wejścia, którą dają nazwane subagenty.

Zadanie praktyczne — zdeleguj prawdziwe wyszukiwanie

W tej samej rozmowie, poproś mnie wprost, np.:

Użyj subagenta Explore, żeby znaleźć wszystkie miejsca w tym repo, gdzie wspominamy o hookach

  1. Obserwuj, że wynik, który dostajesz, to streszczenie — nie surowa lista wszystkich przeszukanych plików.
  2. Uruchom /context zaraz po. Sprawdź, czy szczegóły wyszukiwania (nie tylko wynik) wylądowały w Twoim głównym oknie.
  3. Porównaj z tym, co by się stało, gdybyś poprosił mnie o to samo bez słowa "subagent" — czy zrobiłbym to sam w głównej rozmowie?

Sprawdź się

1. Subagent (nie fork) kończy pracę po przeszukaniu 40 plików. Co trafia do Twojej głównej rozmowy?

Do głównego okna wraca wyłącznie streszczenie, które subagent formułuje na koniec. Cały research — przeczytane pliki, wywołania narzędzi — zostaje w jego własnym, osobnym kontekście.

2. Które subagenty wbudowane pomijają CLAUDE.md i status gita przy starcie?

Explore i Plan celowo pomijają CLAUDE.md i git status, żeby research był tani i szybki. general-purpose oraz subagenty własne ładują je tak samo, jak główna rozmowa.

3. Piszesz szybką, jednolinijkową poprawkę w trakcie trwającej dyskusji o kodzie. Co zrobisz?

Subagent startuje na zimno, więc dla szybkiej zmiany w toczącej się dyskusji narzut na zebranie kontekstu od zera przewyższa oszczędność. Delegowanie opłaca się przy samodzielnych, obszernych zadaniach.

4. Które pola frontmatteru są wymagane, żeby zdefiniować własny subagent w .claude/agents/?

Tylko name i description są obowiązkowe. tools i model to pola opcjonalne — bez nich subagent dziedziczy wszystkie narzędzia i model z głównej rozmowy.

5. Czym różni się fork od zwykłego, nazwanego subagenta pod względem kosztu?

Fork dziedziczy cały system prompt i historię głównej sesji, więc jego pierwsze zapytanie trafia w ten sam prompt cache — to czyni go tańszym niż subagent budowany od zera do zadań wymagających tego samego tła.
Coś niejasne? Zapytaj mnie wprost — mogę pokazać żywy przykład delegowania w tej rozmowie, albo przejść dalej do hooków.
← Lekcja 3: Skille Następna lekcja: Hooki — automatyzacja, która nie pyta modelu o zdanie →