Kursy Zasób

Hermes — przewodnik wdrożenia własnego asystenta AI

Praktyczny przewodnik wdrożenia Hermesa krok po kroku — od VPS-a i instalacji w kontenerze, przez model i Telegram, po klucze, crony i utrzymanie.

To wersja do trzymania pod ręką: lista czynności, komend i wartości, do której wracasz przy każdym ekranie, zamiast szukać po pamięci. Ułożyłam ją w kolejności, w jakiej realnie stawiasz asystenta — od pustego serwera, przez instalację, model i czat, po klucze, pierwszą automatyzację i utrzymanie. Pięć filarów teorii (pamięć, umiejętności, osobowość, crony, pętla samodoskonalenia) streszczam na początku tylko po to, żeby kolejne komendy miały sens; reszta to już konkret krok po kroku.

Zanim zaczniesz: czego potrzebujesz

Zbierz to wcześniej, żeby nie przerywać instalacji w połowie:

  • Serwer, na którym stanie asystent. Najwygodniej VPS — wynajęty komputer w chmurze, działający bez przerwy, którym zarządzasz zdalnie przez SSH (dostajesz adres IP i hasło). Hermes działa też na Mac Mini, laptopie albo na Androidzie przez Termux, ale tu prowadzę cię ścieżką VPS-a, bo jest najprostsza do powtórzenia.
  • System operacyjny: Ubuntu 24.04 LTS.
  • Konto u dostawcy modelu AI — czyli „mózgu”, z którego Hermes korzysta. Najtańszy sensowny wariant bez uruchamiania modelu lokalnie to podpięcie istniejącego abonamentu (np. ChatGPT/Codex w planie 20, 100 lub 200 USD miesięcznie) zamiast rozliczania osobno za każde zapytanie.
  • Konto Telegram (prowadzę przykład na Telegramie; równie dobrze zadziała Discord, Slack, WhatsApp czy iMessage).
  • Konto GitHub — na nim odłożysz kopię pamięci i umiejętności asystenta.
  • Osobne konto e-mail dla asystenta (np. dedykowany Gmail), nie twoje prywatne — przyda się przy logowaniach do narzędzi.

Co Hermes ma już w środku po instalacji, więc nie musisz tego dokładać: 91 wbudowanych umiejętności, dostęp do biblioteki z ponad 520 umiejętnościami od społeczności (w tym 16 oficjalnych umiejętności Anthropic), rozpoznawanie obrazu, automatyzację przeglądarki, generowanie obrazów, syntezę mowy, komendy w terminalu, planowanie zadań oraz odpowiedzi głosowe (potrafi odpisać nagraniem audio, nie tylko tekstem).

Słownik pięciu filarów (przeczytaj raz, wróć w razie wątpliwości)

Bez tych pięciu pojęć dalsze komendy będą zlepkiem znaków. Z nimi wszystko się układa.

  • Pamięć — mała, trwała wiedza, którą asystent niesie między sesjami. Każda sesja startuje bez pamięci (jak bohater filmu Memento), więc wczytuje dwa pliki: user.md (kim jesteś, jaki masz styl, czego nie znosisz) oraz memory.md (środowiska, projekty, kontekst firmy). Hermes sam je aktualizuje, ale i tak go popychaj: „zapisz to w pamięci”, „nigdy więcej tego nie rób”. Stare rozmowy odzyskujesz przez wyszukiwanie sesji (Hermes trzyma je w bazie SQLite). Do pamięci nie wkładasz sekretów ani tymczasowego statusu zadań.
  • Umiejętności — pamięć proceduralna, czyli gotowe instrukcje „jak dobrze zrobić daną rzecz” (jak przepis kulinarny: z przepisu naleśniki wychodzą za każdym razem tak samo, z pamięci — raz tak, raz inaczej). Każda umiejętność to plik skill.md z nagłówkiem YAML na górze, który mówi asystentowi, co dana umiejętność robi i kiedy jej użyć. To tzw. progresywne ujawnianie: pełna treść wczytuje się dopiero, gdy jest potrzebna, więc nie zapycha kontekstu. Hermes potrafi sam wyłapać powtarzalne zadanie i zamienić je w umiejętność; umiejętności poprawiają się z twoją informacją zwrotną.
  • Osobowość — plik soul.md nadaje asystentowi ton: zwięzły, swobodny, formalny, sarkastyczny — jak chcesz. To zwykły markdown, bez nagłówka YAML. Ewoluuje z czasem na bazie korekt.
  • Crony — zaplanowane, powtarzalne zadania, które zmieniają asystenta z reaktywnego w działającego z wyprzedzeniem, przy zachowaniu pełnej pętli agentowej. Mówisz zwykłym zdaniem: „codziennie o 6 rano zrób X, Y, Z”. Hermes tworzy cron, o wyznaczonej porze budzi się w świeżej, odrębnej sesji, wykonuje zadanie i odsyła wynik do pierwotnego czatu.
  • Pętla samodoskonalenia — spina pozostałe filary: robisz pracę, asystent się uczy, zapisujesz wnioski do pamięci, powtarzalne kroki stają się umiejętnościami, asystent przeszukuje dawne sesje, gdy kontekst ma znaczenie — i tak w kółko. Automatycznie nie znaczy magicznie: pętla działa najlepiej, gdy korygujesz Hermesa, każesz mu zapisywać rzeczy do pamięci i tworzyć oraz aktualizować umiejętności po trudniejszej robocie.

Pamiętaj prostą oś: pamięć = co zapamiętać, umiejętności = jak to zrobić ponownie.

Zaawansowane parametry crona (przydają się dopiero przy bardziej złożonych automatyzacjach):

  • CONTEXTFROM — przekazuje wynik jednego zadania do drugiego.
  • WORKDIR — uruchamia narzędzia z konkretnego katalogu projektu.
  • flaga NOAGENT — uruchamia sam skrypt bez pętli rozumowania agenta (tylko skrypt, bez warstwy agentowej).
  • Sesje cronów nie mogą rekurencyjnie tworzyć kolejnych cronów, więc polecenia muszą być samowystarczalne.

Plik kontekstu projektuagents.md opisuje cel i strukturę całego projektu dla zamkniętego środowiska pracy (odpowiednik claude.md w Claude Code czy AGENTS.md w Codex). Istotny głównie wtedy, gdy używasz Hermesa w terminalu do pracy z kodem.

Krok 1 — Postaw VPS

  1. Wybierz plan mocy. Dostawcy zwykle oferują kilka poziomów (np. KVM 1/2/4/8 — różnią się procesorem, pamięcią i przepustowością). Na start wystarcza wariant średni (np. KVM 2); później powiększysz go jednym kliknięciem, więc nie przepłacaj z góry. Plan roczny bywa opłacalny (rząd ~100 USD/rok), a na jednym VPS-ie zmieści się kilku asystentów.
  2. Ustaw konfigurację:
  • System: Ubuntu 24.04 LTS.
  • Jeśli dostawca ma opcję automatycznego wdrożenia Hermesa „jednym kliknięciem” — skorzystaj.
  • Dodaj darmowy skaner malware, jeśli jest dostępny.
  • Nadaj zapamiętywalną nazwę hosta (np. youtube-hermes.vps).
  • Włącz codzienne automatyczne kopie zapasowe.
  1. Zapisz dane dostępowe od razu w bezpiecznym miejscu: login i hasło administratora, adres IP, nazwa hosta.

Krok 2 — Wybierz metodę instalacji

Masz dwie drogi:

  • Instalacja na roocie — Hermes siedzi wprost na VPS-ie, na głównym poziomie maszyny. Komendę instalacyjną uruchamiasz w terminalu dostawcy.
  • Instalacja w kontenerze Docker — Hermes mieszka w odizolowanym „pudełku” wewnątrz VPS-a, zwykle stawiana jednym kliknięciem przez menedżer Dockera.

Polecam kontener. Jest najprostszy i pozwala później postawić obok kilku osobnych asystentów na jednym VPS-ie — każdy z własnymi kluczami, pamięcią i narzędziami. Analogia: VPS to biurowiec, każdy asystent to osobne biuro z własnym kluczem.

Krok 3 — Załóż projekt do zarządzania asystentami (zrób to równolegle)

Z pozoru nadgorliwość, w praktyce jedna z ważniejszych rzeczy w całym wdrożeniu. Załóż osobny projekt w Claude Code, który będzie pilnował twoich serwerów i asystentów.

Po co:

  • jedno uporządkowane miejsce na wszystkie konfiguracje i dane dostępowe VPS-ów;
  • jeśli asystent padnie, Claude Code potrafi wejść na serwer i pomóc go postawić z powrotem;
  • nie musisz pamiętać komend ani składni terminala;
  • gdy coś się psuje, opisujesz po prostu, co widzisz, i masz pomoc w komunikacji.

Co zapisywać dla każdego asystenta:

  • login i hasło administratora (do pliku .env w projekcie);
  • adres IP i nazwa hosta;
  • czy to instalacja w Dockerze, czy na roocie;
  • dostępne narzędzia, umiejętności, ścieżki plików;
  • notatki o bezpieczeństwie i integracjach.

Krok 4 — Wdrożenie asystenta (onboarding)

Po wdrożeniu Hermesa wejdź do czatu (u dostawcy zwykle przycisk „Open”) i zaloguj się loginem oraz hasłem administratora, które zapisałeś wcześniej.

4.1 Wybierz dostawcę modelu

Dostawców jest wielu; najtańszy wariant nieoparty na open source to zwykle podpięcie istniejącego abonamentu (np. ChatGPT/Codex) zamiast płacenia za każde zapytanie. Zaloguj się przez link, który poda Hermes, autoryzuj dostęp, skopiuj 9-cyfrowy kod i wklej go do terminala.

4.2 Wybierz model

Wskaż model dający najlepszy balans możliwości i kosztu (przy podpięciu abonamentu Codex sensownym wyborem bywa GPT-5.5).

4.3 Podłącz Telegram

  • W kreatorze zaznacz Telegram (spacją), zatwierdź (enter).
  • W Telegramie otwórz BotFathera i wyślij /newbot.
  • Nadaj botowi nazwę oraz unikalną nazwę użytkownika.
  • Skopiuj token bota (ciąg znaków potwierdzający, że program ma prawo działać w twoim imieniu — coś jak hasło aplikacji) i wklej go do terminala VPS-a.

4.4 Autoryzuj swoje konto Telegram

  • W Telegramie znajdź bota USERINFO i napisz do niego, żeby dostać swój identyfikator użytkownika (user ID).
  • Wklej user ID do terminala jako użytkownika kanału domowego.
  • Na pytanie, czy to kanał domowy, potwierdź „tak”. Dzięki temu na start z asystentem rozmawiasz tylko ty.

4.5 Zapisz dane konfiguracyjne

Hermes pokaże ci dostępność narzędzi, ścieżki ustawień, miejsce kluczy API i ścieżki konfiguracji. Skopiuj to wszystko i wklej do swojego projektu w Claude Code — przyda się przy późniejszym rozwiązywaniu problemów.

Najważniejszy odruch tego etapu. Po podpięciu Telegramu wyślesz pierwsze „cześć” i czasem nic nie wraca. Nie zaglądaj w kod i nie panikuj. Wróć do Hermesa w terminalu i opisz problem zwykłym zdaniem: „wysłałem wiadomość na Telegramie i nic nie dostaję z powrotem”. Asystent sam zajrzy pod spód, znajdzie zatrzymaną usługę, uruchomi ją i zamelduje gotowość. Spróbuj ponownie. Zasada: nie musisz rozumieć, jak działa wszystko pod spodem — musisz umieć jasno opisać, co widzisz i co nie działa.

Gdy połączenie działa, poświęć asystentowi pięć–dziesięć minut i opowiedz mu o sobie: cele, nad czym pracujesz, kto jest w zespole, jakie procesy chcesz mu z czasem oddać. On w tle buduje swoje pliki pamięci.

Krok 5 — Podłącz prywatne repozytorium GitHub

To pierwsza rzecz, którą robi każdy nowy asystent. Jeśli VPS się popsuje, pamięć, umiejętności i konfiguracja leżą bezpiecznie poza nim — stawiasz nowego Hermesa, podpinasz repozytorium i nic nie przepada.

5.1 Uruchom konfigurację

Powiedz Hermesowi: „Skonfiguruj to jako prywatne repozytorium GitHub. Zrób rozeznanie i ustal, jak to działa.” Hermes ma wbudowane umiejętności zarządzania repozytorium i autoryzacji GitHub. Zapyta cię o nazwę użytkownika GitHub, nazwę repozytorium, tożsamość commitów i osobisty token dostępu. Sam utworzy .gitignore, żeby sekrety nie trafiły do repozytorium nawet przy ustawieniu prywatnym.

5.2 Wygeneruj osobisty token dostępu (PAT)

  • W GitHubie: Settings → Developer settings → Personal access tokens.
  • Najpierw spróbuj tokena fine-grained z uprawnieniem contents: read/write.
  • Jeśli to nie wystarczy (brak prawa do tworzenia repozytoriów), wygeneruj token classic z pełnym zakresem repo.
  • Ustaw ważność tokena pod zastosowanie: 30 dni do testów, dłużej dla stałych wdrożeń.

5.3 Zapisz klucz bezpiecznie (kluczowa zasada)

Tokenu nie wklejasz w treść rozmowy — zostałby w historii czatu na zawsze. Użyj komendy konfiguracyjnej Hermesa:

  1. Na VPS-ie wejdź do czatu (przycisk „Open”), potem Ctrl+C, żeby wyjść z czatu Hermesa do powłoki Dockera.
  2. Uruchom:
hermes config set GITHUB_TOKEN <wklej-token-tutaj>
  1. To zapisuje token do pliku /opt/data/.env wewnątrz kontenera Docker — nigdy do logu rozmowy.
  2. Powiedz Hermesowi: „Nowy token jest w pliku .env jako GITHUB_TOKEN.” Asystent go odczyta.

Ta sama zasada dotyczy wszystkich kluczy, bez wyjątku.

5.4 Edycja lub usunięcie klucza

Jeśli musisz usunąć albo zaktualizować klucz, poproś Hermesa o komendę nano otwierającą plik .env. Upewnij się, że edytujesz .env wewnątrz kontenera Docker, a nie .env roota VPS-a. W nano zapisujesz przez Ctrl+O i Enter, wychodzisz przez Ctrl+X. Jeśli nano nie jest zainstalowany, poproś Hermesa o instalację lub alternatywną komendę edycji.

Krok 6 — Pierwsza umiejętność i pierwszy cron (nocna kopia na GitHubie)

Gdy GitHub jest podpięty, ustaw cron codziennej kopii. Powiedz po prostu: „Co noc o północy czasu mojej strefy wyślij zmiany do tego repozytorium. Zbuduj wokół tego umiejętność.”

Co Hermes robi pod spodem:

  • przegląda istniejące, powiązane umiejętności;
  • uruchamia komendy w terminalu, żeby ustawić cron;
  • tworzy nową umiejętność (np. nightly-github-sync);
  • aktualizuje memory.md o nowy kontekst;
  • sam obsługuje różnicę stref czasowych (kontener chodzi w UTC, ale Hermes sprawdza twoją strefę, żeby zmiana czasu nie rozjechała zadania).

Poziomy uprawnień w Telegramie. Gdy Hermes chce uruchomić komendę, pyta: pozwól raz, pozwól na czas sesji, albo pozwalaj zawsze. Dla powtarzalnych, zaufanych akcji — jak commit do repozytorium — wybierz „pozwalaj zawsze”, żeby cron działał bez pytań.

Dwie drogi do zbudowania umiejętności:

  1. Opisz oczekiwany efekt zwykłym językiem i pozwól Hermesowi ją zbudować.
  2. Zainstaluj gotową z biblioteki: skopiuj URL umiejętności, wklej Hermesowi i powiedz: „Zainstaluj tę umiejętność i ją uruchom.”

Krok 7 — Wiedz, kiedy używać terminala, a kiedy Telegramu

W obu interfejsach to ten sam agent — Telegram nie uruchamia słabszej wersji. Różnica leży w widoczności i kontroli.

Terminal (CLI) to kokpit:

  • najlepszy do głębokiej pracy, budowania, kodowania, „mieszkania” w agencie;
  • lepszy wgląd w okno kontekstu;
  • dostępne wszystkie komendy ze slashem;
  • używaj go, siedząc przy komputerze przy zadaniach wysokiego ryzyka.

Telegram to pilot:

  • najlepszy do zadań zaplanowanych, szybkich sprawdzeń, pracy w drodze;
  • mniejszy wgląd w okno kontekstu i stan sesji;
  • automatyczne kompaktowanie kontekstu dzieje się pod spodem, gdy zbliżasz się do limitu tokenów;
  • nie pisz z Telegramu poważnych aplikacji na żywioł — trzymaj go do zadań niskiego ryzyka.

Kontekst liczy się w tokenach, nie w wiadomościach. Model zawsze widzi system prompt, user.md, osobowość itd. Przy zbliżaniu się do limitu okna Hermes uruchamia automatyczne kompaktowanie. W Telegramie nie widzisz dokładnie, kiedy to następuje, więc praca wysokiej stawki jest tam bardziej ryzykowna.

Krok 8 — Bezpieczeństwo i higiena kluczy

Traktuj Hermesa jak nowego pracownika albo stażystę. Nowo zatrudnionej osobie nie dajesz swojej karty kredytowej — tu jest tak samo.

Konta i klucze:

  • daj każdemu asystentowi własne konto e-mail (Gmail lub AgentMail), nie swoje prywatne;
  • jeśli musisz współdzielić klucz, użyj takiego z bardzo wąskim zakresem uprawnień;
  • używaj nazwanych kluczy API per asystent (osobne klucze np. OpenRouter czy Perplexity), żeby śledzić wydatki na każdego z osobna;
  • stosuj zasadę najmniejszych uprawnień: tylko dane dostępowe i narzędzia potrzebne do danej roli.

Hartowanie VPS-a:

  • ustaw zaporę sieciową u dostawcy;
  • ogranicz dostęp do swojego IP i zablokuj nieużywane porty;
  • poproś Hermesa lub Claude Code o rozeznanie środowiska i rekomendację konfiguracji zapory;
  • zbuduj umiejętność nocnego lub cotygodniowego audytu bezpieczeństwa, która sprawdza podatności.

Krok 9 — Utrzymanie w czasie

Hermesa się nie „kończy konfigurować” — to współpracownik, którego się prowadzi i doucza.

  • Gdy asystent pomyli się dwa razy w tym samym — popraw go na miejscu i każ zaktualizować odpowiednią umiejętność lub pamięć.
  • Gdy wydajesz to samo polecenie dwa razy — poproś Hermesa, żeby napisał z tego umiejętność.
  • Gdy gada za dużo albo nie tym tonem — popraw soul.md.
  • Gdy chcesz nowe zadanie cykliczne — zbuduj umiejętność i poproś o ustawienie crona.
  • Gdy coś się psuje — najpierw sprawdź memory.md. Nieaktualna pamięć to najczęstsza przyczyna dziwnych zachowań.
  • W każdej chwili możesz poprosić: „Przeczytaj mi swój plik pamięci” albo „Przeczytaj mi swój plik osobowości”, żeby zobaczyć, co tam naprawdę jest.

Krok 10 — Skalowanie: jeden asystent czy kilku

W miarę rozwoju możesz chcieć osobnych asystentów do różnych ról. Nie wymuszaj tego — używaj jednego, aż naturalnie trafisz na poniższe kryteria.

Jak rozdzielić asystentów na jednym VPS-ie:

  • każdy asystent działa we własnym kontenerze Docker;
  • każdy kontener ma własną pamięć, narzędzia i prywatne klucze API;
  • kontenery nie współdzielą plików .env, więc klucze się nie mieszają.

Drzewko decyzyjne dla nowego asystenta — twórz nowego, jeśli choć raz odpowiadasz „tak”:

  • Czy potrzebuje innych uprawnień, sekretów lub narzędzi?
  • Czy potrzebuje osobnej pamięci długoterminowej?
  • Czy to praca stała lub powtarzalna (nie jednorazowa)?

Jeśli wszędzie „nie” — zostaw to w głównym, osobistym Hermesie.

Zły wzorzec kontra dobry:

  • Źle: jeden megaagent ze wszystkimi kluczami, wszystkimi umiejętnościami i każdym cronem — duże zamieszanie i wysokie ryzyko, gdy się popsuje.
  • Dobrze: podział na wertykały (marketing, finanse, operacje) albo po platformie/roli — czystsza pamięć, łatwiejsze diagnozowanie, niższe ryzyko.
  • Migracja jest prosta, bo umiejętności, pamięć i crony to zwykłe pliki markdown — przenosisz je między asystentami według potrzeby.

Dodatek — Panel Hermesa (opcjonalnie)

Hermes ma wbudowany panel: ostatnie sesje, podłączone platformy, tablica Kanban, klucze, konfiguracje, umiejętności i wtyczki.

Jak go otworzyć: powiedz Hermesowi, że chcesz otworzyć panel, i podaj informacje o trasie VPS-a oraz konfiguracji kontenera Docker. Hermes otworzy bramę i tunel, żebyś dostał się do lokalnego panelu. Pierwsze podejście bywa toporne; gdy zadziała, zapisz to jako umiejętność, żeby kolejne otwarcie sprowadzało się do „otwórz panel” i trzech komend.

Kiedy się przydaje: przy kilku asystentach pracujących nad różnymi projektami (widok Kanban), do wizualizacji zadań między asystentami, jako szybki sposób na zarządzanie cronami, wtyczkami i konfiguracjami. Przy pracy głównie w drodze przez Telegram zaglądasz tu rzadko.

Ściąga końcowa

  • Hermes sprawdza się najlepiej do automatyzacji w drodze przez Telegram. Do pracy umysłowej przy biurku Claude Code zostaje narzędziem pierwszego wyboru.
  • Pięć filarów (pamięć, umiejętności, osobowość, crony, pętla samodoskonalenia) to model myślowy na wszystko, co Hermes robi.
  • Stawiaj instalację w kontenerze Docker na Ubuntu 24.04 LTS.
  • Zawsze załóż projekt w Claude Code do zarządzania serwerami (hasła, IP, konfiguracje). Zwraca się przy pierwszej awarii.
  • Pierwsza rzecz po wdrożeniu: podłącz prywatne repozytorium GitHub i ustaw cron codziennej kopii.
  • Nigdy nie wklejaj kluczy API w czat — używaj hermes config set NAZWA_KLUCZA <wartość> z wnętrza kontenera Docker.
  • Traktuj każdego Hermesa jak nowego pracownika: najmniejsze uprawnienia, nazwane klucze per asystent, osobne konta tam, gdzie to możliwe.
  • Nieaktualny memory.md to najczęstsza przyczyna dziwnych zachowań — sprawdź go najpierw, gdy coś idzie nie tak.

I jedno na koniec, bo to ono decyduje o powodzeniu: cudzy sposób użycia to nie twój. Zanim ruszysz, odpowiedz sobie, którą konkretnie powtarzalną robotę chcesz z siebie zdjąć — i pierwszego crona ustaw właśnie pod nią.