Hermes Agent — instalacja, bezpieczeństwo i Telegram

Hermes Agent na Windows: lokalny agent AI z modelem z LM Studio, zatwierdzanie poleceń i bot Telegram z listą dozwolonych użytkowników.

Model w LM Studio odpowiada na pytania. Agent działa: uruchamia polecenia, czyta i zapisuje pliki, pamięta ustalenia z poprzednich rozmów i wykonuje zadania według harmonogramu. Hermes Agent od Nous Research to otwartoźródłowy agent, który robi to wszystko z dowolnym modelem zgodnym z API OpenAI — także z Twoją lokalną Gemmą.

W tej części zainstalujesz Hermesa na Windowsie, połączysz go z LM Studio, ustawisz sensowne granice bezpieczeństwa i udostępnisz go sobie przez Telegram.

Zanim zaczniesz: agent to nie czat

Agent z dostępem do terminala może wykonać każde polecenie, które możesz wpisać samodzielnie. Model językowy się myli — czasem źle zrozumie polecenie, czasem da się zmanipulować treścią przeczytanego pliku lub strony (prompt injection). Dlatego w tej serii obowiązują trzy zasady:

  1. Zatwierdzanie niebezpiecznych poleceń zostaje włączone. Wyłączasz je tylko świadomie i tylko dla konkretnych, sprawdzonych wzorców.
  2. Dostęp do homelabu wyłącznie do odczytu, przez klucz SSH, który pozwala uruchomić dokładnie jeden skrypt (szczegóły w części 4).
  3. Bramka Telegram odpowiada tylko Tobie — lista dozwolonych użytkowników, domyślnie odmowa dla wszystkich innych.

Instalacja

Hermes działa natywnie na Windowsie: CLI, bramka komunikatorów i narzędzia bez WSL. Oficjalny instalator to skrypt PowerShella. Zanim uruchomisz skrypt z internetu, pobierz go i przejrzyj:

Instalacja Hermes Agent
irm https://hermes-agent.nousresearch.com/install.ps1 -OutFile "$env:TEMP\hermes-install.ps1"
notepad "$env:TEMP\hermes-install.ps1" # przejrzyj, co robi skrypt
& "$env:TEMP\hermes-install.ps1"

Po instalacji otwórz nowe okno PowerShella i sprawdź:

Okno terminala
hermes --help
hermes doctor

Konfiguracja i dane Hermesa (plik config.yaml, sekrety w .env, pamięć i historia sesji) leżą w %LOCALAPPDATA%\hermes\. Ten katalog warto objąć kopią zapasową — to tam agent przechowuje wszystko, czego się o Tobie nauczył.

Połączenie z LM Studio

Upewnij się, że serwer LM Studio działa (lms server start, patrz część 2), i uruchom kreator modelu:

Okno terminala
hermes model
  1. Jako dostawcę wybierz LM Studio.
  2. Adres zatwierdź Enterem — domyślny to http://localhost:1234/v1.
  3. Z listy wykrytych modeli wybierz google/gemma-4-12b.

Kreator zapisze w config.yaml:

%LOCALAPPDATA%\hermes\config.yaml (fragment)
model:
provider: lmstudio
default: google/gemma-4-12b

Hermes wymaga od modelu co najmniej 64K tokenów kontekstu i sprawdza to przy starcie. Jeśli model jest już załadowany w LM Studio, Hermes zachowuje jego ustawienia — dlatego w części 2 zapisaliśmy kontekst 65 536 jako domyślny dla modelu.

Pierwsza rozmowa:

Okno terminala
hermes

Zacznij od zadania, które wymaga narzędzia, np. „Sprawdź, ile wolnego miejsca jest na dysku D: i jaka wersja PowerShella jest zainstalowana”. Agent powinien uruchomić odpowiednie polecenia i odpowiedzieć na podstawie ich wyniku, a nie z pamięci modelu.

Zatwierdzanie poleceń

Hermes rozpoznaje niebezpieczne polecenia (usuwanie plików, zmiany w systemie, instalacje) i przed ich uruchomieniem pyta o zgodę. Masz trzy odpowiedzi: raz, na tę sesję albo zawsze — ta ostatnia dopisuje wzorzec do stałej listy dozwolonych poleceń w konfiguracji.

Domyślne ustawienia są rozsądne. Warto jednak wiedzieć, co oznaczają, i mieć je zapisane jawnie:

%LOCALAPPDATA%\hermes\config.yaml (fragment)
approvals:
# smart: pomocniczy model ocenia ryzyko — bezpieczne polecenia przechodzą,
# niebezpieczne wymagają zgody lub są blokowane
mode: smart
# sekundy oczekiwania na Twoją odpowiedź
timeout: 300
# zadania z harmonogramu nie mają kogo zapytać — niebezpieczne polecenia są odrzucane
cron_mode: deny

Nie włączaj trybu /yolo (wszystko bez pytania) w sesjach, w których agent czyta treści z zewnątrz: strony WWW, e-maile, pobrane dokumenty. To właśnie tam czai się prompt injection.

Bramka Telegram

Bramka (gateway) to proces Hermesa, który odbiera wiadomości z komunikatorów i odsyła odpowiedzi. Rozmawiasz z tym samym agentem, z tą samą pamięcią — tylko z telefonu.

Osobny bot

Utwórz nowego bota u @BotFather (/newbot), niezależnego od bota z alertami Uptime Kumy. Bramka Hermesa stale odbiera wiadomości wysłane do bota, więc jeden token nie powinien obsługiwać dwóch usług. Poza tym osobny bot to osobny, łatwy do unieważnienia sekret.

Potrzebujesz też swojego numerycznego ID użytkownika Telegrama — napisz do bota @userinfobot, a odpowie liczbą w stylu 123456789.

Konfiguracja

Okno terminala
hermes gateway setup

Kreator zapyta o platformę (Telegram), token bota i dozwolonych użytkowników. Sekrety trafiają do pliku .env w katalogu danych Hermesa:

%LOCALAPPDATA%\hermes.env (fragment)
TELEGRAM_BOT_TOKEN=8123456789:AAH...token-od-BotFathera
TELEGRAM_ALLOWED_USERS=123456789

TELEGRAM_ALLOWED_USERS to lista ID oddzielonych przecinkami. Bramka domyślnie odmawia każdemu, kto nie jest na liście — nawet jeśli ktoś znajdzie nazwę Twojego bota, agent mu nie odpowie.

Uruchomienie

Najpierw na próbę, na pierwszym planie:

Okno terminala
hermes gateway

Napisz do swojego bota z telefonu, np. „Ile mam wolnego miejsca na dysku D:?”. Gdy działa, zainstaluj bramkę jako zadanie startujące przy logowaniu (Harmonogram zadań Windows):

Okno terminala
hermes gateway install
hermes gateway start

Co dalej

Masz lokalnego agenta, który odpowiada w terminalu i na Telegramie, pyta o zgodę przed ryzykownymi poleceniami i nikogo poza Tobą nie wpuszcza. W ostatniej części dasz mu realne zadania: codzienny raport z homelabu, pomoc przy kodzie i porządkowanie dokumentów.