Tech Zajawka / AI / poradnik

Hermes Agent na własnym komputerze: agent AI z pamięcią, umiejętnościami i dostępem do plików

Jak uruchomić Hermes Agent na Windows, macOS i Linuksie: macierz wspieranych platform i metody instalacji uznane za niewspierane, instalator PowerShell i skrypt dla systemów uniksowych, wybór dostawcy modelu wraz z wariantem lokalnym, dwa ćwiczenia do samodzielnego wykonania - mały projekt HTML i porównanie informacji z linkami zapisane do pliku - weryfikacja efektów w Gicie, zatwierdzanie niebezpiecznych poleceń, twarda lista blokad i pominięcie kontroli w backendach kontenerowych, pamięć trwała kontra wyszukiwanie w sesjach, koszty oraz kopia zapasowa i odinstalowanie.

AI M1lczu 34 min czytania
Okładka: Hermes Agent na własnym komputerze: agent AI z pamięcią, umiejętnościami i dostępem do plików

Asystenci w przeglądarce kończą się tam, gdzie zaczyna się prawdziwa praca: nie widzą plików na dysku, nie uruchomią polecenia, nie pamiętają, co ustalono tydzień temu. Hermes Agent to inna kategoria narzędzia - program uruchamiany w terminalu albo w oknie aplikacji, który dostaje dostęp do systemu plików, powłoki i internetu, prowadzi rozmowę wieloetapowo i zapisuje wnioski między sesjami. Producentem jest Nous Research, kod jest otwarty na licencji MIT, a sam agent nie ma własnego modelu językowego - podłącza się do wybranego dostawcy, od subskrypcji chmurowej po model uruchomiony lokalnie. (Hermes Agent Documentation, GitHub - NousResearch/hermes-agent)

Poniżej jedna kompletna ścieżka: sprawdzenie, czy system jest wspierany, instalacja na Windows, macOS i Linux, wybór dostawcy modelu i logowanie, dwa pierwsze zadania do samodzielnego wykonania - jedno na małym projekcie w przeglądarce, drugie bez pisania kodu, na porównaniu informacji ze źródeł - weryfikacja tego, co agent faktycznie zrobił, a na końcu koszty, uprawnienia, pamięć i odinstalowanie. Osobno opisano to, czego ten układ nie robi - bo najczęstsze rozczarowania biorą się z oczekiwań, a nie z konfiguracji.

Instrukcja opiera się na bieżącej dokumentacji producenta i repozytorium projektu, otwartych i przeczytanych przy pisaniu tekstu. Nie zawiera pomiarów wydajności ani testów na fizycznych maszynach z trzema systemami; tam, gdzie liczy się wynik na konkretnym sprzęcie, podano sposób sprawdzenia zamiast gotowej odpowiedzi.

Co to właściwie jest i czym nie jest

Hermes Agent to framework agentowy uruchamiany lokalnie: w terminalu, w natywnej aplikacji desktopowej, w panelu webowym, jako bramka do komunikatorów oraz jako serwer ACP dla edytorów kodu. (Hermes Agent Documentation) Producent opisuje go jako agenta z wbudowaną pętlą uczenia się: tworzy umiejętności na podstawie doświadczenia, poprawia je w trakcie użycia i buduje model wiedzy o użytkowniku między sesjami. (Hermes Agent Documentation)

Trzy rozróżnienia, bez których dalsza część nie ma sensu.

Agent to nie model. Hermes nie generuje odpowiedzi samodzielnie - wysyła zapytania do wybranego dostawcy i wykonuje narzędzia, o które model poprosi. Wspieranych dostawców jest kilkadziesiąt, od Nous Portal, OpenRouter, Anthropic i OpenAI po serwery lokalne zgodne z API OpenAI: Ollama, vLLM, llama.cpp, SGLang, LM Studio. (FAQ & Troubleshooting | Hermes Agent, Quickstart | Hermes Agent) Jakość odpowiedzi zależy więc od modelu, nie od agenta.

Sam program jest darmowy, praca modelu zwykle nie. Dokumentacja stwierdza wprost: Hermes Agent jest bezpłatny i otwarty na licencji MIT, płaci się wyłącznie za użycie API u wybranego dostawcy, a modele lokalne są całkowicie darmowe w uruchomieniu. (FAQ & Troubleshooting | Hermes Agent)

Dostęp do systemu jest realny. Agent ma narzędzia do uruchamiania poleceń powłoki, czytania i zapisu plików oraz pracy w sieci. (Tools & Toolsets | Hermes Agent) To jest cała wartość tego narzędzia i jednocześnie jego główne ryzyko; sekcja o uprawnieniach opisuje, gdzie dokładnie przebiegają granice.

Czy ten komputer jest wspierany

Producent prowadzi jawną macierz wsparcia z podziałem na poziomy, co ma znaczenie praktyczne: platformy poziomu pierwszego mają pierwszeństwo przy naprawach regresji, poziomu drugiego są utrzymywane najlepszym staraniem, a część metod instalacji jest wprost oznaczona jako niewspierana. (Platform Support | Hermes Agent)

Poziom pierwszy obejmuje macOS na Apple Silicon, Windows 10 i 11 w architekturach x86_64 oraz aarch64, Linux i WSL2 w architekturach x86_64 oraz aarch64, a także kontener Docker. Producent testuje na najnowszym Ubuntu i WSL2, a o innych dystrybucjach pisze, że jeżeli mają glibc, systemd i strukturę katalogów zgodną z FHS, prawdopodobnie zadziałają dobrze. (Platform Support | Hermes Agent)

Poziom drugi to Android w Termuksie oraz Nix; przy Nix dokumentacja zaznacza, że instalacja bywa psuta przez pakowanie Node.js. (Platform Support | Hermes Agent)

Jako niewspierane wymieniono cztery pozycje i warto je znać przed instalacją: pakiety z AUR, macOS na procesorach Intel, instalacja z PyPI (pip install hermes-agent, uv tool install hermes-agent) oraz instalacja przez Homebrew. (Platform Support | Hermes Agent) Innymi słowy: MacBook z procesorem Intel odpada z oficjalnej ścieżki, a brew install nie jest drogą do tego programu, mimo że intuicja podpowiada inaczej.

Jeden wymóg dotyczy nie sprzętu, lecz modelu. Hermes wymaga modelu z oknem kontekstu co najmniej 64 000 tokenów; modele o mniejszym oknie nie utrzymają pamięci roboczej potrzebnej do wieloetapowej pracy z narzędziami i są odrzucane przy starcie. Dla modelu lokalnego oznacza to konieczność ustawienia kontekstu ręcznie, na przykład --ctx-size 65536 w llama.cpp lub -c 65536 w Ollamie. (Quickstart | Hermes Agent)

Wymagania wstępne po stronie systemu są krótkie. Na platformach innych niż Windows jedynym warunkiem koniecznym jest Git. Na Linuksie trzeba dodatkowo mieć curl i xz-utils, ponieważ instalator pobiera Node.js jako archiwum .tar.xz, a aplikacja desktopowa wymaga jeszcze g++, czyli pakietu build-essential w Debianie i Ubuntu, do kompilacji modułów natywnych. Reszty - menedżera uv, Pythona 3.11, Node.js, ripgrep i ffmpeg - nie trzeba instalować ręcznie, instalator wykrywa braki i uzupełnia je sam. (Installation | Hermes Agent)

Instalacja

Producent udostępnia dwie ścieżki: instalator aplikacji desktopowej, który stawia jednocześnie wersję okienkową i polecenie w terminalu, oraz jednolinijkowy skrypt instalujący samą wersję konsolową. (Installation | Hermes Agent) Jeżeli po instalacji konsolowej pojawi się potrzeba wersji okienkowej, wystarczy polecenie hermes desktop. (Installation | Hermes Agent)

Windows natywnie

Native Windows jest wspierany bez WSL - działa CLI, bramka, interfejs TUI i narzędzia. (GitHub - NousResearch/hermes-agent) W PowerShellu lub Terminalu Windows:

iex (irm https://hermes-agent.nousresearch.com/install.ps1)

Uprawnienia administratora nie są potrzebne. Instalacja trafia do %LOCALAPPDATA%\hermes\, a polecenie hermes jest dopisywane do zmiennej PATH użytkownika, więc po zakończeniu trzeba otworzyć nowe okno terminala. (Windows (Native) Guide | Hermes Agent)

Instalator wykonuje po kolei: pobranie menedżera uv do %USERPROFILE%\.local\bin, instalację Pythona 3.11 przez uv, instalację Node.js, instalację przenośnego Gita, klon repozytorium do %LOCALAPPDATA%\hermes\hermes-agent wraz z wirtualnym środowiskiem, warstwową instalację zależności Pythona, ustawienie zmiennej HERMES_GIT_BASH_PATH, dopisanie katalogu bin do PATH i ustawienie HERMES_HOME, a na końcu uruchomienie kreatora hermes setup. (Windows (Native) Guide | Hermes Agent) Jeżeli Git jest już zainstalowany w systemie, instalator go wykrywa i używa; jeżeli nie, pobiera około 45 MB przenośnej wersji MinGit do %LOCALAPPDATA%\hermes\git, całkowicie odizolowanej od ewentualnej instalacji systemowej. (GitHub - NousResearch/hermes-agent)

Dwie rzeczy specyficzne dla Windows warto wiedzieć zawczasu. Po pierwsze, polecenia powłoki agent uruchamia przez Git Bash - to ta sama strategia, którą stosuje Claude Code, i pozwala ominąć różnice między POSIX-em a Windows bez przepisywania wszystkich narzędzi. (Windows (Native) Guide | Hermes Agent) Po drugie, część oprogramowania antywirusowego oznacza plik uv.exe w katalogu %LOCALAPPDATA%\hermes\bin jako złośliwy. Producent opisuje to jako fałszywy alarm: to menedżer pakietów Pythona napisany w Ruście przez Astral, a silniki oparte na uczeniu maszynowym rutynowo flagują niepodpisane binaria Rusta, które pobierają i instalują pakiety. W repozytorium podano procedurę weryfikacji autentyczności pliku przez gh attestation verify i porównanie skrótów oraz instrukcję dodania wyjątku - z zaleceniem, żeby dodawać do wyjątków katalog, a nie skrót pliku, bo uv jest aktualizowany i skrót zmienia się z każdą wersją. (GitHub - NousResearch/hermes-agent)

Dostępny jest też graficzny instalator dla osób, które wolą kliknąć plik .exe niż otwierać PowerShella. Po pierwszym uruchomieniu aplikacja desktopowa i CLI zainstalowane przez PowerShella dzielą tę samą instalację w %LOCALAPPDATA%\hermes\hermes-agent i ten sam katalog danych, więc można się między nimi przełączać dowolnie. (Windows (Native) Guide | Hermes Agent)

Windows przez WSL2

WSL2 jest osobną, równolegle wspieraną ścieżką i ma jedną konkretną przewagę: zakładka terminala wbudowanego w panel webowy wymaga POSIX-owego PTY i działa wyłącznie tam. Poza tym jednym elementem panel działa natywnie. (Windows (Native) Guide | Hermes Agent) Obie instalacje współistnieją bez konfliktu: dane natywne leżą w %LOCALAPPDATA%\hermes, dane WSL w ~/.hermes jak na Linuksie. (Windows (Native) Guide | Hermes Agent)

Instalacja samego WSL2 z PowerShella uruchomionego jako administrator:

wsl --install

Po restarcie system poprosi o nazwę użytkownika i hasło dla Linuksa - to nowe konto, niezwiązane z kontem Windows. Warto potwierdzić, że działa WSL2, a nie starsze WSL1, poleceniem wsl --list --verbose; przy wartości VERSION 1 konwersja wygląda tak:

wsl --set-version Ubuntu 2
wsl --set-default-version 2

Dokumentacja stwierdza wprost, że Hermes nie działa niezawodnie na WSL1, ponieważ WSL1 tłumaczy wywołania systemowe w locie i część zachowań odbiega od prawdziwego Linuksa. (Windows (WSL2) Guide | Hermes Agent) Do trzymania bramki przy życiu wygodniej mieć systemd, który włącza się wpisem w /etc/wsl.conf z sekcją [boot] i systemd=true, a następnie wsl --shutdown z PowerShella. (Windows (WSL2) Guide | Hermes Agent) Wewnątrz dystrybucji instaluje się już zwykłym skryptem linuksowym.

Jedna zasada oszczędza najwięcej czasu: pliki, z którymi agent ma pracować, trzymać po stronie Linuksa. Operacje na /mnt/c/... idą przez protokół 9P i bywają od dziesięciu do stu razy wolniejsze niż na natywnym ext4, uprawnienia są tam emulowane najlepszym staraniem, a mechanizm inotify bywa zawodny. (Windows (WSL2) Guide | Hermes Agent)

macOS

Wspierany jest wyłącznie Apple Silicon; macOS na procesorach Intel jest na liście platform niewspieranych. (Platform Support | Hermes Agent) Instalacja z Terminala:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Po zakończeniu trzeba przeładować powłokę, w domyślnym dla nowszych systemów zsh poleceniem source ~/.zshrc, albo po prostu otworzyć nowe okno Terminala. (Installation | Hermes Agent) Warunkiem wstępnym jest obecność Gita - najprościej sprawdzić poleceniem git --version; przy braku system sam zaproponuje instalację narzędzi wiersza poleceń Xcode.

Ważne, czego tu nie robić: brew install hermes-agent nie jest wspieraną drogą instalacji. (Platform Support | Hermes Agent)

Linux

Ten sam skrypt co na macOS, uruchamiany w powłoce bash lub zsh:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc

Na Debianie i Ubuntu przed instalacją warto uzupełnić zależności wymienione przez producenta: sudo apt install curl xz-utils, a przy planach na aplikację desktopową także sudo apt install build-essential. (Installation | Hermes Agent)

Instalacja per użytkownik umieszcza kod w ~/.hermes/hermes-agent/, dowiązanie polecenia w ~/.local/bin/hermes, a katalog danych w ~/.hermes/. Instalacja z uprawnieniami roota układa się inaczej: kod w /usr/local/lib/hermes-agent/, polecenie w /usr/local/bin/hermes, dane w /root/.hermes/ lub w katalogu wskazanym zmienną HERMES_HOME. Ten drugi układ, zgodny ze standardem hierarchii systemu plików, ma sens na maszynach współdzielonych, gdzie jedna instalacja systemowa ma obsłużyć wielu użytkowników; konfiguracja, sesje i umiejętności i tak zostają osobne dla każdego konta. (Installation | Hermes Agent)

Dwa warianty warte uwagi przy pracy na serwerze. Instalację można wykonać bez automatyzacji przeglądarki, przełącznikiem --skip-browser:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser

Uruchamianie jako dedykowany, nieuprzywilejowany użytkownik jest wspierane. Jedynym krokiem instalacji, który naprawdę wymaga roota, jest etap --with-deps Playwrighta, doinstalowujący biblioteki systemowe dla Chromium; instalator wykrywa brak sudo, pomija ten krok, instaluje Chromium do lokalnego cache użytkownika i wypisuje dokładne polecenie do wykonania przez administratora. Zalecany podział na Debianie i Ubuntu to jednorazowe sudo npx playwright install-deps chromium z konta z sudo, a potem zwykły instalator z konta usługowego. (Installation | Hermes Agent)

Przy koncie usługowym dochodzi jeszcze kwestia PATH i cyklu życia usługi. Instalator zapisuje program uruchomieniowy w ~/.local/bin/hermes, a konta systemowe często mają minimalną zmienną PATH bez tego katalogu; rozwiązaniem jest dopisanie go do profilu albo utworzenie dowiązania w katalogu systemowym. Usługa użytkownika zatrzymuje się przy wylogowaniu i nie startuje przy starcie systemu, dopóki nie zostanie włączone przetrwanie sesji: sudo loginctl enable-linger <użytkownik>. (Installation | Hermes Agent)

Sprawdzenie, czy instalacja się udała

Niezależnie od systemu ten sam zestaw poleceń w nowym oknie terminala:

hermes --version
hermes doctor

Pierwsze potwierdza, że polecenie jest widoczne, drugie sprawdza zależności i konfigurację oraz wypisuje, czego brakuje i jak to naprawić. (Installation | Hermes Agent) Komunikat hermes: command not found prawie zawsze oznacza nieprzeładowaną powłokę - wystarczy source ~/.bashrc, source ~/.zshrc albo nowe okno terminala; na Windows nowe okno PowerShella. (FAQ & Troubleshooting | Hermes Agent, Installation | Hermes Agent)

Wybór dostawcy modelu i logowanie

To najważniejszy krok konfiguracji i miejsce, w którym najłatwiej stracić czas. Dokumentacja formułuje zasadę wprost: jeżeli Hermes nie potrafi przeprowadzić zwykłej rozmowy, nie należy dodawać kolejnych funkcji - najpierw jedna czysta konwersacja, dopiero potem bramka, cron, umiejętności, głos czy routing. (Quickstart | Hermes Agent)

Kreator uruchamia się poleceniem hermes setup i na świeżej instalacji oferuje trzy tryby. (Quickstart | Hermes Agent)

Quick Setup przez Nous Portal to logowanie OAuth bez kluczy API, konfigurujące jednocześnie model i zestaw narzędzi bramki producenta. Jedna subskrypcja obejmuje katalog modeli oraz Tool Gateway: wyszukiwanie i ekstrakcję treści z sieci, generowanie obrazów, syntezę mowy i przeglądarkę w chmurze. (Nous Portal | Hermes Agent) Skrót do całości to jedno polecenie:

hermes setup --portal

Uruchamia ono logowanie OAuth w przeglądarce, zapisuje token odświeżający w ~/.hermes/auth.json, pozwala wybrać model, ustawia Nous jako dostawcę w config.yaml i włącza Tool Gateway. (Nous Portal | Hermes Agent) To ścieżka płatna - subskrypcję wykupuje się osobno na stronie zarządzania subskrypcją Portalu. (Nous Portal | Hermes Agent)

Full Setup prowadzi przez wszystkie opcje z własnymi kluczami dostawców. Blank Slate włącza minimum: dostawcę i model, operacje na plikach oraz terminal, przy wyłączonych sieci, przeglądarce, wykonywaniu kodu, obrazie, pamięci, delegowaniu, cronie, umiejętnościach, wtyczkach i serwerach MCP. Ten tryb zapisuje jawną listę zestawów narzędzi, więc nic nieproszonego nie włączy się nawet po aktualizacji; poszczególne elementy dokłada się później poleceniem hermes tools. (Quickstart | Hermes Agent)

Samego dostawcę można też wybrać osobno, interaktywnym pickerem:

hermes model

Lista jest długa i obejmuje między innymi subskrypcję ChatGPT lub Codex przez kod urządzenia, Anthropic w wariancie OAuth albo klucza API, OpenRouter, Google AI Studio, xAI, DeepSeek, GitHub Copilot, AWS Bedrock, Azure Foundry oraz własny punkt końcowy. (Quickstart | Hermes Agent) Dostawcę zmienia się w dowolnym momencie, bez przywiązania. (Quickstart | Hermes Agent)

Wariant w pełni lokalny, bez opłat za tokeny, konfiguruje się przez opcję własnego punktu końcowego. Dokumentacja podaje przykładowy komplet danych dla Ollamy: adres bazowy http://localhost:11434/v1, klucz ollama, nazwa modelu i długość kontekstu ustawiona na co najmniej 64 000, czyli minimum wymagane przez Hermesa. To samo działa z vLLM, serwerem llama.cpp, SGLang i LocalAI. (FAQ & Troubleshooting | Hermes Agent) Jedna pułapka jest wskazana wprost: jeżeli w Ollamie ustawiono własne num_ctx, tę samą wartość trzeba podać w Hermesie, ponieważ endpoint /api/show Ollamy raportuje maksymalny kontekst modelu, a nie faktycznie skonfigurowany. (FAQ & Troubleshooting | Hermes Agent)

Jeszcze jedno rozróżnienie, które oszczędza kilkanaście minut szukania. Polecenie /model wewnątrz sesji przełącza tylko między dostawcami już skonfigurowanymi; dodanie nowego dostawcy, wpisanie klucza czy przejście przez OAuth wymaga wyjścia z sesji i uruchomienia hermes model z terminala. (FAQ & Troubleshooting | Hermes Agent)

Sekrety i ustawienia trzymane są osobno. Klucze API i tokeny trafiają do ~/.hermes/.env, pozostałe ustawienia do ~/.hermes/config.yaml, a polecenie hermes config set samo kieruje wartość do właściwego pliku. (Quickstart | Hermes Agent)

Pierwsza rozmowa i sprawdzenie, że wszystko działa

Sesję uruchamia samo polecenie hermes; wariant hermes --tui otwiera nowszy interfejs tekstowy z nakładkami modalnymi, zaznaczaniem myszą i nieblokującym wprowadzaniem. Oba dzielą te same sesje, polecenia i konfigurację. (Quickstart | Hermes Agent)

Kryteria powodzenia dokumentacja podaje w czterech punktach: baner pokazuje wybrany model i dostawcę, Hermes odpowiada bez błędu, potrafi użyć narzędzia, gdy zadanie tego wymaga, a rozmowa toczy się dłużej niż jedną turę. (Quickstart | Hermes Agent) Po pierwszej wymianie warto od razu sprawdzić wznawianie sesji, bo ten mechanizm zaczyna być ważny później:

hermes --continue

Polecenie przywraca ostatnią sesję. Jeżeli tego nie robi, trzeba sprawdzić, czy nie zmienił się aktywny profil i czy sesja została zapisana. (Quickstart | Hermes Agent)

Na pasku stanu nad polem wprowadzania widać na bieżąco model, liczbę tokenów kontekstu wobec maksimum, wskaźnik wypełnienia, szacowany koszt sesji i czas trwania. Kolor wskaźnika kontekstu zmienia się progowo: zielony poniżej 50 procent, żółty między 50 a 80, pomarańczowy między 80 a 95, czerwony od 95 procent w górę - i wtedy dokumentacja sugeruje /compress. (CLI Interface | Hermes Agent) Dokładniejszy rozkład kosztów, z podziałem na tokeny wejściowe i wyjściowe, pokazuje /usage. (CLI Interface | Hermes Agent)

Pierwsze prawdziwe zadanie: mała lista zadań w przeglądarce

Do nauki nadaje się projekt, w którym efekt widać gołym okiem i da się go sprawdzić bez wiedzy o backendzie: statyczna lista zadań w HTML, CSS i JavaScripcie, bez serwera, z zapisem w pamięci przeglądarki. Poniższy scenariusz to propozycja ćwiczenia do samodzielnego wykonania, a nie relacja z przeprowadzonego testu. Kto nie pisze kodu i nie ma na to ochoty, może pominąć tę sekcję i przejść wprost do następnej - ćwiczenie bez kodu jest równorzędne, nie jest dodatkiem.

Krok 1. Osobny katalog i repozytorium. Cała sensowność pracy z agentem opiera się na tym, żeby dało się zobaczyć i cofnąć każdą zmianę. W terminalu, poza katalogami z ważnymi danymi:

mkdir lista-zadan
cd lista-zadan
git init

Krok 2. Uruchomienie agenta w tym katalogu. Polecenie hermes startuje w bieżącym katalogu roboczym. Baner pokazuje między innymi backend terminala i katalog roboczy - warto sprawdzić, czy to faktycznie nowy folder. (CLI Interface | Hermes Agent)

Krok 3. Pierwsze polecenie. Prompt wart wpisania w całości, bo zawiera to, co odróżnia użyteczne zlecenie od ogólnika - zakres, ograniczenia technologiczne i kryteria odbioru:

Zbuduj w tym katalogu prostą listę zadań jako statyczną stronę: pliki index.html, style.css i app.js, bez frameworków, bez zależności zewnętrznych i bez backendu. Wymagania: pole tekstowe i przycisk dodawania zadania, lista zadań z możliwością oznaczenia jako wykonane i usunięcia pojedynczego zadania, licznik zadań pozostałych do zrobienia, zapis stanu w localStorage tak, żeby lista przetrwała odświeżenie strony. Interfejs po polsku. Nie instaluj żadnych pakietów. Po napisaniu plików wypisz listę utworzonych plików i krótko opisz, jak sprawdzić działanie.

Krok 4. Zatwierdzenie stanu wyjściowego. Zanim padnie kolejne polecenie, warto utrwalić działającą wersję, żeby następny krok dało się porównać i cofnąć:

git add -A
git commit -m "Pierwsza wersja listy zadan"

Krok 5. Kolejne zadanie i kryteria akceptacji. Drugie zlecenie sprawdza, czy agent radzi sobie ze zmianą w istniejącym kodzie, a nie tylko z pisaniem od zera:

Dodaj do istniejącej aplikacji filtrowanie zadań: trzy przyciski - wszystkie, aktywne, zakończone - z zaznaczeniem aktywnego filtru. Nie zmieniaj formatu danych w localStorage i nie dodawaj bibliotek. Wypisz na końcu, które pliki zostały zmienione.

Kryteria akceptacji, sprawdzalne bez znajomości kodu: strona otwarta z pliku index.html w przeglądarce pokazuje formularz i listę; dodane zadanie pojawia się natychmiast; odświeżenie strony klawiszem F5 nie kasuje listy; oznaczenie zadania jako wykonanego zmienia licznik; przyciski filtrów przełączają widok i nie gubią danych; polecenie git status pokazuje wyłącznie pliki projektu, bez nieoczekiwanych zmian poza katalogiem.

Drugie zadanie bez pisania kodu: porównanie z linkami i raport

Hermes jest agentem ogólnym, a nie wyłącznie narzędziem programisty - pamięć trwała, umiejętności, wyszukiwanie w sesjach i narzędzia sieciowe działają tak samo, gdy zadanie nie ma nic wspólnego z kodem. To ćwiczenie sprawdza inny zestaw rzeczy niż lista zadań: czy narzędzia sieciowe są faktycznie włączone, czy agent odróżnia „przeczytałem na stronie” od „domyślam się” i czy potrafi zapisać wynik w pliku, który da się skontrolować. Jest to również propozycja ćwiczenia, a nie relacja z wykonanego testu.

Krok 1. Osobny katalog i punkt odniesienia. Ta sama zasada co przy poprzednim zadaniu - pusty katalog i repozytorium, żeby każdy utworzony plik był widoczny:

mkdir porownanie
cd porownanie
git init

Krok 2. Sprawdzenie, czy narzędzia sieciowe są w ogóle dostępne. Jeżeli instalacja przeszła przez tryb Blank Slate, sieć jest wyłączona i ćwiczenie skończy się na wiedzy modelu zamiast na odczytanych stronach - a to jest dokładnie ten błąd, którego ćwiczenie ma uczyć unikać. Zestawy narzędzi pokazuje i włącza polecenie hermes tools. (Quickstart | Hermes Agent)

Krok 3. Zlecenie. Prompt wart wpisania w całości, bo połowa jego wartości leży w ograniczeniach:

Porównaj trzy menedżery haseł o otwartym kodzie źródłowym: KeePassXC, Bitwarden i Vaultwarden. Dla każdego ustal: pełną nazwę i wydawcę, licencję, wspierane systemy operacyjne w wersji desktopowej, sposób instalacji na Windows, model działania (lokalny plik czy własny serwer), oraz to, czy dostępny jest wariant hostowany przez producenta. Zasady: każde twierdzenie musi pochodzić ze strony producenta lub oficjalnej dokumentacji, otwartej i przeczytanej w trakcie tego zadania - nie z twojej wiedzy. Przy każdym wierszu podaj adres strony, z której pochodzi informacja. Czego nie znajdziesz na tych stronach, oznacz jako „nieustalone” i nie zgaduj. Zapisz wynik jako porownanie.md w tym katalogu: tabela z kolumnami i pod nią lista użytych adresów. Nie twórz żadnych innych plików.

Krok 4. Weryfikacja, czyli właściwa część ćwiczenia. Odpowiedź agenta nie jest dowodem - dowodem jest plik i to, co da się w nim sprawdzić.

  • git status powinien pokazywać wyłącznie porownanie.md. Cokolwiek poza nim to sygnał do przeczytania zmian.
  • Każdy adres z listy warto otworzyć samodzielnie i sprawdzić dwa, trzy losowe twierdzenia z tabeli. Rozjazd między tabelą a stroną jest tu ważniejszym wynikiem niż ładna tabela.
  • Pozycje oznaczone jako nieustalone są w tym ćwiczeniu sukcesem, nie brakiem. Tabela bez ani jednej takiej pozycji, przy pytaniu o sześć cech trzech produktów, jest podejrzana.
  • Wywołania narzędzi widać w transkrypcie sesji. Jeżeli w całym przebiegu nie było ani jednego wywołania narzędzia sieciowego, a tabela jest pełna, model odpowiedział z pamięci i wynik nadaje się wyłącznie do wyrzucenia.

Krok 5. Cykl pamięci trwałej. To najkrótszy sposób, żeby zobaczyć w działaniu mechanizm opisany niżej w sekcji o pamięci. Na koniec sesji wystarczy poprosić: „Zapamiętaj, że przy zadaniach porównawczych mam wymagać linku przy każdym twierdzeniu i oznaczać brak potwierdzenia jako nieustalone”. Potem zamknąć sesję, uruchomić nową i zapytać, jakie zasady obowiązują przy zadaniach porównawczych. Warto zwrócić uwagę na kolejność: zapis trafia na dysk od razu, ale do promptu systemowego dopiero przy starcie następnej sesji - w tej samej rozmowie agent może więc jeszcze nie widzieć własnego wpisu w prompcie, choć plik już istnieje. (Persistent Memory | Hermes Agent)

Wariantów tego ćwiczenia jest tyle, ile potrzeb: porównanie warunków licencji trzech narzędzi, zestawienie wymagań sprzętowych, przegląd zmian w dokumentacji między wersjami. Schemat zostaje ten sam - wąskie pytanie, wymóg źródła przy każdym twierdzeniu, obowiązek oznaczania niewiadomych, jeden plik wyjściowy i samodzielne sprawdzenie kilku pozycji.

Jak sprawdzić, co agent naprawdę zrobił

To jest część, którą najczęściej się pomija, i jednocześnie jedyna, która odróżnia użycie agenta od zaufania mu na słowo. Podsumowanie napisane przez model nie jest dowodem - dowodem jest stan repozytorium i zachowanie programu.

Różnica w repozytorium. git status pokazuje, które pliki powstały lub się zmieniły, git diff - co dokładnie. Jeżeli w wyniku pojawia się cokolwiek spoza spodziewanego zakresu, to sygnał do zatrzymania się i przeczytania zmian.

Uruchomienie efektu. Statyczna strona otwiera się podwójnym kliknięciem pliku index.html. Konsola przeglądarki, otwierana klawiszem F12, pokazuje ewentualne błędy JavaScriptu, których w opisie agenta nie będzie.

Cofnięcie. Przy commicie na starcie powrót do poprzedniego stanu to zwykłe polecenia Gita. Hermes ma też własny mechanizm migawek systemu plików, domyślnie wyłączony - włącza się go na jedną sesję przełącznikiem --checkpoints przy starcie albo na stałe wpisem checkpoints.enabled: true w config.yaml. Migawki powstają automatycznie przed operacjami zmieniającymi pliki, obsługuje je polecenie /rollback (lista, diff, przywrócenie całości albo pojedynczego pliku), trzymane są w ~/.hermes/checkpoints/, a wielkością składu zarządza polecenie hermes checkpoints. (Checkpoints and /rollback | Hermes Agent, CLI Commands Reference | Hermes Agent) To wygodne uzupełnienie kontroli wersji, ale nie jej zamiennik.

Historia rozmowy. Sesje zapisywane są w bazie SQLite ~/.hermes/state.db wraz z metadanymi, historią wiadomości i indeksem pełnotekstowym. Listę przegląda hermes sessions list, a wznowienie odtwarza całą historię - agent widzi poprzednie wiadomości, wywołania narzędzi i odpowiedzi. (CLI Interface | Hermes Agent)

Jedna rzecz, której nie da się zweryfikować z wnętrza rozmowy: przyczyna odmowy. Dokumentacja zaznacza, że model nie potrafi rzetelnie zidentyfikować, dlaczego odmówił, a jego wyjaśnienie może być zmyślone albo dotyczyć ograniczenia dostawcy. Egzekwowanie zasad przez Hermesa jest jawne - zablokowane działanie zwraca błąd narzędzia z nazwą odrzuconego polecenia lub ścieżki, a działanie wymagające zgody pokazuje monit o zatwierdzenie. Jeżeli w odpowiedzi jest sama proza bez błędu narzędzia, nie należy traktować wyjaśnienia modelu jako dowodu; sposobem na rozstrzygnięcie jest sprawdzenie /status i powtórzenie próby w nowej sesji na innym modelu. (FAQ & Troubleshooting | Hermes Agent)

Uprawnienia, zatwierdzanie poleceń i izolacja

Model bezpieczeństwa jest opisany jako ośmiowarstwowy i obejmuje autoryzację użytkowników, zatwierdzanie niebezpiecznych poleceń, ochronę zapisu plików, izolację kontenerową, filtrowanie poświadczeń dla serwerów MCP, skanowanie plików kontekstowych pod kątem wstrzykiwania promptów, izolację między sesjami oraz walidację parametrów katalogu roboczego. (Security | Hermes Agent)

Warstwą, z którą styka się każdy, jest zatwierdzanie poleceń. Przed wykonaniem polecenia Hermes porównuje je z listą wzorców uznanych za niebezpieczne, a tryb ustala klucz approvals.mode w config.yaml. Domyślny tryb smart używa pomocniczego modelu do oceny ryzyka: polecenia niskiego ryzyka zatwierdza automatycznie i tylko dla tego jednego wywołania, jednoznacznie groźne odrzuca, a przypadki niepewne kieruje do ręcznego monitu. Tryb manual pyta zawsze, tryb off wyłącza sprawdzanie całkowicie, co jest równoważne uruchomieniu z --yolo. (Security | Hermes Agent)

Domyślny czas oczekiwania na odpowiedź to 300 sekund, a przy jego przekroczeniu polecenie zostaje odrzucone - system zawodzi w stronę bezpieczną. (Security | Hermes Agent) Osobno ustawiane jest zachowanie zadań cron oraz sesji jednorazowych hermes chat -q: oba domyślnie blokują niebezpieczne polecenie, bo nie ma przy nich nikogo, kto mógłby odpowiedzieć na monit. (Security | Hermes Agent)

Istnieje warstwa, której nie da się obejść. Producent nazywa ją twardą listą blokad i wymienia wprost, że działa niezależnie od --yolo, od approvals.mode: off, od zadań cron w trybie automatycznego zatwierdzania i od kliknięcia „zezwól zawsze”. Obejmuje między innymi rm -rf / i jego warianty, bombę fork, formatowanie zamontowanego urządzenia głównego, zerowanie fizycznego dysku przez dd oraz przekierowanie niezaufanych adresów URL do powłoki na poziomie katalogu głównego. Nie ma przełącznika, który by ją wyłączył. (Security | Hermes Agent)

Użytkownik ma też własną, edytowalną listę odmów. Klucz approvals.deny przyjmuje wzorce globalne dopasowywane bez rozróżniania wielkości liter do całego tekstu polecenia i blokuje je bezwarunkowo, przed uwzględnieniem --yolo i approvals.mode: off. Producent podaje ważne zastrzeżenie do sposobu myślenia: reguły odmowy to zabezpieczenie przed uczciwym, ale błądzącym agentem - taki sam model zagrożeń, jaki ma detektor niebezpiecznych wzorców. Nie są piaskownicą przeciwko celowo wrogiemu procesowi; do tego służy izolowany backend, na przykład Docker lub Modal, albo środowisko z ograniczonym ruchem wychodzącym. (Security | Hermes Agent)

Osobna warstwa pilnuje zapisu plików i warto znać zarówno jej siłę, jak i jej granicę. Zanim write_file albo patch dotknie dysku, Hermes sprawdza ścieżkę docelową wobec twardej listy zakazanych: magazynów poświadczeń systemu (~/.ssh/ z kluczami i authorized_keys, ~/.aws/, ~/.kube/, /etc/sudoers, ~/.netrc), poświadczeń samego Hermesa (auth.json, .env, mcp-tokens/, pairing/ w katalogu domowym Hermesa) oraz plików sekretów projektu, czyli .env, .env.local, .env.production i .envrc w dowolnym miejscu na dysku. Zablokowany zapis zwraca błąd od razu - nie ma tu monitu o zatwierdzenie ani możliwości przepchnięcia zmiany z poziomu rozmowy. Wyjątkiem jest ~/.ssh/config, który nie zawiera materiału klucza prywatnego i przechodzi przez zwykły monit zatwierdzania. (Security | Hermes Agent) Granica tej ochrony jest jednak wąska i producent stawia ją wprost: obejmuje wyłącznie te dwa narzędzia. Narzędzie terminalowe działa z uprawnieniami tego samego użytkownika systemu i te same pliki nadal odczyta albo nadpisze zwykłym poleceniem powłoki. Lista zakazanych ścieżek ogranicza przypadkowe szkody i daje modelowi jednoznaczny sygnał stopu; nie jest piaskownicą przeciwko agentowi wrogiemu lub przejętemu. (Security | Hermes Agent)

Backend wykonywania poleceń jest wybieralny i to najmocniejsze narzędzie ograniczania zasięgu. Poza domyślnym local dostępne są docker, ssh, singularity, modal, daytona oraz vercel_sandbox. (Tools & Toolsets | Hermes Agent) Wariant SSH dokumentacja zaleca ze względów bezpieczeństwa, z konkretnym uzasadnieniem: agent nie może wtedy modyfikować własnego kodu. (Tools & Toolsets | Hermes Agent) Kontenery uruchamiane są z utwardzonymi ustawieniami - system plików głównego kontenera tylko do odczytu w Dockerze, porzucone wszystkie uprawnienia Linuksa, brak eskalacji uprawnień, limit 256 procesów, pełna izolacja przestrzeni nazw. (Tools & Toolsets | Hermes Agent) Backend zmienia się jednym poleceniem:

hermes config set terminal.backend docker

Jedna konsekwencja tej zmiany jest ważniejsza, niż wygląda, i nie wynika z niej intuicyjnie. W backendach docker, singularity, modal, daytona i vercel_sandbox sprawdzanie niebezpiecznych poleceń jest pomijane - granicą bezpieczeństwa staje się sam kontener, więc polecenie niszczące w jego wnętrzu nie sięgnie hosta i nie wywoła monitu o zatwierdzenie. Reguły approvals.deny też przestają obowiązywać: działają wyłącznie na backendach sięgających hosta, czyli przy local, ssh i Dockerze z podmontowanym katalogiem hosta. Producent podaje to w tabeli porównawczej backendów wprost - kolumna kontroli niebezpiecznych poleceń ma znacznik tylko przy local i ssh. (Security | Hermes Agent) Innymi słowy: przejście na backend kontenerowy to zamiana warstw, a nie ich dołożenie. Zyskuje się izolację od systemu gospodarza, traci monity, twardą listę blokad i własne reguły odmowy na tej ścieżce wykonania. Dla wdrożenia bramki producent uznaje to za korzystną wymianę - izolacja kontenera czyni zatwierdzanie zbędnym. Przy pracy w codziennym katalogu domowym warto jednak wiedzieć, że zabezpieczenia opisane wyżej dotyczą wtedy wnętrza kontenera, a nie hosta. (Security | Hermes Agent)

Osobna uwaga do Dockera: kontener jest jeden i trwały na czas pracy procesu Hermesa. Wszystkie wywołania terminala, plików i wykonywania kodu idą przez docker exec do tego samego kontenera, więc zainstalowane pakiety, zmiana katalogu roboczego i pliki w /workspace przenoszą się między wywołaniami, także przez /new, /reset i zadania delegowane. Kontener zostaje zatrzymany i usunięty przy zamknięciu Hermesa. (Tools & Toolsets | Hermes Agent)

Prywatność jest opisana jednoznacznie: zapytania idą wyłącznie do skonfigurowanego dostawcy modelu, Hermes nie zbiera telemetrii ani danych analitycznych, a rozmowy, pamięć i umiejętności są przechowywane lokalnie w ~/.hermes/. (FAQ & Troubleshooting | Hermes Agent) W logach w katalogu ~/.hermes/logs/ sekrety są automatycznie redagowane. (Hermes Agent Configuration) W plikach kontekstowych projektu działa skaner wstrzykiwania promptów; treść pasująca do wzorców zagrożeń, w tym prób nadpisania instrukcji i wyprowadzenia poświadczeń, jest zastępowana znacznikiem blokady i nie trafia do promptu systemowego. Producent zaznacza jednak, że skaner nie zastępuje przeczytania pliku kontekstowego we współdzielonym repozytorium. (Context Files | Hermes Agent)

Pamięć, umiejętności i pliki kontekstowe

Te trzy mechanizmy odpowiadają za to, co agent wie na starcie kolejnej sesji, i łatwo je pomylić.

Pamięć trwała to dwa pliki w ~/.hermes/memories/. MEMORY.md mieści notatki agenta o środowisku, konwencjach i wyciągniętych wnioskach, z limitem 2200 znaków. USER.md opisuje użytkownika - preferencje, styl komunikacji, oczekiwania - z limitem 1375 znaków. Oba są wstrzykiwane do promptu systemowego jako zamrożona migawka na starcie sesji; zapisy w trakcie rozmowy trafiają na dysk natychmiast, ale w prompcie systemowym pojawią się dopiero w następnej sesji, co jest celowe i służy zachowaniu cache prefiksu modelu. (Persistent Memory | Hermes Agent) Limity nie są kosmetyczne: pamięć nie kompaktuje się sama, a zapis przekraczający limit zwraca błąd, po którym agent ma sam skonsolidować lub usunąć wpisy. (Persistent Memory | Hermes Agent) Wpisy są skanowane pod kątem wzorców wstrzykiwania i wyprowadzania poświadczeń, właśnie dlatego, że trafiają do promptu systemowego. (Persistent Memory | Hermes Agent)

Ostrzeżenie warte zapamiętania przy pracy na kilku instancjach: nie należy kierować dwóch procesów agenta na ten sam katalog domowy Hermesa. Zapisy do pamięci są automatyczne i ładują się do promptu na starcie, więc dwaj piszący nawzajem spiętrzą sobie wpisy w stan, którego nie napisał ani żaden z nich, ani użytkownik. Pamięć jest z założenia przypisana do profilu - drugiemu agentowi należy dać własny profil. (Persistent Memory | Hermes Agent)

Wyszukiwanie w sesjach to zupełnie inny mechanizm i dobrze rozumieć różnicę. Pamięć trwała ma pojemność rzędu 1300 tokenów, jest natychmiastowa, kosztuje tokeny w każdym prompcie i jest ręcznie kuratorowana przez agenta. Wyszukiwanie w sesjach nie ma limitu pojemności, obsługuje wszystkie sesje przez indeks FTS5 w SQLite, jest bezpłatne - nie wywołuje modelu - i działa na żądanie. (Persistent Memory | Hermes Agent) Pamięć służy faktom, które mają być zawsze pod ręką; wyszukiwanie odpowiada na pytania w rodzaju „czy rozmawialiśmy o tym w zeszłym tygodniu”.

Umiejętności to dokumenty wiedzy ładowane na żądanie, trzymane w ~/.hermes/skills/, zgodne z otwartym standardem agentskills.io. Ładują się progresywnie, żeby oszczędzać tokeny: poziom zerowy to sama lista nazw i opisów, poziom pierwszy to pełna treść wybranej umiejętności, poziom drugi to konkretny plik pomocniczy. (Skills System | Hermes Agent) Każda zainstalowana umiejętność jest automatycznie dostępna jako polecenie ukośnikowe, w CLI i na dowolnej podłączonej platformie komunikacyjnej. (Skills System | Hermes Agent) Nowe umiejętności tworzy polecenie /learn, wskazujące na katalog z dokumentacją, adres strony, przebieg właśnie wykonanej procedury albo opisany słownie proces. (Skills System | Hermes Agent)

Profil bez pakietu wbudowanych umiejętności też jest przewidziany: przełącznik --no-skills przy instalacji lub przy tworzeniu profilu, albo hermes skills opt-out na już zainstalowanym profilu. Ten ostatni zatrzymuje jedynie przyszłe zasilanie i niczego nie usuwa; opcjonalna flaga --remove kasuje wyłącznie te wbudowane umiejętności, które nie były modyfikowane. (Skills System | Hermes Agent)

Pliki kontekstowe projektu działają inaczej niż pamięć - nie są zapisywane przez agenta, tylko przez człowieka, i dotyczą jednego katalogu. Kolejność wykrywania to .hermes.md lub HERMES.md, potem AGENTS.md, potem CLAUDE.md, na końcu .cursorrules i .cursor/rules/*.mdc; ładowany jest tylko pierwszy trafiony typ. (Context Files | Hermes Agent) SOUL.md jest niezależny i zawsze ładowany, ale wyłącznie z katalogu HERMES_HOME - Hermes nie szuka go w katalogu roboczym. (Context Files | Hermes Agent)

W repozytorium Git pliki AGENTS.md ładowane są łańcuchem: najpierw z katalogu głównego repozytorium, potem z każdego katalogu pośredniego aż do katalogu roboczego, przy czym pliki głębsze pojawiają się później w prompcie, więc bardziej szczegółowe wskazówki mają pierwszeństwo. Poza repozytorium sprawdzany jest wyłącznie sam katalog roboczy, dzięki czemu plik podrzucony do /tmp albo do katalogu domowego nie przecieka do niepowiązanych sesji. (Context Files | Hermes Agent)

Dla opisanego wyżej ćwiczenia sensowny AGENTS.md w katalogu projektu mieści się w kilku linijkach:

# Lista zadan

- Statyczna strona: index.html, style.css, app.js. Bez frameworkow i bez zaleznosci.
- Stan zapisywany w localStorage. Nie zmieniac formatu danych bez wyraznego polecenia.
- Interfejs po polsku.
- Nie instalowac pakietow i nie tworzyc plikow poza tym katalogiem.

Koszty i ich kontrola

Sam program nic nie kosztuje. Płaci się za tokeny u wybranego dostawcy albo nie płaci się wcale przy modelu lokalnym. (FAQ & Troubleshooting | Hermes Agent) Ceny konkretnych modeli ustalają dostawcy i zmieniają się niezależnie od Hermesa, więc jedyną wiarygodną liczbą jest ta odczytana bezpośrednio u dostawcy w dniu użycia.

Narzędzia do pilnowania wydatków są wbudowane. Pasek stanu pokazuje szacowany koszt sesji na bieżąco, przy czym dla modeli o nieznanej lub zerowej cenie wyświetla n/a. (CLI Interface | Hermes Agent) Polecenie /usage daje rozbicie z podziałem na kategorie, /insights i hermes insights - analitykę tokenów, kosztów i aktywności w czasie. (CLI Interface | Hermes Agent, CLI Commands Reference | Hermes Agent)

Trzy nawyki ograniczają rachunek bardziej niż jakiekolwiek ustawienie. Pierwszy to kompresja kontekstu: długie rozmowy są automatycznie streszczane przy zbliżaniu się do limitu, domyślnie przy 50 procentach wypełnienia, przy czym pierwsze trzy i ostatnie dwadzieścia tur zostaje zachowanych w całości; ręcznie robi to /compress. (CLI Interface | Hermes Agent) Drugi to tryb powłoki: linia zaczynająca się od ! uruchamia polecenie systemowe bezpośrednio, bez wywołania modelu - zero kosztu, zero tokenów, zero opóźnienia, a treść i wynik nie wchodzą do historii rozmowy. Zatwierdzanie niebezpiecznych poleceń nadal obowiązuje, bo ! jest skrótem kosztowym, a nie obejściem zabezpieczeń. (CLI Interface | Hermes Agent) Trzeci to nowa sesja do nowego zadania zamiast ciągnięcia jednej rozmowy przez cały dzień.

Osobna oszczędność dotyczy wyszukiwania w historii - jest bezpłatne, bo nie wywołuje modelu w ogóle. (Persistent Memory | Hermes Agent)

Typowe problemy

hermes: command not found. Powłoka nie przeładowała zmienionej zmiennej PATH. Rozwiązanie: source ~/.bashrc lub source ~/.zshrc, albo nowe okno terminala. Jeżeli to nie pomaga, warto sprawdzić which hermes i obecność pliku ~/.local/bin/hermes. (FAQ & Troubleshooting | Hermes Agent)

Puste albo zepsute odpowiedzi zaraz po instalacji. Zwykle błędna autoryzacja dostawcy albo wybór modelu. Kolejność działań podana przez producenta: hermes doctor, hermes model, hermes setup, hermes sessions list, hermes --continue, hermes gateway status. (Quickstart | Hermes Agent)

HTTP 400 przy pierwszej rozmowie mimo udanego kreatora. Najczęściej niezgodność nazwy modelu - skonfigurowany model nie istnieje u dostawcy albo klucz nie ma do niego dostępu. Sprawdzenie: hermes config show, potem hermes model i próba ze znanym działającym modelem. Przy OpenRouterze błąd 400 często oznacza brak środków albo literówkę w identyfikatorze modelu. (FAQ & Troubleshooting | Hermes Agent)

Dziwne błędy konfiguracji po edycji pliku na Windows. Jeżeli plik konfiguracyjny albo umiejętność zapisano edytorem, który dokłada znacznik BOM w kodowaniu UTF-8 - robi to między innymi Notatnik w starszych wydaniach Windows i część edytorów metod wprowadzania - parsowanie YAML potrafi się po cichu wysypać, gdy BOM trafi wewnątrz zwiniętego skalara. Producent zaleca ponowny zapis pliku jako zwykły UTF-8 bez BOM. (Windows (Native) Guide | Hermes Agent)

Polecenia agenta w terminalu zawieszają się lub natychmiast wygasają, choć w normalnym terminalu działają. Pierwszym podejrzanym jest inicjalizacja powłoki. Agent uruchamia polecenia nieinteraktywnie, bez TTY, więc wszystko, co w .bashrc lub .zshrc pyta o coś, wywołuje read, podpina tmux albo wypisuje baner, zawiesza taką powłokę albo zaśmieca wyjście. Rozwiązaniem jest standardowa bariera na początku .bashrc, kończąca plik dla powłok nieinteraktywnych, z całą ciężką inicjalizacją poniżej niej. (Tools & Toolsets | Hermes Agent)

Agent nie widzi narzędzi zainstalowanych przez menedżer wersji. Hermes buduje migawkę środowiska, uruchamiając raz powłokę logowania bash -l, która czyta /etc/profile, ~/.bash_profile i ~/.profile, ale nie ~/.bashrc - więc nvm, asdf, pyenv, cargo i własne eksporty PATH pozostają niewidoczne. Hermes domyślnie dociąga ~/.bashrc sam; przy innej powłoce dodatkowe pliki wskazuje się w terminal.shell_init_files w config.yaml. (FAQ & Troubleshooting | Hermes Agent)

Narzędzie nie jest dostępne w sesji. Warto sprawdzić hermes tools, czy dany zestaw narzędzi jest w ogóle włączony, i czy narzędzie nie wymaga zmiennej środowiskowej ustawionej w .env. Jeżeli instalacja przeszła przez tryb Blank Slate, wyłączone jest wszystko poza dostawcą, plikami i terminalem, a poszczególne zestawy dokłada się ponownie poleceniem hermes tools. (Quickstart | Hermes Agent)

Pomocnicze modele nie działają - wizja, kompresja albo tło rozmowy zawodzą po cichu. Zadania pomocnicze mają w config.yaml własną sekcję auxiliary z osobnym dostawcą, modelem, kluczem i adresem bazowym dla każdego zadania; wartości można w niej podać wprost albo odwołaniem do zmiennej środowiskowej w składni ${NAZWA}. Jeżeli dana funkcja milczy, warto ustawić jej dostawcę i model jawnie zamiast polegać na wykryciu automatycznym. (Hermes Agent Configuration)

Znaki chińskie, japońskie lub arabskie wyświetlają się jako znaki zapytania na Windows. Nakładka UTF-8 dla standardowego wejścia i wyjścia się nie włączyła. Trzeba sprawdzić, czy nie jest ustawiona zmienna HERMES_DISABLE_WINDOWS_UTF8; jeżeli nie jest, a problem trwa, przyczyną bywa bardzo stary host konsoli cmd.exe, który nie obsługuje UTF-8 - rozwiązaniem jest przejście na Terminal Windows. (Windows (Native) Guide | Hermes Agent)

Skrajnie wolne operacje na repozytorium w WSL2. Pliki leżą pod /mnt/c/.... Przeniesienie repozytorium do katalogu domowego Linuksa daje przyspieszenie rzędu wielkości. (Windows (WSL2) Guide | Hermes Agent)

bad interpreter: /bin/bash^M w WSL2. Zakończenia linii CRLF z edytora Windows. Naprawa: dos2unix skrypt.sh oraz ustawienie git config --global core.autocrlf input w konfiguracji Gita wewnątrz WSL. (Windows (WSL2) Guide | Hermes Agent)

Kontekst przepełniony w długiej rozmowie. /compress streszcza sesję, /context i pasek stanu pokazują wypełnienie. Przy powtarzającym się problemie warto sięgnąć po model z większym oknem kontekstu. (CLI Interface | Hermes Agent)

Uniwersalne narzędzie diagnostyczne to hermes doctor, które wypisuje brakujące elementy i sposób naprawy, oraz hermes dump - zwięzłe, tekstowe podsumowanie całej konfiguracji przygotowane do wklejenia w zgłoszeniu, z kluczami API pokazanymi wyłącznie jako obecne lub nieobecne. (CLI Commands Reference | Hermes Agent)

Kopia zapasowa, przeniesienie i odinstalowanie

Pełna kopia całego katalogu ~/.hermes/ - konfiguracji, kluczy API, pamięci, umiejętności, sesji i profili - powstaje jednym poleceniem hermes backup, które zapisuje archiwum zip w katalogu domowym; przywraca je hermes import. Producent zaznacza, że migawka jest spójna nawet przy działającym Hermesie, a przywracane archiwum pomija lokalne pliki uruchomieniowe w rodzaju gateway.pid. (FAQ & Troubleshooting | Hermes Agent)

Do przeniesienia pojedynczego profilu służy inna para poleceń, hermes profile export i hermes profile import, i różnica jest istotna: eksport profilu nie zawiera poświadczeń - .env i auth.json są usuwane, żeby archiwum dało się bezpiecznie udostępnić. Pełna kopia zapasowa poświadczenia zawiera. (FAQ & Troubleshooting | Hermes Agent)

Odinstalowanie to polecenie hermes uninstall. (CLI Commands Reference | Hermes Agent) Przed nim warto świadomie zdecydować, co ma zostać: katalog danych zawiera rozmowy, pamięć i klucze API, więc jeżeli celem jest czysta maszyna, trzeba go sprawdzić osobno - na Linuksie i macOS ~/.hermes/, na Windows %LOCALAPPDATA%\hermes, a przy własnej wartości HERMES_HOME w miejscu przez nią wskazanym. (Installation | Hermes Agent, Windows (Native) Guide | Hermes Agent)

Czego ten układ nie zrobi

Nie zastąpi zrozumienia własnego projektu. Agent wykonuje polecenia i pisze kod, ale ocena, czy wynik jest poprawny, zostaje po stronie człowieka - i dlatego sekcja o weryfikacji jest w tym poradniku równie długa jak sekcja o instalacji.

Nie daje gwarancji jakości niezależnej od modelu. Ten sam Hermes z tanim modelem o małym oknie kontekstu i z modelem frontierowym to dwa różne narzędzia; producent zaznacza nawet, że własne modele czatowe Nous Research z rodziny Hermes 4, choć dostępne w Portalu w promocyjnych cenach, nie są rekomendowane do pracy wewnątrz agenta, bo są strojone pod czat i rozumowanie, a nie pod szybką pętlę wywołań narzędzi. (Nous Portal | Hermes Agent)

Nie jest piaskownicą sam z siebie. Domyślny backend local wykonuje polecenia na tym komputerze, z uprawnieniami użytkownika, który uruchomił agenta. Zabezpieczenia zatwierdzania to bariera przed pomyłką, a nie izolacja przed wrogim procesem - do izolacji służy backend kontenerowy albo zdalny, przy czym w backendach kontenerowych sprawdzanie niebezpiecznych poleceń przestaje działać, bo granicą staje się sam kontener. To zamiana warstwy, nie jej dołożenie. (Security | Hermes Agent)

Nie chroni przed każdym zapisem w niewłaściwe miejsce. Twarda lista zakazanych ścieżek obejmuje write_file i patch, ale nie narzędzie terminalowe - to samo polecenie powłoki nadal sięgnie po plik, którego zapis z poziomu czatu jest zablokowany. (Security | Hermes Agent)

Nie chroni danych, które użytkownik sam wysyła. Treść rozmowy trafia do skonfigurowanego dostawcy modelu. Lokalność dotyczy programu, historii i pamięci, nie samego wnioskowania - chyba że model także działa lokalnie. (FAQ & Troubleshooting | Hermes Agent)

Źródła

Komentarze (0)

Nikt jeszcze nic nie napisał. Bądź pierwszy.

Komentarze są moderowane. Pojawi się po zatwierdzeniu. Maks. 2 linki.

Czytaj dalej

AI · poradnik

Cursor: edytor z agentem, który czyta cały projekt i sam wprowadza zmiany

9 września 2026
AI · poradnik

Google Antigravity: agent, który sam pisze, uruchamia i sprawdza kod

9 września 2026
AI · poradnik

Grok Bot: agent xAI z własnym komputerem w chmurze - konfiguracja i pierwsze zadanie

9 września 2026
AI · poradnik

OpenClaw: własny asystent AI, który odpisuje w komunikatorach

9 września 2026