AI Will Finally Do Something For You - Agents (Film, 18m)
In the video, Mateusz Chrobok addresses the topic of utilizing artificial intelligence (AI) for automating simple processes. He emphasizes that AI can significantly ease our daily lives, but it requires proper design and implementation. In reality, the implementation of AI agents enables optimization of various tasks that we previously had to perform manually. These processes can encompass everything from managing our home to gathering information from various systems. The premise is that a human issues commands, and the AI agent executes them without requiring constant supervision.
It's important to note the analogy that Mateusz uses to describe the functioning of AI agents. He compares their role to a team of people, where each individual possesses unique skills. In the context of artificial intelligence, AI agents can interact in a way that allows them to accomplish complex tasks without constant oversight. This means that many everyday problems can be solved by delegating tasks to an agent that can make decisions on its own and respond to encountered issues.
Taking an example, Mateusz presents how an AI agent could handle garden irrigation. This agent would gather data from various sources, such as humidity sensors, and would independently make decisions about how to care for the plants. This approach becomes particularly beneficial for individuals who lack gardening experience but want to enjoy healthy produce. The AI agent streamlines the entire process by automating multiple steps, eliminating the need for the owner to constantly check the garden's status.
Changes in AI architecture have enabled the development of agents with specialized tasks, increasing their efficiency. As Mateusz points out, there is currently a shift from massive models to smaller, more specialized ones. This way, AI systems can effectively tackle specific issues rather than relying on one general model. This approach also facilitates the integration of various modules that collaborate in deciding which one best meets the challenge posed to them.
Towards the end of the video, Mateusz encourages viewers to join his course on AI agents, starting in November. His course aims to teach programming and implementing agents in practice. He highlights that AI holds great potential in solving complex problems, but it requires the right skills. At the time of writing, the video has received 43,316 views and 1,849 likes, suggesting that the topic is of interest to many viewers.
Toggle timeline summary
-
Introduction discussing the laziness of people and the role of artificial intelligence.
-
Considering the implications of having AI doing more tasks for us.
-
Acknowledging that while AI seems like a great solution, there are challenges.
-
Interest in AI not only performing tasks but doing them well.
-
Presenting doubts about the effectiveness of AI.
-
Questioning whether these doubts are justified.
-
Explaining daily tasks done by workers that could be automated.
-
Detailing the development of APIs to reduce repetitive tasks.
-
Considering how to simplify or automate processes.
-
Mentioning AI agents taking on tasks almost utopically.
-
Using analogies to simplify understanding AI agents.
-
Discussing the importance of different skill sets in teams.
-
Emphasizing that communication is essential for team success.
-
Explaining the operational independence of AI agents.
-
Highlighting the complexity of tasks AI can handle without human intervention.
-
Describing potential real-world applications of AI agents.
-
Elaborating on how AI can enhance day-to-day activities, like managing homes.
-
Introducing the concept of using AI agents for gardening.
-
Discussing advancements in AI technology and potential.
-
Invitation to join a course on AI agents and their functionalities.
-
Concluding thoughts on the future of AI agents and their potential.
-
Thanking the audience for their attention and concluding the talk.
Transcription
Cześć! Wszyscy jesteśmy leniwi, nie oszukujmy się. Czy więc to dobry pomysł, aby sztuczna inteligencja robiła za nas więcej? Z pozoru brzmi to jak świetne rozwiązanie, jest w nim jednak pewien haczyk. Fajnie byłoby, jakby nie tylko coś za nas robiła, ale jeszcze robiła to dobrze. No i tu przeważnie pojawia się już sporo wątpliwości. Ale czy uzasadnionych? Jedną z rzeczy, które miło byłoby jej zlecić, jest automatyzacja w miarę prostych i powtarzalnych procesów. No bo co na co dzień, np. w pracy, robimy przed komputerem? Głównie przetwarzamy informacje, często nawet kopiując je z jakiegoś jednego systemu do drugiego, czymkolwiek by owe systemy nie były. Między innymi po to, aby ograniczyć ilość bezmyślnych kopiowań, powstały interfejsy programistyczne różnych aplikacji, czyli API. Pozwalają one różnym systemom wymieniać się między sobą informacjami. Skądś pobiera się dane, czemuś daje do przetworzenia, pobiera wynik i gdzieś zapisuje. I cyk, pora na CSA albo na kolejne wykonanie tego samego cyklu w pętli. No ale to wszystko trzeba zaprojektować, wdrożyć, jednym słowem, znać się. Trudna sprawa. A jakby to tak znacznie ułatwić albo nawet również zautomatyzować? Po prostu powiedzieć, czego oczekujemy, i to dzieje się samo, w mgnieniu oka. A jak to działa pod maską, to w sumie nas nie interesuje. Brzmi jak jakaś utopia? Do niedawna tak, ale dziś już tak nie do końca. Bo robią to agenty AI. Tylko jak to działa i o co tak właściwie chodzi? Zapraszam. Zacznę od analogii, która, mam nadzieję, da Wam pewien ogólny ogląd na sprawę. Wyobraźcie sobie jakiś zespół, mający do wykonania zadanie. Czy to w pracy, czy rozbijając obozowisko w dziczy, czy po prostu grając w jakiegoś airbaga, gdzie... Przed wyruszeniem w drogę należy zebrać drużynę. Dobrze byłoby, gdyby każdy członek takiego zespołu miał natomiast wyjątkowe umiejętności. Umiejętności, które mogą być dostępne miał natomiast wyjątkowe umiejętności. Umiejętności, które zdobył w trakcie wieloletniej służby. Umiejętności, dzięki którym może stać się udręką... Wybaczcie, trochę się zagalopowałem. Zmierzam do tego, że przyda się ktoś, kto umie organizować pracę, ktoś inny, łowca, kto umie zbierać zasoby, np. jedzenie czy wodę. Do tego jakiś inżynier sprawnie wzniesie wszystkie wymagane konstrukcje, a tłumacz porozmawia z tubylcami w nieznanym reszcie języku. Każda z tych osób umie bardzo dobrze zrobić coś strasznie wyspecjalizowanego, czego nie umie nikt inny, ale też cały zespół musi umieć sprawnie się komunikować, aby osiągnąć zamierzony cel. Muszą dogadywać się między sobą, by wiedzieć, jaki cel chcą wspólnie osiągnąć, czy aby delegować sobie pomniejsze zadania albo poprosić o pomoc. To właśnie komunikacja często jest zdecydowanie istotniejsza niż suche umiejętności. Bo co nam nawet po najbardziej wybitnym specjaliście, jeżeli nie umiemy zaprząc go do roboty? I taka właśnie z grubsza idea stoi za agentami sztucznej inteligencji. Taki agent AI to program, który może wchodzić w interakcje z otaczającym go środowiskiem, gromadzić, przetwarzać dane, wykorzystując je w określonych celach i wykonywać wiele, wiele innych czynności. Jest dzięki temu w stanie rozwiązywać naprawdę skomplikowane zadania. Również takie składające się z wielu kolejnych, następujących po sobie kroków, gdzie każda kolejna czynność zależy od wyniku działania poprzedniej. A to wszystko bez nadzoru człowieka, który w takim systemie wyznacza po prostu cel. Następnie agent samodzielnie podejmuje decyzję, jakie zadania w jakiej kolejności należy wykonać, aby zadany cel osiągnąć. W dodatku będąc nawet w stanie reagować na napotkane po drodze przeszkody czy też błędy. Nie jest to już po prostu zwykła rozmowa, nawet bardzo konstruktywna z czatem GPT czy robienie głębokiego, wieloetapowego researchu z wykorzystaniem perplexity. Agenty mają być naszymi osobistymi asystentami i wykonywać realne zadania również w realnym świecie na podstawie własnej lub dostarczonej z zewnątrz wiedzy i kontekstów. Na przykład zamawiać za nas zakupy, analizując wcześniej zawartość lodówki, nasze upodobania czy nadchodzące okazje do świętowania. Mogą sterować inteligentnym domem, biorąc pod uwagę ogromną ilość czynników, w tym zewnętrznych, czy planować za nas praktycznie całe wakacje razem z zaklepaniem biletów lotniczych w dobrej cenie i rezerwacją noclegu w miejscach, które pasują do naszych upodobań. My, jako ludzie, mamy po prostu zwykłym językiem zdefiniować, jaki cel chcemy osiągnąć, a agent ma załatwić to za nas, bez naszego ciągłego patrzenia mu na ręce? Czyli w sumie robić to, co obiecywał Rabbit R1 ze swoim lamem, a nawet więcej, tylko że agenty w przeciwieństwie do Rabbita, będącego zwykłą zabawką, całkiem sprawnie działają i rozwiązują realne problemy. Pewnie chcecie jakiś przykład, po co właściwie tego używać? Weźmy więc taki przykładowy system do nawadniania przydomowego ogrodu. Ma zająć się ogrodem tak, aby nic nie uschło, a w dodatku na grządkach mają wyrosnąć pyszne i soczyste pomidory. Co, umówmy się, dla kogoś, kto nigdy nie hodował niczego w ogrodzie, oznacza preludium do cudownej katastrofy w postaci uschniętych krzaków. Jak uniknąć tej kompromitacji przed sąsiadami, wykorzystując do tego sztuczną inteligencję? A no, możemy zapytać czata GPT czy Perplexity, jak podejść do rozwiązania tego problemu. W długiej rozmowie najpierw dowiemy się, czym jest pomidor, jak się o niego dba, jak programuje się systemy automatyki domowej do autonomicznego podlewania, co to w ogóle jest ten cały Python i dlaczego zalało nam cały ogród. Prosimy więc o pomoc w zebraniu wiedzy, sami ją przetwarzamy i wprowadzamy w życie, aby następnie wrócić do tej rozmowy w celu rozwiązania napotkanych trudności. Strasznie długo to trwa, a tak w ogóle to to jest masa roboty, gdzie na każdym etapie jesteśmy odpowiedzialni za wiele rzeczy, które pewnie i tak pójdą nie do końca po naszej myśli. A jakby tak podejść do tego problemu inaczej? Na przykład wykorzystać agenta? To, co nazywamy systemem agentowym AI, najczęściej składa się z wielu pomniejszych agentów, wyspecjalizowanych w konkretnych zadaniach, zupełnie jak we wcześniejszym przykładzie z obozowiskiem. W ogródku możemy skorzystać np. z agentów od prognoz pogody, rozpoznawania obrazu z kamery obserwującej rośliny, czujników nasłonecznienia, wilgotności czy temperatury i kilku innych. Schemat działania może więc wyglądać następująco. Wyznaczamy agentowi cel. Zrób tak, aby wyrosły pomidory. Zwróćcie w tym miejscu uwagę, że problem ten jest bardzo abstrakcyjny z punktu widzenia komputerów. Nie ma w nim zdefiniowanych zadań, które trzeba krok po kroku wykonać, aby osiągnąć sukces. Agent, który będzie zarządzał tymi wszystkimi procesami, musi podejmować decyzje w miarę samodzielnie na podstawie zdobytej wiedzy. Może zapytać nas, co rośnie w ogrodzie albo skorzystać z kamery skierowanej na ogród, którą udostępniliśmy systemowi i następnie algorytmami rozpoznawania obrazu ustalić to samodzielnie. To kolejny agent, moduł odpowiedzialny za widzenie. Następnie system musi dowiedzieć się, w jaki sposób w ogóle dba się o pomidory. Znów może nas zapytać albo poszukać na własną rękę, jeżeli udostępniliśmy możliwość wyszukiwania i pobierania danych z Internetu. To też kolejny agent, moduł. Kiedy już zdobędzie informacje, może zapisać je sobie na później w jakiejś swojej bazie wiedzy. W tym celu może wykorzystać, a jak, kolejnego agenta, odpowiedzialnego za przechowywanie informacji i późniejszy do nich dostęp. Skoro już wie, jak się o pomidory powinno troszczyć, aby wyrosły zdrowe i soczyste, to na podstawie danych zebranych przez wyspecjalizowanego agenta, odpowiedzialnego za sensory, sprawdzi temperaturę, wilgotność i tak dalej, a później zleci innemu agentowi, zarządzającemu domowym systemem nawadniania, aby poprzez położone rurki wlał na ogród odpowiednią ilość wody w odpowiednim czasie. Nawadniacz sam zdecyduje, czy skorzystać z zebranej w beczce deszczówki, czy potrzebna będzie jednak woda z sieci. Pojawią się jakieś szkodniki? Jeżeli to nie syn sąsiadów, który przeskoczył przez płot, to moduł widzenia zidentyfikuje zagrożenie i wyśle nam powiadomienie, że mamy zamówić odpowiednie środki ochrony roślin z takiego, a takiego sklepu, bo jest akurat dobra promocja. Na każdym z tych etapów agent staje przed problemem i poszukuje na własną rękę rozwiązania, korzystając z zasobów, któremu udostępniliśmy. Jeżeli nie znajduje odpowiedzi za pierwszym razem, szuka do skutku. No, albo do momentu, aż wykorzysta zdefiniowaną przez nas ilość prób, która ma zapobiegać wpadaniu w nieskończone pętle. To nie my odpowiadamy za planowanie ani nie musimy silić się na wymyślanie niesamowicie wręcz wymyślnych promptów. Oszczędzamy więc w dłuższej perspektywie masę czasu. Tylko właściwie dlaczego teraz jest to możliwe, a wcześniej nie było? KLIK KLIK KLIK Rozwój sztucznej inteligencji jest już przedoprzodu jak szalony, więc co chwila po drodze dowiadujemy się czegoś nowego. I dobijamy też czasem do ściany. No bo budujemy coraz to większe i większe modele, zużywające coraz więcej energii, ale ich wydajność wcale nie przyrasta proporcjonalnie do rozrastającego się kontekstu. Nie notujemy więc lawinowego wzrostu jakości generowanych odpowiedzi czy wykonywanych zadań, po prostu rzucając więcej i więcej mocy obliczeniowej na rozwiązanie problemów. To dobre miejsce na mały krok w tył, aby rozpędzić się i zrobić wielki skok naprzód. Na ratunek przyszła nam zmiana w architekturze. Ostatnimi czasy odchodzi się w wielu zastosowaniach od przeuczania wielkich, ogromnych wręcz modeli i ciągłego zwiększania ich ogólnych kontekstów na rzecz mniejszych modeli, jednak zdecydowanie bardziej wyspecjalizowanych. A potem spinaniu ich razem w większe systemy, ale w roli pomniejszych modułów, świetnie radzących sobie w swoich wąskich dziedzinach. Każdy z takich agentów można przyuczyć do wykonywania pewnej grupy zadań, niezależnie od tego, z jakimi konkretnymi jego przypadkami spotka się on na swojej drodze. Możemy podzielić je na kilka kategorii, choć to bardzo otwarty podział. Będą więc takie zbierające dane, odpowiedzialne za komunikację z różnymi czujnikami, kamerami, mikrofonami, ale też interfejsami programistycznymi wystawionymi przez aplikacje, bazy danych, czy nawet takie dające możliwość wyszukiwania w internecie albo czytania dokumentów w PDF-ach. W ten sposób agreguje się wiedzę, poszerzając kontekst konieczny do rozwiązywania problemów, czyli w skrócie input. Inną grupą będą agenty wykonawcze, które odpowiadają za działanie. Będą to choćby jakieś ramiona robota, systemy nawadniania ogródka, ale też po prostu zwykła możliwość zapisania pliku czy edycji bazy danych. To taki output. Mamy też logikę, czyli mechanizmy podejmowania decyzji, procesy wykonawcze i inne systemy kontroli. Tworzą one niejako mózg takiego agenta. To one przetwarzają informacje płynące z wejścia, kamer, czujników i tak dalej. Następnie podejmują decyzję, co z uzyskanym wynikiem należy zrobić, aby jak najbardziej zbliżyć się do założonego celu. Często też rozdzielają pracę innym agentom. Sprawdzają, który z modułów jest w stanie najbardziej zbliżyć cały system do znalezienia rozwiązania zadanego problemu i proszą go o pomoc, przekazując niezbędne informacje. No i jest też pamięć, czyli jakaś baza wiedzy przechowująca dane na później w trwałej postaci. Na przykład informacje na temat tego, z jakimi problemami system już się spotkał i jak je rozwiązywał. Albo dane historyczne dotyczące obserwacji z czujników. To jak z pieczeniem ciasta. Coś nie wyszło? No tak, tym razem daliśmy więcej proszku do pieczenia niż ostatnio. Zapisujemy to więc w bazie wiedzy i na przyszłość nie będziemy już popełniać tego błędu. Dlatego właśnie ciasto babci smakuje najlepiej. To efekt wielu lat doskonalenia przepisu i setek podjętych prób. A to, czego w takim magazynie danych nie znajdziemy, może zostać uzupełnione wiedzą zebraną z innych źródeł. Na przykład internetu, choćby za pomocą ragów, które uzupełnią braki wiedzy w dynamiczny sposób. Na koniec przydałby się jeszcze jakiś interfejs, którym to my, ludzie, będziemy komunikować się z takim systemem, a ten będzie wyciągał od nas niezbędne informacje, o których przekazaniu po prostu zapomnieliśmy. W tej roli wystąpić może po prostu jakiś wielki model językowy, jasno i składnie komunikując się z nami tekstem czy syntezatorem mowy. I tu w sumie przechodzimy do sedna. My, jako korzystający z tego systemu, w sumie nie musimy umieć pisać żadnych skomplikowanych promptów, ani wiedzieć, jak działają te wszystkie agenty od wyspecjalizowanych zadań. To właśnie jest rolą agentów odpowiedzialnych za logikę i komunikację. Wiedzą one, jakie funkcje dostarczają inne elementy systemu i po prostu z nich korzystają. Rodzi się taki naturalny podział na warstwy, bo logika wcale nie musi wiedzieć, jak dokładnie korzysta się z konkretnego czujnika. Przez API? A może ma jakąś stronę internetową, którą trzeba obsłużyć? Nieważne. Od tego jest agent, którego się pyta, ile stopni jest teraz za oknem, a on we własnym zakresie wybiera odpowiedni element systemu, z którym przeprowadza rozmowę, a następnie zwraca gotową odpowiedź logice, która wykorzysta ją do rozwiązania kolejnego zleconego jej zadania. Jak więc widzicie, co po raz kolejny podkreślam, każdy ma w takim systemie swoje zadanie, w którym jest bardzo dobrze wyspecjalizowany. A jak jakiś moduł nie spełnia naszych oczekiwań, możemy wymienić go na inny albo dołożyć drugiej, który robi podobne rzeczy, i pozwolić agentowi rozdzielającemu zadania na wybranie sobie tego, z którego, w zależności od problemu, będzie chciał skorzystać. Może sobie też po prostu wybrać z dwóch odpowiedzi dostarczonych przez dwa różne moduły. Czy to więc w końcu rozwiązanie wszystkich problemów świata? Jak to zwykle bywa, nie ma czegoś do wszystkiego. Podejście integrujące wielki model językowy z wyspecjalizowanymi agentami najlepiej sprawdza się w przypadku rozbudowanych, skomplikowanych i trudnych do jednoznacznego sklasyfikowania zadań. Jeżeli napotykamy jakiś w miarę prosty problem, który w dodatku często się powtarza, to budowanie tak wielkiej w swoich rozmiarach architektury to totalny przerost formy nad treścią, czy, jak mówią niektórzy, strzelanie z armaty do wróbla. Tak rozbudowany system będzie działał znacznie wolniej w przypadku nieskomplikowanych zadań. W dodatku przepali nieproporcjonalnie dużą ilość tokenów, co jest przecież nie bez znaczenia, bo kosztuje realne pieniądze. Do takich zastosowań wystarczy jeden, monolityczny, ogólny model. Jednak kiedy spotykamy się z czymś bardziej złożonym, to właśnie agenty na ten moment wydają się odpowiedzią na nasze problemy. Co robić i jak żyć? Dlaczego o tym mówię, poza tym, że to niesamowicie interesujące? Ano to też autopromocja. Trwają już zapisy do czwartej edycji kursu AIDevs, który organizuję wspólnie z Jakubem Brugalskim i Adamem Gospodarczykiem. Tak, czwartej, choć dla niepoznaki nazwaliśmy ją AIDevs 3. Tematem, którym się zajmiemy, będą właśnie agenty sztucznej inteligencji. Nauczymy Cię, jak je programować oraz wdrażać. Jeżeli mam Twoją ciekawość, zapraszam na stronę aidevs.pl, gdzie możesz dowiedzieć się więcej oraz zapisać na nadchodzącą edycję kursu. Startujemy w listopadzie, więc wciąż możesz załapać się na promocyjną cenę. Chcesz zobaczyć, jak działa to na żywo, bo nie wierzysz na słowo? Mam w zanadrzu półtora godzinnego live'a, na którym możesz zobaczyć działające demo. Całą trójką rozmawialiśmy o tych zagadnieniach zdecydowanie szerzej, więc zachęcam do pogłębienia wiedzy. Rozwiązujesz jakiś złożony problem z wykorzystaniem sztucznej inteligencji, ale ogólne modele nie dają sobie z nim rady, bo choćby halucynują? Agenci pomagają w rozbiciu trudnych problemów na mniejsze zadania. Pozwalają też budować systemy, które są po prostu lepiej dopasowane do tego, aby rozwiązywać za nas realne problemy dnia codziennego. To może być kolejny przełom, w którym nie tylko ja z kolegami, ale też spora część Doliny Krzemowej głęboko wierzy. Sądzę, że to właśnie droga, która zbliży nas do użytecznego zastosowania mechanizmów sztucznej inteligencji. I to już wszystko na dziś. Tymczasem dziękuję za Waszą uwagę i do zobaczenia.