🕵️♂️ Agenty, to ostatnio gorący temat w świecie sztucznej inteligencji, tylko... o co w tym chodzi i czym/kim są wspomniani agenci?!
Jak podejście oparte na agentach miałoby pomóc Ci w pracy? 🤔
Już tłumaczę 🧵 ↓
Wykorzystanie AI Generative AI przez programistów możemy podzielić na dwa główne przypadki:
1) Pomóż mi coś zrobić / zrób to ze mną (np. Copilot, ChatGPT)
2) Zrób to za mnie i działaj w tle!
To drugie podejście stosowane jest w automatyzacji, gdy GenAI działa na backendzie.
Działanie na back-endzie polega na implementacji części logiki aplikacji na instrukcjach dla LLM. LLM może działać w chmurze (np. Anthropic API) lub lokalnie (np. Llama 3).
NIE oznacza to, że LLM generuje dla Ciebie kod aplikacji, tylko po prostu staje się jej częścią.
Przykładowo, piszesz automat, który usuwa z Twojej platformy obraźliwe komentarze.
Jak to zrobisz?
Metoda klasyczna polega na wrzuceniu do słownika wszystkich wulgarnych słów. Niestety, praktyka pokazuje, że to działa bardzo kiepsko 🤷♂️
Gdy użytkownik napisze do drugiego "Ty małpo!" albo "ale z Ciebie pustak!", to Twój skrypt nie zadziała, ponieważ małpa i pustak nie są wulgaryzmami. Jednak taki komentarz nie powinien zostać opublikowany na stronie.
LLM bez większego problemu wyłowi taki tekst i go usunie.
No OK, ale o co chodzi z agentami? 🤔
Typowe zastosowanie LLM w logice aplikacji, w uproszczeniu zakłada trzy rzeczy:
1) Programista umie wykonać to zadanie (zna proces)
2) Programista umie wytłumaczyć komuś to zadanie, nawet jeśli ten ktoś to dziecko 👶
3) zadanie jest proste
Niestety, nie zawsze wszystkie kroki z procedury są wymagane, ich kolejność może być różna, w trakcie operacji może dojść do błędu wymagającego dodatkowych akcji. Nie zawsze też wiemy, jak wygląda cel, więc nie możemy go poprawnie opisać.
Trudno to ogarnąć jednym promptem 😕
Tutaj z pomocą przychodzi wzorzec projektowy określany mianem Agentów AI ✌️😎
Agent to aplikacja zdolna do osiągnięcia celu, do którego NIE została zaprojektowana, posługując się zestawem narzędzi, z których umie korzystać.
Pomyśl o nim jak o stażyście w firmie.
Stażysta nie wie, jakie zadanie będą na niego czekać w nowej pracy, ale za to w CV wpisał kilka posiadanych umiejętności:
• umiem wysyłać maile
• umiem używać wyszukiwarki
• wiem, jak się ściąga zdjęcia i inne pliki z internetu
• szybko się uczę nowych rzeczy!
Szef daje mu pierwsze zadanie:
"Musimy przygotować artykuł o ostatnim rozdaniu Oskarów. Sprawdź, którzy aktorzy zostali nagrodzeni. Spisz ich i wyślij na maila. A! Dołącz też ich jakieś fajne fotki".
Szef nie powiedział, jak zrobić to zadanie, a tylko podał oczekiwany wynik.
Czy stażysta sobie z tym poradzi? Zakładam, że tak.
Umie przecież wyszukać informacje np. w Google, pościągać zdjęcia i wysłać to wszystko na maila szefa. Ma dostęp do narzędzi, z których umie korzystać.
Tak samo jest z agentami wspieranymi przez LLM.
Przeważnie w celach biznesowych nie tworzy się agentów uniwersalnych, mogących wykonywać absolutnie dowolne zadania.
To albo zupełnie nie działa, albo jest piekielnie drogie w użyciu (koszty chmury lub zasobów lokalnych), albo działa bardzo słabo.
Specjalizowane systemy agentowe mogą jednak wykonywać pracę, do której NIE zostały stworzone, a jedynie posiadają do niej wymagane "kompetencje", czyli umieją korzystać z odpowiednich narzędzi.
Jakimi narzędziami może posługiwać się agent? 🤔
• Zewnętrzne źródła danych (np. firmowa baza danych)
• przeglądarka WWW (do wchodzenia na strony i używanie ich)
• interpreter np. Pythona (do tworzenia pomocnych skryptów)
• zaawansowany kalkulator
i wiele innych
O ile zadanie "zamów mi pizzę z ananasem z pizzerii XYZ pod adres ZZZ" brzmi absurdalnie w kontekście np. modelu GPT-4o, to w kontekście agenta umiejącego posługiwać się przeglądarką i posiadającego niezbędne dane na Twój temat jest realne do wykonania.
Da się to zautomatyzować.
Agent w praktyce wymaga, aby:
• narzędzie udostępniało API, którym mógłby się posłużyć (przeglądarki oparte np. na silniku Chromium takie posiadają lub mogą współgrać np. z PlayWright/Puppeteerem)
• wiedzieć, jak przekazać dane do narzędzia (tego uczy go programista)
Tworzenie rozwiązań agentowych nie jest łatwe, ale jest to kierunek, w którym będą zmierzać firmy przy wprowadzaniu automatyzacji i rozwiązań bazujących na sztucznej inteligencji.
Sama umiejętność napisania sprytnego prompta może już niebawem okazać się zbyt słabym skillem.
Wraz z Adamem Gospodarczykiem i Mateuszem Chrobokiem przeszkoliliśmy już kilka tysięcy programistów ze skutecznej integracji systemów IT z rozwiązaniami AI.
Jesienią będziemy uczyć budowy agentów 🕵️♂️
aidevs.pl/?ref=unknowAgent
Zobacz agendę i dołącz do nas ⬇️