Jak zbudować własnego agenta AI typu OpenClaw
Dowiedz się, jak krok po kroku stworzyć własnego agenta AI z dostępem do powłoki i plików. Poznaj architekturę systemu oraz kluczowe aspekty bezpieczeństwa po CVE-2026-32922.
Czym w rzeczywistości jest OpenClaw
OpenClaw to osobisty agent AI z możliwością samodzielnego hostowania. Uruchamia się go na własnym serwerze, łączy z używanymi komunikatorami, a agent może wykonywać polecenia powłoki, sterować przeglądarką, odczytywać i zapisywać pliki oraz reagować na wysyłane wiadomości. Projekt jest udostępniany na licencji MIT, stawia na lokalność i do połowy 2026 roku zdobył ponad 380 000 gwiazdek w serwisie GitHub, co czyni go jednym z najpopularniejszych projektów na tej platformie. Pod warstwą złożoności kryje się niewielki zestaw komponentów połączonych w logiczny sposób. Ten wpis omawia te elementy, aby wyjaśnić sposób budowy takiego narzędzia oraz wskazać potencjalne zagrożenia.
Jedno ostrzeżenie na wstępie, ponieważ kształtuje ono każdą decyzję projektową opisaną poniżej. W marcu 2026 roku twórcy OpenClaw opublikowali serię biuletynów bezpieczeństwa: 22 tylko 13 marca i pięć kolejnych 16 marca, podczas gdy National Vulnerability Database odnotowała w tym miesiącu 199 zgłoszeń CVE dla OpenClaw. Partia z 13 marca zawierała dwie krytyczne luki ocenione na 9.9 w skali 10, w tym błąd eskalacji uprawnień (CVE-2026-32922), który pozwalał urządzeniu posiadającemu jedynie uprawnienia do parowania na wygenerowanie pełnych tokenów administratora. Projekt został zaprojektowany tak, aby to operator dbał o jego zabezpieczenie. Agent zdolny do wykonywania dowolnych poleceń jest tak bezpieczny, jak serwer, na którym działa, oraz ograniczenia, które zostały na niego nałożone. Należy o tym pamiętać podczas lektury.
Demon bramy: jeden proces, utrzymywany w izolacji
W centrum znajduje się pojedynczy, długo działający proces, zazwyczaj nazywany bramą (gateway). Jest to płaszczyzna sterowania. Odbiera wiadomości, podejmuje decyzje, uruchamia narzędzia i wysyła odpowiedzi. Wszystko inne łączy się z tym procesem.
Najważniejszym faktem dotyczącym bramy jest miejsce, w którym nasłuchuje. W standardowej instalacji na hoście OpenClaw wiąże ją z adresem pętli zwrotnej (loopback), 127.0.0.1, dzięki czemu nie jest ona dostępna z Internetu, chyba że użytkownik celowo ją wystawi. Wyjątkiem są obrazy kontenerów: dokumentacja bezpieczeństwa OpenClaw wskazuje, że domyślnie korzystają one z wystawionego portu, więc w przypadku uruchamiania kontenera należy zachować uwierzytelnianie i nie publikować portu w Internecie. W każdym przypadku należy dbać o prywatność. Jest to jedyny proces, który wykonuje polecenia, więc wystawiona brama daje każdemu, kto ją znajdzie, zdalny dostęp do serwera. Gdy konieczny jest dostęp z laptopa, należy użyć VPN lub tunelu SSH zamiast otwierać port. Nikt nie zaatakuje portu, do którego nie ma dostępu.
Łączniki kanałów: odbieranie wiadomości i wysyłanie odpowiedzi
Osobisty agent jest użyteczny tylko wtedy, gdy można się z nim komunikować z aplikacji, których już używasz. Do tego służą łączniki kanałów. Każdy z nich obsługuje jedną platformę, taką jak Telegram, WhatsApp, Slack czy Discord, korzystając z API botów lub webhooków danej platformy.
Struktura działania jest dla wszystkich taka sama. Łącznik rejestruje bota na platformie, odbiera przychodzącą wiadomość (poprzez odpytywanie platformy lub odbiór webhooka wysłanego przez platformę), przekazuje tę wiadomość do bramy (gateway) i odsyła odpowiedź bramy za pośrednictwem tego samego API. Łącznik stanowi cienką warstwę translacyjną. Przekształca komunikat „nadeszła wiadomość z Telegrama” na „oto tekst dla agenta” i z powrotem. Budowa własnego łącznika sprowadza się głównie do zapoznania się z dokumentacją API bota danej platformy i odwzorowania jej formatu wiadomości na format bramy.
Mózg i pętla narzędzi
Wewnątrz bramy znajduje się element, który czyni ją agentem, a nie chatbotem. Jest to pętla.
Przychodzi wiadomość. Brama przesyła ją do modelu językowego wraz z listą narzędzi, z których model może korzystać. Model odczytuje wiadomość i podejmuje decyzję: odpowiedzieć bezpośrednio lub wywołać narzędzie. Jeśli wywoła narzędzie, brama uruchamia je, przechwytuje wynik i odsyła go do modelu. Model analizuje wynik i ponownie podejmuje decyzję. Proces ten powtarza się, dopóki model nie wykona wszystkich zadań i nie wygeneruje ostatecznej odpowiedzi.
Ta pętla stanowi istotę działania agenta i jest taka sama, niezależnie od tego, czy agent działa w aplikacji czatu, czy w terminalu. Informacje o tym, jak standardowo łączyć narzędzia z tą pętlą, zawiera artykuł łączenie narzędzi poprzez Model Context Protocol, a kwestie związane z modelem wyjaśnia uruchamianie modelu na własnym sprzęcie.
Zestaw narzędzi to główny atut i źródło zagrożenia
To narzędzia czynią OpenClaw potężnym rozwiązaniem. Narzędzie wykonujące polecenie powłoki, narzędzie sterujące przeglądarką, narzędzie do odczytu i zapisu plików. Jeśli powyższa pętla uzyska do nich dostęp, może wykonać niemal każdą czynność dostępną z poziomu klawiatury. Ten zasięg stanowi istotę produktu, ale jest również źródłem pełnego ryzyka.
Agent zdolny do uruchomienia dowolnego polecenia na podstawie instrukcji otrzymanych z komunikatora tworzy rozległą powierzchnię ataku. Błędna instrukcja, atak typu prompt-injection ukryty na stronie odwiedzanej przez narzędzie przeglądarki lub błąd taki jak luki z marca 2026 roku mogą sprawić, że polecenie „odczytaj mój kalendarz” zmieni się w „usuń moje pliki”. Dlatego ograniczenia nie są opcjonalnymi dodatkami. Agent powinien działać jako dedykowany użytkownik bez uprawnień, bez dostępu do sudo, aby uniemożliwić eskalację w przypadku przejęcia kontroli. Niebezpieczne narzędzia należy zabezpieczyć etapem zatwierdzania, aby agent pytał o zgodę przed wykonaniem destrukcyjnych działań. Wykonywanie narzędzi powinno odbywać się w piaskownicy (sandbox), aby ograniczyć skutki niekontrolowanego polecenia. Klucz API modelu musi być odizolowany, aby wyciek nie przekazał atakującemu dostępu do konta. Należy również wziąć pod uwagę inne sekrety znajdujące się na tym samym serwerze, ponieważ rzeczywiste słabe punkty Vaultwarden to token administratora i plik kopii zapasowej, a nie samo szyfrowanie, a agent z dostępem do powłoki może uzyskać dostęp do obu tych elementów.
Zanim udostępnisz cokolwiek, co wykonuje polecenia powłoki, przemyśl dokładnie podstawy. Przygotuj listę kontrolną dla własnego serwera, a następnie postępuj zgodnie z nią od początku do końca:
Kwestia użytkownika bez uprawnień została szczegółowo omówiona w uruchamianie usług jako użytkownik bez uprawnień, a pełny przewodnik bezpiecznej konfiguracji dla rzeczywistego projektu znajduje się w bezpieczne uruchamianie OpenClaw na VPS.
Pamięć jako zwykłe pliki
Większość użytkowników oczekuje, że pamięć agenta znajduje się w bazie danych. W przypadku OpenClaw tak nie jest. Pamięć jest przechowywana jako zwykłe pliki Markdown na dysku i jest to podejście warte naśladowania. Pliki stanowią źródło prawdy; domyślny silnik pamięci utrzymuje obok nich indeks wyszukiwania SQLite, który można odtworzyć z plików w razie potrzeby.
Pliki są proste. Nie ma schematów do migrowania, usług do utrzymywania ani języka zapytań do nauki. Są łatwe do sprawdzenia: można otworzyć folder i przeczytać dokładnie to, co agent wie o użytkowniku, poprawić błędną notatkę poprzez edycję pliku lub usunąć wspomnienie, usuwając odpowiedni plik. Są również przenośne, ponieważ przeniesienie agenta na nowy serwer sprowadza się do skopiowania katalogu. Dla osobistego agenta obsługującego jednego użytkownika folder plików tekstowych jest wystarczający i sprawia, że cały system jest łatwy do zrozumienia.
Umiejętności: przenośny sposób dodawania możliwości
Poza wbudowanymi narzędziami, OpenClaw wykorzystuje przenośny format umiejętności, dzięki któremu społeczność może rozszerzać funkcjonalność bez modyfikacji rdzenia systemu. Umiejętność to samodzielny pakiet instrukcji oraz, w niektórych przypadkach, kodu, który uczy agenta nowego zadania. Agent ładuje umiejętność, gdy wymaga tego zadanie. Wyszukiwanie internetowe jest zazwyczaj pierwszą dodawaną funkcją, a skierowanie tej umiejętności na własną instancję SearXNG pozwala uniknąć korzystania z komercyjnego API wyszukiwarek, jednocześnie jasno określając granicę zaufania dla umiejętności, ponieważ wszystkie zwracane dane są tekstem napisanym przez osobę trzecią.
Wartość takiego formatu polega na tym, że możliwości stają się współdzielone. Ktoś tworzy umiejętność do konkretnego zadania, publikuje ją, a inni użytkownicy mogą ją łatwo wdrożyć. Ta wygoda niesie ze sobą ryzyko, ponieważ umiejętność to kod od nieznajomego, który agent uruchomi bez wahania. Dlatego warto przepuścić każdy element, którego nie napisałeś samodzielnie, przez własny skaner bezpieczeństwa, zanim go załadujesz. Jeśli budujesz własnego agenta, wczesne zdefiniowanie małego i przejrzystego formatu rozszerzeń uchroni Cię przed koniecznością późniejszego wpisywania każdej możliwości na sztywno w kodzie rdzenia.
Własny model
OpenClaw jest niezależny od modelu. Nie zawiera własnego modelu językowego. Łączy się natomiast z wybranym modelem, który może być hostowanym API lub modelem uruchamianym samodzielnie.
Ten podział ma znaczenie dla kosztów, prywatności i kontroli. Hostowane API zapewnia najsilniejsze modele bez konieczności zarządzania sprzętem, przy opłacie za token i przesyłaniu promptów poza serwer. Model hostowany samodzielnie, obsługiwany przez narzędzia typu Ollama, utrzymuje każdą wiadomość na własnym serwerze i generuje jedynie koszty sprzętu oraz energii, kosztem użycia mniejszego lub wolniejszego modelu. Wielu użytkowników łączy oba rozwiązania. Jeśli celem jest pełna prywatność agenta, samodzielne hostowanie modelu na VPS stanowi element zamykający tę lukę, a Hermes Agent to inny agent hostowany samodzielnie, który warto porównać.
Czy warto budować własne rozwiązanie?
Można zbudować cały ten system samodzielnie. Komponenty nie są egzotyczne: demon, kilka konektorów czatu, pętla modelu z narzędziami, folder z plikami Markdown oraz format wtyczek. Zrozumienie ich działania jest przydatne, ponieważ demistyfikuje każdego agenta, z którego będziesz korzystać, i wskazuje dokładnie, gdzie kryje się zagrożenie.
Jednak dla większości osób uczciwa odpowiedź brzmi: należy uruchomić gotowe rozwiązanie i je zabezpieczyć, zamiast odtwarzać je od podstaw. OpenClaw ma już zaimplementowane konektory, pętlę działania i format umiejętności, a rozwiązanie przeszło rzeczywistą weryfikację pod kątem bezpieczeństwa. Wysiłek lepiej przeznaczyć na element, za który faktycznie odpowiadasz, czyli konfigurację i zabezpieczenie własnego serwera. Jeśli najpierw chcesz wybrać ścieżkę nauki, przechodzenie przez te koncepcje etapami jest lepsze niż czytanie kodu źródłowego agenta bez przygotowania, ponieważ po każdym etapie pozostaje jeden element, który został rzeczywiście zbudowany. Należy zbudować mały system, aby się nauczyć. Należy uruchomić rzeczywisty system i go zabezpieczyć, aby z niego korzystać.
Podstawy ogólne znajdują się w budowaniu własnego agenta AI na VPS, a budowanie agenta z Claude przedstawia te same koncepcje z wykorzystaniem konkretnego modelu jako jednostki centralnej.
FAQ
Czy zbudowanie agenta takiego jak OpenClaw jest trudne?
Poszczególne części nie są trudne. Proces bramy, łącznik z komunikatorem, pętla modelu z narzędziami oraz folder plików są same w sobie proste. Trudnością jest bezpieczna implementacja. Agent, który wykonuje polecenia powłoki na podstawie wiadomości z czatu, stanowi poważną powierzchnię ataku, a poprawne skonfigurowanie piaskownicy (sandboxing), uprawnień i użytkownika bez uprawnień (unprivileged user) wymaga więcej pracy niż samo połączenie funkcji.
Dlaczego OpenClaw przechowuje pamięć jako pliki Markdown zamiast w bazie danych?
Ponieważ dla osobistego agenta jednego użytkownika pliki są wystarczające i znacznie prostsze. Nie ma potrzeby uruchamiania usługi bazy danych, pamięć jest łatwa do odczytania i poprawienia ręcznie, a przeniesienie agenta na inny serwer to tylko skopiowanie katalogu. Baza danych znajduje zastosowanie w większej skali, nie tutaj.
Co jest najbardziej niebezpieczną częścią osobistego agenta AI?
Narzędzia, które pozwalają mu działać: wykonywanie poleceń powłoki, sterowanie przeglądarką i zapisywanie plików. Są one powodem, dla którego buduje się agenta, ale też powodem, dla którego może on wyrządzić szkodę. Fala biuletynów bezpieczeństwa OpenClaw z marca 2026 roku, obejmująca 27 publikacji między 13 a 16 marca, w tym dwie krytyczne luki o ocenie 9.9, jest najsilniejszym argumentem za ostrożnym traktowaniem warstwy narzędziowej: należy uruchamiać procesy jako użytkownik bez uprawnień, ograniczać destrukcyjne działania i stosować piaskownicę wykonawczą.
Czy do zbudowania agenta potrzebuję własnego modelu językowego?
Nie. Agenci tacy jak OpenClaw są niezależni od modelu, więc można podłączyć wybrany przez siebie. Może to być hostowane API dla najpotężniejszych modeli lub model uruchamiany samodzielnie dla pełnej prywatności. Samodzielne hostowanie przy użyciu Ollama pozwala zachować każdą wiadomość na własnym serwerze kosztem uruchomienia mniejszego modelu.