Pomysł na początku był prosty: chciałem stworzyć własnego asystenta AI, który nie będzie kolejnym chatbotem. Nie chodziło mi o system, któremu zadaję pytanie i dostaję odpowiedź. Chciałem móc powiedzieć:
Znajdź potencjalnych klientów, sprawdź ich strony i przygotuj mi konkretne oferty.
A reszta miała wydarzyć się sama. Tak zaczął powstawać JARVIS.
01ETAP
Lokalny mózg
Jednym z głównych założeń od początku było uruchomienie możliwie dużej części systemu lokalnie.
Najprostszym rozwiązaniem byłoby podpięcie mocnego modelu przez API i wysyłanie każdego zadania do chmury. Tyle że przy kilku agentach pracujących regularnie oznacza to kolejne koszty i uzależnienie całego systemu od zewnętrznych usług.
Dlatego pierwszym mózgiem JARVIS-a został Qwen uruchomiony lokalnie przez Ollamę. Pierwsza architektura była banalnie prosta. I wtedy szybko pojawiło się pierwsze pytanie:
Co z tego, że AI potrafi mi odpowiedzieć, skoro nie potrafi niczego zrobić?
02ETAP
JARVIS dostaje ręce
Zacząłem więc podpinać narzędzia. Dostęp do plików, katalogów, aplikacji, procesów, terminala czy przeglądarki sprawił, że model przestał być wyłącznie chatbotem. Mógł dostać zadanie i wykonać konkretną operację na komputerze.
Jednocześnie nie chciałem dawać modelowi pełnej kontroli bez żadnych ograniczeń. Powstał więc Policy Engine i system zatwierdzania bardziej ryzykownych operacji.
To był moment, w którym JARVIS zaczął faktycznie przypominać agenta, a nie interfejs do modelu językowego.
03ETAP
Pamięć
Kolejnym problemem okazała się pamięć. Jeżeli powiedziałem:
Wejdź do tego katalogu.
a chwilę później:
Skopiuj stamtąd zdjęcia.
agent powinien wiedzieć, czym jest „stamtąd”. Do tego potrzebował pamiętać wcześniejsze działania, aktualne zadanie i jego stan. Dlatego pojawiło się SQLite, Context Resolver i system przechowywania zadań.
Od tego momentu celem przestało być wykonanie pojedynczej komendy. JARVIS miał dostać cel, zapamiętać go i realizować kolejne kroki prowadzące do jego osiągnięcia.
04ETAP
Pierwszy agent biznesowy: Lead Hunter
Potrzebowałem czegoś, na czym będę mógł sprawdzić, czy cała ta architektura ma praktyczny sens. Tak powstał Lead Hunter. Pomysł jest prosty: zamiast ręcznie szukać potencjalnych klientów, agent ma zrobić większość tej pracy za mnie.
Pierwsza wersja dostała możliwość wykonywania audytu SEO. Następnie podpiąłem przez API Google PageSpeed, dzięki czemu agent może sprawdzać wydajność znalezionej strony i wykrywać konkretne problemy. Do systemu została również podłączona Meta przez API, żeby JARVIS mógł w przyszłości korzystać z kolejnych źródeł danych i automatyzacji związanych z ekosystemem Meta.
To jednak nadal wymagało podania konkretnej strony. A przecież nie o to chodziło. Docelowo chciałem powiedzieć tylko:
Znajdź 10 firm z tej branży, których strony mają problemy.
05ETAPeksperyment
Agent szukający klientów na Facebooku
W międzyczasie pojawił się drugi pomysł. Skoro potencjalni klienci sami publikują na grupach facebookowych, że szukają strony internetowej, specjalisty SEO, reklamy czy innej usługi, dlaczego agent nie miałby ich wyszukiwać?
Zacząłem więc eksperymentować z agentem, którego zadaniem miało być przeglądanie grup i wyszukiwanie postów będących potencjalnymi leadami.
I tutaj pojawiła się ściana. Facebook bardzo mocno ogranicza automatyczny dostęp do części danych i działań. Samo podłączenie Meta API nie oznacza, że agent może swobodnie przeszukiwać wszystkie grupy, posty i profile tak, jak robi to człowiek. Próby obejścia tego przeglądarką prowadzą z kolei do następnego problemu: zabezpieczeń przed automatyzacją.
Ten agent nadal jest więc eksperymentem, a nie ukończonym elementem systemu. I była to jedna z ważniejszych lekcji podczas budowy JARVIS-a:
Czasami ograniczeniem agenta nie jest AI. Ograniczeniem jest środowisko, do którego próbujesz dać mu dostęp.
06ETAPtrwają prace
Przeglądarka okazała się trudniejsza niż AI
Podobny problem pojawił się przy Lead Hunterze. JARVIS potrafi już wykonać audyt SEO. Potrafi wysłać stronę do Google PageSpeed. Problem zaczyna się krok wcześniej: sam znajdź te strony.
Przy większej liczbie automatycznych wyszukiwań pojawiają się blokady, CAPTCHA i reCAPTCHA. I nagle cały workflow potrafi zatrzymać się już na pierwszym kroku:
- Znajdź firmyCAPTCHA
- Znajdź strony
- SEO
- PageSpeed
Obecnie eksperymentuję więc z Playwrightem i wyszukiwaniem przez przeglądarkę. To właśnie nad tym pracuję obecnie.
07ETAP
Mocniejszy model nie rozwiązał wszystkiego
Przez długi czas podejrzewałem, że problemem jest lokalny Qwen 8B. W końcu to stosunkowo niewielki model, który próbuję zmusić do planowania, używania narzędzi i wykonywania wieloetapowych zadań. Dlatego dodałem możliwość podłączenia modelu chmurowego jako alternatywnego mózgu JARVIS-a.
Co ciekawe — część problemów pozostała. I to doprowadziło mnie do jednego z najważniejszych wniosków z całego projektu:
Dobry model nie naprawi źle zaprojektowanego systemu agentowego.
Jeżeli agent dostanie złe narzędzia albo system źle zinterpretuje kolejność zadania, nawet mocniejszy model może się wyłożyć. Przykład? Mówię:
Znajdź firmy i sprawdź ich SEO.
Podaj adres strony.
JARVIS widzi „SEO”, uruchamia audyt i prosi o adres. Tylko że właśnie znalezienie tego adresu było częścią jego zadania. To zmusiło mnie do ponownego przemyślenia architektury.
08ETAPtu jestem dziś
JARVIS jako orkiestrator
Dzisiaj coraz mniej patrzę na JARVIS-a jak na jeden model AI. Model jest tylko jednym z elementów.
JARVIS ma być orkiestratorem, który rozumie cel, dobiera odpowiednie możliwości systemu, korzysta z lokalnego lub chmurowego modelu i pilnuje wykonania zadania.
Po drodze: Context Resolver, Task Manager i Planner, dwa mózgi — Qwen lokalnie i model w chmurze, gdy jest potrzebny — warstwa możliwości z przeglądarką, Lead Hunterem i Meta API, a na końcu zatwierdzenie, wykonanie, weryfikacja i zapis w pamięci.
I właśnie w tym miejscu projekt znajduje się dzisiaj.
>>CEL
Dokąd to zmierza?
Docelowo Lead Hunter nie ma tylko wykonywać audytu. Chcę móc powiedzieć:
Znajdź 10 potencjalnych klientów z tej branży, których strony mają konkretne problemy.
A JARVIS powinien sam:
- wyszukać firmy
- znaleźć ich strony
- zebrać dane kontaktowe
- zrobić audyt SEO
- sprawdzić PageSpeed
- odrzucić duplikaty
- wybrać najlepsze leady
- przygotować ofertę dopasowaną do wykrytych problemów
- wygenerować gotową wiadomość .eml
Dopiero wtedy wchodzę ja: zatwierdzam albo odrzucam wysyłkę.
STATUS PROJEKTU
To nadal eksperyment
JARVIS nie jest gotowym produktem. Czasem wykonuje zadanie dokładnie tak, jak chciałem. Innym razem przez kilka godzin próbuję zrozumieć, dlaczego zamiast najpierw znaleźć stronę, próbuje zrobić jej audyt bez adresu. I właśnie dlatego ten projekt jest dla mnie ciekawy.
Największym wyzwaniem nie okazuje się stworzenie AI, które potrafi rozmawiać. Takie AI już mamy. Znacznie trudniejsze jest stworzenie systemu, któremu można powiedzieć:
„To jest mój cel. Sam ustal, jak do niego dojść.”
i rzeczywiście pozwolić mu wykonać tę pracę.
Na tej stronie będę dokumentował kolejne etapy budowy JARVIS-a — również te, które nie działają za pierwszym razem.
DYSKUSJA
Komentarze
Masz pytanie, pomysł albo własne doświadczenia z agentami AI? Napisz — komentarz pojawi się po zatwierdzeniu.
Wczytywanie komentarzy…