O czym jest ten film
- Jeden agent może zlecać część pracy podagentom; stały zespół wyspecjalizowanych agentów nie zawsze przynosi dodatkową korzyść.
- Przy delegowaniu agent główny zachowuje odpowiedzialność za ocenę wyniku, a podagenci wykonują ograniczone zadania w osobnych kontekstach.
- Cel zapisany w Hermesie pozwala agentowi pracować przez kolejne tury i sprawdzać wynik według ustalonych kryteriów.
- Dobór modeli do poszczególnych ról wpływa na zużycie limitu i koszt pracy.
- Stałe profile agentów mogą mieć własne narzędzia, umiejętności, pamięć i model.
- Autor pokazuje przepływy pracy dotyczące poczty, bazy wiedzy oraz programowania, z miejscem na decyzję człowieka.
- Tablica Conbon przedstawia zadania, zależności, przekazania i etapy pracy w sposób widoczny dla użytkownika.
- W Hermesie można automatycznie doprecyzować ogólny pomysł i podzielić go na zadania albo powierzyć ten podział własnemu agentowi koordynującemu.
- Prosty test autora nie wykazał przewagi bardziej rozbudowanej organizacji agentów nad delegowaniem przez jednego agenta.
- Wybór sposobu pracy zależy od tego, czy dodatkowa koordynacja rozwiązuje konkretny problem.
10 najważniejszych takeaways — z kontekstem zastosowania
1.Zacznij od jednego odpowiedzialnego agenta
Na czym polega: Agent główny może sam doprowadzić zadanie do końca albo zlecić niezależne części podagentom. W przykładzie autora oba podejścia dały zbliżoną rekomendację.
Jak stosować: Najpierw sprawdź, czy jeden agent spełnia twoje wymagania. Deleguj mu osobne prace, na przykład przegląd źródeł lub niezależną ocenę, gdy rzeczywiście można je wykonać równolegle.
Na co uważać: Stały zespół oznacza dodatkową koordynację, czas oczekiwania i koszt. Sama liczba agentów nie podnosi jakości odpowiedzi.
2.Deleguj pracę, zachowaj ocenę wyniku w jednym miejscu
Na czym polega: Podagenci zbierają informacje i zwracają podsumowania, a agent główny łączy wyniki oraz podejmuje końcową decyzję.
Jak stosować: Zlecaj podagentom zadania o wyraźnych granicach. W poleceniu dla agenta głównego określ, jak ma sprawdzić ich ustalenia i co ma znaleźć się w ostatecznej odpowiedzi.
Na co uważać: Podagent nie zna wcześniejszej rozmowy agenta głównego. Otrzymuje tylko cel i kontekst przekazany mu przy zleceniu, więc brak ważnych informacji może zepsuć wynik.
3.Określ, po czym poznać, że zadanie jest wykonane
Na czym polega: Polecenie /goal w Hermesie utrzymuje cel przez kolejne tury. Agent może wracać do pracy, dopóki wynik nie spełni podanych warunków albo nie wyczerpie dostępnego limitu.
Jak stosować: Zapisz oczekiwany rezultat, sposób sprawdzenia, ograniczenia i moment, w którym agent ma zwrócić się do ciebie. Autor wymagał między innymi cytowań, weryfikacji źródeł i raportu krótszego niż 500 słów.
Na co uważać: Niejasny cel może prowadzić do wielu tur mało użytecznej pracy. Długa pętla uruchomiona na drogim modelu może szybko zużyć limit.
4.Dobieraj model do rodzaju pracy
Na czym polega: Planowanie i końcowa ocena mogą wymagać mocniejszego modelu, podczas gdy proste wyszukiwanie, wyodrębnianie informacji lub wykonanie dobrze opisanego zadania można powierzyć tańszemu.
Jak stosować: Wskaż model dla podagentów w poleceniu albo ustaw domyślne reguły w profilu. W Hermesie można też wybrać modele pomocnicze dla określonych czynności.
Na co uważać: Samo polecenie użycia „słabszych modeli” może być zbyt ogólne. Sprawdź, jaki model faktycznie uruchomiono, oraz licz zużycie całego procesu, a nie tylko agenta głównego.
5.Stały profil ma sens, gdy specjalista potrzebuje własnego zaplecza
Na czym polega: Profil agenta w trybie botów może zachować własne umiejętności, pamięć, narzędzia i kontekst pracy. Podagent tworzony na potrzeby pojedynczego zlecenia zaczyna od informacji przekazanych mu w tej chwili.
Jak stosować: Utwórz osobny profil badacza, bibliotekarza czy wykonawcy dopiero wtedy, gdy jego praca regularnie wymaga odrębnych zasobów i zasad.
Na co uważać: Dodatkowy profil powinien poprawiać jakość, zakres, czas lub koszt całej pracy. Jeśli nie daje takiej korzyści, jego utrzymanie może tylko skomplikować proces.
6.Umieść człowieka tam, gdzie potrzebna jest decyzja
Na czym polega: Autor pokazuje pracę, w której agent przygotowuje odpowiedź na e-mail albo wpis do bazy wiedzy, lecz człowiek ocenia rezultat przed dalszym działaniem.
Jak stosować: Zatrzymaj proces przed wysłaniem wiadomości, zapisaniem materiału do uporządkowanej bazy lub przyjęciem wyniku, którego jakość musisz osobiście potwierdzić.
Na co uważać: Możliwość poprawiania pracy agenta w trakcie nie zastępuje wyraźnego etapu zatwierdzenia, jeśli dalsza czynność ma zależeć od twojej decyzji.
7.Użyj tablicy zadań, gdy liczą się zależności i możliwość powrotu do pracy
Na czym polega: Conbon zapisuje zadania jako karty, pokazuje ich stan i pozwala ustalić, które prace muszą skończyć się przed następnymi.
Jak stosować: Sięgnij po tablicę przy dłuższych przedsięwzięciach, w których chcesz widzieć przekazania między agentami, blokady, wyniki i historię działań także następnego dnia.
Na co uważać: Dla jednorazowego, prostego pytania obsługa kart i ról może kosztować więcej niż zwykłe zlecenie zadania jednemu agentowi.
8.Doprecyzuj pomysł przed automatycznym podziałem
Na czym polega: W Conbon ogólny pomysł może trafić do etapu wstępnego opracowania. Model pomocniczy formułuje z niego zadanie, a kolejny dzieli je na mniejsze części.
Jak stosować: Podaj oczekiwany rezultat, zakres i ograniczenia. Autor obniżył szacunek z 45 tys. do 18 tys. tokenów, gdy ograniczył badanie do pięciu źródeł, a raport do 500 słów.
Na co uważać: Karta bez opisu i jasnego wyniku może utknąć, ponieważ system nie będzie wiedział, czego oczekujesz. Szacunek kosztu pozostaje szacunkiem.
9.Oddziel planowanie od wykonania
Na czym polega: Podział projektu na sensowne zadania wymaga oceny całości. Wykonawca, który dostaje jasno określony cel i kontekst, nie zawsze potrzebuje równie mocnego modelu.
Jak stosować: Przy większej liczbie kart rozważ mocniejszy model do planowania i oszczędniejszy do wykonywania powtarzalnych prac. Dostosuj też narzędzia oraz pamięć każdego profilu do jego roli.
Na co uważać: Źle podzielone zadanie może wygenerować zbędną pracę. W pokazanym teście system uruchomił dwóch badaczy mimo limitu pięciu źródeł; sam autor uznał to za możliwy przerost środków.
10.Oceniaj cały przepływ, nie tylko końcową odpowiedź
Na czym polega: W prostym teście autora delegowanie przez jednego agenta i praca agenta koordynującego bez automatycznego podziału miały podobną jakość oraz zużycie tokenów. Automatyczny podział połączony z pętlą celu dodał narzut.
Jak stosować: Porównuj rozwiązania na własnych zadaniach. Oprócz jakości wyniku sprawdzaj zużycie wszystkich modeli, czas, łatwość kontroli i możliwość wznowienia pracy.
Na co uważać: To był pojedynczy, prosty przykład badawczy, a nie miarodajny test porównawczy. Przy bardziej złożonym projekcie wartość widocznej historii pracy może uzasadniać dodatkowy koszt.
Redakcyjne tłumaczenie
Kiedy naprawdę potrzeba zespołu agentów?
Jeden agent potrafi już zlecać część pracy podagentom. Po co więc budować cały zespół? To pytanie słyszę najczęściej, gdy rozmawiam o pracy z wieloma agentami. Czasem odpowiedź brzmi: nie ma takiej potrzeby. Jeden sprawny agent, wspierany przez podagentów, wystarczy. Przy innych zadaniach bardziej rozbudowany sposób pracy może jednak poprawić jakość i wydajność.
Nazywam się Callum, w sieci występuję jako Wanderloots. Chcę dziś pokazać kolejne stopnie organizacji pracy: jednego agenta z tymczasowymi pomocnikami, pętlę celu, która sprawdza, czy zadanie zostało wykonane, stałe profile specjalistów oraz Conbon — tablicę do prowadzenia bardziej złożonych zadań. Te zasady przydają się także poza Hermesem, choć właśnie jego użyję w przykładach. Na końcu porównam kilka sposobów wykonania tego samego zadania.
Będziemy wracać do trzech pytań: kto wykonuje pracę, jak sprawdza jej wynik i co dzieje się później? Załóżmy, że przychodzi e-mail albo robię notatki do artykułu, który chcę dodać do swojej bazy wiedzy o modelach językowych. Jak agent ma zamienić taką informację w użyteczne działanie lub wiedzę, do której wrócę? Jak ma postępować za każdym razem i po czym rozpoznać, że wykonał zadanie dobrze?
Jeden agent i tymczasowi pomocnicy
Zacznijmy od pojedynczego agenta. W Hermesie mogę włączyć narzędzie do delegowania zadań, a wtedy agent główny utworzy podagentów i przydzieli im określone prace. Poprosiłem go o zbadanie, jak zamieniać napływające informacje w działania lub wiedzę oraz czy do takiego procesu lepiej nadaje się jeden agent z możliwością delegowania, czy stały zespół specjalistów.
Agent uruchomił równolegle trzech podagentów. Podczas ich pracy mogłem zajrzeć do każdego z nich i dopisać wskazówkę. Jednemu przypomniałem o cytowaniach; zastosował umiejętność związaną z badaniem źródeł i ich przywoływaniem. Po zakończeniu ich pracy agent główny sprawdził część źródeł i przygotował wspólny raport.
W kontekście agenta głównego ta próba zajęła około 36–37 tys. tokenów. Powtórzyłem to samo badanie, zabraniając delegowania. Wtedy pojedynczy agent zużył około 102 tys. tokenów. Nie oznacza to, że pierwszy wariant zużył łącznie mniej tokenów: podagenci także pracowali na własnych kontekstach. Do agenta głównego wróciły jednak krótsze opracowania zamiast całej przejrzanej zawartości. Dzięki temu zachował miejsce na ocenę i przygotowanie odpowiedzi. W dłuższej rozmowie ma to znaczenie, bo po zapełnieniu kontekstu system może go skrócić, a wraz ze szczegółami łatwo stracić coś istotnego.
Obie wersje dały w gruncie rzeczy podobną radę: wyznaczyć jednego agenta odpowiedzialnego za działanie i wynik, a wyspecjalizowane, niezależne prace delegować wtedy, gdy jest to uzasadnione. Stały zespół dodaje koszt, czas oczekiwania i konieczność koordynacji. Lepiej sprawdza się przy zadaniach, które rzeczywiście można podzielić i prowadzić równolegle.
Warto pamiętać o granicy delegowania. Podagent nie dostaje całej wcześniejszej rozmowy agenta głównego ani historii użytych narzędzi. Zaczyna z celem i kontekstem przekazanym w chwili zlecenia. Jeśli zabraknie tam ważnej informacji, nie będzie miał skąd jej znać. Dlatego deleguję pracę, ale końcową ocenę pozostawiam agentowi głównemu.
Cel, który utrzymuje pracę przez kolejne tury
Zanim dodamy następnych specjalistów, warto wypróbować prostszą zmianę: lepiej opisać rezultat. W Hermesie służy do tego polecenie /goal. Ustala ono cel obowiązujący przez kolejne tury, aż zostanie osiągnięty w ramach dostępnego limitu. Zamiast sterować każdym krokiem, mówię agentowi, jaki wynik chcę otrzymać, jak go sprawdzić i kiedy ma poprosić mnie o decyzję.
W mojej próbie poprosiłem o badanie kilku strumieni informacji z udziałem podagentów korzystających z mniej zaawansowanych modeli. Agent główny miał przygotować wspólny raport, zestawić go z praktykami społeczności Hermesa, dołączyć cytowania i zmieścić się w 500 słowach. Hermes pokazał pierwszą turę z domyślnego limitu 20. Po przygotowaniu początkowej wersji dodałem jeszcze warunek co najmniej pięciu źródeł recenzowanych naukowo. Dotychczasowy zestaw źródeł nie spełniał tego wymagania, więc agent przeszedł do następnych tur i zlecił dodatkową weryfikację.
Im dokładniej opiszę, co znaczy „gotowe”, tym łatwiej agentowi prowadzić taką pracę. Korzystam z tego również przy programowaniu: agent potrafi przez wiele godzin tworzyć kod, sprawdzać go, poprawiać błędy i dopiero potem przedstawić mi wynik do zatwierdzenia.
Taka samodzielność wymaga jednak kontroli zużycia zasobów. Jeśli wielogodzinny cel uruchomię na najmocniejszym modelu, mogę szybko wyczerpać dostępny limit. Mogę więc wskazać, że badanie źródeł ma wykonywać model lokalny lub tańszy, a mocniejszy model ma połączyć ustalenia i ocenić wynik. Podobną zasadę można wpisać w instrukcje profilu, by obowiązywała przy kolejnych zadaniach. W ustawieniach Hermesa da się także wybrać modele pomocnicze do konkretnych czynności, na przykład analizy obrazów.
W tej próbie cel zadziałał dobrze: zamiast bardzo długiego raportu dostałem krótką odpowiedź, ułożoną według zadanej kolejności pracy. To nie sam limit słów zrobił różnicę. Pomogły również wymagania dotyczące sprawdzania ustaleń i ostatecznej postaci wyniku.
Kiedy podagent przestaje wystarczać
Podagent dobrze nadaje się do ograniczonego badania, przeglądu albo naprawy. Nie zawsze wystarczy, jeśli praca wymaga osobnej pamięci, innych narzędzi i zasad albo kontekstu, którego agent główny nie ma pod ręką. Wtedy warto rozważyć stały profil specjalisty. Najpierw jednak sprawdziłbym, czy taki profil poprawia jakość, zakres, czas lub łączny koszt kontroli wyniku w porównaniu z jednym agentem.
Hermes nazywa takie profile botami. Każdy może mieć własne umiejętności, pamięć, kontekst pracy i domyślny model. Agent koordynujący może używać mocnego modelu, a badacz — tańszego, jeśli wystarcza do jego zadań. Profil zachowuje swoje przygotowanie między rozmowami; nie trzeba odtwarzać go od zera przy każdym zleceniu.
W moim zestawie są agent koordynujący, badacz i bibliotekarz. Mogą porozumiewać się na czacie grupowym. Badacz sprawdza źródła; rozbudowałem jego umiejętności tak, by zestawiał literaturę naukową z najnowszymi materiałami w danej dziedzinie. Bibliotekarz przygotowuje materiały do mojej bazy wiedzy w Obsidianie. Ja kontaktuję się przede wszystkim z agentem koordynującym, który rozdziela pracę. Czat grupowy pozwala im wymieniać wiadomości, lecz w pokazanej konfiguracji po trzech rundach rozmowy zatrzymuje się, by sprawdzić, czego chcę dalej. To przydatny sposób współpracy, choć nie daje jeszcze pełnej tablicy zadań i zależności.
Jak połączyć specjalistów i własną ocenę
Wyobraźmy sobie przychodzącą wiadomość e-mail. Agent może sprawdzić potrzebne informacje, przygotować krótkie ustalenia i projekt odpowiedzi, a następnie przekazać mi je do oceny. Jeśli czegoś brakuje, dopisuję kontekst i proszę o kolejną wersję. Po zatwierdzeniu mogę zostawić agentowi przygotowanie szkicu lub pozwolić mu wysłać sprawdzoną odpowiedź — zależnie od tego, jakie uprawnienia chcę mu dać.
Podobnie działałby bibliotekarz. Przekazuję mu artykuł lub film wraz z własnymi notatkami. Sprawdza, jak materiał łączy się z tym, co już mam w bazie, i przygotowuje propozycję wpisu. Oglądam ją, proszę o poprawki albo zatwierdzam. Dopiero wtedy bibliotekarz zapisuje materiał i wiąże go z innymi notatkami.
Można też połączyć te etapy. Badacz analizuje pytanie, sprawdza źródła i przedstawia mi raport. Ja oceniam ustalenia, dokładam własne notatki i przekazuję całość bibliotekarzowi. On przygotowuje wpis do bazy, a ja ponownie decyduję, czy go przyjąć. Przy programowaniu układ wygląda podobnie: agent koordynujący zleca wykonawcy na przykład dodanie eksportu do Markdown. Wykonawca tworzy zmianę, testuje ją i poprawia, po czym osobny recenzent sprawdza rezultat. Agent koordynujący porównuje go z pierwotnym celem i oddaje mi do decyzji.
W każdym z tych przykładów praca może wracać do poprzedniego etapu. Czasem agent sam sprawdza wynik i poprawia go w ramach celu, a czasem dalszy krok zależy od mojej oceny.
Conbon: zadania, które widać i do których można wrócić
Przy większym przedsięwzięciu sama wymiana wiadomości między agentami przestaje wystarczać. Hermes ma wbudowany Conbon — tablicę, na której zadania są zapisane jako karty. Widać, kto je wykonuje, co już zrobiono, które zadanie czeka na inne i gdzie potrzeba decyzji człowieka. Kartę można później otworzyć ponownie i prześledzić jej historię.
To różni się od jednorazowego zlecenia podagentowi. Przy delegowaniu agent główny czeka na odpowiedź pomocnika. W Conbon agent koordynujący może przydzielić pracę i zająć się czymś innym. Karty mogą trafiać do nazwanych profili z własną pamięcią. Zadanie, które utknęło, można oznaczyć jako zablokowane, odblokować i ponowić. Stan pracy jest zapisywany w bazie SQLite, więc pozostaje dostępny także po zakończeniu rozmowy z agentem głównym.
Po włączeniu wtyczki Conbon w Hermesie pojawia się tablica z etapami pracy. Wstępne opracowanie służy pomysłom, które trzeba doprecyzować. Zadania oczekujące mogą jeszcze nie mieć wykonawcy lub zależeć od innych kart. Zadania gotowe mają spełnione zależności i mogą zostać uruchomione. Osobno widać pracę trwającą, blokady wymagające udziału człowieka, przegląd wyników i zadania zakończone. Można również zaplanować pracę na określony czas.
Za uruchamianie kart odpowiada działający w tle mechanizm, który mniej więcej co minutę sprawdza tablicę. Dodałem dla próby kartę nazwaną po prostu „zadanie testowe”, bez opisu oczekiwanego wyniku. System próbował ją doprecyzować, ale nie miał dość informacji. To dobry przykład miejsca, w którym potrzebny jest człowiek: trzeba wyjaśnić, co właściwie ma zostać zrobione.
Automatyczny podział i koszt pracy
Hermes pozwala ustawić dwa modele pomocnicze związane z przygotowaniem zadań. Pierwszy doprecyzowuje ogólny pomysł. Drugi rozbija opisane już zadanie na mniejsze karty. To różne rodzaje pracy: uporządkowanie krótkiego opisu może wystarczyć lżejszemu modelowi, ale sensowny podział projektu wymaga dobrego rozeznania w całości. Wykonawca, który otrzymuje kartę z jasnym celem i kontekstem, często może pracować na tańszym modelu. Ponieważ wykonawcy realizują większość czynności, to u nich gromadzi się znaczna część zużycia tokenów.
Na tablicy mogę tworzyć różne projekty i przypisywać im osobne ustawienia oraz kontekst — na przykład dla poczty, badań albo konkretnej aplikacji. Wybieram profil agenta koordynującego i domyślnego wykonawcę. Dla karty określam między innymi priorytet, przestrzeń pracy, potrzebne umiejętności i model. Mogę też włączyć tryb celu: wtedy wykonawca nie kończy po jednej próbie, lecz w ramach własnej pętli sprawdza, czy osiągnął rezultat. Ta pętla dotyczy danej karty i nie jest tym samym celem, który uruchomiłem wcześniej w rozmowie.
Przed uruchomieniem zadania mogę oszacować jego koszt. Gdy podałem szerokie polecenie badawcze, Hermes ocenił je na około 45 tys. tokenów. Po ograniczeniu poszukiwań do pięciu źródeł i raportu do 500 słów szacunek spadł do 18 tys. tokenów. Nie jest to gwarancja faktycznego zużycia, ale pomaga dostrzec, że zadanie zostało opisane zbyt szeroko.
Właściwy test zacząłem od karty z pytaniem o organizację pracy wielu agentów. Automatyczny podział stworzył dwa zadania badawcze oraz zadanie przygotowania odpowiedzi. Badacze pracowali równolegle. Dopiero gdy obaj skończyli, odblokowała się karta z opracowaniem wyniku. Mogłem otworzyć każdą kartę, przeczytać polecenie przygotowane dla wykonawcy, obejrzeć przebieg pracy i dopisać komentarz. Przy większej zmianie można też ponownie skierować kartę do wykonania.
Końcowy raport miał mniej niż 500 słów i opierał się na ograniczonej liczbie źródeł. Rekomendacja ponownie była podobna: na początek jeden agent odpowiedzialny za całość, z możliwością zlecania wyraźnie określonych prac. Stały zespół warto utrzymywać wtedy, gdy pomiary pokażą, że niezależna praca specjalistów rzeczywiście daje trwałą korzyść.
Proces zadziałał, ale widzę też miejsca do poprawy. Przy limicie pięciu źródeł dwóch badaczy mogło być więcej, niż potrzebowałem. Zadanie napisania raportu dostał agent koordynujący; w przyszłości wolałbym przydzielić je profilowi przygotowanemu do pisania, a koordynatorowi zostawić rozdzielanie pracy i ocenę jej zakończenia. Trzeba też ostrożnie dobierać pamięć, umiejętności i narzędzia profili: zbyt szeroki zestaw może niepotrzebnie zwiększyć zużycie limitu.
Kiedy planuje automat, a kiedy własny agent?
Automatyczny podział jest wygodny: opisuję zadanie, a Hermes przygotowuje karty. Mogę go jednak wyłączyć i powierzyć planowanie własnemu agentowi koordynującemu. Taki profil ma przygotowane przeze mnie instrukcje, może korzystać z określonej pamięci i zna sposób współpracy z pozostałymi agentami. Żeby prowadził tablicę, trzeba dać mu odpowiednie narzędzia Conbon.
Po wyłączeniu automatycznego podziału nie wystarczy wrzucić ogólnego pomysłu do etapu wstępnego opracowania i czekać. Mogę pozostawić kartę wśród zadań oczekujących, zaplanować ją na później albo umieścić w zadaniach gotowych, aby agent koordynujący zajął się jej podziałem. Wybór zależy od zadania i od tego, jak dużą kontrolę chcę mieć nad planem oraz przydziałem ról. Nie zakładam, że któryś wariant zawsze będzie tańszy.
Największą korzyścią tablicy jest dla mnie ciągłość. Następnego dnia mogę zobaczyć, co się zatrzymało, sprawdzić przekazany wynik i wznowić pracę bez odtwarzania całej rozmowy. Agent koordynujący planuje, mechanizm tablicy uruchamia gotowe karty, a wykonawcy realizują przydzielone im zadania. Jedna karta może przy tym obejmować pracę podagentów albo własną pętlę celu.
Co pokazało porównanie?
Sprawdziłem kilka sposobów wykonania tego samego prostego zadania badawczego. Jeden agent z możliwością delegowania oraz agent koordynujący pracujący na tablicy bez automatycznego podziału osiągnęli podobną jakość przy zbliżonym zużyciu tokenów. Automatyczny podział połączony z pętlą celu zwiększył w tym przypadku narzut.
To nie jest pełny test porównawczy. Wybrałem jedno, dość proste zadanie, żeby zobaczyć, jak te rozwiązania działają w mojej pracy. Nawet jeśli Conbon zużywa więcej tokenów, może się opłacać tam, gdzie potrzebuję widocznej historii, kontroli przekazań, zależności między zadaniami i możliwości powrotu do projektu. Chcę jeszcze sprawdzić go przy bardziej złożonych pracach programistycznych.
Czy potrzebujesz zespołu agentów? Niekoniecznie. Zacznij od najprostszego układu, który daje oczekiwany wynik. Dodawaj stałe role, kolejne etapy i tablicę wtedy, gdy potrafisz wskazać problem, który dzięki nim rozwiążesz.