# #1 Nauka Premium | Autonomiczny agent w Copilot Studio

**Film YouTube:** https://www.youtube.com/watch?v=ULdfWr0UBVk

---

[Muzyka] Cześć. Witam cię serdecznie na pierwszym odcinku serii Premium. Tak sobie to nazwałem. Będą to odcinki, których będę pokazywał to, co poznaję na bieżąco już zawodowo. To nie będzie taka typowa ścieżka edukacyjna idąc krok po kroku, więc będę omijał tutaj dużo zagadnień, które wytłumaczę pewnie w bieżących odcinkach sekcji nauki. Chcę się tutaj skupić na pokazywaniu jakiś ciekawostek, jakiś ciekawszych rozwiązań już na przykład w kontekście AI z wykorzystaniem bogatszego licencjonowania. gdzie nie ogranicza mnie licencyjność w formie zajawek, w formie pokazywania jakie są możliwości szersze power platformy już w kontekście bogatszego licencjonowania. Dziś postanowiłem zbudować autonomicznego agenta. Jako że zawodowo obecnie z tym mierzymy się bardzo mocno, coraz więcej pomysłów z biznesu pojawia się w tym segmencie. Zmieszcie się może z jakimś casem, z użyciem yyy agenta AI. Zbudujmy coś czy jakiś byt, z którym użytkownik będzie mógł pisać i odpowiadać na jakieś pytania, coś robić. Postanowiłem się z tym zmierzyć i pokażę wam jak można w Copilot Studio zbudować agenta akurat w tym przypadku autonomicznego. To znaczy będziemy go chcieli zbudować w taki sposób, by zareagował na wpis na liście. sharepointowej. Natomiast całą sekwencję wydarzeń, które potem będzie miała miejsce, wykona się autonomicznie, bez kompletnie reakcji użytkownika. To jeszcze co ważne, jako że to jest pierwszy materiał premium, na pewno dużo danych, które będziecie widzieć będą gdzieś pozasłaniane, zanonimizowane, bo faktycznie będę to robił na środowisku z szerszym licencjonowaniem i gdzieś tam mogą dane wrażliwe się pokazywać. jaki proces chcę zautomatyzować tutaj i jakiego agenta chcę zbudować. Chcę zbudować agenta, który będzie reagował na wpis na liście nowych pracowników. To znaczy wyobraźmy sobie, że mamy już w IT pozakładane konta. Przychodzi do nas za tydzień nowy pracownik na onboarding i pewne czynności należy w tym procesie wykonać. Zadanie startowe dla użytkownika, dla osoby w organizacji, która dba o to, żeby zadbać o o pewien zestaw informacji i o ten proces będzie takie, żeby dodać takiego nowego pracownika do tej listy SharePointowej, czyli wpisać tutaj, znaczy wybrać tak naprawdę z listy pracowników pracownika, wybrać dział. działy zdefiniowałem sobie przykładowe kilka i tyle. Na ten wpis ma zadziałać nasz autonomiczny agent, który ma wykonać dwie rzeczy. Może jeszcze coś sobie wymyślę po drodze, ale na razie zakładam dwie rzeczy. Jedna to stworzyć szkolenia dla tych pracowników. Czyli w zależności od tego, z jakiego obszaru on jest, to takie szkolenia powinny powstać w kalendarzu. Sam jestem ciekaw jak to yyy zadziała. Lecę na żywca, może jakieś błędy się pojawią. Yyy i przypisać to szkolenie od razu zarówno do tego nowego pracownika i do prowadzącego. Celowo tutaj pochowałem prowadzących. I drugą rzecz, którą ma wykonać, to przypisać Badiego dla nowego pracownika, czyli taką osobę, która będzie pomocna w całym procesie onboardingu dla kolegi z działu. Tak więc w sposób autonomiczny agent w zrozumieniu języka naturalnego powinien skierować się do tych plików, które zamieszczę w agencie, wydobyć sobie z tego informacje, o który dział chodzi i wykonać pewne czynności. w przypadku Badiego dać informacje do odpowiednich osób czy tak naprawdę do tego nowego pracownika. To będzie twój body i z nim się kontaktuj. W przypadku Badiego odwrotną informację, że halo, za chwileczkę na onboardingu będzie nowy pracownik i fajnie, żebyś go wsparł w tym procesie. A w przypadku szkoleń chodzi o utworzenie szkoleń w danym okresie czasu od onboardingu, żeby rozpocząć już pracę pierwszymi jakimiś dwoma szkoleniami podstawowymi, które gdzieś tam wynikają z procesu. Okej, przechodzimy do tworzenia nowego agenta. Nazwiemy go sobie tak jak solucją boarding agent. Description. Ta informacja technicznie nie jest nam do niczego potrzebna. Instrukcja jest tutaj ważniejsza, to za chwilkę nad nią poświęcimy trochę czasu. [Muzyka] Knowledge. Tutaj dodamy sobie pliki, tylko na tę chwilę nie będziemy mogli tego zrobić, więc dodamy też w następnej kolejności dopiero po utworzeniu agenta, dopiero gdy on powstanie jako encja w na środowisku, stworzą się pod to odpowiednie tabele, to będzie można dodać knowledge base. Więc w zasadzie na tą chwilę wyłączę tylko web search, bo nie jest mi on potrzebny. I zmienimy sobie język. Będziemy chcieli się zmierzyć z tym, jak sobieot studio radzi z językiem polskim. No i dajemy create. Okej, agent już powstał. Mamy tutaj włączoną orkiestrację z użyciem AI. Jest ustawiony defaultowy model 4. Pewnie można go zmienić. Zobaczymy sobie z ciekawości, co my tu mamy. O, mamy 41. Zostawię sobie to 4o. O. Okej, dodamy sobie najpierw knowledge. Okej, pliki już dodane. Można sobie wyprostować tutaj nazewnictwo i na pewno wszędzie, gdzie używamy orkiestracji w Copilot Studio warto zwracać uwagę na description. I tu sobie napiszemy, że w tym pliku masz tabelę, która pozwala wybrać Badiego do odpowiedniego działu nowego pracownika. A w tym pliku masz tabelę, która pozwala wyfiltrować odpowiedni zestaw spotkań dla nowego pracownika w zależności od działu. Okej, dodamy sobie to do agenta. Przy dodawaniu wiedzy musimy sobie potem poczekać, aż te pliki będą w trybie ready. Na razie one się tutaj nam mielą, ale możemy iść dalej. To, co to jeszcze będziemy chcieli zrobić, czyli wprowadzić trigger. Trigger będzie najważniejszy pod tym kątem, żeby w ogóle cały agent nam wystartował. Więc dodamy sobie trigger, tak jak mówiliśmy w ramach listy SharePoint. I tu sobie wybieramy when item is created. Nazwiemy to sobie on boarding agent. Uruchom agenta, gdy dodano nowego pracownika do listy. Okej, dajemy next. Wybieramy sobie listę sharepointową. W tym przypadku stworzyłem ją u siebie na personalnym widoku, więc wskazuje customowy adres. No ale listę nam zaciąga poprawnie. Wybieram sobie listę i lecimy dalej. Okej, dostaliśmy komunikat, że już możemy testować trigger. Ciekawe, że już, ale wejdziemy sobie w takim razie w ten trigger. Zobaczymy jak to tutaj wygląda. Przy okazji premium i tego, że trochę tutaj będę eksperymentował, to staram się już mierzyć z tym nowym designerem. Może czas się przyzwyczaić. M. Okej, mamy tutaj reakcję na stworzenie i mamy tutaj jako dane wyjściowe całe body z triggera, więc w zasadzie może faktycznie nie musimy tutaj nic robić. Okej, wyjdziemy sobie z tego. Dobra, teraz potrzebujemy zbudować instrukcję. Co chcemy zawrzeć w instrukcję? Opiszemy sobie krok po kroku, co on ma robić. Czyli nie wiem czy to zdanie pierwsze jest potrzebne, ale napiszę, że jako powiedzmy pracownik HR odpowiadający za onboarding nowych pracowników, masz za zadanie wykonać poniższy czynności w momencie. dodania elementu na listę Sharepointową zgodnie z dodanym triggerem. Wykonaj kolejne czynności kolejne. Okej. Teraz tak. Mając dane z listy SharePoint pobierz z bazy knowledge knowledge base z pliku i tu się odwołam do plików boady dla obszaru to, aby wyciągnąć odpowiedniego badiego dla obszaru czy dla działu zatrudnienia nowego pracownika. Dwa. Mając dane z listy SharePoint pobierz base dane z pliku harmonogram boleń onardingowych dla nowika. [Muzyka] to, aby wydobyć z niego informacje o tym i jakie szkolenia należy stworzyć w kalendarzu dla odpowiedniego działu. Pobierz, pobierz z pliku dane dotyczące albo dane i tam mamy odpowiedzialny czy prowadzący, przepraszam prowadzący temat szkolenia czas szkolenia i termin szkolenia. Okej. I to będzie tyle. To są dwa główne zadania. Ma skorzystać z bazy wiedzy i wyciągnąć sobie dane. A kolejne rzeczy, czyli trzy. Posiadając dane z punktu pierwszego, uruchom odpowiednią akcję, która wyśle wiadomość do nowego pracownika oraz do Badiego informując ich o tej sytuacji. C posiadając dane z punktu drugiego, uruchom odpowiednią akcję, która utworzy w imieniu, okej, utworzy spotkania w kalendarzu dla nowego pracownika oraz osoby odpowiedzialnej za prowadzenie szkolenia. Okej. Być może tu w tym punkcie trzecim i czwartym będziemy musieli się jeszcze odnieść do właśnie tych akcji czy do tuli, bo to się cały czas widzę zmienia w nazewnictwie, ale B może sobie z tym poradzi. Zobaczymy. Zapisujemy. >> Sorki za krótką przerwę, ale jeżeli nadal oglądasz ten filmik, to mam nadzieję, że cię zainteresował i poproszę cię w tym momencie o subskrypcję. Muszę też wspomnieć, że oprócz tego, że tworzę te materiały, proponuję też kilka form współpracy. Jeżeli jesteś zainteresowany pomocą we wdrożeniu automatyzacji w twojej firmie albo jesteś osobą, która chce rozwijać się w kierunku nauki P platformy, koniecznie skontaktuj się ze mną. W opisie tego filmu znajdziesz wszystkie potrzebne dane kontaktowe. To wszystko. Nie przeszkadzam. Miłego oglądania. Okej. Mamy już instrukcję zapisaną. Mamy już też knowledge base dodane, więc lecimy sobie do tuli. Musimy stworzyć dwa tole, które wykonają nam właśnie te kroki trzy i c z instrukcji. Więc pierwszy krok dodajemy informacje o połączeniu ze sobą pracownika z BADIM. Tu mamy możliwość dodawania różnych fajnych rzeczy. My chcemy sobie stworzyć nowy tool. Chcemy stworzyć sobie flow. Automatycznie mamy dodawany inputowy i outputową akcję, czyli dane, które potrzebujemy po drodze. Co my potrzebujemy? Weźmy sobie najpierw ten pierwszy prostszy tool, czyli informacja dla odpowiedniego nowo zatrudnionego pracownika. o tym, kto jest jego bodyim. Czyli żeby taką taki tool wykonać, powinniśmy tak naprawdę posiadać wejściowo dwie informacje. jedną to jest user email. Nazwiemy sobie to może new employe email i drugą weźmiemy sobie body email. Można by to bardziej rozbudowywać tam o display namey i ja na tych listach też knowledge base poszedłem po mailach, żeby już nie bawić się w jakieś przechodzenie po tym, ale można oczywiście też tak spróbować. No i dodamy sobie tutaj dwie akcje Teamsowe. Post message. Okej, okej. Będziemy chcieli wysłać to jako flowbot klasyczny. Odbiorcą będzie nasz input, więc tu sobie zmienimy na new employee email i wyślemy informacje. Cześć, witaj na pokładzie. Wiedz, że jeżeli będziesz miał jakieś pytania, problemy, to śmiało możesz odezwać się do i tu wszykniemy sobie bad email. Spoko. Druga akcja w drugą stronę, czyli post message do Badiego. Okej, tutaj wybieramy sobie znów body email i piszemy do niego: "Cześć. Powinieneś wiedzieć jako budy, że za niedługo może odezwać się do ciebie nowo zatrudniony kolega i będzie miał jakieś pytania bądź problemy. nowym kolegą jest i tu sobie strzykniemy new employee email. No dobra i opublikujemy sobie od razu. Okej, wracamy do agenta. Jeszcze tool się nam dodaje. Okej, mamy, o, widzicie, untitled, więc sobie jeszcze tu na chwilkę wrócę i nazwiemy to sobie jako komunikacja Teams z Budim. Skopiuję to sobie i napiszemy jeszcze sobie tutaj uruchom przepływ. aby wysłać informacje na kanały Teams, nie na kanały, tylko na Teams, do nowego pracownika oraz do Badiego. Te description podobno są istotne w każdym tutaj elemencie, bo do nich odnosi się faktycznie [Muzyka] AI, czyli to rozumienie języka naturalnego. Okej. I tu mamy też inputy i możemy też je skustomizować, to znaczy możemy też skorzystać z description i wpisać sobie, że ten input uzupełni na podstawie maila pracownika dodanego na liście Sharepo w ramach triggera. A body email to będzie ten input uzupełnij mailem, który znajduje się w knowledge base kolumnie body dla odpowiedniego działu. nowo zatrudnionego pracownika. Myślę, że mógłbym spokojnie bardziej szczegółowo to opisać i jakoś się poodnosić, ale sam jestem ciekaw jak to się zachowa. Okej, mamy opisy, mamy details i ja sobie jeszcze zrobię tak, że po zapisaniu skopiowałem sobie name i jeszcze do tej instrukcji postaram się tutaj odnieść, czyli posiadając dane, uruchom to o który wyślę. Tu jeszcze mamy literóweczkę. To sobie zrobimy tak. Super. No dobra, to teraz zmierzmy się z drugim tolem. Będziemy chcieli dodać spotkania, więc znów sobie zrobimy agent flow. Dodamy sobie najpierw akcję dodawania spotkania. Ja pamiętam, chyba create event to będzie, ale tak jest taka akcja. Okej, dodaliśmy sobie tą akcję. Co my tu mamy? Calendar. Domyślnie sobie skorzystamy z kalendarza. Subject. Subject będzie wartością potrzebną nam z triggera z inputu. Start, time, end time zone sobie ustawimy na stałe na Warszawę i osoby wymagane to będzie tutaj adres Badiego i nowego pracownika. Więc to co musimy sobie teraz przygotować to subject to a damy sobie tekst start time new employee email i body email. Okej, chyba tyle. Zaraz sobie jeszcze zerknę, czy nam wszystko tutaj zagrało. Uzupełnimy sobie subject start time, end time i wymagani uczestnicy. To będzie pracownik nowo zatrudniony i body pośredniku. Body spotkania nic nie będę dawał chyba wszystko. Okej. Celowo dałem start i end time jako tekst, bo chciałbym się zmierzyć z tym, czy nam description na inpucie tego flow da odpowiedni format, jeśli go o to poprosimy. Okej, daję publish. No i wracamy sobie do agenta. Jakiś błądzik. Ciekawe czemu zerkniemy sobie we flowy, bo z tego co wiem to tu się powinny pojawić nam te przepływy. Przepływ istnieje, ale coś mu się wydarzyło. Zammienimy sobie jeszcze tytuł na onboarding agent i utwórz spotkania dla nowego pracownika. Description od razu też, czyli to flow powinno uruchomić się. o tworzeniu elementu na liście SharePoint i po pobraniu odpowiednich danych o planowanych spotkaniach z knowledge base. Dobra, zapiszemy jeszcze raz, spróbujemy opublikować. No dobra, teoretycznie jest wszystko okej. Dodamy sobie ten tool z istniejących, bo może w tą stronę powinniśmy pójść. No okej, teraz już nam pykło. Tylko nie podoba mi się jeszcze to, że ten przepływ w jakiś dziwny sposób jest chyba untitled, chociaż nie, wszystko wygląda dobrze. Dobra, to wracamy sobie do tego przepływu i jeszcze go tutaj dopieścimy. Tutaj sobie wpiszemy, że to pole uzupełnij daną z kolumny tytuł nazwa spotkania. Tam jest nazwa spotkania. pobraną z knowledge base dotyczącego planowanych spotkań. Spoko. Zaraz najpierw sobie jeszcze te prostsze zrobimy. To uzupełnij daną z kolumny SharePoint. pobraną na podstawie trigera uruchamiającego agenta. A to pobieramy sobie znów z knowledge base. No to może się pomyliłem, że to body email, bo w zasadzie to jest już osoba odpowiedzialna za szkolenia, ale to jest tylko kwestia nazw zmiennych. Więc niech już tak sobie zostanie. To uzupełnij daną z kolumny odpowiedzialny za szkolenie pobraną znowu lecz. No okej. Dobra. I jeszcze tutaj start time i o i to będzie ciekawe, bo tu sobie spróbujemy zmierzyć się z tym, żeby to pole uzupełni, mając daną o utworzeniu elementu na liście SharePoint oraz informację o tym, ile dni tej dacie należy utworzyć takie spotkanie. Dodaj odpowiednio wartości oraz zapisz wartość w odpowiednim formacie, tak aby akcja dodawania spotkania od luku miała odpowiedni format. Okej, ciekawe czy nam zadziała i end time zrobimy dokładnie to samo, ale tak to uzupełnię mając daną utworzeniu elementu na liście oraz informacje o tym jak długi o tym jak długo mać spotkanie. Ciekawe czy odniesie nam się do daty startu. Czy to już nie będzie dla niego za trudne? No zobaczymy. Jeszcze tą chyba literóweczkę mieliśmy w startie. Okej, zapisujemy. No to teraz czas przetestować. Wejdziemy sobie w overview. Mapowanie mamy włączone i tutaj mamy takie coś jak test trigger, ale żeby to odpalić to jeszcze musimy sobie to najpierw stestować z poziomu automate. Jak tam wykonamy test to pojawi nam się to też w kolejce do wykonywania w agencie. Więc tu sobie wchodzimy w test. Okej. I dodamy sobie wpis na liście. Dodam sobie wpis dotyczący mnie. Dział IT. No i zobaczymy, co się wydarzy. Okej, chwileczkę musiałem poczekać, ale przepływ wykonał się z sukcesem. Przechodzę zatem do agenta i będziemy testowali. Klikamy test trigger. Mamy tutaj już ten wykon, więc możemy z niego skorzystać. No i faktycznie coś tam się dzieje. Okej, przepływ widzę poszedł już do wątku tworzenia spotkań, więc fajnie damy mu zezwalej. I wystąpił błąd. Zobaczymy sobie z czego ten błąd wynika. I tu w activity możemy sobie prześledzić, co się po kolei działo. Najpierw wyszukał sobie wszelkie potrzebne mu informacje z knowledge base i skorzystał z obydwu plików. Bady dla obszaru i harmonogram szkoleń. Spoko. Potem poszedł do komunikacji Teams z Budim. I to tego nie widzicie, ale mogę potwierdzić, że faktycznie dobrze zmaczował sobie maile, czyli znalazł sobie mail nowego pracownika i mail Badiego, więc to też wykonał poprawnie, a tutaj mu coś nie zagrało, czyli już utworzenie spotkań dla nowego pracownika. No i zobaczmy, co mu tu nie zagrało. Okej, widzę ten problem. Tak jak myślałem, nie do końca ten input mu się tam spodobał. To znaczy on fajnie przygotował start time, natomiast end time też powinien być w formie daty. Natomiast on wyłapał tylko długość spotkania i dobrze go wyłapał. natomiast powinien to dodać do start timeu, ale być może mój description jest błędny, więc poprawimy sobie to m description i tu gdzie mamy end time. Swoją drogą ciekawe czy on potrafi od razu zadziałać na korzystając z tego samego inputu wyżej na tym samej warstwie. Okej. i dodaj odpowiednio wartości start time z inputu tego przepływu oraz ilość czasu potrzebną na spotkanie, aby utworzyć docelowo format daty time dla spotkania tu jeszcze sobie te literóweczki zapiszemy. No i puścimy sobie testa jeszcze raz. Węc idziemy do overview triggers i jeszcze raz lecimy z testem. Okej. Pierwszy kroczek poszedł fajnie, drugi fajnie. No i teoretycznie trzeci i czwarty też się skończył. Tu mamy complete. Zobaczmy sobie czemu trzeci, czwarty. Bo w pliku były faktycznie do realizacji, do utworzenia dwa spotkania, więc możemy to sobie teraz sprawdzić, co tu się wydarzyło. No i faktycznie co do szkolenia BHP miał wskazanie, że ma je wykonać do trzech dni czy trzy dni od daty utworzenia wpisu, więc fajnie to zrobił, bo nagrywam to 7 września. Mamy tutaj 10 września. godzinę 10:42, więc data utworzenia wpisu i endtycznie dodał sobie godzinkę. Mamy 11:42. Super. Drugie spotkanie. Drugie spotkanie miało być zrobione 7 dni według arkusza w Wordzie i faktycznie te 7 dni dodał i też to spotkanie drugie, przedstawienie obszaru miał faktycznie zajmować dwie godzinki i faktycznie zrobił to dobrze. No na dzisiaj to wszystko. Ja osobiście jestem pod wrażeniem tego, jak dobrze jakościowo faktycznie budowanie tego w oparciu o model językowy to zadziałało. W sensie w zasadzie stworzyłem dwa proste przepływy, naprawdę proste, uzupełniając je jakimiś podstawowymi polami, ale cała reszta zabawy działa się na odpowiednich opisach pól w języku naturalnym i to jeszcze mogłem to robić po polsku, więc to wsparcie dla języka polskiego też sobie sprawdziliśmy. M w oparciu o pliki jakieś procesowe. Tak więc tu już niekoniecznie musimy budując takich agentów przykładać się do tego, żeby ta struktura danych była jakaś super wybitna. Oczywiście zawsze lepsza jest dobra jakość struktury, ale jeśli jej nie ma, to już mogliśmy się zmierzyć na poziomie jakiejś istniejącej dokumentacji w jakiejś formie pliku i na jej podstawie wymyśleć jakąś logikę pracy bota, tak? Czyli zmierzyć się już z takim procesem, który trochę odwzorowuje pracę ludzką, ale już w sposób nie jakoś super ustrukturyzowany. W sensie wręcz powtarza to, co człowiek wchodzi do pliku. Faktycznie takie i takie spotkania powinienem umówić takiego kandydata z takim z taką osobą odpowiedzialną. powinienem przypisać takiego badiego zgodnie z jakimiś procedurami wewnętrznymi. Zrobił to za mnie wszystko agent, więc możemy sobie rozbudowywać takie procesy, budować. No mam nadzieję, że pokazało to wam jak można do tematu podejść w kontekście używania takiej technologii w organizacji. To wszystko na dzisiaj. Dzięki wielkie. [Muzyka] 