Blog JSystems - uwalniamy wiedzę!

Szukaj

Claude Code

Subagent nie zwraca wyniku - jak przekazać dane

W skrócie

  • Delegujesz zadanie do subagenta w Claude Code, a do głównej rozmowy wraca nic albo lakoniczny komunikat zamiast konkretnych danych.
  • Subagent działa we własnym, odizolowanym oknie kontekstu i przekazuje wyżej wyłącznie swoją ostatnią wiadomość tekstową - główny agent nie widzi tego, co subagent przeczytał ani jego kroków pośrednich.
  • Rozwiązanie: w opisie subagenta i w poleceniu jawnie zażądaj, żeby zwrócił potrzebne informacje w wyniku, a duże dane przekazuj przez pliki na dysku.

Subagenci to jeden z najmocniejszych mechanizmów Claude Code, oficjalnego narzędzia CLI od Anthropic do programowania z AI. Pozwalają zlecić fragment pracy (przegląd kodu, przeszukanie repozytorium, research) osobnemu agentowi, żeby nie zaśmiecać głównej rozmowy. Problem pojawia się, gdy subagent kończy pracę, a Ty w głównym oknie dostajesz zdawkowe "gotowe" bez żadnych ustaleń. To nie jest błąd - to sposób, w jaki subagenci są zaprojektowani, i trzeba go zrozumieć, żeby dobrze przekazywać dane.

Jak to wygląda w praktyce

Prosisz Claude Code o użycie subagenta, na przykład: "użyj agenta code-reviewer, żeby sprawdził moduł autoryzacji". Subagent rusza, w panelu widzisz, że czyta pliki i coś analizuje, po czym w głównej rozmowie ląduje jedno zdanie w stylu "Przejrzałem moduł, wygląda dobrze". Nie ma listy znalezionych problemów, nie ma numerów linii, nie ma konkretów. Gdy próbujesz dopytać "a co dokładnie znalazłeś?", główny agent nie potrafi odpowiedzieć, bo sam tego nie wie - dostał tylko to jedno zdanie. Wygląda to tak, jakby subagent "zgubił" swoją pracę.

Dlaczego Claude Code tak działa

Każdy subagent uruchamia się w całkowicie osobnym oknie kontekstu, z własnym promptem systemowym i własnym zestawem uprawnień. To celowe: dzięki temu cała eksploracja i szczegóły zostają poza główną rozmową i nie zjadają jej kontekstu. Konsekwencja jest jednak taka, że główny agent nie widzi historii subagenta ani plików, które ten przeczytał. Do głównej rozmowy wraca tylko jedna rzecz - finalna wiadomość tekstowa subagenta, czyli jego podsumowanie. Jeśli subagent nie zawrze konkretów w tej ostatniej wiadomości, te konkrety po prostu przepadają razem z jego kontekstem. Subagent nie dostaje też historii Twojej głównej rozmowy ani plików, które Ty wcześniej otworzyłeś, więc musi dostać w poleceniu wszystko, czego potrzebuje.

Jak to rozwiązać krok po kroku

  1. W poleceniu dla subagenta jawnie napisz, co ma znaleźć się w wyniku, na przykład: "zwróć listę problemów z numerami linii i krótkim uzasadnieniem każdego". Traktuj wynik subagenta jak raport, który sam musi napisać.
  2. Jeśli subagent ma własną definicję (plik w .claude/agents/), dopisz w jego opisie i instrukcji, że kończy pracę zwięzłym, ale kompletnym podsumowaniem ustaleń - to reguła, którą będzie stosował w każdym wywołaniu.
  3. Duże dane (długie listy, wygenerowany kod, wyniki analizy) każ subagentowi zapisać do pliku na dysku, na przykład Zapisz wynik do raport.md. Subagent i główny agent pracują w tym samym katalogu, więc główny agent potem ten plik odczyta.
  4. Nadaj subagentowi narzędzia potrzebne do zwrócenia danych. Jeśli ma tylko Read, Grep, Glob, nie zapisze pliku - dodaj Write, gdy oczekujesz zapisu wyniku.
  5. Nie zakładaj, że subagent zna kontekst rozmowy. Przekaż mu w poleceniu konkretne ścieżki, nazwy plików i cel, bo jego okno startuje bez Twojej historii.
  6. Jeśli chcesz kontynuować pracę tego samego subagenta, poproś Claude Code, żeby ją wznowił ("kontynuuj ten przegląd na logice uprawnień") - subagent zachowuje wtedy pełną własną historię i możesz dociążyć zadanie bez utraty kontekstu.

Jak sprawdzić, że zadziałało

Po zakończeniu pracy subagenta spójrz na jego finalną wiadomość w głównej rozmowie - powinna zawierać konkrety, których żądałeś, a nie samo "gotowe". Jeśli kazałeś zapisać wynik do pliku, otwórz go (albo poproś główny agent o jego odczytanie) i sprawdź, czy dane faktycznie tam są. Możesz też dopytać główny agent o szczegół z raportu; jeśli odpowiada z sensem, znaczy że dane realnie przeszły przez wynik subagenta, a nie utknęły w jego odizolowanym kontekście.

Wróć do listy: 100 najczęstszych problemów z Claude Code

Szkolenie Claude Code - od zera do zespołu agentów AI, prowadzi Łukasz Matuszewski (JSystems)

Szkolenie Claude Code - od zera do zespołu agentów AI -->

Szkolenie Claude Code - od zera do zespołu agentów AI

Tryb planowania, tryby uprawnień, komendy, MCP, hooki i systemy multi-agent - wszystko na żywym kodzie podczas trzydniowego szkolenia. Prowadzi Łukasz Matuszewski. Szkolenie ma terminy gwarantowane - odbędzie się niezależnie od liczby zgłoszeń.

Sprawdź szkolenie Claude Code

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Dlaczego subagent w Claude Code nie zwraca mi szczegółowych wyników?
Ponieważ do głównej rozmowy wraca wyłącznie ostatnia wiadomość tekstowa subagenta. Subagent działa we własnym, odizolowanym oknie kontekstu, więc jego kroki pośrednie i przeczytane pliki nie są widoczne dla głównego agenta. Jeśli konkrety nie znajdą się w finalnym podsumowaniu subagenta, przepadają razem z jego kontekstem.
Jak zmusić subagenta, żeby zwrócił konkretne dane?
W poleceniu jawnie napisz, co ma znaleźć się w wyniku, na przykład listę problemów z numerami linii i uzasadnieniem. Jeśli subagent ma własną definicję w katalogu .claude/agents/, dopisz w jego instrukcji, że kończy pracę zwięzłym, ale kompletnym podsumowaniem ustaleń.
Jak przekazać ze subagenta dużo danych, na przykład długi raport albo kod?
Każ subagentowi zapisać wynik do pliku na dysku, na przykład do raport.md. Subagent i główny agent pracują w tym samym katalogu, więc główny agent później ten plik odczyta. Pamiętaj, że subagent potrzebuje wtedy narzędzia Write - samo Read, Grep i Glob nie wystarczy do zapisu.
Czy subagent widzi historię mojej głównej rozmowy w Claude Code?
Nie. Subagent startuje bez historii głównej rozmowy, bez wcześniej wywołanych umiejętności i bez plików, które Ty otworzyłeś. Dlatego w poleceniu musisz przekazać mu wszystko, czego potrzebuje: konkretne ścieżki, nazwy plików i cel zadania.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...