hermes@agent:~/.hermes$ cat hermes.md

Hermes Agent: przewodnik praktyka (2026)

# Przewodnik praktyka po Hermes Agent — samodoskonalącym się agencie AI typu open source od Nous Research: uwierzytelnianie u dostawców, pliki konfiguracyjne, system umiejętności oraz uruchamianie go jako wieloplatformowej bramy komunikacyjnej.

author: words: 47830 read_time: 181m updated: 2026-09-25 13:42
$ less hermes.md

W skrócie: Hermes Agent to samodoskonalący się agent AI typu open source opracowany przez Nous Research. Działa jako CLI oraz wieloplatformowy gateway komunikacyjny, przechowuje na dysku trwałą tożsamość i pamięć, gromadzi skills doskonalące się w miarę używania oraz współpracuje z dowolnym dostawcą LLM zgodnym z OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Qwen Cloud, Hugging Face, Google, xAI/SuperGrok lub własnym, samodzielnie hostowanym punktem końcowym.1219 Bieżące wydanie to v0.21.5 (tag v2026.9.24 z 24 września 2026), zbiorcza poprawka dla linii v0.21; sekcja Co nowego w v0.21.5 omawia wprowadzone zmiany, a następujące po niej sekcje wydań są uporządkowane od najnowszego do najstarszego.52 Dla większości nowych użytkowników najtrudniejszym elementem jest uwierzytelnianie u dostawcy: w tagu v2026.9.24 Hermes udostępnia 39 dostawców na statycznej liście wyboru i automatycznie rozszerza ją na podstawie 38 dołączonych wtyczek dostawców, a ponadto obsługuje niestandardowe punkty końcowe oraz trzy odrębne ścieżki uwierzytelniania (klucz API w .env, OAuth przez hermes model lub niestandardowy punkt końcowy w config.yaml).53 W pierwszej kolejności należy zrozumieć model uwierzytelniania — wszystko inne zależy od tego, który dostawca zostanie wybrany.

Hermes Agent działa jako kompletne środowisko uruchomieniowe agenta, a nie nakładka na czat. Odczytuje system plików, wykonuje polecenia w izolowanych środowiskach, pozyskuje dane z internetu, uruchamia podagentów, realizuje zaplanowane zadania cron, komunikuje się z Telegram/Discord/Slack/WhatsApp/Signal/Email za pośrednictwem jednego procesu gateway i tworzy własne skills na podstawie doświadczeń.1 CLI to terminalowy interfejs użytkownika zbudowany na pętli konwersacji w run_agent.py; gateway jest procesem działającym długotrwale, który kieruje wiadomości z platform komunikacyjnych przez tę samą pętlę konwersacji.3

Różnica między okazjonalnym a zaawansowanym korzystaniem z Hermes sprowadza się do pięciu systemów. Ich opanowanie sprawia, że Hermes zwielokrotnia możliwości:

  1. Wybór dostawcy: sposób odwzorowania przepływów uwierzytelniania na wywołania API
  2. Hierarchia konfiguracji: config.yaml + .env + auth.json + SOUL.md + AGENTS.md
  3. System narzędzi i toolset: możliwości agenta ograniczane zależnie od platformy
  4. System skills: pamięć proceduralna tworzona i rozwijana przez agenta
  5. Gateway + cron + profiles: uruchamianie Hermes tam, gdzie odbywa się codzienna praca, a nie tylko w bieżącym miejscu

Najważniejsze informacje

  • Uwierzytelnianie u dostawcy obejmuje trzy ścieżki, a nie jedną. Klucz API w .env, OAuth przez hermes model/hermes auth albo niestandardowy punkt końcowy w config.yaml. Należy wybrać ścieżkę odpowiednią dla danego dostawcy, a nie tę, która wydaje się znajoma.
  • Zmiana dostawcy wymaga jednego polecenia. hermes model interaktywnie prowadzi przez konfigurację każdego obsługiwanego dostawcy, w tym logowania OAuth, natomiast /model provider:model pozwala przełączyć model w trakcie sesji bez utraty historii.2
  • Dwa pliki stanowią część konfiguracji przeznaczoną do edycji przez użytkownika. ~/.hermes/config.yaml zawiera ustawienia, a ~/.hermes/.env — dane poufne. Plikami auth.json, SOUL.md, MEMORY.md oraz katalogiem skills/ zarządza bezpośrednio Hermes — SOUL.md można edytować ręcznie, natomiast pozostałe elementy modyfikuje sam agent.4
  • Hermes jest następcą OpenClaw. W przypadku migracji polecenie hermes claw migrate automatycznie importuje ponad 30 kategorii stanu.5
  • Zadania pomocnicze domyślnie korzystają z głównego modelu. Analiza obrazu, klasyfikacja zatwierdzeń, kompresja i tytuły sesji są obsługiwane jako osobne „pomocnicze” wywołania LLM, a w tym tagu ustawienie auto kieruje wszystkie z nich do głównego modelu czatu – nie trzeba niczego konfigurować, jednak w przypadku kosztownych modeli rozumujących te zadania dodatkowe generują zauważalne koszty. Gdy ma to znaczenie, warto przypisać poszczególne pozycje auxiliary.<task> do tanich i szybkich modeli.434

Każda z poniższych sekcji opiera się na dokumentacji źródłowej dostępnej pod adresem hermes-agent.nousresearch.com/docs oraz drzewie kodu źródłowego w repozytorium github.com/NousResearch/hermes-agent. Każde stwierdzenie dotyczące faktów opatrzono przypisem wskazującym konkretną stronę źródłową, z której pochodzi.

Wybór ścieżki

Potrzeba Odpowiednia sekcja
Instalacja Hermes Instalacja — instalator uruchamiany jednym poleceniem lub instrukcja ręczna
Logowanie u dostawcy Uwierzytelnianie i dostawcy — sekcja poświęcona temu zagadnieniu
Zmiana modelu w trakcie sesji Polecenie hermes auth oraz Niestandardowe i samodzielnie hostowane punkty końcowe, gdzie opisano składnię /model
Uruchamianie lokalnego LLM Niestandardowe i samodzielnie hostowane punkty końcowe — Ollama, vLLM, SGLang, llama.cpp, LM Studio
Łączenie platform komunikacyjnych Gateway komunikacyjny — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat, ntfy, Buzz (28 pozycji w tabeli porównawczej w dokumentacji)
Tworzenie lub instalowanie skill System skills — stopniowe ujawnianie informacji + centrum skills
Szczegółowy opis każdego polecenia CLI Proszę czytać dalej — można też przejść bezpośrednio do sekcji Polecenia CLI

Jak działa Hermes: model mentalny

Hermes opiera się na jednej pętli konwersacji, którą może wywołać dowolny punkt wejścia. Punktami wejścia są CLI (cli.py), gateway komunikatorów (gateway/run.py), adapter ACP do integracji z edytorami, mechanizm przetwarzania wsadowego oraz serwer API.3 Wszystkie ostatecznie wywołują metodę AIAgent.run_conversation() w pliku run_agent.py, która:

  1. Tworzy prompt systemowy na podstawie SOUL.md, MEMORY.md, USER.md, skills, plików kontekstowych i wskazówek dotyczących narzędzi za pośrednictwem agent/prompt_builder.py (w wyniku dekompozycji z września 2026 przeniesiono ją do nowego pakietu agent/)3
  2. Ustala dostawcę środowiska wykonawczego za pomocą runtime_provider.py — na tym etapie wybierane są uwierzytelnianie, bazowy adres URL i tryb API3
  3. Wywołuje dostawcę w jednym z trzech trybów API: chat_completions, codex_responses lub anthropic_messages3
  4. Przekazuje wszystkie zwrócone wywołania narzędzi przez model_tools.py i centralny rejestr narzędzi (tools/registry.py)3
  5. Powtarza pętlę, dopóki model nie wygeneruje ostatecznej odpowiedzi, a następnie zapisuje sesję w bazie SQLite z FTS53

Zrozumienie tej pętli jest istotne, ponieważ każda funkcja — osobowości, pamięć, skills, kompresja i mechanizm fallback — wiąże się z jednym z tych etapów. Przy analizowaniu klucza konfiguracyjnego i zastanawianiu się nad jego działaniem odpowiedź zwykle brzmi: „to parametr sterujący etapem 1, 2, 3 lub 4 powyższej pętli”.

Rdzeń niezależny od platformy. Jedna klasa AIAgent obsługuje CLI, gateway, ACP, przetwarzanie wsadowe i serwer API. Różnice między platformami znajdują się w punktach wejścia, a nie w samym agencie.3 Dlatego te same polecenia z ukośnikiem działają zarówno w terminalu, jak i w Telegram — są obsługiwane za pośrednictwem wspólnego rejestru COMMAND_REGISTRY w pliku hermes_cli/commands.py.6

Struktura katalogów stanowi system. Hermes przechowuje wszystko w ~/.hermes/ (lub w $HERMES_HOME w przypadku profili innych niż domyślny):4

~/.hermes/
├── config.yaml        # Settings (model, terminal, TTS, compression, etc.)
├── .env               # API keys and secrets
├── auth.json          # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md            # Primary agent identity (slot #1 in system prompt)
├── memories/          # Persistent memory (MEMORY.md, USER.md)
├── skills/            # Bundled + agent-created + hub-installed skills
├── cron/              # Scheduled jobs
├── sessions/          # Gateway session state
└── logs/              # agent.log, gateway.log, errors.log (secrets auto-redacted)

Każdy z powyższych plików pełni określoną rolę; żadne z nich się nie pokrywają. Odpowiedź na pytanie „gdzie Hermes przechowuje X?” zawsze wskazuje jeden z nich.


Co nowego w wersji v0.21.5 (zbiorcze wydanie z 24 września)

Hermes Agent v0.21.5 (tag v2026.9.24 z 24 września 2026) to bieżące wydanie — trzecie niewielkie wydanie zbiorcze w linii v0.21.x: „Ten tag obejmuje około 460 PR-ów scalonych od wersji v0.21.4 i udostępnia je jako stabilne, oznaczone wydanie dla dalszych odbiorców”. Opracowane informacje o wydaniu ponownie odłożono do wersji v0.22.0. Zmiany istotne dla operatorów, zweryfikowane w kodzie źródłowym oznaczonym tym tagiem:5253

  • Pamięć Hindsight opuszcza główne drzewo. Usunięto wbudowanego dostawcę Hindsight oraz dodatek pip hermes-agent[hindsight]; Hindsight instaluje się teraz z katalogu pluginów i jest utrzymywany przez Vectorize; nie wspomniano o tym w informacjach o wydaniu. Jeśli konfiguracja zawiera memory.provider: hindsight, polecenie hermes update instaluje plugin z katalogu w katalogu domowym każdego profilu, który go wskazuje, a pierwsze uruchomienie agenta instaluje go, jeśli nadal go brakuje — chyba że security.allow_lazy_installs ma wartość false (w takim przypadku należy uruchomić hermes plugins install hindsight). Ustawienia, klucze .env i dane pamięci pozostają nienaruszone. Zobacz Zewnętrzni dostawcy pamięci.
  • Wycofano gateway.multiplex_profiles: false. Gateway zmienia tę wartość na true bezpośrednio w pliku i jednorazowo wyświetla komunikat w ramce. Profil nazwany, który musi zachować własny gateway, ustawia gateway.standalone: true we własnym pliku config.yaml; aby wyłączyć jeden obsługiwany profil bez zatrzymywania hosta, polecenie hermes -p <name> gateway stop zawiesza teraz jego działanie. Zobacz Gateway komunikatorów.
  • Nowe modele w selektorach Nous i OpenRouter: GPT-6 Sol oraz GPT-6 Luna (każdy również w wariancie -pro), a także Claude Opus 5.5.
  • Zgodność pluginów pozostaje bez zmian: plugins.allow_deprecated_imports: true nadal działa.

Aktualizacja: hermes update lub jednowierszowe polecenie instalatora; obrazy Docker i Hermes Cloud są budowane na podstawie nousresearch/hermes-agent:v2026.9.24.52

Co nowego w v0.21.4 (drugi zbiorczy patch)

Hermes Agent v0.21.4 (tag v2026.9.21, 21 września 2026) to drugi celowo niewielki zbiorczy patch w linii v0.21.x. Autorzy opisują go następująco: „Wydanie poprawkowe. Ten tag obejmuje około 1 800 PR-ów scalonych od wersji v0.21.3 i udostępnia je jako stabilne, oznaczone wydanie dla dalszych odbiorców (obrazy Docker, Hermes Cloud, wdrożenia hostingowe)”. Okres od v0.21.3 obejmuje „5 071 commitów bez scaleń” w „5 169 zmienionych plikach”, „1 812 scalonych PR-ów” oraz „2 116 zamkniętych zgłoszeń”. Pod względem liczby commitów jest to drugi co do wielkości okres między tagami w historii projektu — ustępuje tylko 5 139 commitom z v0.21.1 — natomiast pod względem liczby scalonych PR-ów jest największy. Opracowanie uporządkowanego opisu zmian ponownie odłożono, ujmując to dosłownie: „Pełne, opracowane informacje o wydaniu dla tego okresu pojawią się wraz z v0.22.0, które udokumentuje wszystko od v0.21.0”, oraz „Żaden element z tego okresu nie zostanie pominięty”. W informacji o wydaniu wymieniono jednak elementy, których jeszcze nie udokumentowano, a każdy z poniższych punktów sprawdzono w kodzie źródłowym dla tego tagu. Jeśli dany element zmienia istniejącą sekcję tego przewodnika, odpowiednie odwołanie znajduje się bezpośrednio w tekście.5051

  • Jeden gateway na host, a Desktop dołącza zamiast uruchamiać kolejną instancję. Obowiązuje zasada jednego procesu hermes serve i jednego procesu hermes gateway run na host oraz użytkownika systemu operacyjnego, przy czym każdy z nich obsługuje wszystkie profile — wymusza to nowa warstwa pojedynczej instancji dla całego hosta: blokada hosta utrzymywana przez cały czas działania zwycięskiego procesu oraz rekord punktu spotkania zawierający (pid, createTime). Dzięki temu drugie wywołanie może potwierdzić, że właścicielem jest ten sam aktywny proces, i dołączyć do niego zamiast zajmować drugi port. Nieaktualność jest zawsze potwierdzana, nigdy zakładana, a aplikacja Desktop stosuje tę samą zasadę po swojej stronie, dołączając do działającego backendu hosta zamiast uruchamiać kolejny. Szczegóły mechanizmu opisano w sekcji Messaging Gateway.51
  • Connectors stają się jedną operacją kontrolowaną przez backend i korzystają z jednej karty konfiguracji. Wywołanie narzędzia manage_connections steruje na backendzie maszyną stanów połączenia opartą wyłącznie na danych, a Desktop, TUI oraz CLI wyświetlają ją jako tę samą kartę konfiguracji: jedno pole dla każdego brakującego poświadczenia, przy czym działanie karty pozostaje zablokowane, dopóki wszystkie wymagane pola nie zawierają tekstu. Więcej informacji zawiera podsekcja dotycząca bezpłatnego planu Nous.51
  • --format stream-json: jednorazowe uruchomienia w formacie przeznaczonym do odczytu maszynowego. Polecenie hermes chat -q ... --format stream-json emituje do stdout po jednym obiekcie JSON w każdym wierszu dla mechanizmów CI i orkiestratorów: najpierw zdarzenie system/init, następnie zdarzenia przyrostów text, tool_use i tool_result, a na końcu pojedynczą końcową kopertę result zawierającą kod wyjścia, końcowy tekst i statystyki tokenów. Informacje diagnostyczne i identyfikator sesji pozostają w stderr, dane wyjściowe narzędzia są ograniczone do 5 000 znaków na zdarzenie, flaga wymusza --quiet, wymaga -q lub --query-file (bez jednego z nich proces kończy się kodem 2) i nie może być używana razem z --tui. Flaga została uwzględniona w tabeli opcji hermes chat.51
  • skills.auto_load przypina skills do każdej sesji. Nazwy wymienione w skills.auto_load w pliku config.yaml są w całości ładowane w każdej nowej sesji — zarówno w CLI, TUI, gateway, cron, jak i API — i rozpoznawane jednokrotnie podczas pierwszego tworzenia promptu. Sekcja System skills zyskuje podsekcję dotyczącą przypiętych skills.51
  • Opcja decline dla nieautoryzowanych wiadomości prywatnych. Ustawienie unauthorized_dm_behavior otrzymuje trzecią wartość obok pair i ignore: decline wysyła jedną uprzejmą odmowę, po czym przez 24 godziny nie odpowiada danemu nadawcy. Zob. Autoryzacja użytkowników i parowanie.51
  • mcp.discovery_concurrency ogranicza równoległe połączenia podczas wykrywania MCP. Wartość domyślna to 4, a 0 oznacza brak limitu. Każdy skonfigurowany serwer nadal zostanie połączony, lecz połączenia nie będą już nawiązywane jednocześnie. Zob. Integracja z MCP.51
  • session_search otrzymuje ograniczenia czasowe i ponawianie wyszukiwania. Struktura wykrywania przyjmuje ograniczenia after/before (w formacie ISO lub jako względne okresy, np. 7d), a wielowyrazowe zapytanie bez wyników jest ponawiane z dopasowaniem DOWOLNEGO terminu zamiast domyślnego w FTS5 łączenia wszystkich terminów operatorem AND. Zob. Wyszukiwanie sesji.51
  • hermes sessions set-journal-mode delete|wal: konwerter trybu dziennika działający offline. To samoobsługowy sposób naprawy pliku state.db, który utknął w niewłaściwym trybie dziennika SQLite — wcześniej wymagało to ręcznego wykonania PRAGMA journal_mode=DELETE. Najpierw należy zatrzymać gateway, dashboard i wszystkie procesy CLI: polecenie odmawia działania, jeśli jakikolwiek obcy proces korzysta z bazy danych, przełącza tryb bez oczekiwania na zamknięcie aktywnych uchwytów i następnie weryfikuje bajty nagłówka SQLite. Windows nie oferuje skanowania procesów korzystających z pliku, dlatego polecenie odmawia tam działania, dopóki — po samodzielnym zatrzymaniu wszystkich procesów Hermes — nie zostanie przekazana flaga --force. Polecenie hermes doctor wskazuje teraz tę możliwość. Została ona uwzględniona w wierszu hermes sessions w sekcji Polecenia najwyższego poziomu.51
  • Desktop: ustawienie czcionki, aktualizacje silnika jednym kliknięciem i odinstalowywanie pluginów. W ustawieniach pojawiło się pole rodziny czcionek, zapisywane osobno dla każdego profile w desktop.font_family — zastępuje ono bezszeryfowy krój motywu w czacie i interfejsie, a lista sugestii zaczyna się od krojów zwiększających dostępność (OpenDyslexic, Atkinson Hyperlegible, Lexend). Puste pole oznacza, że o wyborze decyduje motyw. Zarządzane środowisko wykonawcze lokalnego modelu wyświetla przycisk „Aktualizuj silnik”, gdy aktualizacja jest dostępna, a nieudana aktualizacja pozostaje widoczna, umożliwiając jej bezpośrednie ponowienie. Ponadto centrum Plugins pozwala odinstalować plugin po potwierdzeniu w oknie dialogowym.51
  • Katalogi modeli wideo: LTX 2.5 i Kling O3. Plugin wideo FAL dodaje ltx-2.5 (otwartoźródłowy model audio-wideo firmy Lightricks: natywny dźwięk, generowanie wideo z obrazu o długości do 20 s i rozdzielczości 4K, ustawienia ruchu kamery, tani plan — fal odrzuca klipy dłuższe niż 10 s w rozdzielczości 1440p/2160p) oraz kling-o3 (najbardziej zaawansowana rodzina modeli firmy Kuaishou, plan premium: natywne opowiadanie wieloujęciowe, opcjonalny dźwięk, długość 3–15 s).51
  • Katalog pluginów staje się dołączonym folderem i witryną internetową. Folder plugin-catalog/ w repozytorium rozrósł się z 9 pozycji w v2026.9.14 do 228 w tym tagu — po jednym zweryfikowanym pliku YAML na każdy plugin, przypiętym do konkretnego identyfikatora SHA commitu — a witryna dokumentacji tworzy teraz osobną stronę dla każdego pluginu i autora, wyświetlając na niej README pluginu z przypiętego commitu. Wszystkie 10 społecznościowych pluginów wymienionych w informacji o wydaniu znajduje się w katalogu dla tego tagu. Szczegóły zawiera sekcja System pluginów.51
  • Oraz duża seria poprawek dotyczących izolacji profile/multiplex, cron, kanban, Desktop i state.db, wymieniona w informacji o wydaniu jedynie jako kategoria. Opracowany wykaz tych poprawek zostanie przygotowany dla v0.22.0.50

Wycofanie warstwy zgodności pluginów nadal nie nastąpiło w tym okresie. Pliki COMPAT_MANIFEST.md, compat_manifest.json oraz warstwy zgodności są obecne w v2026.9.21. Jedyne zmiany w hermes_cli/plugin_compat.py z tego okresu to pamięć podręczna skanowania dla całego procesu (gateway typu multiplex wykrywa pluginy raz dla każdego obsługiwanego profile, a ponowne analizowanie kodu źródłowego każdego pluginu wydłużało uruchamianie o około 0,4 s na profile) oraz ścieżki trafień w formacie POSIX w systemie Windows (#112576). Ograniczenie daty i furtka w postaci literału logicznego pozostają bez zmian, dlatego plugins.allow_deprecated_imports: true nadal pozwala wczytywać pluginy, których dotyczy problem. Ramka dotycząca zgodności w sekcji System pluginów przedstawia aktualny stan.42

Sposób aktualizacji pozostaje bez zmian: hermes update w przypadku instalacji z git lub instalator powłoki w przypadku nowych instalacji. Obrazy Docker oraz Hermes Cloud są budowane z tego tagu (nousresearch/hermes-agent:v2026.9.21).50

Co nowego w v0.21.3 (patch z 14 września)

Hermes Agent v0.21.3 (tag v2026.9.14, 14 września 2026) obejmuje kolejne 3 dni zmian z gałęzi main, opisane w dwupunktowej informacji o wydaniu. Wersję opublikowano, ponieważ agenci Cloud automatycznie aktualizują się do najnowszego tagu wydania, a poprawki logowania do zdalnego gateway były potrzebne, aby można było się z nimi połączyć. (1) Sesje zdalnego dashboardu nie są już unieważniane przez serie odświeżeń: obie ścieżki odświeżania na gateway (mechanizm kontroli plików cookie i natywna trasa tokenu bearer aplikacji Desktop) łączą teraz równoczesne żądania zawierające ten sam rotacyjny token odświeżania w jedną operację. Dzięki temu seria żądań po wybudzeniu aplikacji Desktop nie może już ponownie użyć obróconego wcześniej tokenu, uruchomić w Nous Portal mechanizmu wykrywania ponownego użycia i unieważnić całej sesji. Odświeżanie odbywa się też poza pętlą zdarzeń, więc powolny dostawca tożsamości nie blokuje już /api/status. (2) Długotrwałe procesy przestają tworzyć zduplikowane uchwyty zapisu do state.db: gateway, backend dashboardu/Desktop, ACP oraz procesy odczytujące CLI dołączają w trybie tylko do odczytu, natomiast procesy zapisujące w ramach tej samej instancji współdzielą uchwyt rejestru. Statystyki tego okresu: „1 036 commitów bez scaleń” w „2 642 zmienionych plikach” oraz „338 scalonych PR-ów”. Wszystko inne odłożono celowo: w informacji o wydaniu wskazano elementy, których jeszcze nie udokumentowano (selektory poziomu intensywności rozumowania w każdym selektorze modelu, PKCE dla OAuth OpenRouter, dekodowanie HEIF/HEIC/AVIF, fala nowych pozycji w katalogu FAL, tabele wklejane w Slack i API Agent Sessions, odmowa używania trybu WAL przez state.db w systemach plików współdzielonych między maszynami wirtualnymi i inne zmiany), oraz zobowiązano się do przygotowania uporządkowanego opisu, ujmując to dosłownie: „Pełne, opracowane informacje o wydaniu dla tego okresu pojawią się wraz z v0.22.0, które udokumentuje wszystko od v0.21.0”, oraz „Żaden element z tego okresu nie zostanie pominięty”.49

Termin wyłączenia zgodności pluginów nadszedł zgodnie z planem. Usunięcie zapowiedziane w v0.21.1 na 14 września 2026 zostało wdrożone w opublikowanym kodzie jako ograniczenie daty, a nie jako wycofanie kodu: w tagu v2026.9.14 plik hermes_cli/plugin_compat.py zawiera COMPAT_REMOVAL_DATE = 2026-09-14, a funkcja removal_in_effect() zwraca wartość true od tej daty (lub natychmiast po zniknięciu pliku manifestu). W rezultacie zewnętrzny plugin, którego dotyczy zmiana, jest teraz wyłączany podczas ładowania i wyświetlane jest czerwone ostrzeżenie. Co jeszcze NIE nastąpiło: wycofanie kodu, które rzeczywiście usuwa stare ścieżki importu. Pliki COMPAT_MANIFEST.md, compat_manifest.json oraz warstwy zgodności nadal są obecne w tym tagu — a także w v2026.9.21 i na gałęzi main według stanu na 22 września — dlatego plugins.allow_deprecated_imports: true wciąż działa jako furtka: stare ścieżki nadal można rozwiązać, gdy moduł ładujący otrzyma zgodę na kontynuowanie. Należy uważać na 2 kwestie: klucz musi być literałem logicznym YAML (kod akceptuje wyłącznie wartość logiczną True; ciąg znaków w cudzysłowie, taki jak "true" lub "false", jest traktowany jak brak ustawienia, zgodnie z komentarzem w kodzie „Literal boolean only”), a furtka przestanie działać w chwili wdrożenia wycofania, ponieważ same ścieżki znikną. Ramka dotycząca zgodności w sekcji System pluginów przedstawia aktualny stan.4249

Co nowego w v0.21.2 (wydanie poprawkowe state.db)

Hermes Agent v0.21.2 (tag v2026.9.11, 11 września 2026) powstał przede wszystkim po to, aby naprawić to, co zepsuła wersja v0.21.0. W informacji o wydaniu ujęto to wprost: „W v0.21.0 wprowadzono gruntownie przebudowaną obsługę połączeń z magazynem sesji, co w niektórych instalacjach naraziło state.db na awarie: równolegli autorzy wzajemnie anulowali swoje blokady, sprawne bazy danych były zgłaszane jako uszkodzone, a pojedynczy wadliwy wiersz uniemożliwiał działanie sessions list. To wydanie eliminuje całą tę klasę problemów i zbiera wszystkie pozostałe zmiany, które trafiły do main w ciągu czterech dni od v0.21.1”. W przeciwieństwie do celowo zwięzłej informacji o v0.21.1 ta wersja opisuje własne najważniejsze zmiany; statystyki tego okresu obejmują „947 commitów bez merge’ów”, „1 869 zmienionych plików” i „312 scalonych PR-ów” od „140 współtwórców”, natomiast opracowanie pełnego przebiegu całej serii v0.21.x pozostawiono na wydanie v0.22.0.48

  • Kampania na rzecz niezawodności state.db: sześć PR-ów i 44 zamknięte zgłoszenia. Najpierw przedstawiono zalecenie dla administratorów, które warto zastosować: jeśli state.db uległ uszkodzeniu w wersji 0.21.0 lub 0.21.1, należy uruchomić hermes doctor — polecenie rozróżnia teraz uszkodzenia strukturalne od uszkodzeń indeksu wyszukiwania pełnotekstowego, zamiast określać wszystkie problemy jako „uszkodzenie zapisu FTS”, a gdy sama przebudowa nie wystarcza, wskazuje hermes sessions recover --inspect-only (działające offline, niedestrukcyjne i przypisane do profilu; raportuje możliwość odczytu tabel kanonicznych bez tworzenia wyjściowej bazy danych). Usunięcie przyczyn źródłowych wyeliminowało wszystkich równoległych autorów zapisujących do magazynu: gatewaye profili co 5 sekund zapisywały stan hostowanych pokojów w głównym state.db, lecz mechanizm koordynacji znajduje się teraz w osobnym pliku shared-state.db, dzięki czemu gatewaye profili nigdy nie otwierają głównego magazynu sesji z prawem zapisu; dashboard najpierw otwiera go tylko do odczytu; zabezpieczenie cyklu życia cron korzysta z rejestru śledzonych połączeń zamiast bezpośredniego open() na aktywnej bazie danych (co anulowało blokady POSIX gatewaya — klasyczny sposób na uszkodzenie SQLite); ponadto doctor --fix odmawia wykonania checkpointu, jeśli nie może potwierdzić jego bezpieczeństwa. Poza kwestią równoległego zapisu: uszkodzenie indeksu FTS ogranicza teraz możliwości wyszukiwania, a indeks jest później przebudowywany, zamiast powodować zamknięcie całej tury z błędem; pojedynczy uszkodzony wiersz nie uniemożliwia już działania sessions list, eksportu ani analiz (wadliwe wiersze są wyświetlane jako ? wraz z ostrzeżeniem wskazującym sesję); sesje nigdy nie łączą się z bazą danych innego profilu ani z niej nie odczytują; ponadto otwarcie tylko do odczytu nie zakłada już blokady zapisu, dlatego jednorazowe wywołanie hermes przy obciążonym gatewayu zamiast zawieszać się na 4–20 s i kończyć błędem, trwa teraz 0,01 s.48
  • Wzmocnienie izolacji wielu profili. Od wersji v0.19.0 w tym przewodniku przytaczane jest zapewnienie projektu, że routing profili gwarantuje każdemu profilowi „całkowicie odizolowaną konfigurację, skills, pamięć i sekrety”. W wersji v0.21.2 zapewnienie to miało luki, które zostały już usunięte: boty profili dodatkowych dziedziczyły listy dozwolonych elementów z profilu domyślnego, adaptery mogły wysyłać dane uwierzytelniające do hosta profilu domyślnego, serwery stdio MCP otrzymywały sekrety ze skarbca profilu domyślnego, dostarczanie przez MEDIA: mogło załączyć plik .env/auth.json/state.db innego profilu, callbacki webhooków i Feishu mogły odchodzić od profilu wybranego przez routing, a profile dodatkowe mogły pobierać token bearer Nous należący do profilu równorzędnego z pamięci podręcznej procesu (#107609-#107630). Jeśli w ramach jednego multipleksowanego gatewaya działa kilka profili, dopiero w tym wydaniu deklarowana izolacja rzeczywiście funkcjonuje.48
  • Skarbiec danych uwierzytelniających niewidocznych dla agenta. Agent może teraz logować się, płacić i wypełniać adresy w przeglądarce przy użyciu 1Password, Bitwarden lub lokalnego skarbca Hermes, nigdy nie uzyskując dostępu do sekretu, natomiast kody uwierzytelniania dwuskładnikowego pochodzą z zapisanego klucza aplikacji uwierzytelniającej (TOTP: ziarno zakodowane w base32 lub URI otpauth://totp; licznikowy HOTP jest odrzucany) albo użytkownik jest proszony o ich podanie w interfejsie. Każdy backend przekazuje agentowi dane w tej samej postaci — metadane logowania wraz z nieprzezroczystym uchwytem z przestrzenią nazw (vault_ lokalnie, op:, bw:), przy czym hasło jest pobierane dopiero podczas wypełniania; zewnętrzne menedżery pozostają zablokowane do czasu odblokowania ich na czas sesji, a hasło główne „nigdy nie jest argumentem narzędzia ani elementem argv i nigdy nie jest utrwalane”. Rozwiązanie rozwija mechanizm SecretSource z wersji v0.19.0, który usunął klucze API dostawców z pliku .env przechowującego je jawnym tekstem; skarbiec zapewnia teraz taką samą ochronę danych uwierzytelniających używanych przez agenta podczas przeglądania stron.48
  • Starannie dobrany katalog pluginów przypiętych do SHA. Polecenie hermes plugins browse wyświetla „wszystkie starannie dobrane pozycje katalogu pluginów”, hermes plugins search przeszukuje katalog, a hermes plugins install rozpoznaje nazwy katalogowe obok adresów URL Git i zapisów owner/repo. Całość uzupełnia hermes plugins pack z „deklaratywnymi zestawami pluginów, które można udostępniać”: pojedynczy plik hermes-pack.yaml przypina zestaw pluginów do konkretnych SHA commitów, pack install rozdziela operację na zwykłe instalacje przypiętych wersji, przy czym zgoda na uprawnienia pozostaje osobna dla każdego pluginu, pack export generuje zestaw dla bieżącej instalacji, a pack show umożliwia symulację bez wprowadzania zmian. Blok poleceń w sekcji System pluginów zawiera nowe podpolecenia.48
  • Bezpłatny plan Nous i pierwsze uruchomienie z przewodnikiem. Świeże instalacje od razu zapewniają bezpłatne wnioskowanie i konektory, a do zalogowania wystarcza jedno polecenie; /login działa bezpośrednio na czacie, a narzędzia konektorów (Gmail, Linear, Notion i pozostałe) można wyszukiwać za pomocą tool_search. Pierwsze uruchomienie aplikacji desktopowej z przewodnikiem jest kontrolowane przez HERMES_GUEST_ONBOARDING=1 i włącza je wyłącznie dosłowna wartość 1: test samej aplikacji desktopowej potwierdza, że wartości 'true', '0' oraz pusta pozostawiają tę funkcję wyłączoną, a decyzja podjęta podczas uruchamiania jest zapisywana w środowisku uruchomionego backendu, dzięki czemu odziedziczona wartość nie może się do niego przedostać. Więcej informacji znajduje się w sekcji Nous Tool Gateway.48
  • Koniec lawinowego uruchamiania backendów przez aplikację desktopową. Bot Mode uruchamiał wcześniej jeden backend na profil lub nawiązywał z nim połączenie zarówno przy starcie, jak i przy każdym odświeżeniu listy; samo najechanie kursorem na listę botów uruchamiało backend dla każdego wiersza, a przełączenie profilu mogło uruchomić drugi egzemplarz głównego backendu. Wszystkie te problemy naprawiono w tym wydaniu.48

Sposób aktualizacji pozostaje bez zmian: hermes update dla istniejącej instalacji albo instalator powłoki w przypadku nowej.48

Co nowego w v0.21.1 (zbiorcza poprawka)

Hermes Agent v0.21.1 (tag v2026.9.7 z 7 września 2026) jest celowo skromnym wydaniem: to „wydanie poprawkowe”, które „zbiera bieżący stan gałęzi main od v0.21.0 na potrzeby wdrożeń opartych na tagach i dalszych odbiorców”. W opisie podano statystyki z tego okresu — „5 139 commitów bez scaleń w 4 364 zmienionych plikach (+601 014 / -768 419)” oraz „632 scalone PR-y” — po czym właściwą historię odłożono na później: „Pełne, zredagowane informacje o wydaniu obejmujące ten okres zostaną opublikowane wraz z v0.22.0”. Jest to więc największy w historii projektu zakres zmian między kolejnymi tagami (żaden wcześniejszy zakres między sąsiednimi tagami nie przekracza 2 790 commitów bez scaleń z v2026.7.20..v2026.7.30), opublikowany z najkrótszym opisem wydania. Zanim w v0.22.0 powstanie zredagowany zapis, poniższych sześć obszarów — każdy zweryfikowany w kodzie źródłowym — pokazuje, co w tym tagu zmienia sposób pracy z Hermes.41

  • Baza kodu została podzielona, a termin zgodności pluginów upłynął 14 września. Przeprowadzony we wrześniu 2026 podział (PR #102117) rozbił duże moduły repozytorium na wyspecjalizowane pliki: nowy pakiet agent/ zawiera wewnętrzne elementy pętli konwersacji (214 modułów najwyższego poziomu oraz siedem podpakietów; prompt_builder.py znajduje się teraz w agent/prompt_builder.py, natomiast run_agent.py pozostaje siedzibą AIAgent), parsery podpoleceń CLI przeniesiono do pakietu hermes_cli/subcommands/ (61 modułów), statyczną listę CANONICAL_PROVIDERS przeniesiono z hermes_cli/models.py do hermes_cli/models_catalog_static.py (sama lista się nie zmieniła: nadal zawiera 39 statycznych pozycji i jest automatycznie rozszerzana na podstawie 39 dołączonych folderów pluginów dostawców), a delegate_task rozdzielono na około tuzin modułów tools/delegate_tool_*. Wewnętrzne ścieżki importu nie stanowią stabilnego API, dlatego nowy plik COMPAT_MANIFEST.md w katalogu głównym repozytorium ponownie eksportuje 1 148 „przeniesionych, ładowanych leniwie” nazw publicznych z ich dawnych ścieżek modułów. Przy rozwiązywaniu każdej z nich raz na nazwę i proces emitowane jest ostrzeżenie HermesPluginCompatWarning. Warstwa zgodności była tymczasowa, a jej wyłączenie nastąpiło zgodnie z harmonogramem 2026-09-14, sześć dni po utworzeniu tagu — nie poprzez wycofanie kodu, lecz za sprawą bramki daty obecnej już w wydanym kodzie. Od tego dnia plugin zewnętrzny, którego dotyczy problem, nie jest ładowany: baner CLI, hermes doctor i hermes update wyświetlają czerwony komunikat z nazwą wyłączonego pluginu, aplikacja komputerowa jednorazowo pokazuje okno modalne, a hermes plugins list podaje przyczynę. Jeśli używane są zewnętrzne pluginy, należy je sprawdzić: hermes plugins compat <path> wypisuje każde wystąpienie file:line wraz ze starą i nową ścieżką oraz kończy działanie z kodem 1, dopóki pozostają jakiekolwiek niezgodności (--json zapewnia wynik przetwarzalny maszynowo; uruchomienie bez argumentów skanuje cały zestaw zainstalowanych pluginów). Rozwiązaniem awaryjnym dla pluginu, którego autor nie zdążył wprowadzić zmian, jest plugins.allow_deprecated_imports: true w config.yaml — i nadal ono działa: zmiana faktycznie usuwająca stare ścieżki importu wciąż nie została scalona według stanu na 22 września (zweryfikowano do tagu v2026.9.21 oraz w gałęzi main), więc po zezwoleniu loaderowi na kontynuowanie stare ścieżki nadal są rozwiązywane. Szczegóły następstw opisano powyżej w sekcji Co nowego w v0.21.2, a sekcja System pluginów zawiera ramkę z aktualnym stanem.42
  • Konwersacje gateway nie są już rotowane przez zegary — w żadnych okolicznościach. Dokumentacja cyklu życia sesji określa teraz tę zasadę wprost: „Brak aktywności ani upływ czasu nigdy nie powodują rotacji konwersacji. /new i /reset tworzą jawną granicę; kompresja kontekstu nadal służy do zarządzania długimi historiami. Starsza konfiguracja czasomierzy jest ignorowana. Istniejący typ danych SessionResetPolicy to nieaktywne dane zgodności, a nie zasada wykonywana w czasie działania”. Granice są jawne i wyznaczane przez użytkownika; czasomierze resetowania sesji z czasów OpenClaw, przeniesione przez hermes claw migrate, są obecnie nieaktywnymi danymi. Zob. Gateway komunikacyjny.43
  • Autoryzacja MCP zyskuje przepływ z kodem urządzenia. Polecenie hermes mcp login <name> otrzymuje opcję --flow {browser,device}: browser oznacza dotychczasowy przepływ PKCE, device — logowanie kodem urządzenia zgodne z RFC 8628, przeznaczone dla maszyn, na których wywołanie zwrotne przeglądarki jest niepraktyczne, a flaga zastępuje ustawienie oauth.flow serwera. W tym okresie wzmocniono również pozostałą część mechanizmu uwierzytelniania MCP: własność profilu jest egzekwowana we wszystkich sesjach OAuth, nieprawidłowe pamięci podręczne metadanych OAuth są ignorowane zamiast blokować serwer, a aplikacja komputerowa przekazuje OAuth MCP przez lokalne wywołania zwrotne klienta. Powiązana zmiana: -t/--toolsets filtruje teraz również, które skonfigurowane serwery MCP są w ogóle uruchamiane, dzięki czemu jednorazowe wykonanie hermes -z -t <toolsets> pomija inicjalizowanie niewymaganych serwerów od zera. Blok poleceń w sekcji Integracja MCP zawiera teraz login i reauth [--all]; oba polecenia istniały już przed tym okresem, lecz wcześniej nie były tutaj udokumentowane.44
  • Delegowanie uczciwie przedstawia teraz pracę w tle. Sześć zmian zwiększających niezawodność delegate_task, wszystkie odczytane z kodu źródłowego narzędzia delegującego w tym tagu. (1) Domyślnie zadania wsadowe w tle zwracają JEDNO ukończenie; włączenie delegation.independent_completions dzieli wywołanie na jednostki ukończenia: zadania o tej samej wartości group są łączone i raportowane razem, natomiast każde niezgrupowane zadanie jest raportowane osobno po zakończeniu. To świadomy wybór — w kodzie źródłowym zauważono, że lawina ukończeń poszczególnych zadań „rozbijała pracę orkiestratorów, które nie były na nią przygotowane”. (2) Procesy działające w tle u agenta potomnego są kończone podczas jego zamykania, chyba że agent przekaże je agentowi nadrzędnemu za pomocą process_manage(action="handoff"); nieprzekazane pozostałości są wymieniane w wyniku jako orphaned_processes, a procesy potomne, które zakończyły się bez odczytania ich wyniku, pojawiają się jako unread_completions wraz z końcowym fragmentem danych wyjściowych. Jak stwierdzono w docstringu kodu źródłowego, założenie projektowe jest takie, że agent nadrzędny „musi otrzymać tę informację ze środowiska wykonawczego”, zamiast ufać deklaracji agenta potomnego, że „proces obserwujący działa”. (3) delegation.fallback_providers staje się rzeczywistym elementem konfiguracji: null powoduje odziedziczenie łańcucha agenta nadrzędnego przez agentów potomnych bez przypisania, [] wyłącza mechanizm awaryjny, a agent potomny przypisany do dostawcy, endpointu lub modelu nie otrzymuje żadnego mechanizmu awaryjnego, chyba że zostanie on określony w tym ustawieniu. (4) Łańcuch awaryjny agenta potomnego jest rozwiązywany za pomocą kanonicznego normalizatora, więc nieprawidłowe wpisy są odrzucane, zamiast uniemożliwiać uruchomienie. (5) Awaria w trakcie jednostki nie powoduje już utraty zakończonych agentów potomnych: każdy ukończony agent potomny w jednostce obejmującej wielu agentów jest trwale zapisywany w wierszu tej jednostki i trafia do odzyskanego wyniku jako rezultat częściowy. (6) Subagenci nigdy nie dziedziczą godzinnej warstwy pamięci podręcznej promptów: delegowany agent potomny jest przenoszony do warstwy 5-minutowej, ponieważ warstwa 1-godzinna jest wyceniona z myślą o osobie, która odchodzi od komputera, a nie o gwałtownej serii równoległych agentów potomnych.45
  • Dostawcy i modele. Do katalogów trafiają GPT-6 Astra i Astra Pro od OpenAI wraz z wariantami poziomów szybkości -fast/-flex („2-krotna cena, poziom priorytetowy” / „0,5-krotna cena, poziom elastyczny”) w katalogach Nous Portal i OpenRouter. Na trasie OAuth ChatGPT/Codex dostęp do Astra zależy od konta (model może być ogłaszany wyłącznie przez aktywne wykrywanie w zakresie konta) i zyskuje opcjonalny wariant -900k w selektorze, który zwiększa deklarowane okno z 272K do zweryfikowanych na żywo około 900K; sufiks nigdy nie jest przesyłany. Dołączają również: anthropic/claude-fable-5.1, google/gemini-3.7-flash i gemini-3.8-flash, qwen/qwen3.8-max-0902 i qwen3.8-flash, a także rodzina Muse Spark 1.3 firmy Meta (kontekst 1M, w tym warianty dla współtwórców) oraz plugin dostawcy generowania obrazów muse-image firmy Meta. Tavily pojawia się jako backend do wyszukiwania i wyodrębniania treści z internetu (TAVILY_API_KEY; po wybraniu Tavily przez hermes tools działa także bez klucza). Zarządzane środowisko wykonawcze llama.cpp czyni lokalne modele pełnoprawną ścieżką (oficjalne pliki binarne, jeden nadzorowany llama-server, konfiguracja jednym kliknięciem w aplikacji komputerowej), a dostawcy procesów zewnętrznych spoza repozytorium otrzymują własną gałąź rozwiązywania. Od strony operacyjnej zdalne katalogi selektora są teraz odświeżane co 20 minut (model_catalog.ttl_minutes, domyślnie 20; starszy klucz ttl_hours jest respektowany wyłącznie wtedy, gdy użytkownik jawnie ustawił jego wartość).46
  • Aplikacja komputerowa: adnotacje na stronie i kontrola nad sesją. Przeglądarka w aplikacji zyskuje tryb komentarzy: należy kliknąć Annotate, następnie kliknąć dowolny element aktywnej strony (lub przeciągnąć, aby zaznaczyć obszar) i wpisać notatkę; zapisane komentarze pozostają jako ponumerowane pinezki i nigdy samodzielnie nie wysyłają tury. Po zakończeniu opcja „Add N comments” przekazuje zestaw do edytora wraz z przyciętym zrzutem ekranu dla każdej pinezki, a każdy komentarz do elementu zawiera jego selektor CSS, znaczniki oraz style obliczone istotne dla układu, dzięki czemu agent odnajduje element w kodzie źródłowym, zamiast zgadywać na podstawie obrazu (hasła, ukryte wartości i atrybuty przypominające klucze są usuwane, zanim znaczniki opuszczą stronę). Większe zestawy są grupowane według obszaru strony, więc ponad dwadzieścia komentarzy zamienia się w kilka fragmentów pracy, które zazwyczaj dotyczą osobnych plików — dzięki temu można bezpiecznie rozdzielić je między równoległych pracowników. Towarzyszą temu: uporządkowane mechanizmy sterowania sesjami i ich automatyzacją, tworzenie sesji przez przeciągnięcie, widok importowania sesji z transkrypcji innych agentów programistycznych, display.resume_last_session (domyślnie true: zimny start ponownie otwiera ostatni czat lub stronę), wyświetlana przy pierwszym otwarciu prośba o zgodę na użycie browser.use_real_profile, gdy panel Browser zostaje otwarty z wyłączonym ustawieniem, wbudowany katalog opcjonalnych skills w Capabilities -> Skills z instalacją jednym kliknięciem oraz nowy rosyjski język interfejsu aplikacji komputerowej (17 katalogów ustawień regionalnych CLI pozostaje bez zmian).47

Sposób aktualizacji pozostaje bez zmian: hermes update w istniejącej instalacji lub instalator powłoki w przypadku nowej. Zredagowany opis tego okresu pojawi się w v0.22.0; powyższe obszary przedstawiają zmiany wprowadzone w tym tagu.41

Co nowego w wersji 0.21.0 (wydanie Pantheon)

Hermes Agent v0.21.0 (tag v2026.8.31, 31 sierpnia 2026) jest obecnym wydaniem funkcjonalnym i stanowi uporządkowane zestawienie, do którego odwoływała się cała seria zbiorczych aktualizacji v0.20.x: „To wydanie obejmuje wszystkie poprawki infrastruktury oznaczone tagami v0.20.1–v0.20.6 — okresy te zostały tutaj w pełni udokumentowane”. Narracja jest kontynuacją wydania Herald: „Wersja v0.20.0 uczyniła Hermesa heroldem — przemawiał i przekazywał wieści innym agentom. W wersji v0.21.0 bogowie zbierają się razem”. Statystyki w oryginalnym brzmieniu: „Od wersji v0.20.0: ~5 800 commitów · ~2 475 scalonych PR-ów · ~5 680 zmienionych plików · ~869 000 dodań · ~135 000 usunięć · ~2 100 zamkniętych zgłoszeń · ponad 760 współtwórców”.35

Wydanie uporządkowano według obszarów funkcjonalnych; tak samo zorganizowano niniejsze podsumowanie. Jeśli dana funkcja zmienia istniejącą sekcję tego przewodnika, odsyłacz znajduje się bezpośrednio w tekście.

  • Bot Mode: agenci tworzą wbudowaną społeczność. Bot Mode, wcześniej dostępny jako dołączona wtyczka hermes-bots z okresu v0.20.3, staje się domyślnie włączoną częścią aplikacji desktopowej. Każdy profile agenta otrzymuje nazwę, deterministyczny awatar twarzy z opcjami losowania i blokowania oraz miejsce we wspólnym wykazie; można tworzyć czaty grupowe w stylu Discorda, w których wiele botów i użytkownik rozmawiają w jednym pokoju, oznaczać dowolnego bota za pomocą @ w polu tworzenia wiadomości, a także nadawać pokojom nazwy i obrazy. Katalog funkcji obejmuje karty wiadomości między agentami ze wskazaniem nadawcy, powiadomienia o dostarczeniu po stronie nadawcy, mechanizm paint-first hydration zapewniający natychmiastowe wybudzanie, panel Routines oraz przebudowę opartą na systemie projektowym aplikacji. Jak ujęto to w samym wydaniu: „Wcześniej »multi-agent« oznaczało techniczne zaplecze; teraz wygląda jak aplikacja do czatowania pełna współpracowników”.35
  • hermes peer: bezpośrednie wiadomości między botami należącymi do użytkownika. Każdy agent Hermes może wysłać wiadomość do dowolnego innego agenta za pomocą jego uchwytu — między profilami i gateway — z poziomu CLI lub bezpośrednio z rozmowy. Można poprosić bota badawczego o przekazanie ustaleń botowi programistycznemu, a następnie odczytać odpowiedź w bieżącym miejscu. „Odpowiedzi trafiają do kanonicznego Bot Chat każdego agenta, dlatego rozmowy między agentami są trwałe i możliwe do przejrzenia, zamiast znikać po wysłaniu”. Polecenie hermes peer (dodawanie, wyświetlanie i usuwanie peerów oraz dm) znajduje się w tabeli poleceń najwyższego poziomu.35
  • Zadania cron, które pamiętają. Zaplanowane zadania przestają mieć pamięć złotej rybki: agenci cron wczytują i aktualizują trwałą pamięć tak samo jak pozostali agenci, continuity=true przekazuje wynik każdego uruchomienia do następnego, dzięki czemu monitor może pomijać informacje, które już zgłosił, a każde zadanie otrzymuje trwały notatnik roboczy. Zadania działające w trybie monitorowania całkowicie pomijają LLM, gdy nic się nie zmieniło, poziom intensywności rozumowania można ustalić osobno dla każdego zadania, a wynik cron może trafić do kanonicznego Bot Chat bota, który rzeczywiście na niego odpowie. Sekcja Zaplanowane zadania (Cron) opisuje teraz mechanikę tagu dla każdej z tych funkcji.3537
  • Orkiestracja subagentów na żywo. delegate_task zyskuje działania sterujące: wyświetlanie działających agentów podrzędnych, korygowanie kierunku pracy jednego z nich w trakcie wykonywania zadania oraz wcześniejsze zatrzymywanie z zachowaniem częściowego wyniku. Wyniki agentów podrzędnych można weryfikować względem schematu JSON, rezultaty pokazują koszt poszczególnych delegacji, a wartości domyślne zwiększono do 250 iteracji na subagenta i 10 równocześnie działających agentów podrzędnych — są to ujednolicone limity, które w wersji v0.19.0 zastąpiły max_async_children.3538
  • Centrum sterowania MCP. Serwery MCP i katalog połączono na jednej stronie aplikacji desktopowej. Dodano import „wklej czegokolwiek” metodą przeciągania, działające w tle kontrole kondycji, które przypominają o ponownym uwierzytelnieniu, zanim wywołanie narzędzia zakończy się niepowodzeniem, nakładkę kosztów i wykorzystania całej floty (szacunkowa liczba tokenów schematu oraz wykorzystanie każdego serwera z ostatnich 30 dni), a także deep linki hermes://, które instalują serwer MCP po wyraźnym potwierdzeniu. Zobacz Integracja z MCP.35
  • Fala nowych możliwości CLI. Skrót Ctrl+P otwiera paletę poleceń z wyszukiwaniem przybliżonym, dostępną również jako /palette; selektor /model filtruje wyniki podczas pisania; /status pokazuje tryb rozumowania, oczekujące zatwierdzenia i wykorzystanie kontekstu; natomiast pasek stanu może na żywo wyświetlać odsetek trafień w pamięci podręcznej, opóźnienie i liczbę tokenów na sekundę, z możliwością osobnego przełączania każdego pola. Dodano także globalne zatrzymanie awaryjne, przypinanie i odpinanie sesji, zmieniające się teksty zastępcze w polu tworzenia wiadomości oraz terminalowe zwierzaki. Uwaga dotycząca nazewnictwa: w opisie wydania narzędzie do próbnego sprawdzania zatwierdzeń figuruje jako hermes approval-check; w oznaczonej tagiem wersji funkcja ta jest dostępna jako hermes approvals test — podpolecenie approval-check nie istnieje.3540
  • Agent steruje przeglądarką aplikacji desktopowej. Przeglądarka w aplikacji przestaje być oknem, na które agent może jedynie patrzeć: Hermes bezpośrednio po niej nawiguje, klika i odczytuje jej zawartość, a strony można otwierać w przeglądarce systemowej wraz z pełnymi menu kontekstowymi odnośników.35
  • Sześciu nowych dostawców i fala zmian w katalogu modeli. Meta Model API (Muse Spark), CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router i Actual Computer. Trzech z nich (Meta AI, CommandCode i Actual Computer) dodano we wcześniejszych okresach zbiorczych aktualizacji i uwzględniono już w macierzy dostawców; obecnie macierz obejmuje również Tencent TokenPlan, Nebius Token Factory i Ramp Router, a także nowy pakiet Alibaba Token Plan opisany w dokumentacji. Do katalogów trafiają GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, bezpłatny MiniMax M3, Nemotron 3.5 Lightning oraz Muse Spark 1.2. Towarzyszą temu 2 zmiany strukturalne: model_overrides w pliku config.yaml pozwala zmienić okno kontekstowe lub ceny dowolnego modelu bez czekania na kolejne wydanie, a dostawcy mogą być teraz dystrybuowani jako pakiety instalowane przez pip i wykrywane za pomocą punktów wejścia. Ujednolicony rejestr zabezpieczeń wyboru ostrzega również we wszystkich selektorach, gdy model trenuje na danych użytkownika.3536
  • Kompleksowe wzmocnienie zabezpieczeń. Zapisy do chronionych plików z instrukcjami agenta (AGENTS.md, skills i magazynów pamięci) zawsze wymagają teraz zatwierdzenia, dzięki czemu agent poddany atakowi prompt injection nie może po cichu przepisać własnych stałych instrukcji. Szeroko zakrojony mechanizm redagowania danych zamyka luki umożliwiające wyciek sekretów przez błędy terminala, odczyty plików .env, checkpointy i logi ACP; system zatwierdzeń rozpoznaje destrukcyjne polecenia systemu Windows; przyznane uprawnienia macOS pozostają ważne po aktualizacjach dzięki stabilnej tożsamości podpisu TCC (hermes desktop --setup-tcc-identity); a wpis Blender MCP w katalogu oraz powiązany skill usunięto po naruszeniu bezpieczeństwa projektu źródłowego. Szczegóły dla oznaczonej tagiem wersji znajdują się w sekcji Wzmocnienie zabezpieczeń.3539
  • Dojrzewanie gateway. Slack otrzymuje natywne karty na żywo — rzeczywiście strumieniowane odpowiedzi oraz opcjonalne karty planów i zadań — a także wyłączanie podglądów odnośników w wiadomościach wychodzących. Telegram zyskuje selektor wbudowany, dzięki któremu każde polecenie i każdy skill można wyszukać za pomocą @botname, z pominięciem limitu menu poleceń Telegrama. Mechanizm przekazywania dojrzewa dzięki natywnej inicjalizacji wtyczek, operacjom na kartach na żywo ze strumieniowaniem wersji roboczych, segmentacji zakresu sesji i przywróconej transkrypcji STT notatek głosowych. Gniazdo sterujące gateway umożliwia klientom zarządzającym flotą wysyłanie zapytań do gateway, a mechanizmom aktualizacji — jego łagodne wstrzymanie zamiast wymuszonego zamykania całego drzewa procesów. Mechanizm turn-reaper zapisuje stosy zablokowanych workerów po uruchomieniu watchdog.35
  • Fala nowych skills. Osiem odzyskanych skills zwiększających produktywność (document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar), klienty API utworzone na podstawie HAR („raz obserwować witrynę, a następnie bezpośrednio wywoływać jej ukryty API bez przeglądarki”), publish-site, session-librarian, blocked-page-recovery, merge-reconciler, plan-interrogation oraz doradczy linter SKILL.md uruchamiany podczas tworzenia.35

Wycofane w tym okresie (nie wchodzą w skład wydania): tryb Model Council (/council) i context engine DCP zostały dodane, a następnie wycofane; serwer gateway działający wyłącznie przez WS (#94245) scalono, po czym wycofano (#96118), dlatego FastAPI nadal pozostaje częścią ścieżki uruchamiania aplikacji desktopowej — dostarczono jednak powtórne odtwarzanie zdarzeń ze znacznikami sekwencji (#94219) oraz bezstratne ponowne łączenie aplikacji desktopowej przez WebSocket. Electron przywrócono do wersji 40.10.2. Jeśli materiały społecznościowe dotyczące okresów v0.20.x wspominały o którejkolwiek z tych funkcji, nie ma jej w tym wydaniu.35

Sposób aktualizacji pozostaje bez zmian: hermes update w przypadku istniejącej instalacji albo instalator powłoki w przypadku nowej. Podsekcja zbiorczych aktualizacji znajdująca się poniżej opisu wydania Herald nadal zawiera zestawienie funkcji dodanych w poszczególnych okresach oznaczonych tagami.35

Co nowego w v0.20.0 (wydanie Herald)

Hermes Agent v0.20.0 (tag v2026.8.3 z 3 sierpnia 2026) był wydaniem funkcjonalnym poprzedzającym v0.21.0, które scaliło wszystkie dotychczasowe zmiany; v0.20.1 (13 sierpnia) i v0.20.2 (16 sierpnia) to bazujące na nim wydania stabilizacyjne, natomiast v0.20.3 (tag v2026.8.16.2, opublikowany 17 sierpnia), v0.20.4 (tag v2026.8.18 z 18 sierpnia), v0.20.5 (tag v2026.8.19, opublikowany 21 sierpnia) oraz v0.20.6 (tag v2026.8.27 z 27 sierpnia) kontynuują serię wydań zbiorczych, wprowadzając także własne funkcje — szczegóły znajdują się w podsekcji poniżej. Okres od v0.19.0 obejmuje około 3 650 commitów, 1 400 scalonych PR-ów oraz 1 200 zamkniętych zgłoszeń przy udziale ponad 650 współtwórców.55

Trzy zmiany unieważniają zalecenia podane we wcześniejszych wersjach tego przewodnika. Należy zapoznać się z nimi w pierwszej kolejności:

  • Wymagany jest teraz Node 26. Instalator przypina NODE_VERSION="26" i odrzuca starsze środowiska wykonawcze z komunikatem „Node.js … jest zbyt stary (Hermes wymaga Node >=26)”. Instalatory oraz polecenia heal i upgrade egzekwują ten wymóg. Warto zauważyć, że strona instalacyjna w dokumentacji nadal podaje Node v22 — skrypt instalacyjny i informacje o wydaniu są nowszymi, autorytatywnymi źródłami.55
  • pip i Homebrew zostały wycofane, a nie jedynie oznaczone jako przestarzałe. Dosłownie: „kanały brew oraz pakietów pip/PyPI zostały wycofane (obsługiwane kanały to instalator powłoki / Docker / Nix)”. Instalacje wykonane przez pip lub brew nie otrzymują już nowych wydań.55
  • Domyślny limit iteracji wywoływania narzędzi zwiększono z 90 do 500. Długie autonomiczne przebiegi nie napotykają już sztucznej bariery, a wszystkie poniższe progi presji budżetu są obliczane względem nowego limitu. Domyślny limit read_file wynosi teraz również 2 000 wierszy zamiast 500.55

Pozostałe elementy wydania:

  • Konwersacyjna obsługa głosu. Strumieniowe TTS z możliwością przerwania wypowiedzi oraz lokalnie rozpoznawanymi słowami wybudzającymi.55
  • A2A v1.0. Plugin protokołu komunikacji między agentami, realizujący długo oczekiwane zgłoszenie nr 514.55
  • Podpisane wychodzące webhooki. hermes webhook obsługiwało wcześniej wyłącznie ruch przychodzący; v0.20.0 dodaje wychodzące webhooki cyklu życia podpisywane za pomocą HMAC dla zdarzeń sesji, tur i narzędzi.55
  • Cytowania oparte na źródłach. Nowy skill z trybem weryfikacji faktów.55
  • Fala usprawnień CLI dla zaawansowanych użytkowników. !command natychmiast wykonuje polecenie powłoki bez zużywania tury modelu; /init skanuje projekt i zapisuje lub aktualizuje plik AGENTS.md; /diff wyświetla z dowolnego interfejsu zmiany przygotowane do commitu, wszystkie zmiany lub zmiany w sesji; /context pokazuje, co zajmuje okno kontekstu; /focus udostępnia widok ze zredukowaną ilością danych wyjściowych i możliwością przywracania ukrytych wierszy; Ctrl+S odkłada częściowo napisany prompt. hermes import-agent przenosi konfigurację Claude Code lub Codex CLI za pomocą jednego polecenia.55
  • Rozszerzenia interfejsu obsługi sekretów. Źródło sekretów korzystające z pomocniczego polecenia, które współpracuje z każdym sejfem, obracanie tokenów jednym poleceniem z praktycznymi komunikatami o błędach podczas uruchamiania, opcjonalna szyfrowana awaryjna pamięć podręczna dla Bitwarden, klucze wstrzykiwane z sejfu i ograniczone do katalogu domowego danego profile oraz zgodność SecretRef ${env:VAR} między config.yaml a konfiguracją MCP. Opisany poniżej model uwierzytelniania oparty na trzech ścieżkach pozostaje bez zmian.55
  • Szybszy ciepły start. Czas zimnego startu hermes -w skrócono z około 14 s do 1,8 s.55
  • Aplikacja desktopowa stała się platformą. Artifacts z wersjonowanymi kartami i podglądem na żywo działającym w piaskownicy, Plugin SDK z Kanban jako pierwszym pluginem desktopowym, globalny skrót klawiszowy do szybkiego wprowadzania danych, wiele okien GUI, tryb zdalnego backendu SSH oraz natywne logowanie zgodne z RFC 8252.55

Wydania zbiorcze v0.20.3, v0.20.4, v0.20.5 i v0.20.6 (17–27 sierpnia)

Po v0.20.0 projekt rozwijał się w rytmie często publikowanych, otagowanych wydań zbiorczych, które wprowadzały więcej niż tylko poprawki stabilizacyjne. We wszystkich czterech przypadkach opracowane informacje odłożono w ten sam sposób — każde wydanie zapowiadało, że „pełne, opracowane informacje o wydaniach z tego okresu zostaną opublikowane wraz z v0.21.0” — a v0.21.0 już je dostarczyło: sekcja Co nowego w v0.21.0 powyżej stanowi opracowany zapis całego tego okresu (wydanie potwierdza, że okresy te „zostały tutaj w pełni udokumentowane”). Poniższe bloki pozostają ówczesnym zapisem poszczególnych tagów — wskazują, które zmiany trafiły do każdego z nich, podczas gdy opracowane informacje przedstawiają je łącznie.54233035

v0.20.3 (około 250 commitów i 125 PR-ów od v0.20.2):

  • Migracja SDK do MCP 2.x z obsługą bezstanowego protokołu z 2026-07-28. Hermes przechodzi na bieżącą generację SDK dla MCP i obsługuje bezstanową wersję protokołu.54
  • Bot Mode jest dostarczany jako dołączony plugin (hermes-bots) zawierający podstawowy protokół współpracy zespołowej.54
  • Plugin dostawcy CommandCode dołącza do katalogu dostawców.54
  • Kontrakty środowiska wykonawczego Cua Driver 0.20 do obsługi komputera oraz wzmocniona kontrola własności środowiska wykonawczego procesu podrzędnego Python (izolacja PYTHONHOME/PYTHONPATH).54
  • Niezawodność: samonaprawianie harmonogramu cron (odzyskiwanie po EMFILE, uzgadnianie nieaktualnych roszczeń i ponowne uzbrajanie zablokowanych zadań), poprawki zapobiegające utracie danych podczas przekazywania sesji, samonaprawianie połączenia aplikacji desktopowej ze zdalnym gateway oraz fala portów z ekosystemu (skanowanie bezpieczeństwa przy instalacji pluginów, /worktree, zachowywanie ręcznych zmian przez /rollback, odczyt plików UTF-16).54

v0.20.4 (około 146 commitów i 74 PR-y od v0.20.3):

  • Szklana powierzchnia aplikacji desktopowej: matowe szkło i efekty przezroczystości wraz z selektorem oszronienia oraz wstępnym wyborem dla macOS.54
  • Pasek boczny z kartami SESSIONS|BOTS, umożliwiający ukrywanie i odkrywanie poszczególnych botów, a także poprawki czatów grupowych w Bot Mode (długotrwałe tury członków, renderowanie Markdown i routing między komputerami).54
  • Doradcze skanowanie NVIDIA SkillEvaluator Tier 1 podczas instalowania skill — podczas instalacji skill przeprowadzane są kontrole licencji i bezpieczeństwa.54
  • Wzmocnienie wysyłania multimediów przez cron (konfigurowalny limit czasu, załączniki w uruchomieniach ręcznych, ujawnianie pominiętych wywołań), poprawki SessionDB dotyczące wątku pętli zdarzeń i konfliktów dostępu, rzetelne informowanie przez hermes update o zaparkowanych gałęziach oraz natywne powiadomienia systemowe Kanban.54

v0.20.5 (około 746 commitów i 323 PR-y od v0.20.4):

  • Warstwa internetowa bez kluczy: wyszukiwanie w internecie działa w nowych instalacjach bez kluczy API — wykorzystuje bezpłatną rotację między 5 dostawcami z przełączaniem awaryjnym w pierścieniu.23
  • Fala usprawnień CLI: selektor /model z wyszukiwaniem przybliżonym, paleta poleceń Ctrl+P oraz bogatszy widok /status.23
  • Bot Mode dojrzewa: wątki w pokojach grupowych, zwijane podsumowania rozmów, awatary z twarzami w stylu blob oraz załączniki PDF i plikowe obsługujące przeciąganie i upuszczanie.23
  • Narzędzia do zarządzania flotą i worktree: potwierdzenia hermes update, hermes update --plan (informacje o wydaniu określają to jako „weryfikację --plan floty”; flaga należy do hermes update, a nie do polecenia fleet, i zgodnie z pomocą parsera „wyświetli plan aktualizacji i zakończy działanie bez wprowadzania zmian”) oraz hermes worktree list/prune.2327
  • Zadania cron otrzymują trwałą pamięć oraz indywidualny poziom intensywności rozumowania, a także mechanizmy dyscypliny wykonania i zabezpieczenia przed zatrzymaniem środowiska wykonawczego opracowane na podstawie wyników ewaluacji Composio, doprecyzowywanie za pomocą wielu pytań, niewymagającego opencode dostawcę bez uwierzytelniania oraz usprawnienia wydajności aplikacji desktopowej (hydratacja Bot Mode z priorytetem dla pierwszego renderowania, React Compiler w obu mechanizmach renderujących).23

v0.20.6 (tag v2026.8.27 z 27 sierpnia — około 1 313 commitów i 525 PR-ów od v0.20.5):

Wydanie określa się wprost jako „wydanie poprawkowe. Ten tag zbiera około 525 PR-ów scalonych od v0.20.5 w stabilne, otagowane wydanie dla dalszych użytkowników”, a jego opis podaje, że okres ten obejmuje około 1 313 commitów w mniej więcej 1 557 plikach (+177 113 / −21 682) — około 525 scalonych PR-ów.30 Najważniejsze elementy tego opisu:

  • Przeglądanie z użyciem rzeczywistego profile za zgodą użytkownika — lokalna przeglądarka może korzystać z domyślnego profile Chromium, a w systemie Windows dostępny jest proces zamykania wymagający zatwierdzenia.30
  • Przeglądarka w aplikacji desktopowej otrzymuje własne okno systemowe, a ponadto zarządzany mechanizm zdalnych aktualizacji SSH i panel profile floty.30
  • Rozszerzenie katalogu zdalnych MCP: ponad 50 aktywnych, zweryfikowanych serwerów hostowanych przez dostawców, w tym Cloudflare, Grafana Cloud, Better Stack i Railway.30
  • Opcjonalne szyfrowanie przechowywanych sekretów za pomocą systemowego pęku kluczy — koniec z monitami macOS Keychain przy każdym uruchomieniu.30
  • Nowe modele w selektorach: GLM-5.3-Flash, bezpłatny MiniMax M3 oraz wideo MiniMax H3 Max.30
  • Buforowanie wyników web_search/web_extract z TTL oraz wielozapytaniowe tool_search z redukcją wyrazów do rdzenia.30
  • Kompresja lean-tail jest teraz domyślna — sekcja Kompresja kontekstu poniżej opisuje konfigurację obowiązującą w chwili utworzenia tagu.3031
  • Backendy terminala stały się wymienne — patrz Backendy terminala.3032
  • Rzetelność aktualizatora i zarządzania flotą: aktualizatory wstrzymują gateway przez gniazdo sterujące zamiast wymuszać zakończenie całego drzewa procesów, a instalacje zarządzane za pomocą obrazów lub pakietów odrzucają niebezpieczne aktualizacje w miejscu.30
  • Trwałe potwierdzenia incydentów cron z czytelniejszymi błędami niezgodności wersji kodu, kontrola rozwijania podglądu linków w Slack oraz współdzielone tożsamości kontenerów Docker.30

Sposób aktualizacji pozostaje bez zmian: hermes update w istniejącej instalacji albo instalator powłoki w przypadku nowej.542330

Co nowego w v0.19.0 (wydanie Quicksilver)

Nazwa Hermes Agent v0.19.0 (tag v2026.7.20, 20 lipca 2026) nawiązuje do szybkości samego boga posłańców: podstawą tego wydania jest błyskawiczna responsywność, a czas do pojawienia się pierwszego tokenu w pierwszej turze skrócono o około 80% na każdej platformie. Uzupełniają ją rozliczenia w terminalu, menedżery haseł jako źródła sekretów, domyślnie inteligentne zatwierdzanie, obserwowalne subagenty i odporne na awarie dostarczanie odpowiedzi. Okres od wydania v0.18.0 był najbardziej intensywny w historii projektu: około 2 245 commitów, około 1 065 scalonych PR-ów, około 3 300 zamkniętych zgłoszeń i ponad 450 współtwórców ze społeczności.56

  • Pierwszy token wszędzie około 80% szybciej. Czas od wysłania pierwszego żądania po uruchomieniu do jego przekazania spadł z około 4,3 s do około 0,9 s zarówno w CLI, gateway, TUI, aplikacji komputerowej, jak i cron — wykrywanie możliwości Discorda usunięto ze ścieżki krytycznej, test Ollama jest pomijany w przypadku znanych dostawców innych niż Ollama, a operacje blokujące usunięto z inicjalizacji agenta. Zoptymalizowano również odczuwalne opóźnienie: modele rozumujące domyślnie przesyłają teraz swój tok rozumowania na żywo (display.show_reasoning jest WŁĄCZONE), a pole odpowiedzi jest odświeżane po każdym tokenie, a nie po każdym wierszu.56
  • Fala usprawnień renderowania w aplikacji komputerowej i TUI. Aplikacja komputerowa przeszła optymalizację szybkości obejmującą około 20 PR-ów: 14-krotnie zmniejszono zużycie CPU przez moduł dzielący strumieniowany Markdown dzięki przyrostowej analizie bloków, zwirtualizowano różnice w panelu przeglądu, przyspieszono przełączanie sesji przy obszernych transkrypcjach oraz wyeliminowano ponowne renderowanie paska bocznego i wierszy narzędzi po każdym tokenie. TUI renderuje teraz strumieniowany Markdown przyrostowo, blok po bloku.56
  • Instalacje przez pip i Homebrew są przestarzałe. Obie metody oznaczono jako „nieobsługiwane starsze sposoby instalacji” i zaplanowano ich usunięcie. Do usunięcia doszło już w v0.20.0 — kanały brew oraz pip/PyPI z pakietami wheel zostały wycofane, a obsługiwanymi kanałami pozostały instalator powłoki, Docker i Nix.5655
  • Sekrety mogą pochodzić z menedżera haseł. Nowy, rozszerzalny interfejs SecretSource pobiera sekrety z Bitwarden i 1Password (odwołania op://) podczas wczytywania, umożliwiając jednoczesne korzystanie z wielu sejfów, deterministyczne ustalanie pierwszeństwa, ostrzeżenia o konfliktach i śledzenie pochodzenia każdej zmiennej — klucze API nie muszą już znajdować się w jawnym pliku .env. Obsługę kolejnych dostawców sejfów można dodawać w formie wtyczek.56
  • Inteligentne zatwierdzanie jest teraz domyślne. Gdy Hermes chce uruchomić oznaczone polecenie, niezależny recenzent LLM ocenia je, zamiast za każdym razem prosić o zgodę — każda decyzja dotyczy wyłącznie tego konkretnego polecenia. Zdefiniowane przez użytkownika reguły odmowy blokują pasujące polecenia nawet w trybie YOLO, /deny <reason> przekazuje powód odmowy, aby agent mógł skorygować działanie, a akcja zatwierdzania pre_tool_call wtyczki (ponownie wprowadzona wraz z kluczami reguł) przekazuje wywołanie narzędzia do akceptacji przez człowieka.56
  • Rozliczenia w terminalu: /subscription i /topup. Plan Nous Portal można obsługiwać bez opuszczania terminala — sprawdzać plan i pozostały limit, dokładnie podejrzeć koszt przejścia na wyższy plan lub termin wejścia w życie przejścia na niższy, a następnie zastosować zmianę z możliwością jej cofnięcia. Aplikacja komputerowa otrzymała odpowiadającą temu kartę ustawień rozliczeń.56
  • Można obserwować pracę subagentów, a ukończona odpowiedź nigdy nie przepadnie. Wywołania delegate_task zwracają pliki transkrypcji na żywo, które można śledzić poleceniem tail -f natychmiast po uruchomieniu subagentów — każde wywołanie narzędzia, wynik i strumieniowana odpowiedź trafiają do osobnego, czytelnego dla człowieka dziennika każdego procesu potomnego. Informacje o zakończeniu delegowanych zadań działających w tle pozostają trwałe po ponownym uruchomieniu, a końcowe odpowiedzi gateway są zapisywane w rejestrze zobowiązań dostarczenia w state.db i dostarczane ponownie przy następnym uruchomieniu, jeśli gateway przestanie działać w trakcie wysyłania. Opcja konfiguracji max_async_children jest przestarzała — zastąpiły ją ujednolicone limity współbieżności delegowania.56
  • Jeden gateway, wiele profili. Pojedynczy multipleksowany gateway korzystający z jednego tokenu bota może kierować określone gildie, kanały lub wątki do różnych profili — każdy z całkowicie odizolowaną konfiguracją, skills, pamięcią i sekretami — z możliwością nadpisania przez GATEWAY_MULTIPLEX_PROFILES. Indeks routingu przeniesiono do state.db; sessions.json jest teraz opcjonalną starszą kopią lustrzaną.56
  • Fala nowych dostawców i modeli. Fireworks AI otrzymał pełnoprawną obsługę (szacowanie kosztów i 2. miejsce na liście wyboru dostawcy), podobnie jak DeepInfra i Upstage Solar. W katalogach pojawiły się GPT-5.6 (Sol/Terra/Luna + Pro, z pełną integracją), grok-4.5 (GA), kimi-k3 (wycofano kimi-k2.x) oraz w pełni zintegrowany Claude Sonnet 5. Flaga enabled: false ustawiana osobno dla każdego dostawcy oraz konfiguracja excluded_providers usuwają nieużywanych dostawców z list wyboru /model i mechanizmu rozpoznawania.56
  • Poziom intensywności rozumowania staje się regulowany. Na wszystkich powierzchniach wprowadzono nowe poziomy intensywności max i ultra, wraz z nadpisaniami dla poszczególnych modeli w konfiguracji, osobnym poziomem dla każdego miejsca w ustawieniach MoA (doradcy analizują dogłębnie, syntezator pozostaje szybki), poziomem dla każdego zadania modeli pomocniczych oraz obowiązującym w ramach sesji poleceniem /reasoning w CLI.56
  • Zakres funkcji CLI i MCP. hermes sessions export eksportuje dane w formatach Markdown, Quarto, HTML, samych promptów i śladów Hugging Face, z opcjonalnym oczyszczaniem przez --redact; /model --once pozwala jednorazowo zmienić model na jedną turę; wywołania slash-skills można łączyć (/skill-a /skill-b do XYZ); --safe-mode ułatwia rozwiązywanie problemów; hermes config get/unset uzupełniają funkcje zarządzania konfiguracją; hermes serve staje się prawdziwym backendem bez interfejsu; a narzędzia MCP przyjmują konwencję nazewnictwa mcp__server__tool.56

Przy aktualizacji z wersji v0.18.x należy przede wszystkim zwrócić uwagę na 2 zmiany: instalacja przez pip lub Homebrew jest teraz oznaczana ostrzeżeniem jako nieobsługiwany starszy sposób instalacji (należy przejść na instalator uruchamiany jednym poleceniem), a max_async_children jest przestarzałe na rzecz ujednoliconych limitów współbieżności delegowania. Wszystkie pozostałe zmiany mają charakter rozszerzający — najważniejszymi powodami aktualizacji są skrócenie opóźnienia pierwszej tury o około 80%, inteligentne zatwierdzanie oraz rejestr dostarczania, dzięki któremu ukończone odpowiedzi są odporne na awarie.


Co nowego w v0.18.0 (wydanie Judgment)

Nazwa Hermes Agent v0.18.0 (tag v2026.7.1, 1 lipca 2026) nawiązuje do osądu: agent weryfikuje własną pracę, zamiast jedynie deklarować sukces, a przebieg zespołowego rozumowania można rzeczywiście prześledzić. Wydanie zamyka również wszystkie zaległości P0/P1 — w ciągu 12 dni rozwiązano około 692 spraw o najwyższym priorytecie.22

  • Mixture-of-Agents jako pełnoprawny model. MoA można teraz wybierać jak każdy inny model we wszystkich interfejsach, a zespołowe rozumowanie jest widoczne: pełna odpowiedź każdego modelu referencyjnego jest wyświetlana w osobnym, opisanym bloku z transmisją odpowiedzi na żywo — można obserwować tok rozumowania zespołu, zamiast otrzymywać nieprzejrzystą, scaloną odpowiedź.22
  • Kontrakty ukończenia dla /goal. Przed zgłoszeniem ukończenia celu agent weryfikuje własną pracę, uruchamiając mechanizmy kontrolne projektu, zamiast jedynie deklarować sukces — stosuje więc osąd również wobec siebie.22
  • /learn — przekształcanie dowolnego opisu w skill. Proces można zamienić w skill wielokrotnego użytku, po prostu go opisując; wygenerowane skills automatycznie zachowują zgodność z konwencjami CONTRIBUTING.md danego repozytorium.22
  • Oś czasu /journey. Wizualna historia zmian pamięci i skills w czasie, z możliwością edycji, a także graf pamięci w aplikacji komputerowej.22
  • Równoległe uruchamianie subagentów w tle. Można delegować wiele zadań wykonywanych współbieżnie bez blokowania rozmowy — pojedynczy subagent działający w tle z wersji v0.17.0 rozrósł się do całej floty.22
  • Projekty w aplikacji komputerowej. Pełnoprawne projekty programistyczne z modelem organizacji opartym na projekcie, repozytorium i lane.22
  • Gateway skalowany do zera. Gateways mogą przechodzić w stan uśpienia w okresach bezczynności i koordynować wygaszanie w celu zapewnienia płynnych wdrożeń — ma to znaczenie dla wszystkich osób korzystających z Hermes jako stale działającej usługi.22
  • Obsługa Google Vertex AI. Dostęp do Gemini za pośrednictwem kont usług GCP z automatycznym odświeżaniem tokenu OAuth2 dołącza do katalogu dostawców.22
  • Polecenie edytora /prompt. Otwiera $EDITOR, umożliwiając wygodne tworzenie wielowierszowych promptów zamiast zmagania się z pojedynczym wierszem wprowadzania.22

Przy aktualizacji z wersji v0.17.x żadna z tych zmian nie narusza zgodności z CLI. Najważniejsze powody aktualizacji to kontrakty ukończenia (cele, które same się weryfikują), pełnoprawne MoA z możliwym do prześledzenia działaniem zespołu oraz /learn do rejestrowania skills.


Co nowego w v0.17.0 (wydanie Reach)

Nazwa Hermes Agent v0.17.0 (tag v2026.6.19, 19 czerwca 2026) nawiązuje do rozszerzonego zasięgu agenta — nowych kanałów komunikacji, nowych dostawców modeli oraz większych możliwości sterowania aplikacją komputerową i panelem administracyjnym. Jest to wydanie rozszerzające v0.16.x; interfejs CLI pozostaje bez zmian.21

  • Nowe kanały komunikacji. iMessage działa teraz bez pośredniczącego komputera Mac za pośrednictwem Photon Spectrum (OAuth z kodem urządzenia, hermes photon login); WhatsApp Business Cloud API to oficjalny adapter Meta, który eliminuje konieczność korzystania z procesu pośredniczącego; SimpleX zyskuje grupy, natywne załączniki, grupowanie tekstu w partie oraz automatyczne akceptowanie; natomiast Raft dołącza jako dołączona wtyczka platformowa z kanałem wybudzania chroniącym prywatność na poziomie kontraktu.21
  • Nowe modele i dostawcy. Do katalogu dodano z-ai/glm-5.2 (kontekst 1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra oraz grok-composer-2.5-fast (model Cursor udostępniany przez xAI OAuth, kontekst 200k). Domyślny model xAI zmieniono na grok-build-0.1, a adaptacyjne modele Anthropic korzystają teraz ze współczesnego kontraktu rozumowania (nigdy nie wysyłają pola reasoning).21
  • Aplikacja komputerowa i panel administracyjny. W aplikacji komputerowej dodano subagentów działających w tle wraz z transmitującymi na żywo „oknami obserwacji” aktywności delegowanej (delegate_task(background=true)), selektor modelu w edytorze, konfigurowalne skróty klawiaturowe, natywne powiadomienia systemowe, osobne wersje robocze edytora dla każdego wątku, motywy z VS Code Marketplace oraz interfejs w języku japońskim i chińskim tradycyjnym. Panel administracyjny zyskuje kompletny kreator profili (modele/skills/MCP bez edytowania config.yaml), globalny przełącznik profili, przebudowane Skills Hub ze skanowaniem zabezpieczeń, Automation Blueprints (parametryzowane szablony dostępne przez formularz, polecenie ukośnikowe, konwersację i dokumentację) oraz bezpieczne logowanie, które za bramą OAuth zwraca kod 401.21
  • Skills i narzędzia. Narzędzie image_generate może teraz edytować i przekształcać obraz źródłowy, a nie tylko tworzyć nowy od podstaw — u każdego obsługiwanego dostawcy obrazów; narzędzie memory zyskało tablicę operations, która umożliwia atomowe, zbiorcze dodawanie, zastępowanie i usuwanie w jednym wywołaniu; nowy skill simplify-code przeprowadza równoległy, trzyagentowy przegląd i porządkowanie kodu, kontrolowane poziomem ryzyka opartym na zasadzie Chesterton’s Fence; natomiast wartość logiczna write_approval zastępuje trójstanowe ustawienie write_mode.21
  • Architektura. Subagenci działający w tle natychmiast zwracają uchwyt, a następnie wprowadzają swój wynik jako nową turę; procedura pozyskiwania informacji MCP pozwala uzyskać potwierdzenie w trakcie wywołania narzędzia, a narzędzia MCP, które połączą się później, są udostępniane między turami (bez naruszania bezpieczeństwa pamięci podręcznej); cron staje się rozszerzalnym CronScheduler z zarządzanym dostawcą cron Chronos; nowy zakres Managed (/etc/hermes) pozwala administratorowi narzucić użytkownikom niezmienną konfigurację, a przekaźnik Gateway-Gateway umożliwia tworzenie topologii obejmujących wiele gateway.21
  • Nowe polecenia. /version, /billing (interaktywne rozliczenia w terminalu), hermes photon login (uwierzytelnianie iMessage) oraz hermes curator run --consolidate — konsolidacja wymaga teraz wyraźnego włączenia, dzięki czemu rutynowe porządkowanie w tle nie zużywa tokenów.21
  • Bezpieczeństwo. W v0.17.0 usunięto możliwość obejścia listy blokad przez sekwencje sterujące powłoki, wprowadzono bezpieczne odrzucanie żądań przy braku modułów zatwierdzania i adapterów gateway korzystających z własnych zasad, oczyszczanie środowiska podprocesów skryptów zadań cron, maskowanie sekretów w zrzutach debugowania żądań, sprawdzanie konfiguracji stdio MCP pod kątem wzorców eksfiltracji oraz zaktualizowano urllib3 i PyJWT w celu usunięcia podatności CVE.21

Przejście z v0.16.x nie powoduje żadnych niezgodności w CLI; wydanie dodaje nowe kanały, modele i interfejsy wokół tego samego agenta. Najważniejszymi powodami aktualizacji są iMessage niewymagający przekaźnika, oficjalne adaptery WhatsApp oraz administracyjny zakres Managed.


Co nowego w v0.16.0 (wydanie Surface)

Nazwa Hermes Agent v0.16.0 (tag v2026.6.5, 5 czerwca 2026) nawiązuje do nowych interfejsów udostępnionych agentowi zaprojektowanemu przede wszystkim z myślą o CLI. Najważniejsza zmiana polega na tym, że Hermes nie jest już ograniczony do terminala.20

  • Natywna aplikacja komputerowa. Hermes Desktop to nowa aplikacja Electron dla systemów macOS, Linux i Windows, oferująca instalację jednym kliknięciem oraz automatyczne aktualizacje z poziomu aplikacji. Udostępnia okno czatu z transmisją odpowiedzi, przeciąganie i upuszczanie plików, wklejanie obrazów ze schowka, paletę Cmd+K, listę sesji z archiwizacją i wyszukiwaniem oraz selektor modelu na pasku stanu. Może łączyć się ze zdalnym Hermes gateway przez bezpieczne WebSocket, uwierzytelniając się za pomocą OAuth albo nazwy użytkownika i hasła, a także obsługuje osobne hosty zdalne dla poszczególnych profili oraz równoczesne sesje wielu profili połączone międzyprofilowymi odwołaniami @session. Interfejs aplikacji zawiera również pełne tłumaczenie na uproszczony język chiński (简体中文), zaimplementowane za pomocą warstwy i18n z kontrolą typów (display.language; język angielski pozostaje domyślny).20
  • Panel administracyjny w przeglądarce. Lokalny internetowy panel administracyjny rozbudowano z widoku stanu do kompletnego interfejsu zarządzania: katalogu MCP z przełącznikami włączania i wyłączania, zarządzania danymi uwierzytelniającymi, tworzenia webhooków i hooków, konfiguracji pamięci, sterowania gateway oraz strony System z kontrolą poprzedzającą aktualizację i funkcją Debug Share uruchamianą jednym kliknięciem. Nowa strona Channels pozwala konfigurować w przeglądarce wszystkie platformy komunikacyjne gateway (Telegram, Discord, Slack i pozostałe). Uwierzytelnianie jest teraz rozszerzalne: obsługuje logowanie nazwą użytkownika i hasłem, ogólnego samodzielnie hostowanego dostawcę OIDC, polecenie hermes dashboard register służące do rejestrowania samodzielnie hostowanego klienta OAuth oraz rotację sesji za pomocą tokenów odświeżania.20
  • Nowe polecenia CLI i polecenia ukośnikowe. /undo [N] cofa ostatnie N tur użytkownika, korzystając z wstępnego wypełniania i miękkiego usuwania; działa w CLI, TUI oraz na platformach komunikacyjnych. Dodano konfigurowalny interfejs domyślny (cli lub tui) z możliwością zastąpienia go opcją --cli; TUI zyskuje ujednolicone polecenie /model i nakładkę Sessions. hermes portal to czytelny dla człowieka alias procesu wdrażania Nous Portal, obejmującego nowe ścieżki pierwszego uruchomienia Quick Setup i Full Setup; dodano również 2 narzędzia diagnostyczne: hermes prompt-size i hermes sessions optimize.20
  • Nowe modele i dostawcy. Selektor zyskuje modele deepseek-v4-flash, MiniMax-M3 (kontekst 1M, natywni dostawcy MiniMax), qwen3.7-plus (Nous + OpenRouter) oraz gemini-3.5-flash (Gemini OAuth + klucz API). Pełnoprawny dostawca xAI Grok OAuth dołącza do programu uruchamiającego aplikację komputerową, selektor modeli obsługuje teraz wyszukiwanie przybliżone we wszystkich interfejsach, dostawcy z wieloma punktami końcowymi są grupowani w jednym wierszu, a katalog jest odświeżany co godzinę zamiast raz dziennie.20 (Od tego czasu w v0.21.1 ponownie zmieniono częstotliwość: zdalne katalogi selektora są odświeżane co 20 minut, model_catalog.ttl_minutes.46)
  • Odchudzone skills i stopniowe ujawnianie. Z domyślnego zestawu skills usunięto pozycje zbędne i nieaktywne (Spotify przeniesiono do natywnej wtyczki, Linear do hermes mcp install linear, a kilka nieaktualnych pozycji usunięto), więcej z nich przeniesiono do kategorii opcjonalnych oraz dodano warunek istotności environments: w metadanych frontmatter (kanban/docker/s6), który ukrywa zależne od kontekstu skills w indeksie do czasu ich zażądania. NVIDIA/skills jest teraz domyślnym zaufanym źródłem Skills Hub obok OpenAI, Anthropic i HuggingFace. Narzędzia MCP i narzędzia wtyczek zyskały stopniowe (zakresowe) ujawnianie, a błąd MCP, który fałszywie zgłaszał pomyślne uwierzytelnienie OAuth, mimo że nie uzyskano tokenu, został naprawiony.20
  • Bezpieczeństwo. W v0.16.0 przypięto poprawioną wersję Starlette (≥1.0.1) ze względu na CVE-2026-48710 (BadHost), przeniesiono sprawdzanie adresów URL pod kątem SSRF poza pętlę zdarzeń w ścieżkach asynchronicznych, usunięto token okaziciela Bedrock inference ze środowiska podprocesów, dodano bws_cache.json do zabezpieczenia odczytu plików, uwzględniono docker restart/stop/kill na liście niebezpiecznych wzorców oraz oczyszczono zatwierdzoną zawartość skills z niewidocznych znaków Unicode. Wydanie usunęło 2 problemy P0 i 62 problemy P1, w tym 16 oznaczonych jako związane z bezpieczeństwem.20

Przejście z v0.15.x nie wprowadza żadnej niezgodnej zmiany w samym CLI; wydanie dodaje interfejsy i dostawców wokół tego samego agenta. Aplikacja komputerowa i panel administracyjny są głównymi powodami aktualizacji, jeśli Hermes ma być udostępniany użytkownikom niekorzystającym z terminala albo zdalny gateway ma być zarządzany z przeglądarki.

Co nowego w v0.14.0 (wydanie Foundation)

W v0.14.0 nie chodzi o jedną sztandarową funkcję, lecz o uproszczenie konfiguracji i rozszerzenie środowisk, w których może działać Hermes.19 Najważniejsze zmiany operacyjne:

  • Lżejsza instalacja i szybsze uruchamianie. Polecenie pip install hermes-agent instaluje pakiet z PyPI, rozbudowane adaptery są instalowane dopiero przy pierwszym użyciu, a odroczenie wystarczającej części pracy podczas uruchamiania skraca zimny start o około 19 sekund. (Od tego czasu w v0.19.0 instalacje przez pip uznano za przestarzałe — zob. Instalacja.)
  • Subskrypcje mogą stać się lokalnymi punktami końcowymi API. Polecenie hermes proxy przekształca dostawców opartych na OAuth, takich jak Claude Pro, ChatGPT Pro i SuperGrok, w lokalny punkt końcowy zgodny z OpenAI dla narzędzi takich jak Codex, Aider, Cline i Continue.
  • Gateway zyskuje większy zasięg. LINE i SimpleX Chat dołączają do gateway (tabela porównawcza platform w dokumentacji wymienia 28 platform w tagu v2026.8.31; sekcja Messaging Gateway wyjaśnia, co obejmuje ta liczba), Microsoft Teams jest zintegrowany od początku do końca, domyślnie włączono uzupełnianie historii Discord, a monity clarify w Telegram i Discord korzystają teraz z natywnych przycisków.
  • Lepsza weryfikacja podczas zapisu. Po wprowadzeniu zmian Hermes może przed następną turą wyświetlić podsumowania modyfikacji plików dla każdej tury oraz diagnostykę semantyczną serwera językowego, co przybliża go do pracy agenta opartej na dowodach.
  • Szersze możliwości aplikacji komputerowej i narzędzi multimedialnych. computer_use działa za pośrednictwem cua-driver z dostawcami innymi niż Anthropic, video_generate ujednolicono za rozszerzalnymi mechanizmami wykonawczymi, a vision_analyze przesyła surowe piksele do modeli, które rzeczywiście obsługują analizę obrazu.

Instalacja

Jednowierszowy instalator jest oficjalnie obsługiwaną metodą instalacji. Obsługuje Python, uv, Node.js, ripgrep, ffmpeg, klonowanie repozytorium, środowisko wirtualne oraz globalne polecenie hermes.7

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

Instalacje przez pip i Homebrew są przestarzałe od wersji v0.19.0. Pakiet PyPI wprowadzony w wersji v0.14.0 (pip install hermes-agent) oraz formuła Homebrew są obecnie oznaczone jako „nieobsługiwane instalacje starszego typu” — gdy Hermes wykryje taką instalację, w każdym interfejsie wyświetla ostrzeżenie (bez blokowania działania), a zaprzestanie publikowania w PyPI i Homebrew jest planowane. W przypadku instalacji przez pip lub brew należy przejść na powyższy instalator.56

Działa w systemach Linux, macOS, WSL2 oraz Android/Termux (instalator automatycznie wykrywa Termux i przełącza się na przetestowany pakiet dla Androida).7 Natywna wersja dla Windows jest obecnie platformą Tier 1, a nie wczesną wersją beta udostępnioną w v0.14.0 — można ją zainstalować za pomocą iex (irm https://hermes-agent.nousresearch.com/install.ps1). Dokumentacja wyraźnie wskazuje jedno zastrzeżenie: w przypadku macOS obsługiwane są wyłącznie urządzenia z Apple Silicon, a komputery Mac z procesorami Intel nie są obsługiwane.55 Historycznie wersja v0.14.0 wprowadziła natywną obsługę Windows we wczesnej fazie beta za pośrednictwem instalatora PowerShell, jednak do zastosowań produkcyjnych WSL2 nadal pozostaje bezpieczniejszym zaleceniem, dopóki natywna wersja dla Windows nie osiągnie większej dojrzałości.19

Po zakończeniu instalacji:

source ~/.bashrc    # or ~/.zshrc
hermes              # Start chatting

Jedynym wymaganiem wstępnym jest git. Instalator automatycznie przygotowuje Python 3.11 za pomocą uv (bez konieczności używania sudo), Node.js 26 (do automatyzacji przeglądarki i mostu WhatsApp), ripgrep oraz ffmpeg. Od wersji v0.20.0 Node 26 jest bezwzględnym minimum — instalator odrzuca każdą starszą wersję i instaluje wersję Node zarządzaną przez Hermes.557

Weryfikacja instalacji

hermes --version    # Check version (global flag; there is no `version` subcommand)
hermes doctor       # Diagnose config/dependency issues
hermes status       # Show current configuration + auth state
hermes dump         # Copy-pasteable setup summary for debugging

hermes doctor dokładnie wskazuje, czego brakuje i jak to naprawić.7 hermes dump to polecenie diagnostyczne, którego wynik należy wkleić do zgłoszenia w GitHub lub wątku na Discord, prosząc o pomoc — jest to tekstowe podsumowanie całej konfiguracji, w którym dane poufne są zamaskowane.8

Instalacja ręczna

Jeśli potrzebna jest pełna kontrola — niestandardowa wersja Python, konkretne dodatki lub integracja z Nix/NixOS — procedurę ręczną opisano krok po kroku w oficjalnym przewodniku instalacji.7 Najważniejsze opcjonalne dodatki, które można łączyć z uv pip install -e ".[<extras>]":

Dodatek Co zapewnia
all Wszystkie poniższe elementy
messaging gateway Telegram i Discord
cron Analizowanie wyrażeń Cron
cli Interfejs menu terminalowego dla kreatora konfiguracji
modal Backend wykonywania zadań w chmurze Modal
voice Wejście mikrofonowe CLI i odtwarzanie dźwięku
tts-premium Głosy premium ElevenLabs
honcho Pamięć natywna dla AI (integracja z Honcho)
mcp Obsługa Model Context Protocol
homeassistant Integracja z Home Assistant
acp Obsługa integracji z edytorami ACP
slack Obsługa wiadomości Slack
pty Obsługa terminala PTY (interaktywne narzędzia CLI)
dev pytest i narzędzia testowe
termux Przetestowany pakiet dla Androida (obejmuje cron, cli, pty, mcp, honcho, acp)

Polecenie instalacji w Termux jest inne — korzysta z pip wraz z plikiem ograniczeń, a nie z uv pip:

python -m pip install -e ".[termux]" -c constraints-termux.txt

Wynika to z faktu, że .[all] w systemie Android instaluje faster-whisper za pośrednictwem dodatku voice, który zależy od pakietów wheel ctranslate2, niepublikowanych dla Androida.7


Uwierzytelnianie i dostawcy

W tagu v2026.9.7 plik hermes_cli/models_catalog_static.py zawiera w wierszu 311 39 statycznych wpisów CANONICAL_PROVIDERS (w wyniku dekompozycji z września 2026 roku lista została przeniesiona z hermes_cli/models.py; same wpisy nie uległy zmianie i nadal obejmują dodany w wersji v0.21.0 wpis tencent-tokenplan) i automatycznie rozszerza tę listę na podstawie plugins/model-providers/ (39 dołączonych folderów; dziewięć z nich — actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage — nie ma statycznego wpisu i zostaje uwzględnionych przez mechanizm automatycznego rozszerzania, ponieważ używają domyślnego typu uwierzytelniania api_key). Tabele na stronie dokumentacji poświęconej dostawcom obejmują 45 dostawców chmurowych i subskrypcyjnych oraz wiersz dotyczący niestandardowego punktu końcowego, a osobno opisano serwery lokalne i samodzielnie hostowane (Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM, ClawRouter oraz dowolny punkt końcowy zgodny z OpenAI).26 W tagu v2026.9.24 statyczna lista nadal zawiera 39 wpisów, natomiast plugins/model-providers/ obejmuje 38 folderów: niewymagający klucza dostawca opencode-free został usunięty 18 września, ponieważ bezpłatny plan OpenCode odrzuca obecnie anonimowy ruch pochodzący spoza własnego klienta.53 Ponad tym funkcjonują niestandardowe punkty końcowe i trzy odrębne ścieżki uwierzytelniania. Poniżej przedstawiono pełny zakres możliwości uwierzytelniania, uporządkowany według ścieżek, aby ułatwić znalezienie wariantu odpowiadającego posiadanym danym dostępowym.

Trzy ścieżki uwierzytelniania

Każdy dostawca w Hermes korzysta z jednego z trzech wzorców uwierzytelniania:

Ścieżka 1 — klucz API w .env. Klucz należy umieścić w ~/.hermes/.env, a Hermes odczyta go podczas uruchamiania. Tej ścieżki używają OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (oraz MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini i większość zewnętrznych dostawców.2 Od wersji v0.19.0 klucz nie musi już znajdować się w pliku tekstowym: rozszerzalny interfejs SecretSource może podczas wczytywania pobierać sekrety z Bitwarden lub 1Password (odwołania op://), obsługując jednocześnie wiele sejfów, deterministyczną kolejność pierwszeństwa, ostrzeżenia o konfliktach i informacje o pochodzeniu poszczególnych zmiennych — .env pozostaje rozwiązaniem awaryjnym. (Jest to mechanizm odrębny od wprowadzonego w wersji v0.15.0 tokenu rozruchowego Bitwarden Secrets Manager, który pozwalał skonsolidować klucze dostawców za jednym tokenem; SecretSource zastępuje sam plik tekstowy, a kolejnych dostawców sejfów można dodawać jako wtyczki.)56

Ścieżka 2 — OAuth przez hermes model lub hermes auth. Uruchamia przepływ z kodem urządzenia, otwiera przeglądarkę i zapisuje dane uwierzytelniające w ~/.hermes/auth.json (może również importować istniejące dane uwierzytelniające z narzędzi takich jak Claude Code lub Codex CLI). Tej ścieżki używają Nous Portal, OpenAI Codex (konto ChatGPT), GitHub Copilot oraz Anthropic (Claude Pro/Max).2

Ścieżka 3 — niestandardowy punkt końcowy w config.yaml. Przeznaczona dla dowolnego API zgodnego z OpenAI — Ollama, vLLM, SGLang, llama.cpp, LM Studio, proxy LiteLLM, Together AI, Groq, Azure OpenAI lub własnego, samodzielnie hostowanego serwera. Konfigurację przeprowadza się jednorazowo przez hermes model → Custom endpoint, po czym zostaje ona zapisana w config.yaml.2

Pełna macierz dostawców

Macierz obejmuje dostawców uwzględnionych w tabelach na stronie dokumentacji wraz z dokładną procedurą konfiguracji każdego z nich; selektor w tym tagu zawiera więcej pozycji niż dokumentacja (patrz liczba powyżej), a każdy punkt końcowy zgodny z OpenAI można obsłużyć za pomocą wiersza dotyczącego niestandardowego punktu końcowego.226

Dostawca Ścieżka uwierzytelniania Konfiguracja
Nous Portal OAuth hermes model (logowanie OAuth, dostęp subskrypcyjny)
OpenAI Codex OAuth hermes model (kod urządzenia ChatGPT, korzysta z modeli Codex)
GitHub Copilot OAuth lub token hermes model (kod urządzenia OAuth) albo COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token
GitHub Copilot ACP Lokalny podproces hermes model (wymaga copilot CLI w PATH oraz copilot login)
Anthropic OAuth lub klucz API hermes model (preferuje dane uwierzytelniające Claude Code) albo ANTHROPIC_API_KEY, albo token konfiguracyjny ANTHROPIC_TOKEN
OpenRouter Klucz API OPENROUTER_API_KEY w ~/.hermes/.env
AI Gateway (Vercel) Klucz API AI_GATEWAY_API_KEY w ~/.hermes/.env (dostawca: ai-gateway)
z.ai / GLM (ZhipuAI) Klucz API GLM_API_KEY w ~/.hermes/.env (dostawca: zai)
Kimi / Moonshot Klucz API KIMI_API_KEY w ~/.hermes/.env (dostawca: kimi-coding). Wersja v0.19.0 dodaje kimi-k3 do katalogów (kimi-k2.x wycofano).56
MiniMax (wersja globalna) Klucz API MINIMAX_API_KEY w ~/.hermes/.env (dostawca: minimax)
MiniMax China Klucz API MINIMAX_CN_API_KEY w ~/.hermes/.env (dostawca: minimax-cn)
Alibaba Cloud (Qwen) Klucz API DASHSCOPE_API_KEY w ~/.hermes/.env (dostawca: alibaba, aliasy: dashscope, qwen)
Kilo Code Klucz API KILOCODE_API_KEY w ~/.hermes/.env (dostawca: kilocode)
OpenCode Zen Klucz API OPENCODE_ZEN_API_KEY w ~/.hermes/.env (dostawca: opencode-zen)
OpenCode Go Klucz API OPENCODE_GO_API_KEY w ~/.hermes/.env (dostawca: opencode-go)
DeepSeek Klucz API DEEPSEEK_API_KEY w ~/.hermes/.env (dostawca: deepseek)
Hugging Face Klucz API HF_TOKEN w ~/.hermes/.env (dostawca: huggingface, alias: hf)
Google / Gemini Klucz API GOOGLE_API_KEY lub GEMINI_API_KEY w ~/.hermes/.env (dostawca: gemini)
Fireworks AI Klucz API Pełnoprawny dostawca z szacowaniem kosztów i buforowanymi kolumnami cen w selektorze modeli; przeniesiony na 2. pozycję w selektorach dostawców. Nowość w wersji v0.19.0.56
DeepInfra Klucz API Pełnoprawny dostawca ze wzmocnioną integracją. Nowość w wersji v0.19.0.56
Upstage Solar Klucz API Pełnoprawny dostawca. Nowość w wersji v0.19.0.56
xAI (Grok) Natywny dostawca / SuperGrok OAuth Pełnoprawny dostawca z bezpośrednim dostępem przez API i katalogiem modeli (v0.9.0+). Wersja v0.14.0 dodaje SuperGrok OAuth i zwiększa okno kontekstu grok-4.3 do 1M dla uprawnionych kont.21619 Wersja v0.17.0 dodaje grok-composer-2.5-fast (model Cursor dostępny przez xAI OAuth, kontekst 200k) i zmienia domyślny model xAI na grok-build-0.1.21 W wersji v0.19.0 grok-4.5 przechodzi w katalogu do ogólnej dostępności.56
xAI Custom Voices Klucz API Dostawca TTS z klonowaniem głosu. Nowość w wersji v0.13.0; konfigurację należy umieścić w sekcji tts: pliku config.yaml, a klucz xAI — w .env.18
Xiaomi MiMo Natywny dostawca Pełnoprawny dostawca z kreatorem konfiguracji i katalogiem modeli. Bezpłatny MiMo v2 Pro w Nous Portal do zadań pomocniczych (v0.9.0+).1615
Google AI Studio Klucz API GOOGLE_API_KEY lub GEMINI_API_KEY w ~/.hermes/.env. Bezpośredni dostęp do Gemini z automatycznym wykrywaniem długości kontekstu za pośrednictwem rejestru models.dev (v0.8.0+).15
Qwen OAuth (Portal) OAuth hermes model → “Qwen OAuth (Portal)” (dostawca: qwen-oauth; logowanie PKCE w przeglądarce, które ponownie wykorzystuje lokalne logowanie Qwen CLI). Dostawca OAuth z obsługą żądań portalu (v0.8.0+). Ścieżka DashScope z kluczem API opisana powyżej została w wersji v0.14.0 przemianowana z Alibaba Cloud na Qwen Cloud; dotychczasowe klucze konfiguracyjne nadal działają.151926
OpenCode Free (usunięty) Bez klucza Usunięty 18 września 2026 roku; nie występuje w tagach v2026.9.21 ani v2026.9.24. Konfiguracja, która nadal wskazuje opencode-free, free lub opencode_free, powoduje wyświetlenie błędu informującego o usunięciu; należy przełączyć się przez hermes model na opencode-zen (rozliczenie według użycia, OPENCODE_ZEN_API_KEY) lub opencode-go (subskrypcja, OPENCODE_GO_API_KEY). Dostawca został dodany w okresie wydania v0.20.5 jako „dostawca opencode-free niewymagający uwierzytelniania”.2353
OpenAI API (bezpośrednio) Klucz API OPENAI_API_KEY w ~/.hermes/.env (dostawca: openai-api, opcjonalnie OPENAI_BASE_URL)26
Google Vertex AI OAuth2 / ADC hermes model → “Google Vertex AI” (dostawca: vertex; OAuth2 przez JSON konta usługi lub Application Default Credentials, rozliczane w projekcie GCP użytkownika)26
Azure AI Foundry Punkt końcowy + klucz hermes model → “Azure AI Foundry” (dostawca: azure-foundry; korzysta z punktu końcowego i klucza Azure OpenAI / Foundry użytkownika; selektor opisuje go jako „punkt końcowy w stylu OpenAI lub Anthropic”)26
AWS Bedrock Dane uwierzytelniające AWS hermes model → “AWS Bedrock” (dostawca: bedrock; standardowy łańcuch danych uwierzytelniających AWS przez boto3, IAM lub klucz API; Claude, Nova, Llama, DeepSeek)26
NVIDIA NIM / Build Klucz API NVIDIA_API_KEY w ~/.hermes/.env (dostawca: nvidia; hostowane w NIM modele Nemotron i inne modele z build.nvidia.com albo lokalny punkt końcowy NIM przez nadpisanie bazowego adresu URL)26
Ollama Cloud OAuth lub klucz API hermes model → “Ollama Cloud” (dostawca: ollama-cloud; należy wkleić OLLAMA_API_KEY i wybrać jeden z wykrytych modeli hostowanych w chmurze)26
StepFun Step Plan Klucz API STEPFUN_API_KEY w ~/.hermes/.env (dostawca: stepfun; modele agentowe i programistyczne przez Step Plan API)26
MiniMax (OAuth) OAuth hermes model → “MiniMax (OAuth)” (dostawca: minimax-oauth; logowanie PKCE w przeglądarce do Coding Plan, w regionie globalnym lub CN)26
Meta AI Klucz API MODEL_API_KEY w ~/.hermes/.env (dostawca: meta-ai; Meta Model API, rodzina Muse Spark)26
NovitaAI klucz API NOVITA_API_KEY w ~/.hermes/.env (provider: novita; ponad 200 modeli, Model API, Agent Sandbox, GPU Cloud)26
Arcee AI klucz API ARCEEAI_API_KEY w ~/.hermes/.env (provider: arcee; aliasy: arcee-ai, arceeai; modele Trinity)26
GMI Cloud klucz API GMI_API_KEY w ~/.hermes/.env (provider: gmi; aliasy: gmi-cloud, gmicloud). Należy użyć dokładnego identyfikatora modelu zwróconego przez endpoint GMI /v1/models26
Actual Computer klucz API lub lokalny demon ACTUAL_API_KEY w ~/.hermes/.env dla hostowanego przekaźnika albo ACTUAL_BASE_URL=http://127.0.0.1:8080 dla lokalnego demona bez klucza w interfejsie loopback (provider: actual; aliasy: actual-computer, actualcomputer, aci)26
Tencent TokenHub klucz API TOKENHUB_API_KEY w ~/.hermes/.env (provider: tencent-tokenhub; aliasy: tencent, tokenhub, tencentmaas; Hy3 Preview)26
CommandCode klucz API COMMANDCODE_API_KEY w ~/.hermes/.env (provider: commandcode, alias commandcode-chat; modele Claude przez commandcode-anthropic, alias commandcode-claude). Działa z planami GOAT/Pro/Max/Provider, ale nie z planem Go za 1 USD, który nie zapewnia dostępu do API. Wtyczka pojawiła się w okresie wydania v0.20.3.5426
Alibaba Cloud (Coding Plan) klucz API DASHSCOPE_API_KEY (provider: alibaba-coding-plan, alias alibaba_coding); osobna pozycja rozliczeniowa korzystająca z innego endpointu niż provider DashScope alibaba26
Tencent TokenPlan klucz API TOKENPLAN_API_KEY w ~/.hermes/.env (provider: tencent-tokenplan, aliasy: tokenplan, tencent-lkeap; wersja testowa Hy4 przez endpoint Anthropic Messages pod adresem api.lkeap.cloud.tencent.com). Nowość w v0.21.0; selektor łączy TokenHub i TokenPlan w jednym, służącym wyłącznie do wyświetlania wierszu „Tencent Hy”3536
Nebius Token Factory klucz API NEBIUS_API_KEY w ~/.hermes/.env (provider: nebius-token-factory; aliasy: nebius, nebius-tf, tokenfactory). Nowość w v0.21.03536
Ramp Router klucz API RAMP_ROUTER_API_KEY w ~/.hermes/.env (provider: router; aliasy: ramp-router, ramp, router.com). Natywna dla OpenAI Responses brama LLM firmy Ramp pod adresem api.router.com, z aktywnym katalogiem przypisanym do konta — prawidłowe identyfikatory modeli to te, które endpoint /v1/models zwraca dla danego klucza, dlatego selektor pobiera je zamiast definiować na stałe. Nowość w v0.21.03536
Alibaba Cloud (Token Plan) klucz API ALIBABA_TOKEN_PLAN_API_KEY w ~/.hermes/.env (provider: alibaba-token-plan; endpoint dla Chin kontynentalnych: alibaba-token-plan-cn) — ryczałtowy plan tokenowy Model Studio, trzecia pozycja rozliczeniowa Alibaba obok alibaba i alibaba-coding-plan36
Niestandardowy endpoint config.yaml hermes model → „Niestandardowy endpoint” (zapisywany w config.yaml). Lista usług zgodnych z OpenAI w dokumentacji obejmuje Together AI, Groq, Cerebras (https://api.cerebras.ai/v1), Mistral, Azure OpenAI, LocalAI i Jan26
Od wersji v0.19.0 można również ukryć nieużywanych providerów: ustawiana osobno dla każdego providera flaga enabled: false oraz klucz konfiguracji excluded_providers usuwają ich z selektorów /model i wbudowanego mechanizmu rozpoznawania providerów.56

Anthropic: trzy metody uwierzytelniania

Anthropic wymaga osobnej sekcji, ponieważ Hermes obsługuje trzy różne sposoby dostępu do Claude, a wybór właściwego ma znaczenie. Zgodnie z dokumentacją projektu źródłowego:2

# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model

# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic

# Auto-detect Claude Code credentials
hermes chat --provider anthropic   # reads Claude Code files automatically

Po wybraniu Anthropic OAuth za pomocą hermes model Hermes w pierwszej kolejności korzysta z własnego magazynu poświadczeń Claude Code, zamiast kopiować token do ~/.hermes/.env. Dzięki temu poświadczenia Claude korzystające z OAuth zachowują możliwość odświeżania.2 Jeśli Claude Code jest już używany na tym samym komputerze, jest to najprostsze rozwiązanie.

Aby na stałe ustawić Anthropic w config.yaml:

model:
  provider: "anthropic"
  default: "claude-sonnet-4-6"

--provider claude i --provider claude-code działają również jako skróty dla --provider anthropic.2

GitHub Copilot: dwa tryby

Copilot jest obsługiwany w dwóch trybach: bezpośredniego API Copilot (zalecany) oraz Copilot ACP (który uruchamia lokalny CLI Copilot jako podproces).2

# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4

# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp

Zgodnie z dokumentacją projektu źródłowego uwierzytelnianie jest sprawdzane w następującej kolejności:2 1. Zmienna środowiskowa COPILOT_GITHUB_TOKEN 2. Zmienna środowiskowa GH_TOKEN 3. Zmienna środowiskowa GITHUB_TOKEN 4. Awaryjne użycie CLI gh auth token 5. Logowanie kodem urządzenia OAuth za pomocą hermes model

Typ tokenu ma znaczenie. API Copilot nie obsługuje klasycznych tokenów Personal Access Token (ghp_*). Obsługiwane są tokeny OAuth (gho_*), precyzyjnie konfigurowane tokeny PAT (github_pat_* z uprawnieniem Copilot Requests) oraz tokeny GitHub App (ghu_*). Jeśli gh auth token zwraca token ghp_*, należy zamiast tego użyć hermes model, aby uwierzytelnić się przez OAuth.2

Chińscy providerzy AI (pełne wsparcie)

Hermes ma wbudowane wsparcie dla z.ai/GLM, Kimi/Moonshot, MiniMax (endpointy globalne i chińskie) oraz Alibaba Cloud z dedykowanymi identyfikatorami providerów.2

# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5                 # Requires: GLM_API_KEY

# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding   # Requires: KIMI_API_KEY

# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7          # Requires: MINIMAX_API_KEY

# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7       # Requires: MINIMAX_CN_API_KEY

# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus          # Requires: DASHSCOPE_API_KEY

Bazowe adresy URL można nadpisać za pomocą zmiennych środowiskowych GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL lub DASHSCOPE_BASE_URL.2

Z.AI automatycznie wykrywa endpoint. Podczas korzystania z providera z.ai/GLM Hermes sprawdza wiele endpointów (globalnych, chińskich i przeznaczonych do programowania), aby znaleźć taki, który akceptuje dany klucz API. Działający endpoint jest automatycznie zapisywany w pamięci podręcznej — większość użytkowników nie musi ustawiać GLM_BASE_URL.2

xAI (Grok) automatycznie włącza pamięć podręczną promptów. Gdy bazowy adres URL zawiera x.ai, Hermes wysyła nagłówek x-grok-conv-id z każdym żądaniem, aby w ramach sesji konwersacji kierować je do tego samego serwera i ponownie wykorzystywać zapisane w pamięci podręcznej prompty systemowe oraz historię.2 Działa automatycznie; konfiguracja nie jest wymagana.

Polecenie hermes auth

hermes auth to polecenie do zarządzania pulami poświadczeń i poświadczeniami OAuth.6

hermes auth                              # Interactive wizard
hermes auth list                         # Show all credential pools
hermes auth list openrouter              # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2          # Remove by index
hermes auth reset openrouter             # Clear cooldowns

Pule poświadczeń umożliwiają rotację wielu kluczy API lub tokenów OAuth dla tego samego providera — przydaje się to do rozłożenia limitów żądań między wiele kluczy bez zmieniania kodu.6 Starsze polecenia hermes login / hermes logout zostały usunięte; zamiast nich należy używać hermes auth.6

Niestandardowe i samodzielnie hostowane endpointy

Hermes działa z każdym endpointem API zgodnym z OpenAI. Jeśli serwer implementuje /v1/chat/completions, można skierować do niego Hermes.2

Konfiguracja interaktywna (zalecana):

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

Ręczna konfiguracja config.yaml:

model:
  default: your-model-name
  provider: custom
  base_url: http://localhost:8000/v1
  api_key: your-key-or-leave-empty-for-local

Obie metody zapisują ustawienia w config.yaml, który jest jedynym źródłem prawdy dla głównego modelu, providera i bazowego adresu URL.2 Starsze zmienne środowiskowe OPENAI_BASE_URL i LLM_MODEL nie są już odczytywane podczas konfigurowania głównego modelu — należy użyć hermes model albo bezpośrednio edytować config.yaml.2 (OPENAI_BASE_URL + OPENAI_API_KEY nadal są honorowane jako mechanizm awaryjny dla pomocniczej ścieżki routingu provider: "main", dlatego nie należy usuwać ich bez sprawdzenia, jeśli są tam używane.)4

Przełączanie niestandardowych endpointów w trakcie sesji:

/model custom:qwen-2.5             # Custom endpoint with explicit model
/model custom                      # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5       # Named custom provider "local"
/model custom:work:llama3          # Named custom provider "work"
/model openrouter:claude-sonnet-4  # Back to a cloud provider

/model custom (bez nazwy modelu) wysyła zapytanie do /v1/models API punktu końcowego i automatycznie wybiera model, jeśli załadowany jest dokładnie jeden — jest to przydatne w przypadku lokalnych serwerów obsługujących pojedynczy model.2

Lokalne serwery LLM (szablony konfiguracji)

Dokumentacja projektu zawiera kompletne instrukcje konfiguracji Ollama, vLLM, SGLang, llama.cpp i LM Studio. Poniżej przedstawiono najważniejsze polecenia, których faktycznie trzeba użyć. Każde z nich pozwala uruchomić działający punkt końcowy, z którym może się połączyć Hermes.2

Ollama — najprostszy sposób na lokalne uruchomienie, bez konieczności konfiguracji:

ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve   # Raise from 4k default
hermes model   # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b

Istotna pułapka związana z Ollama: Ollama domyślnie używa bardzo krótkich okien kontekstu (4096 tokenów przy mniej niż 24 GB pamięci VRAM). Należy je zwiększyć za pomocą OLLAMA_CONTEXT_LENGTH lub pliku Modelfile — interfejs API zgodny z OpenAI nie przyjmuje długości kontekstu od klienta, dlatego Hermes nie może jej ustawić.2 Do zastosowań agentowych należy ustawić co najmniej 16–32 tys. tokenów.

vLLM — wysokowydajne udostępnianie GPU:

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --port 8000 \
  --max-model-len 65536 \
  --tensor-parallel-size 2 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

Wywoływanie narzędzi wymaga flag --enable-auto-tool-choice i --tool-call-parser <name>. Obsługiwane parsery: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Bez tych flag wywołania narzędzi będą zwracane jako zwykły tekst.2

SGLang — szybkie udostępnianie z RadixAttention, umożliwiające ponowne wykorzystanie pamięci podręcznej KV:

pip install "sglang[all]"
python -m sglang.launch_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --context-length 65536 \
  --tp 2 \
  --tool-call-parser qwen

Pułapka związana z SGLang: Domyślna wartość max_tokens wynosi 128. Jeśli odpowiedzi są ucinane, należy ustawić --default-max-tokens na serwerze lub skonfigurować model.max_tokens w config.yaml.2

llama.cpp / llama-server — procesor CPU i Metal na Apple Silicon:

./build/bin/llama-server \
  --jinja -fa \
  -c 32768 \
  -ngl 99 \
  -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
  --port 8080 --host 0.0.0.0

Opcja --jinja jest wymagana do wywoływania narzędzi. Bez niej llama-server całkowicie ignoruje parametr tools, a model próbuje wywoływać narzędzia, zapisując JSON w treści odpowiedzi — czego Hermes nie potrafi zinterpretować jako rzeczywistych wywołań narzędzi.2

LM Studio — aplikacja komputerowa z interfejsem graficznym:

Należy uruchomić serwer w aplikacji LM Studio (karta Developer → Start Server) albo za pomocą CLI: lms server start (uruchamia serwer na porcie 1234) oraz lms load qwen2.5-coder --context-length 32768.2 Następnie należy skierować hermes model do http://localhost:1234/v1.

Istotna pułapka związana z LM Studio: LM Studio odczytuje długość kontekstu z metadanych modelu, ale wiele modeli GGUF zgłasza wartość domyślną 2048 lub 4096. Długość kontekstu należy zawsze ustawić jawnie w ustawieniach modelu LM Studio — kliknąć ikonę koła zębatego obok selektora modelu, ustawić „Context Length” na co najmniej 16384 (najlepiej 32768), a następnie ponownie załadować model.2

Nazwani niestandardowi dostawcy

W przypadku korzystania z wielu niestandardowych punktów końcowych (na przykład lokalnego serwera deweloperskiego i zdalnego serwera GPU) należy zdefiniować je w config.yaml jako nazwanych niestandardowych dostawców:2

custom_providers:
  - name: local
    base_url: http://localhost:8080/v1
    # api_key omitted — Hermes uses "no-key-required" for keyless local servers
  - name: work
    base_url: https://gpu-server.internal.corp/v1
    api_key: corp-api-key
    api_mode: chat_completions      # optional, auto-detected from URL
  - name: anthropic-proxy
    base_url: https://proxy.example.com/anthropic
    api_key: proxy-key
    api_mode: anthropic_messages    # for Anthropic-compatible proxies

Następnie można przełączać się między nimi w trakcie sesji za pomocą składni z trzema elementami:

/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4

Nazwanych niestandardowych dostawców można również wybierać z interaktywnego menu hermes model.2

Rozszerzalna architektura dostawców (v0.13.0+)

Wersja v0.13.0 wprowadza klasę abstrakcyjną ProviderProfile oraz katalog plugins/model-providers/, dzięki którym zewnętrznych dostawców inferencji można dodawać bez modyfikowania podstawowego kodu.18 Jeśli dostawca obsługuje tryb API zgodny z OpenAI, Anthropic lub Codex, można zaimplementować podklasę ProviderProfile, która deklaruje metodę uwierzytelniania, bazowy adres URL, katalog modeli i nagłówki pamięci podręcznej; Hermes rozpoznaje ją za pośrednictwem tej samej ścieżki runtime_provider.py, z której korzystają wbudowani dostawcy. To właśnie ta zmiana architektoniczna umożliwiła rozszerzenie listy dostawców w wersji v0.13.0: zamiast edytować podstawowy kod w celu dodania dostawcy, udostępnia się plugin.

Lokalny serwer proxy zgodny z OpenAI (v0.14.0+)

hermes proxy udostępnia lokalny punkt końcowy zgodny z OpenAI, obsługiwany przez dostawcę OAuth, u którego Hermes jest już uwierzytelniony — Claude Pro, ChatGPT Pro, SuperGrok lub innego zgodnego, skonfigurowanego dostawcę.19 Dzięki temu narzędzia oczekujące interfejsu API w stylu OpenAI, w tym Codex CLI, Aider, Cline, Continue lub niestandardowe skrypty, mogą ponownie wykorzystać uwierzytelnianie Hermes powiązane z subskrypcją, bez osobnego klucza API. Serwer proxy należy traktować jako lokalną infrastrukturę deweloperską: świadomie wybrać adres nasłuchiwania, nie udostępniać go szeroko i uwzględnić warunki poszczególnych dostawców.

Wykrywanie długości kontekstu

Zgodnie z dokumentacją projektu często mylone są dwa ustawienia:2

  • context_length — całkowite okno kontekstu (łączny budżet tokenów wejściowych i wyjściowych, np. 1 000 000 dla Claude Opus 4.7 lub 200 000 dla Sonnet 4.6). Hermes korzysta z tej wartości, aby ustalić, kiedy skompresować historię.
  • model.max_tokens — limit danych wyjściowych (maksymalna liczba tokenów, które model może wygenerować w jednej odpowiedzi). Nie ma związku z długością historii.

Jeśli mechanizm automatycznego wykrywania błędnie określa rozmiar okna, należy ustawić context_length:

model:
  default: "qwen3.5:9b"
  base_url: "http://localhost:8080/v1"
  context_length: 131072      # tokens

Do wykrywania okien kontekstu Hermes używa wieloźródłowego łańcucha rozstrzygania: nadpisanie w konfiguracji → ustawienie dla modelu u niestandardowego dostawcy → trwała pamięć podręczna → /models punktu końcowego → Anthropic /v1/models → API OpenRouter → Nous Portal → models.dev (rejestr utrzymywany przez społeczność, obejmujący ponad 3800 modeli) → wartości domyślne (128 tys.).2 System uwzględnia dostawcę, dlatego ten sam model może mieć różne limity kontekstu zależnie od tego, kto go udostępnia (np. claude-opus-4.6 ma okno 1 mln tokenów bezpośrednio w Anthropic, ale 128 tys. w GitHub Copilot).2

Inteligentne kierowanie modeli: rotacja dostawców i mechanizm rezerwowy

Hermes nie ogranicza użytkownika do jednego modelu u jednego dostawcy. Inteligentne kierowanie modeli obejmuje mechanizmy decydujące o tym, który dostawca i model faktycznie obsłuży dane żądanie: pule danych uwierzytelniających rozkładają obciążenie między klucze, skonfigurowany model rezerwowy przejmuje obsługę w razie awarii modelu głównego, a opisane poniżej role pomocnicze kierują zadania poboczne do tańszych modeli, niezależnie od modelu głównego.26 Te trzy elementy należy skonfigurować łącznie – od tego zależy, czy agent zatrzyma się po osiągnięciu limitu żądań, czy będzie kontynuować pracę.

Pule danych uwierzytelniających. Jeśli dla tego samego dostawcy dostępnych jest kilka kluczy API, strategię rotacji należy skonfigurować za pomocą hermes auth. Pozwala to rozłożyć limity żądań między wiele kluczy.6

Model rezerwowy. Należy skonfigurować zapasową parę provider:model, na którą Hermes automatycznie przełączy się w razie awarii modelu głównego (osiągnięcia limitów żądań, błędów serwera lub błędów uwierzytelniania):2

fallback_model:
  provider: openrouter            # required
  model: anthropic/claude-sonnet-4  # required
  # base_url: http://localhost:8000/v1    # optional, for custom endpoints
  # api_key_env: MY_CUSTOM_KEY           # optional, env var name

Mechanizm rezerwowy zmienia model i dostawcę w trakcie sesji bez utraty konwersacji. Uruchamia się najwyżej raz na sesję.2 Dostawcy obsługiwani przez mechanizm rezerwowy: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2

Modele pomocnicze

Hermes korzysta z modeli „pomocniczych” do zadań pobocznych: analizy obrazów (widzenie), klasyfikowania zatwierdzeń niebezpiecznych poleceń, kompresji kontekstu, generowania tytułów sesji, wstawiania znaczników audio TTS, dopasowywania skill, wysyłania narzędzi MCP oraz obsługi rodziny komponentów specyfikujących i dekomponujących Kanban.434 Domyślnie (auxiliary.*.provider: "auto") każde zadanie pomocnicze jest wykonywane przez główny model czatu – tego samego dostawcę i model, które wybrano w hermes model. Dokumentacja wyraźnie wskazuje, że zastąpiło to poprzedni mechanizm automatycznego wykrywania taniego dostawcy: „Wcześniejsze wersje kierowały użytkowników agregatorów (OpenRouter, Nous Portal) do taniego, domyślnego modelu po stronie dostawcy. Było to zaskakujące… auto korzysta teraz z modelu głównego w przypadku wszystkich użytkowników, a ustawienia poszczególnych zadań w config.yaml nadal mają pierwszeństwo”.34 Aby rozpocząć pracę, nie trzeba niczego konfigurować; wiąże się to jednak z wyższymi kosztami – w przypadku drogich modeli rozumujących zadania pomocnicze mogą generować znaczące wydatki, dlatego w razie potrzeby warto przypisać poszczególne zadania do tanich i szybkich modeli. Dwa dawne zadania pomocnicze w ogóle nie korzystają już z LLM: ekstrakcja treści internetowych („web_extract i migawki przeglądarki deterministycznie skracają długie treści i przechowują pełny tekst do stronicowania za pomocą read_file — bez udziału LLM”) oraz przeszukiwanie sesji (narzędzie o jednym formacie zwraca bezpośrednio zawartość bazy danych). Ich stare bloki auxiliary.web_extract.* i auxiliary.session_search.* usunięto z ustawień domyślnych — wartości pozostałe w istniejącym pliku config.yaml są „nieszkodliwymi pozostałościami i są ignorowane” — a w wersji oznaczonej tym tagiem w ustawieniach domyślnych nie ma również pozycji flush_memories.34

Można skonfigurować model i dostawcę używane przez każde zadanie pomocnicze. Każda pozycja pomocnicza korzysta z tych samych ustawień: provider, model, base_url (oraz api_key, timeout, extra_body i osobnego dla każdego zadania ustawienia reasoning_effort).434

auxiliary:
  vision:                          # vision_analyze + browser screenshots
    provider: "auto"               # "auto" (= main model), "openrouter", "nous", "main", etc.
    model: ""                      # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
    base_url: ""                   # Custom OpenAI-compatible endpoint
    api_key: ""                    # Falls back to OPENAI_API_KEY
    timeout: 120
    download_timeout: 30
  approval:                        # dangerous-command approval classifier
    provider: "auto"
    model: ""
    timeout: 30
  compression:                     # summarizer -- legacy compression.summary_* keys migrate here (config v17)
    provider: "auto"
    model: ""
    base_url: ""
    timeout: 120
  title_generation:                # auto-generated session titles after the first exchange
    enabled: true                  # set false to disable auto-titles
    provider: "auto"
    model: ""
    language: ""                   # empty follows the conversation; e.g. "English" pins titles to one language
  tts_audio_tags:    { provider: "auto", model: "" }  # Gemini 3.1 TTS hidden audio-tag insertion
  skills_hub:        { provider: "auto", model: "" }  # skill matching and search
  mcp:               { provider: "auto", model: "" }  # MCP tool dispatch
  triage_specifier:  { provider: "auto", model: "" }  # hermes kanban specify: rough one-liner into a concrete spec, promoted to todo
  kanban_decomposer: { provider: "auto", model: "" }  # hermes kanban decompose: triage task into a graph of child tasks routed to specialist profiles
  profile_describer: { provider: "auto", model: "" }  # hermes profile describe --auto: 1-2 sentence profile descriptions

Kolejne specjalistyczne pozycje mają taką samą strukturę — goal_judge (ocenia spełnienie kontraktu /goal), curator (odgałęzienie przeglądu użycia skill), background_review (odgałęzienie samodoskonalenia uruchamiane po turze), review (subagent recenzujący dla /review), moa_reference i moa_aggregator (Mixture-of-Agents), memory_query_rewrite oraz monitor — a ręczna edycja YAML nie jest w ogóle konieczna: wystarczy uruchomić hermes model i wybrać opcję „Configure auxiliary models”, aby skorzystać z interaktywnego wyboru osobno dla każdego zadania.34

Opcja dostawcy "main" oznacza „użyj dostawcy, z którego korzysta mój główny agent” — jest prawidłowa wyłącznie wewnątrz auxiliary:, compression: oraz głównych wpisów rezerwowych (fallback_providers: lub starszego fallback_model:). Nie jest prawidłowa w ustawieniu najwyższego poziomu model.provider. Jeśli główny model korzysta z niestandardowego punktu końcowego zgodnego z OpenAI, w sekcji model: należy ustawić provider: custom.4

Dlaczego ma to znaczenie: ponieważ auto już korzysta z głównego modelu, dawny problem polegający na tym, że „bez skonfigurowania OpenRouter jakość zadań pomocniczych po cichu spada”, przestał istnieć — kompromisem jest teraz koszt. Jeśli główny model jest kosztownym modelem rozumującym, warto skierować intensywnie używane zadania poboczne do taniego i szybkiego modelu:

auxiliary:
  vision:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"
  compression:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"

System konfiguracji

Hermes ma warstwowy system konfiguracji. Zrozumienie kolejności priorytetów jest kluczowe, ponieważ wyższe warstwy zastępują ustawienia z niższych, a jedną z nich jest globalny rejestr dostawców, którego nie widać w pliku config.yaml.

Układ plików konfiguracyjnych

Zgodnie z dokumentacją projektu Hermes konfigurację tworzą następujące pliki:4

~/.hermes/
├── config.yaml       # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env              # Secrets (API keys, bot tokens, passwords)
├── auth.json         # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md           # Primary agent identity (slot #1 in system prompt)
├── memories/         # Persistent memory (MEMORY.md, USER.md)
├── skills/           # Bundled + agent-created + hub-installed skills
├── cron/             # Scheduled jobs
├── sessions/         # Gateway session state
└── logs/             # agent.log, gateway.log, errors.log (secrets auto-redacted)

config.yaml a .env — gdy ustawienie znajduje się w obu plikach, w przypadku danych niebędących sekretami pierwszeństwo ma config.yaml.4 Obowiązuje następująca zasada: - Sekrety (klucze API, tokeny botów, hasła) → .env - Wszystko inne (model, backend terminala, ustawienia kompresji, limity pamięci, toolsets) → config.yaml

Do sekretów można odwoływać się z pliku config.yaml za pomocą interpolacji w stylu powłoki:4

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}
  delegation:
    api_key: ${DELEGATION_KEY}

Zarządzanie konfiguracją

hermes config                # View current configuration
hermes config show           # Same as above
hermes config edit           # Open config.yaml in your editor
hermes config set KEY VAL    # Set a specific value
hermes config get KEY        # Print a single value (v0.19.0+)
hermes config unset KEY      # Remove a key so the default applies again (v0.19.0+)
hermes config path           # Print the config file path
hermes config env-path       # Print the .env file path
hermes config check          # Check for missing options (after updates)
hermes config migrate        # Interactively add missing options

Przykłady:4

hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-...   # Saves to .env

hermes config check i hermes config migrate należy uruchamiać po każdym wykonaniu hermes update — polecenia te wykrywają nowo dodane opcje konfiguracji, których nie ma jeszcze w używanym pliku.6

Kolejność priorytetów konfiguracji

Hermes wczytuje konfigurację z kilku źródeł. Jeśli ta sama wartość została ustawiona w wielu źródłach, pierwszeństwo ma źródło o wyższym priorytecie:4

  1. Argumenty CLI — hermes chat --model anthropic/claude-sonnet-4 (ustawienie zastępcze dla pojedynczego wywołania)
  2. Zmienne środowiskowe — stosowane podczas uruchamiania procesu
  3. config.yaml — główny plik ustawień
  4. .env — wyłącznie sekrety
  5. Wbudowane wartości domyślne — stosowane, gdy wartość nie została ustawiona w żadnym innym miejscu

Flagi CLI zawsze mają pierwszeństwo w ramach danego wywołania. Długoterminowym źródłem prawdy jest config.yaml.

Lokalizacja (v0.13.0+)

W wersji v0.13.0 dodano 7 wersji językowych komunikatów CLI i gateway: chińską (uproszczoną), japońską, niemiecką, hiszpańską, francuską, ukraińską i turecką.18 Wersja v0.14.0 lokalizuje wszystkie polecenia gateway oraz panel internetowy, dodaje kolejnych 8 wersji językowych i zwiększa ich łączną liczbę do 16.19 W tagu v2026.8.31 drzewo locales/ zawiera 17 katalogów komunikatów — angielski oraz 16 tłumaczeń (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh).33 Dokumentacja jest obecnie dostępna tylko w lokalizacji zh-Hans. Wersja językowa jest ustalana na podstawie zmiennych środowiskowych LC_ALL / LANG albo jawnego klucza locale: w pliku config.yaml. Angielski pozostaje językiem domyślnym i źródłem prawdy dla każdego ciągu znaków, którego nie uwzględniono jeszcze w tłumaczeniu.

Profile — wiele odizolowanych instancji Hermes

Profile umożliwiają korzystanie z wielu odizolowanych instancji Hermes, z których każda ma własną konfigurację, sesje, skills, pamięć i identyfikator PID gateway. W ten sposób można równolegle uruchamiać „służbowy Hermes” i „prywatny Hermes”, bez wzajemnego dostępu do ich stanów.6

hermes profile list
hermes profile create work --clone                  # Clone from current profile
hermes profile use work                             # Set sticky default
hermes profile alias work --name h-work             # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile"    # One-off without switching

Każdy profile otrzymuje własny katalog HERMES_HOME (domyślnie ~/.hermes-<name>/), dzięki czemu gateway może działać równocześnie dla wielu profili bez powodowania między nimi konfliktów.63

Od wersji v0.21.2 granica izolacji jest egzekwowana bardziej rygorystycznie: seria poprawek usunęła rzeczywiste wycieki między profilami w konfiguracjach ze współdzielonym gateway, w których profile dodatkowe mogły dziedziczyć listy dozwolonych elementów profilu domyślnego, wysyłać dane uwierzytelniające do jego hosta, przekazywać jego sekrety ze skarbca serwerom MCP działającym przez stdio albo dołączać pliki .env/auth.json/state.db innego profilu podczas dostarczania przez MEDIA: (#107609-#107630). Jeśli korzysta się ze współdzielenia wielu profili, dopiero od tagu v0.21.2 deklarowana izolacja rzeczywiście działa — zob. Co nowego w wersji v0.21.2.48


Polecenia CLI

Ta sekcja stanowi praktyczny przewodnik po poleceniach najwyższego poziomu CLI. Wiążące informacje oparte na kodzie zawiera źródłowa dokumentacja poleceń CLI.6

Opcje globalne

hermes [global-options] <command> [subcommand/options]
Opcja Opis
--version, -V Wyświetla wersję i kończy działanie
--profile <name>, -p <name> Wybiera profil Hermes, który ma zostać użyty
--resume <session>, -r <session> Wznawia sesję według identyfikatora lub tytułu
--continue [name], -c [name] Wznawia ostatnią sesję (lub sesję o pasującym tytule)
--worktree, -w Uruchamia w odizolowanym git worktree
--in <dir> Przechodzi do DIR przed uruchomieniem lub wznowieniem. W połączeniu z --resume latest lub -c wybierana jest ostatnia sesja dla przestrzeni roboczej DIR, a sesja pozostaje w DIR (pomijane jest przywracanie zapisanego katalogu roboczego)27
--ignore-user-config Ignoruje ~/.hermes/config.yaml i używa wbudowanych wartości domyślnych (dane uwierzytelniające z .env nadal są wczytywane)27
--ignore-rules Pomija automatyczne wstrzykiwanie AGENTS.md, SOUL.md, .cursorrules, pamięci oraz wstępnie załadowanych skills27
--tui Uruchamia nowoczesny TUI zamiast klasycznego REPL27
--cli Wymusza klasyczny REPL oparty na prompt_toolkit (zastępuje display.interface=tui)27
--dev Z --tui: uruchamia źródła TypeScript za pomocą tsx (pomija kompilację dist)27
--yolo Pomija monity o zatwierdzenie niebezpiecznych poleceń
--safe-mode Flaga diagnostyczna — uruchamia Hermes w minimalnym trybie bezpiecznym, aby wyizolować problemy z uruchamianiem (v0.19.0+)56
--pass-session-id Dołącza identyfikator sesji do monitu systemowego agenta

Polecenia najwyższego poziomu

Polecenie Przeznaczenie
hermes chat Czat interaktywny lub jednorazowy
hermes model Interaktywny wybór domyślnego dostawcy i modelu
hermes gateway Uruchamianie gateway wiadomości lub zarządzanie nim
hermes setup Interaktywny kreator konfiguracji
hermes auth Zarządzanie danymi uwierzytelniającymi — dodawanie, wyświetlanie, usuwanie, resetowanie i ustawianie strategii
hermes status Wyświetlanie stanu agenta, uwierzytelniania i platform
hermes cron Sprawdzanie harmonogramu cron i wyzwalanie jego cyklu
hermes webhook Zarządzanie dynamicznymi subskrypcjami webhooków
hermes doctor Diagnozowanie problemów z konfiguracją i zależnościami
hermes dump Podsumowanie konfiguracji gotowe do skopiowania na potrzeby pomocy technicznej i debugowania
hermes logs Wyświetlanie, śledzenie i filtrowanie dzienników agenta, gateway oraz błędów
hermes config Wyświetlanie, edytowanie, migrowanie i odpytywanie konfiguracji
hermes pairing Zatwierdzanie lub unieważnianie kodów parowania komunikatorów
hermes skills Przeglądanie, instalowanie, publikowanie i audytowanie skills
hermes honcho Zarządzanie pamięcią Honcho między sesjami. Dostępność zależy od pluginu: dokumentacja wskazuje, że „podpolecenia właściwe dla pluginów (np. hermes honcho) są rejestrowane automatycznie, gdy ich dostawca jest aktywny”, dlatego polecenie nie pojawia się w hermes --help, jeśli Honcho nie jest aktywnym dostawcą pamięci6
hermes memory Konfigurowanie zewnętrznego dostawcy pamięci
hermes acp Uruchamianie Hermes jako serwera ACP (integracja z edytorem)
hermes mcp Zarządzanie konfiguracją serwera MCP; uruchamianie Hermes jako serwera MCP
hermes plugins Zarządzanie pluginami
hermes tools Konfigurowanie narzędzi włączonych na poszczególnych platformach
hermes sessions Przeglądanie, eksportowanie, porządkowanie i usuwanie sesji. W v0.19.0 polecenie hermes sessions export rozszerzono o formaty Markdown, Quarto, HTML, obejmujące wyłącznie monity oraz ślady Hugging Face, a także opcjonalne czyszczenie sekretów za pomocą --redact i filtry wieku, przestrzeni roboczej oraz platformy56; hermes sessions recover odbudowuje kanoniczne dane sesji z uszkodzonego state.db w osobnej NOWEJ bazie danych, w trybie offline i bez modyfikowania źródła, natomiast --inspect-only raportuje możliwość odczytu tabel kanonicznych bez tworzenia bazy (wskazana ścieżka odzyskiwania w v0.21.2)48; hermes sessions set-journal-mode delete\|wal (z okresu v0.21.4) konwertuje magazyn między trybem WAL a dziennikiem wycofywania w trybie offline — odmawia działania, gdy dowolny obcy proces korzysta z bazy danych lub pliku pomocniczego, przełącza tryb bez oczekiwania na zamknięcie uchwytów, następnie weryfikuje bajty 18/19 nagłówka SQLite i przyjmuje --db dla magazynu innego niż domyślny. Najpierw należy zatrzymać gateway, dashboard oraz każdy proces CLI; w systemie Windows, gdzie skanowanie procesów korzystających z plików nie jest dostępne, polecenie odmawia działania do czasu przekazania --force po samodzielnym zatrzymaniu wszystkich procesów Hermes. Obsługa została celowo zaprojektowana do pracy offline, dzięki czemu polecenie nigdy nie otwiera konwertowanego magazynu, a hermes doctor wskazuje teraz to rozwiązanie51
hermes insights Wyświetlanie analiz tokenów, kosztów i aktywności
hermes claw Narzędzia pomocnicze do migracji z OpenClaw
hermes profile Zarządzanie profilami (wieloma odizolowanymi instancjami)
hermes completion Wyświetlanie skryptów uzupełniania dla powłoki (bash/zsh)
hermes whatsapp Konfigurowanie i parowanie mostu WhatsApp
hermes --version (-V) Wyświetlanie informacji o wersji. Jest to flaga globalna, a nie podpolecenie: w tagu v2026.8.31 zbiór _BUILTIN_SUBCOMMANDS nie zawiera wpisu version, a szybka ścieżka uruchamiania rozpoznaje wyłącznie --version / -V27
hermes update Pobieranie najnowszego kodu i ponowne instalowanie zależności
hermes uninstall Usuwanie Hermes z systemu (--full usuwa również konfigurację i dane)
hermes backup Pełna kopia zapasowa konfiguracji, sesji, skills i pamięci (v0.9.0+)16
hermes import Przywracanie z archiwum kopii zapasowej — migracja między komputerami lub powrót do wcześniejszego stanu (v0.9.0+)16
hermes dashboard Uruchamianie lokalnego panelu internetowego do zarządzania agentem w przeglądarce (v0.9.0+)16
hermes serve Uruchamianie backendowego serwera API bez interfejsu — od v0.19.0 nie kompiluje ani nie montuje internetowego interfejsu użytkownika56
hermes debug share Przesyłanie pełnego raportu debugowania do serwisu pastebin w celu udostępnienia podczas rozwiązywania problemów (v0.9.0+)16
hermes approvals Narzędzia monitów zatwierdzania: suggest analizuje historię zatwierdzeń i tworzy propozycje dla command_allowlist; test przeprowadza bez wykonywania polecenia próbną ocenę, czy zostanie ono zatwierdzone („nigdy go nie wykonuje”; obsługuje --backend i --json). Informacje o wydaniu v0.21.0 określają ten test jako hermes approval-check, lecz w tagu v2026.8.31 nie istnieje podpolecenie approval-check — właściwy interfejs to hermes approvals test2740
hermes bundles Tworzenie pakietów skills, wyświetlanie ich i zarządzanie nimi (aliasy dla wielu skills dostępnych pod jednym poleceniem slash /<name>)27
hermes checkpoints Sprawdzanie, porządkowanie i czyszczenie ~/.hermes/checkpoints/, czyli magazynu pomocniczego polecenia /rollback; uruchomienie bez argumentów wyświetla ogólny stan27
hermes computer-use Zarządzanie backendem Computer Use (cua-driver) w systemach macOS, Windows i Linux27
hermes console Otwieranie bezpiecznej konsoli poleceń Hermes27
hermes curator Konserwacja skills w tle (curator): stan, uruchamianie, wstrzymywanie i przypinanie27
hermes egress Zarządzanie zaporą iron-proxy, która wstrzykuje dane uwierzytelniające dla ruchu wychodzącego ze zdalnych terminali sandbox (domyślnie wyłączona)27
hermes fallback Zarządzanie dostawcami rezerwowymi, używanymi po awarii modelu podstawowego27
hermes hooks Sprawdzanie skryptowych hooków powłoki i zarządzanie nimi: list, test <event>, revoke oraz doctor (bit wykonywania, allowlista, rozbieżność czasu modyfikacji, poprawność JSON, czas syntetycznego uruchomienia)27
hermes import-agent Importowanie konfiguracji Claude Code (~/.claude) lub Codex CLI (~/.codex) do Hermes27
hermes desktop (alias gui) Kompilowanie i uruchamianie natywnej aplikacji desktopowej Electron27
hermes kanban Tablica współpracy między profilami (zadania, łącza, komentarze) z tablicami, grafem roju (swarm: równolegli pracownicy → weryfikator → syntezator) i dyspozytorem27
hermes login / hermes logout Przestarzałe. Do zarządzania danymi uwierzytelniającymi należy używać hermes auth, do wyboru dostawcy — hermes model, a do pełnej konfiguracji — hermes setup27
hermes lsp Zarządzanie Language Server Protocol: status, list, install <server>, install-all i restart (zamyka działających klientów LSP; kolejna edycja uruchamia ich ponownie)27
hermes migrate Migrowanie konfiguracji wycofanych modeli lub przestarzałych ustawień27
hermes moa Konfigurowanie slotów dostawców i modeli Mixture of Agents (nazwane ustawienia wstępne dostępne w selektorze modeli)27
hermes journey (aliasy learning, memory-graph) Oś czasu przedstawiająca skills i wspomnienia poznane z biegiem czasu27
hermes monitoring Sprawdzanie monitorowania gateway (eksport stanu i diagnostyki); status wyświetla ustawienia, stan eksportu i sposób redagowania danych27
hermes pause / hermes resume Zatrzymanie awaryjne: pause wstrzymuje wysyłanie zadań cron/kanban i nowe tury gateway, a resume je wznawia27
hermes peer Bezpośrednie wiadomości między botami na różnych komputerach: add, list i remove zarządzają równorzędnymi gateway Hermes, a dm wysyła wiadomość do agenta na jednym z nich i wyświetla jego odpowiedź27
hermes pets Przeglądanie, instalowanie i wybieranie animowanych zwierzaków petdex27
hermes portal Konfigurowanie Nous Portal (logowanie, wybór modelu, Tool Gateway): login (domyślnie), info, open, tools; zob. Nous Tool Gateway2728
hermes project Zarządzanie projektami (nazwanymi przestrzeniami roboczymi obejmującymi wiele folderów): tworzenie, wyświetlanie, pokazywanie szczegółów, dodawanie i usuwanie folderów, zmiana nazwy, ustawianie folderu głównego, używanie, archiwizowanie, przywracanie oraz wiązanie tablicy kanban27
hermes proxy Lokalny serwer proxy zgodny z OpenAI dla dostawców OAuth: start, status, providers27
hermes prompt-size Wyświetlanie rozmiaru monitu systemowego i schematów narzędzi w bajtach; działa offline27
hermes send Wysyłanie wiadomości na skonfigurowaną platformę bez pętli agenta i bez LLM (skrypty, zadania cron, CI)27
hermes skin Wyświetlanie, przełączanie i dostosowywanie skórek (list, use, set)27
hermes slack Narzędzia pomocnicze integracji ze Slack: manifest wyświetla lub zapisuje manifest aplikacji Slack, w którym każde polecenie gateway jest zarejestrowane jako natywne polecenie slash27
hermes sync Skill Sync między urządzeniami i w zespole: status, pull, push, now, enable, disable, device, propose27
hermes whatsapp-cloud Konfigurowanie integracji WhatsApp Business Cloud API (odrębnej od mostu kont osobistych Baileys obsługiwanego przez hermes whatsapp)27
hermes worktree Audytowanie i odzyskiwanie nagromadzonych git worktrees oraz scalonych gałęzi. list (aliasy ls, audit; polecenie domyślne) klasyfikuje każde drzewo według wieku, rozmiaru, werdyktu i uzasadnienia; prune usuwa bezpieczne drzewa i całkowicie scalone gałęzie lokalne. Oba przyjmują --repo <root>; prune obsługuje ponadto --dry-run (wyświetlenie planu bez wprowadzania zmian), --trees-only i --branches-only. Polecenie nigdy nie usuwa niezatwierdzonych zmian w śledzonych plikach, unikatowych niewypchniętych commitów ani używanych drzew; pliki robocze zawierające wyłącznie nieśledzone zmiany są przed usunięciem archiwizowane w ~/.hermes/archive/worktree-prune/27
hermes secrets Zarządzanie zewnętrznymi źródłami sekretów (Bitwarden, 1Password), z których przy uruchamianiu procesu pobierane są klucze API27
hermes security Audyt łańcucha dostaw (OSV.dev) dla venv, pluginów i serwerów MCP (audit)27
hermes verify Wykrywanie sposobu uruchamiania projektu i wykonywanie testu dymnego27

hermes chat — główny punkt wejścia

Polecenie hermes bez argumentów otwiera interaktywny czat. hermes chat jest jego jawną postacią z opcjami:6

hermes chat -q "Summarize the latest PRs" --oneshot # Answer and exit (without --oneshot, a TTY seeds an interactive session)
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills          # Enable specific toolsets
hermes chat --quiet -q "Return only JSON"           # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"

Najważniejsze opcje:

Opcja Opis
-q, --query "..." Zapytanie do wykonania. Zmiana w v0.21.0: w rzeczywistym TTY inicjuje teraz sesję interaktywną (przesyłane dosłownie jako pierwsza tura); w połączeniu z --oneshot lub -Q, a także poza TTY, odpowiada i kończy działanie — tak jak w poprzednim trybie jednorazowym40
--query-file PATH Odczytuje pojedyncze zapytanie z pliku zamiast z wiersza poleceń (- odczytuje stdin). Powłoka nie interpretuje żadnej zawartości, dlatego cudzysłowy, $(...) i backticki są przekazywane dosłownie; nie można łączyć z -q51
--oneshot Z -q/--query-file: odpowiada na zapytanie i kończy działanie (starszy tryb pojedynczego zapytania). Włączane automatycznie dla strumieni standardowych innych niż TTY oraz przez -Q/--quiet40
-m, --model <model> Zastępuje model na czas tego uruchomienia
-t, --toolsets <csv> Włącza rozdzielony przecinkami zestaw toolsets
--provider <provider> Wymusza dostawcę (zob. pełną listę)
-s, --skills <name> Wstępnie ładuje co najmniej jeden skill dla tej sesji
-v, --verbose Szczegółowe dane wyjściowe
-Q, --quiet Tryb programistyczny (bez banera, wskaźnika postępu i podglądów)
--format <fmt> Format danych wyjściowych w trybie pojedynczego zapytania (-q lub --query-file): text (domyślnie) wyświetla końcową odpowiedź jako zwykły tekst; stream-json emituje rozdzielone znakami nowego wiersza zdarzenia JSON (JSONL) — zdarzenie system/init, przyrosty text, zdarzenia tool_use/tool_result, a następnie jedną końcową kopertę result z kodem wyjścia, końcowym tekstem i statystykami tokenów. stream-json implikuje --quiet, wymaga -q lub --query-file (bez nich zwraca kod 2) i nie może być łączone z --tui; diagnostyka i identyfikator sesji pozostają na stderr, a dane wyjściowe narzędzia są ograniczone do 5 000 znaków na zdarzenie (okres v0.21.4)51
--resume <session> Wznawia sesję bezpośrednio z chat
--worktree Tworzy odizolowany git worktree
--checkpoints Włącza checkpointy systemu plików przed destrukcyjnymi zmianami
--yolo Pomija monity zatwierdzania
--source <tag> Znacznik źródła sesji (domyślnie: cli; dla integracji należy użyć tool)
--max-turns <N> Maksymalna liczba iteracji wywoływania narzędzi w jednej turze rozmowy (domyślnie 500 od v0.20.0 lub wartość agent.max_turns z konfiguracji)40

hermes setup — pełny kreator

Uruchamia pełny kreator konfiguracji lub przechodzi bezpośrednio do jednej z jego sekcji:6

hermes setup                 # Full wizard
hermes setup model           # Provider and model only
hermes setup terminal        # Terminal backend only
hermes setup gateway         # Messaging platforms only
hermes setup tools           # Tool enable/disable per platform
hermes setup agent           # Agent behavior only
hermes setup --non-interactive
hermes setup --reset         # Reset config to defaults before setup

hermes logs — strukturalne odpytywanie dzienników

hermes logs oferuje większe możliwości niż tail -f uruchomione dla plików dziennika, ponieważ pozwala jednocześnie filtrować według poziomu, identyfikatora sesji i zakresu czasu.6

hermes logs                          # Last 50 lines of agent.log
hermes logs -f                       # Follow in real time
hermes logs gateway -n 100           # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h   # Warnings from the last hour
hermes logs --session abc123         # Filter by session ID substring
hermes logs errors --since 30m -f    # Follow errors.log from 30m ago
hermes logs list                     # List all log files with sizes

Pliki dziennika znajdują się w ~/.hermes/logs/:6 - agent.log — cała aktywność agenta (wywołania API, kierowanie narzędzi, cykl życia sesji, poziom INFO i wyższe) - errors.log — tylko ostrzeżenia i błędy (odfiltrowany podzbiór agent.log) - gateway.log — aktywność gateway wiadomości (połączenia z platformami, kierowanie, webhooki)

Rotacja odbywa się automatycznie za pomocą RotatingFileHandler z Python — należy szukać plików agent.log.1, agent.log.2 itd.6

hermes doctor — diagnostyka

hermes doctor [--fix] to pierwsze polecenie, które należy uruchomić, gdy coś nie działa. Sprawdza poprawność konfiguracji, obecność zależności, dostępność klucza API i stan usług, a po użyciu --fix może podjąć próbę automatycznej naprawy.6

Aby udostępnić diagnostykę innej osobie, należy użyć hermes dump — polecenie tworzy zwięzłe podsumowanie w zwykłym tekście, z ukrytymi kluczami API, gotowe do wklejenia do zgłoszenia GitHub lub wątku na Discord.6


Polecenia slash

Polecenia slash działają w ramach aktywnej sesji czatu (CLI lub platformy komunikacyjnej). Są wywoływane ze wspólnego rejestru COMMAND_REGISTRY w pliku hermes_cli/commands.py, dlatego większość poleceń działa identycznie we wszystkich interfejsach.9

Sterowanie sesją

Polecenie Opis
/new (alias /reset) Rozpoczęcie nowej sesji
/clear Wyczyszczenie ekranu i rozpoczęcie nowej sesji
/history Wyświetlenie historii rozmowy
/save Zapisanie bieżącej rozmowy
/retry Ponowienie ostatniej wiadomości
/undo Usunięcie ostatniej wymiany wiadomości między użytkownikiem a asystentem
/title <name> Ustawienie tytułu bieżącej sesji
/compress Ręczna kompresja kontekstu rozmowy
/rollback [number] Wyświetlenie lub przywrócenie checkpointów systemu plików
/stop Zakończenie wszystkich działających procesów w tle
/status Wyświetlenie informacji o sesji, modelu, tokenach i kontekście — od wydania v0.20.5 obejmuje również tryb rozumowania, oczekujące zatwierdzenia i wykorzystanie kontekstu4035
/queue <prompt> Dodanie promptu do kolejki na następną turę. Uwaga: /q jest przypisane zarówno do /queue, jak i /quit; obowiązuje ostatnia rejestracja, więc w praktyce /q wywołuje /quit — należy zawsze wpisywać pełne polecenie /queue.9
/resume [name] Wznowienie wcześniej nazwanej sesji
/statusbar (alias /sb) Włączenie lub wyłączenie paska stanu kontekstu/modelu
/background <prompt> (alias /bg) Uruchomienie promptu w osobnej sesji w tle
/btw <question> Tymczasowe pytanie poboczne (bez narzędzi i bez zapisywania)
/plan [request] Załadowanie dołączonego skill plan, aby przygotować plan zamiast wykonywać zadanie
/branch [name] (alias /fork) Utworzenie odgałęzienia bieżącej sesji
/goal <target> Skupienie agenta na celu, aby pozostawał przy zadaniu przez kolejne tury. Wzorzec pętli Ralph jako pełnoprawny mechanizm. Konfigurowalny limit tur. Nowość w v0.13.0.18
/subgoal <criterion> Dodanie kryteriów sukcesu do aktywnego /goal bez ponownego uruchamiania pętli. Nowość w v0.14.0.19
/handoff <target> Przeniesienie aktywnej sesji — wiadomości, wywołań narzędzi i kontekstu — do innego modelu, persony lub profile. Nowość w v0.14.0.19
/worktree [new [name]\|list\|prune [--dry-run]] Przeglądanie, tworzenie lub odzyskiwanie izolowanych git worktree bez opuszczania sesji. new tworzy worktree w katalogu .worktrees/ repozytorium i przenosi do niego sesję; list wyświetla ich listę; prune przeprowadza to samo nadzorowane odzyskiwanie co hermes worktree prune i zgodnie z dokumentacją „nigdy nie modyfikuje drzewa, w którym działa sesja”27

Konfiguracja i model

Polecenie Opis
/config Wyświetlenie bieżącej konfiguracji
/model [model-name] Wyświetlenie lub zmiana bieżącego modelu
/provider Wyświetlenie dostępnych dostawców i bieżącego dostawcy
/personality [name] Ustawienie nakładki osobowości
/verbose Przełączanie sposobu wyświetlania postępu narzędzi
/reasoning Zarządzanie poziomem rozumowania i jego sposobem wyświetlania. W v0.19.0 dodano poziomy max i ultra, a ustawienie /reasoning ograniczono do bieżącej sesji; w konfiguracji dostępne są również ustawienia poziomu dla poszczególnych modeli i slotów MoA56
/skin Wyświetlenie lub zmiana skórki/motywu interfejsu
/voice [on\|off\|tts\|status] Włączenie lub wyłączenie trybu głosowego CLI
/yolo Włączenie lub wyłączenie trybu YOLO (pomijanie próśb o zatwierdzenie). Od v0.19.0 zdefiniowane przez użytkownika reguły odmowy nadal blokują pasujące polecenia nawet w trybie YOLO56
/fast Włączenie lub wyłączenie Fast Mode — priorytetowego przetwarzania dla modeli OpenAI i Anthropic (v0.9.0+)16
/debug Szybka diagnostyka na wszystkich platformach (v0.9.0+)16
/subscription Zarządzanie planem Nous Portal z poziomu terminala — sprawdzenie planu i pozostałego limitu, podgląd kosztu przejścia na wyższy lub niższy plan oraz zastosowanie zmiany z możliwością cofnięcia (v0.19.0+)56
/topup Dodanie środków do salda Nous Portal bez opuszczania terminala (v0.19.0+)56

Polecenie /model jest podstawowym narzędziem do zmiany dostawcy w trakcie sesji:9

/model                              # Show current model and options
/model claude-sonnet-4              # Switch model (auto-detect provider)
/model zai:glm-5                    # Switch provider:model
/model custom:qwen-2.5              # Use model on custom endpoint
/model custom                       # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5        # Named custom provider
/model openrouter:anthropic/claude-sonnet-4   # Back to cloud

W v0.19.0 dodano /model --once — jednorazową zmianę modelu na jedną turę, po której odpowiedzi automatycznie przywracany jest poprzedni model.56 Od wydania v0.20.5 selektor /model obsługuje również wyszukiwanie rozmyte: filtruje wyniki podczas wpisywania.2335

Narzędzia, skills i informacje

Polecenie Opis
/tools [list\|disable\|enable] [name...] Zarządzanie narzędziami w bieżącej sesji
/toolsets Wyświetlenie dostępnych toolset
/browser [connect\|disconnect\|status] Zarządzanie lokalnym połączeniem Chrome CDP
/skills Wyszukiwanie, instalowanie, przeglądanie lub zarządzanie skills
/cron Zarządzanie zaplanowanymi zadaniami
/reload-mcp Ponowne wczytanie serwerów MCP z config.yaml
/plugins Wyświetlenie zainstalowanych wtyczek
/help Wyświetlenie wszystkich poleceń
/usage Wyświetlenie wykorzystania tokenów, kosztu i czasu trwania
/insights Wyświetlenie analityki użycia (ostatnie 30 dni)
/platforms Wyświetlenie stanu platform komunikacyjnych
/profile Wyświetlenie nazwy i katalogu domowego aktywnego profile
/palette Otwarcie palety poleceń z wyszukiwaniem rozmytym (również Ctrl+P) — umożliwia przeszukiwanie każdego polecenia i skill. Funkcja wprowadzona w wydaniu v0.20.54035

Dynamiczne polecenia slash dla skills

Każdy zainstalowany skill jest automatycznie udostępniany jako polecenie slash:9

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw       # Just the skill name loads it and lets the agent ask what you need

Od v0.19.0 wywołania skills za pomocą poleceń slash można łączyć: /skill-a /skill-b do XYZ ładuje oba skills po kolei w ramach jednej tury, z autouzupełnianiem i tekstem podpowiedzi dla połączonych nazw.56

W config.yaml można również definiować szybkie polecenia, które przypisują krótkiej nazwie dłuższy prompt:9

quick_commands:
  review: "Review my latest git diff and suggest improvements"
  deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
  morning: "Check my calendar, unread emails, and summarize today's priorities"

Następnie w CLI można wpisać /review, /deploy lub /morning.

Dopasowywanie prefiksów

Polecenia obsługują dopasowywanie prefiksów: wpisanie /h wywołuje /help, a /mod — /model. Jeśli prefiks jest niejednoznaczny, obowiązuje pierwsza pozycja zgodnie z kolejnością w rejestrze. Pełne nazwy poleceń i zarejestrowane aliasy zawsze mają pierwszeństwo przed dopasowaniami prefiksów.9

Polecenia specyficzne dla platform komunikacyjnych

Niektóre polecenia działają wyłącznie na platformach komunikacyjnych (Telegram, Discord, Slack, WhatsApp, Signal, Email, Home Assistant):9

  • /status — wyświetlenie informacji o sesji (nie jest już ograniczone do platform komunikacyjnych; zob. Sterowanie sesją)
  • /sethome (alias /set-home) — oznaczenie bieżącego czatu jako głównego dla danej platformy
  • /approve [session|always] — zatwierdzenie oczekującego niebezpiecznego polecenia
  • /deny [reason] — odrzucenie oczekującego niebezpiecznego polecenia. Od v0.19.0 /deny <reason> przekazuje agentowi powód odmowy, aby mógł skorygować działanie zamiast ponawiać próbę bez informacji zwrotnej56
  • /update — aktualizacja Hermes Agent do najnowszej wersji
  • /commands [page] — przeglądanie wszystkich poleceń i skills (z podziałem na strony)

Niektóre są natomiast dostępne wyłącznie w CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9


Narzędzia i toolsets

Hermes zawiera rozbudowany, wbudowany rejestr narzędzi obejmujący wyszukiwanie w internecie, automatyzację przeglądarki, wykonywanie poleceń w terminalu, edycję plików, pamięć, delegowanie zadań, trenowanie RL, dostarczanie wiadomości, integrację z Home Assistant i wiele innych funkcji.10 Narzędzia są uporządkowane w logiczne toolsets, które można włączać lub wyłączać osobno dla każdej platformy.

Kategorie ogólne

Kategoria Przykłady Opis
Internet web_search, web_extract Przeszukiwanie internetu i wyodrębnianie zawartości stron
Terminal i pliki terminal, process, read_file, patch Wykonywanie poleceń i operacje na plikach
Przeglądarka browser_navigate, browser_snapshot, browser_vision Interaktywna automatyzacja przeglądarki z wykorzystaniem tekstu i obrazu
Multimedia vision_analyze, video_analyze, video_generate, image_generate, text_to_speech Multimodalna analiza i generowanie. video_analyze korzysta przede wszystkim z Gemini i oferuje rozszerzalną obsługę zgodnych dostawców modeli multimodalnych (od wersji 0.13.0). Wersja 0.14.0 dodaje ujednolicone narzędzie video_generate z wymiennymi backendami dostawców oraz przekazuje nieprzetworzone piksele do vision_analyze, gdy aktywny model obsługuje analizę obrazu.1819
Orkiestracja agentów todo, clarify, execute_code, delegate_task Planowanie, doprecyzowywanie, wykonywanie kodu i delegowanie zadań subagentom
Obsługa komputera computer_use Sterowanie pulpitem za pośrednictwem backendu cua-driver; od wersji 0.14.0 funkcja działa z dostawcami innymi niż Anthropic, których modele obsługują analizę obrazu.19
Pamięć i wyszukiwanie memory, session_search Trwała pamięć i przeszukiwanie sesji
Automatyzacja i dostarczanie cronjob, send_message Zaplanowane zadania i wysyłanie wiadomości
Integracje ha_*, narzędzia MCP, rl_* Home Assistant, MCP, trenowanie RL

Do często używanych nazw toolsets należą web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant oraz rl.10

Zarządzanie narzędziami

hermes chat --toolsets "web,terminal"       # Use specific toolsets
hermes tools                                # Interactive per-platform tool config
hermes tools --summary                      # Print enabled-tools summary

Narzędzia można również przełączać w trakcie sesji za pomocą /tools disable <name> i /tools enable <name>. Powoduje to zresetowanie sesji, aby nowy zestaw narzędzi zaczął obowiązywać.9

Backendy terminala

Narzędzie terminalowe zawiera siedem wbudowanych backendów wykonawczych — a od wersji 0.20.6 zestaw ten można rozszerzać za pomocą pluginów, podobnie jak listę wyboru dostawców (zob. niżej):1024

Backend Zastosowanie
local Uruchamianie na własnym komputerze (domyślne) — programowanie, zaufane zadania
docker Izolowane kontenery — bezpieczeństwo, powtarzalność
ssh Zdalny serwer — sandbox, odseparowanie agenta od jego własnego kodu
singularity Kontenery HPC — obliczenia klastrowe bez uprawnień root
modal Bezserwerowe wykonywanie w chmurze
daytona Chmurowe środowisko sandbox — trwałe, zdalne środowisko programistyczne
vercel_sandbox Chmurowa maszyna microVM Vercel Sandbox — wykonywanie w chmurze z trwałym systemem plików opartym na migawkach. Należy zainstalować hermes-agent[vercel], ustawić terminal.vercel_runtime (node24, node22 lub python3.13) i uwierzytelnić się za pomocą VERCEL_TOKEN, VERCEL_PROJECT_ID oraz VERCEL_TEAM_ID; domyślnym katalogiem głównym zdalnego obszaru roboczego jest /vercel/sandbox24

Backend można zmienić za pomocą hermes config set terminal.backend <name> lub w pliku config.yaml:

terminal:
  backend: docker      # or: local, ssh, singularity, modal, daytona, vercel_sandbox
  cwd: "."             # Working directory
  timeout: 180         # Command timeout in seconds

Backendy pluginów (od wersji 0.20.6). Zewnętrzni dostawcy środowisk sandbox nie muszą już trafiać do głównego repozytorium: podczas ładowania plugin rejestruje TerminalEnvironmentProvider za pomocą PluginContext.register_terminal_environment_provider, a zarejestrowaną nazwę można wybrać przez terminal.backend dokładnie tak samo jak nazwę wbudowaną. Nazwy wbudowane są zarezerwowane — rejestr odrzuca dostawcę, którego nazwa koliduje z backendem obecnym w repozytorium — a zarejestrowany backend automatycznie pojawia się we wszystkich podstawowych elementach systemu (wyborze backendu w hermes setup, stanie testu połączenia w panelu, kontrolach hermes doctor, obsłudze ścieżek i katalogu cwd kontenera oraz usuwaniu sekretów), ponieważ każdy punkt klasyfikacji korzysta z rejestru zamiast zakodowanej na stałe listy nazw.32

Backend SSH (zalecany ze względów bezpieczeństwa — agent nie może modyfikować własnego kodu):10

terminal:
  backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Backend Docker:

terminal:
  backend: docker
  docker_image: python:3.11-slim

Zasoby kontenera (dotyczy docker, singularity, modal i daytona):10

terminal:
  container_cpu: 1
  container_memory: 5120          # MB (default 5GB)
  container_disk: 51200           # MB (default 50GB)
  container_persistent: true      # Persist filesystem across sessions

Przy ustawieniu container_persistent: true zainstalowane pakiety, pliki i konfiguracja pozostają zachowane między sesjami.10

Wszystkie backendy kontenerowe korzystają ze wzmocnionych zabezpieczeń: system plików głównego katalogu tylko do odczytu (Docker), usunięte wszystkie uprawnienia systemu Linux poza DAC_OVERRIDE, CHOWN i FOWNER, brak możliwości podnoszenia uprawnień, limity PID (256 procesów), pełna izolacja przestrzeni nazw oraz trwały obszar roboczy oparty na woluminach.10

Procesy w tle

Narzędzie terminalowe obsługuje wykonywanie w tle wraz z jawnym zarządzaniem procesami:10

terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}

process(action="list")                            # Show all running processes
process(action="poll", session_id="proc_abc123")  # Check status
process(action="wait", session_id="proc_abc123")  # Block until done
process(action="log", session_id="proc_abc123")   # Full output
process(action="kill", session_id="proc_abc123")  # Terminate
process(action="write", session_id="proc_abc123", data="y")  # Send input

Tryb PTY (pty=true) umożliwia interaktywną obsługę narzędzi CLI, takich jak Codex i Claude Code.10

Sudo

Jeśli polecenie wymaga sudo, Hermes poprosi o hasło, które zostanie zapisane w pamięci podręcznej na czas sesji. Można też ustawić SUDO_PASSWORD w ~/.hermes/.env.10


Wieloagentowa tablica Kanban (od wersji 0.13.0)

Wersja 0.13.0 przekształca współpracę wielu agentów w pełnoprawny mechanizm: trwałą tablicę Kanban, która śledzi zadania, ich stan oraz tożsamość workerów między agentami i po ponownych uruchomieniach.18 Dzięki tablicy rój workerów Hermes rzeczywiście kończy pracę, zamiast zatrzymywać się przez nieudane przekazanie zadań.

Mechanizm Działanie
Sygnały heartbeat Każdy worker wysyła puls, dopóki jest właścicielem zadania. Brak sygnału heartbeat oznacza workera jako podejrzanego i zwalnia zadanie do ponownego przejęcia.
Ponowne przejęcie Inny worker może przejąć porzucone zadanie wraz z pełnym stanem zadania i wcześniejszym częściowym wynikiem.
Wykrywanie zombie Workery, które zakończą działanie bez oznaczenia zadania jako ukończonego, są automatycznie blokowane przed podejmowaniem kolejnych zadań, co zapobiega gromadzeniu martwych tożsamości w roju.
Bramka halucynacji Jeśli wynik nie przejdzie kontroli, zadanie wraca na tablicę wraz z podanym powodem, zamiast zostać oznaczone jako ukończone.
max_retries dla każdego zadania Umożliwia zastąpienie domyślnego limitu ponownych prób dla zadania, o którym wiadomo, że jest podatne na błędy.
Tablice dla wielu projektów Jeden katalog domowy Hermes może obsługiwać kilka niezależnych tablic.

Tablica Kanban naturalnie współpracuje z /goal (pętlą Ralph z zablokowanym celem) po stronie celu oraz z istniejącym narzędziem delegate_task w zakresie uruchamiania workerów. W rezultacie powstaje wzorzec roju, w którym każdy agent korzysta z jednego źródła prawdy o tym, co należy zrobić dalej, kto się tym zajmuje i co jest zablokowane.

Czym jest rój Hermes?

Rój to kilku workerów Hermes działających równolegle na jednej współdzielonej tablicy Kanban. Nie jest to osobny podsystem, który trzeba włączyć — stanowi możliwość zapewnianą przez tablicę. Tablica dostarcza jednej rzeczy, której równolegli agenci nie mogą zapewnić samodzielnie: jednej autorytatywnej odpowiedzi na pytanie: co należy podjąć w następnej kolejności i czy ktoś już nad tym pracuje?

W wersji 0.15.0 wzorzec ten stał się oficjalnie obsługiwaną topologią. Dodano topologię roju do równoległej koordynacji workerów, automatyczny podział ogólnego celu na podzadania, nadpisywanie modelu dla poszczególnych zadań, zaplanowane zadania oraz zarządzanie worktree, dzięki któremu równolegli workerzy nie powodują konfliktów w tej samej kopii roboczej.59

Problem w naiwnym środowisku wieloagentowym Co zamiast tego robi tablica
Dwóch workerów podejmuje to samo zadanie Własność zadania zostaje przypisana wraz z zapisem tożsamości workera
Worker przerywa działanie w trakcie zadania, a praca przepada Sygnał heartbeat wygasa, a zadanie zostaje przejęte wraz z wcześniejszym częściowym wynikiem
Worker po awarii bez końca „przetrzymuje” zadania Mechanizm wykrywania zombie blokuje go przed podejmowaniem nowych zadań
Jeden kosztowny model obsługuje każde podzadanie Nadpisywanie modelu dla poszczególnych zadań — tańsze modele do mechanicznych podzadań
Równolegli workerzy edytują te same pliki Zarządzanie worktree izoluje kopię roboczą każdego workera

W praktyce należy przekazać rojowi cel, pozwolić mechanizmowi automatycznego podziału rozbić go na zadania na tablicy, a następnie umożliwić workerom podejmowanie i wykonywanie zadań oraz zwracanie wyników. Limit ponownych prób jest określany dla każdego zadania (max_retries), dlatego jedno podatne na błędy podzadanie nie wyczerpuje tolerancji całego przebiegu. Ponieważ tablica jest trwała, rój może wznowić działanie po ponownym uruchomieniu — workery ponownie się dołączają i kontynuują pracę na tym samym stanie.

Rój jest tylko tak dobry, jak jego podział zadań. Tablica koordynuje workery, ale nie zmieni źle podzielonego celu w dobry. Zadania współdzielące ukryty stan nadal będą ze sobą kolidować, niezależnie od użycia worktree.

System skills

Skills to dokumenty wiedzy ładowane na żądanie, z których agent może korzystać w razie potrzeby. Wykorzystują model stopniowego ujawniania informacji, aby ograniczyć zużycie tokenów, i są zgodne z otwartym standardem agentskills.io.11

Wszystkie skills znajdują się w ~/.hermes/skills/ — jest to główny katalog i źródło prawdy. Podczas nowej instalacji skills dołączone do pakietu są kopiowane z repozytorium. Trafiają tam również skills zainstalowane z huba oraz utworzone przez agenta.11

Stopniowe ujawnianie informacji

Level 0: skills_list()           → [{name, description, category}, ...]   (~3k tokens)
Level 1: skill_view(name)        → Full content + metadata                 (varies)
Level 2: skill_view(name, path)  → Specific reference file                 (varies)

Agent ładuje pełną treść skill dopiero wtedy, gdy rzeczywiście jej potrzebuje.11

Format SKILL.md

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]      # Optional — restrict to OS platforms
metadata:
  hermes:
    tags: [python, automation]
    category: devops
    fallback_for_toolsets: [web]     # Conditional activation
    requires_toolsets: [terminal]    # Conditional activation
    config:                          # Config.yaml settings
      - key: my.setting
        description: "What this controls"
        default: "value"
        prompt: "Prompt for setup"
---

# Skill Title

## When to Use
Trigger conditions for this skill.

## Procedure
1. Step one
2. Step two

## Pitfalls
- Known failure modes and fixes

## Verification
How to confirm it worked.

Aktywacja warunkowa

Skills mogą być wyświetlane lub ukrywane zależnie od dostępności określonych narzędzi. Jest to szczególnie przydatne w przypadku skills pełniących funkcję rozwiązania awaryjnego — bezpłatnych lub lokalnych alternatyw, które powinny pojawiać się wyłącznie wtedy, gdy narzędzie premium jest niedostępne:11

Pole Działanie
fallback_for_toolsets Skill jest ukryty, gdy wymienione toolsets są dostępne
fallback_for_tools Tak samo, ale sprawdzane są poszczególne narzędzia
requires_toolsets Skill jest ukryty, gdy wymienione toolsets są niedostępne
requires_tools Tak samo, ale sprawdzane są poszczególne narzędzia

Przykład: wbudowany skill duckduckgo-search używa ustawienia fallback_for_toolsets: [web]. Gdy ustawiono FIRECRAWL_API_KEY, web toolset jest dostępny, a agent korzysta z web_search — skill DuckDuckGo pozostaje ukryty. Bez klucza API skill DuckDuckGo automatycznie pojawia się jako rozwiązanie awaryjne.11

Skills zarządzane przez agenta

Agent może tworzyć, aktualizować i usuwać własne skills za pomocą narzędzia skill_manage. Stanowi to pamięć proceduralną agenta — gdy opracuje on nietrywialny sposób realizacji zadania, zapisuje to podejście jako skill do wykorzystania w przyszłości.11

Kiedy agent tworzy skills:11 - Po pomyślnym wykonaniu złożonego zadania (wymagającego co najmniej 5 wywołań narzędzi) - Gdy napotkał błędy lub ślepe zaułki i znalazł skuteczne rozwiązanie - Gdy użytkownik skorygował jego podejście - Gdy odkrył nietrywialny sposób realizacji zadania

Działania:11

Działanie Zastosowanie
create Utworzenie nowego skill od podstaw
patch Ukierunkowane poprawki (preferowane — najbardziej oszczędne pod względem tokenów)
edit Duże zmiany strukturalne
delete Całkowite usunięcie skill
write_file Dodanie lub zaktualizowanie plików pomocniczych
remove_file Usunięcie pliku pomocniczego

Hub skills

Przeglądanie, wyszukiwanie, instalowanie i zarządzanie skills z rejestrów internetowych:611

hermes skills browse                          # Browse all hub skills
hermes skills browse --source official        # Browse official optional skills
hermes skills search kubernetes               # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s       # Preview before installing
hermes skills install openai/skills/k8s       # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check                           # Check for upstream updates
hermes skills update                          # Reinstall changed hub skills
hermes skills audit                           # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo       # Add custom GitHub source

Zintegrowane źródła huba:11

Źródło Przykład Uwagi
official official/security/1password Opcjonalne skills dostarczane z Hermes (wbudowane zaufanie)
skills-sh skills-sh/vercel-labs/agent-skills/vercel-react-best-practices Publiczny katalog skills firmy Vercel
well-known well-known:https://mintlify.com/docs/.well-known/skills/mintlify Wykrywanie na podstawie adresów URL z witryn publikujących /.well-known/skills/index.json
github openai/skills/k8s Bezpośrednie instalacje ze ścieżki lub repozytorium GitHub
clawhub — Zewnętrzny marketplace skills
lobehub — Konwersja katalogu agentów LobeHub
browse-sh — Źródło skills Browserbase

Domyślne źródła GitHub (dostępne do przeglądania bez konfiguracji): openai/skills, anthropics/skills, huggingface/skills, NVIDIA/skills, garrytan/gstack. Źródło claude-marketplace usunięto w wersji v0.20.0; na liście źródeł zastąpiło je browse-sh.1155

Skanowanie zabezpieczeń

Wszystkie skills instalowane z huba przechodzą skanowanie zabezpieczeń pod kątem eksfiltracji danych, prompt injection, destrukcyjnych poleceń, sygnałów zagrożeń w łańcuchu dostaw oraz innych niebezpieczeństw.11

Poziomy zaufania:11

Poziom Źródło Zasady
builtin Dostarczane z Hermes Zawsze zaufane
official optional-skills/ w repozytorium Wbudowane zaufanie, bez ostrzeżenia dotyczącego treści zewnętrznych
trusted Zaufane rejestry (openai/skills, anthropics/skills) Bardziej liberalne zasady
community Wszystkie pozostałe źródła Wyniki inne niż niebezpieczne można pominąć za pomocą --force; werdykty dangerous pozostają zablokowane

Opcja --force pozwala pominąć blokady wynikające z zasad dla społecznościowych skills, o ile nie uznano ich za niebezpieczne. Nie pozwala ona pominąć werdyktu skanowania dangerous.11

Zewnętrzne katalogi skills

Można wskazać Hermes dodatkowe katalogi skills, które będą skanowane wraz z katalogiem lokalnym:11

skills:
  external_dirs:
    - ~/.agents/skills
    - /home/shared/team-skills
    - ${SKILLS_REPO}/skills

Ścieżki obsługują rozwijanie ~ oraz podstawianie zmiennych środowiskowych ${VAR}. Katalogi zewnętrzne są przeznaczone wyłącznie do odczytu — gdy agent tworzy lub edytuje skill, zawsze zapisuje go w ~/.hermes/skills/. Jeśli skill o tej samej nazwie występuje w obu miejscach, pierwszeństwo ma wersja lokalna.11

Przypięte skills: skills.auto_load (okres wersji v0.21.4)

Nazwy skills wymienione w sekcji skills.auto_load pliku config.yaml są przypinane i w pełni ładowane w każdej nowej sesji — zarówno w CLI, TUI, gateway, cron, jak i API:51

skills:
  auto_load:
    - team-conventions
    - deploy-checklist

Lista jest rozwiązywana jednokrotnie podczas pierwszego tworzenia promptu agenta. Brakująca lub wyłączona nazwa powoduje wyświetlenie ostrzeżenia i jest pomijana, zamiast przerywać sesję. Z kolei HERMES_IGNORE_RULES (mechanizm wykorzystywany przez --ignore-rules) wyłącza tę listę podobnie jak pozostały automatycznie wstrzykiwany kontekst. Jest to odpowiednik stałych poleceń uzupełniający -s/--skills, które wstępnie ładuje skills tylko na czas jednej sesji.51


Pamięć trwała

Hermes ma ograniczoną, starannie zarządzaną pamięć, która zachowuje dane między sesjami. Pamięć agenta tworzą dwa pliki, oba przechowywane w ~/.hermes/memories/:12

Plik Przeznaczenie Limit znaków
MEMORY.md Osobiste notatki agenta — informacje o środowisku, konwencje, zdobyta wiedza 2 200 znaków (~800 tokenów)
USER.md Profil użytkownika — preferencje, styl komunikacji, oczekiwania 1 375 znaków (~500 tokenów)

Oba są wstrzykiwane do promptu systemowego jako zamrożony stan z początku sesji. Agent sam zarządza swoją pamięcią za pomocą narzędzia memory — add, replace lub remove.12

Wzorzec zamrożonego stanu: zawartość wstrzykiwana do promptu systemowego jest przechwytywana jeden raz na początku sesji i nie zmienia się w jej trakcie. Jest to celowe — pozwala zachować pamięć podręczną prefiksu LLM i zwiększyć wydajność. Zmiany wprowadzone podczas sesji są natychmiast zapisywane na dysku, ale pojawiają się w prompcie systemowym dopiero w następnej sesji.12

Co zapisywać

Należy zapisywać poniższe informacje (agent robi to proaktywnie):12 - Preferencje użytkownika: „Wolę TypeScript od JavaScript” → user - Informacje o środowisku: „Na tym serwerze działa Debian 12 z PostgreSQL 16” → memory - Korekty: „Nie używać sudo w poleceniach Docker, użytkownik należy do grupy docker” → memory - Konwencje: „Projekt używa tabulatorów, wierszy o maksymalnej długości 120 znaków i docstringów w stylu Google” → memory - Ukończone prace: „Przeprowadzono migrację bazy danych z MySQL do PostgreSQL 15 stycznia 2026” → memory

Należy pomijać:12 - Błahe lub oczywiste informacje - Fakty, które można łatwo ustalić ponownie - Surowe zrzuty danych (są zbyt obszerne dla pamięci) - Tymczasowe informacje dotyczące konkretnej sesji - Informacje znajdujące się już w plikach kontekstowych

Wyszukiwanie sesji

Oprócz plików MEMORY.md i USER.md agent może przeszukiwać wcześniejsze rozmowy za pomocą narzędzia session_search. Wszystkie sesje CLI i sesje komunikatorów są przechowywane w SQLite (~/.hermes/state.db) z pełnotekstowym wyszukiwaniem FTS5. Od przeprojektowania w wersji v0.15.0 narzędzie w ogóle nie korzysta z LLM — bezpośrednio zwraca zapisaną treść rozmów (zgodnie z określeniem użytym w źródle: „narzędzie o jednym formacie zwraca bezpośrednio zawartość bazy danych”), dzięki czemu działa 4 500 razy szybciej i nie generuje kosztu API.125934

Funkcja Pamięć trwała Wyszukiwanie sesji
Pojemność Łącznie ~1 300 tokenów Bez ograniczeń (wszystkie sesje)
Szybkość Natychmiastowa (w prompcie systemowym) Jedno zapytanie FTS — bez wywołania LLM od wersji v0.15.0
Zastosowanie Najważniejsze fakty są zawsze dostępne Wyszukiwanie konkretnych wcześniejszych rozmów
Zarządzanie Ręcznie zarządzana przez agenta Automatyczne — przechowywane są wszystkie sesje
Koszt tokenów Stały dla każdej sesji (~1 300 tokenów) Naliczany w razie użycia

W okresie wydania v0.21.4 dodano dwie funkcje, obie zweryfikowane dla tagu v2026.9.21. Pierwszą są granice czasowe: format wyszukiwania przyjmuje after (dolną granicę czasu rozpoczęcia sesji, włącznie) oraz before (górną granicę, wyłącznie). Każda z nich może być datą lub datą i godziną w formacie ISO — sama data oznacza północ czasu UTC danego dnia — albo względnym okresem (7d, 24h, 2w). Parametry te są przeznaczone wyłącznie do zapytań, które rzeczywiście określają ramy czasowe; sort pozostaje mechanizmem wpływającym na ranking, a nie granicą. Drugą funkcją jest ponowienie wyszukiwania po uzyskaniu zerowej liczby wyników: niejawny operator AND między terminami w FTS5 sprawia, że parafrazowane zapytanie wielowyrazowe może nie znaleźć zapisanego zdania, jeśli brakuje w nim choć jednego słowa z zapytania. Dlatego gdy dokładne zapytanie i wszystkie warianty wyszukiwania podciągów nie zwrócą wyników, indeks jest ponownie przeszukiwany pod kątem DOWOLNEGO terminu, a wyżej w rankingu umieszczane są wiersze zawierające więcej terminów. Trafienia zachowują semantykę dokładnego dopasowania (ponowienie następuje wyłącznie po wyszukiwaniu bez wyników), natomiast zapytania z jawnymi operatorami OR/NOT, zapytania jednoterminowe oraz zapytania kierowane ścieżką CJK pozostają bez zmian.51

Zewnętrzni dostawcy pamięci

Aby zapewnić rozbudowaną pamięć trwałą wykraczającą poza MEMORY.md i USER.md, Hermes udostępnia 7 wtyczek zewnętrznych dostawców pamięci: Honcho, OpenViking, Mem0, Holographic, RetainDB, ByteRover i Supermemory. Kolejne, takie jak Hindsight, można zainstalować z katalogu wtyczek.12

Hindsight znajdował się w głównym drzewie projektu do wersji v0.21.4, a w wersji v0.21.5 został przeniesiony do katalogu i jest utrzymywany przez Vectorize. Istniejące konfiguracje migrują automatycznie: jeśli ustawiono memory.provider: hindsight, polecenie hermes update instaluje wtyczkę z katalogu w katalogu domowym każdego profile, który z niej korzysta, a pierwsze uruchomienie agenta instaluje ją, jeśli nadal jej brakuje. Przy ustawieniu security.allow_lazy_installs: false podczas uruchamiania agenta zapisywany jest jedynie komunikat w dzienniku, dlatego należy samodzielnie uruchomić hermes plugins install hindsight. Wtyczka trafia do ~/.hermes/plugins/hindsight/ i zostaje dodana do plugins.enabled; ustawienia memory.provider, memory.hindsight.*, HINDSIGHT_API_KEY oraz dane pamięci pozostają bez zmian. Stan można sprawdzić za pomocą hermes memory status i hermes plugins list. Dodatek pip hermes-agent[hindsight] został usunięty.53

Zewnętrzni dostawcy działają równolegle z wbudowaną pamięcią (nigdy jej nie zastępują) i zapewniają dodatkowe możliwości, takie jak grafy wiedzy, wyszukiwanie semantyczne, automatyczne wyodrębnianie faktów oraz modelowanie użytkownika między sesjami:612

hermes memory setup         # Pick a provider and configure it
hermes memory status        # Check what's active
hermes memory off           # Disable external provider (built-in only)

Jednocześnie może być aktywny tylko jeden zewnętrzny dostawca. Wbudowana pamięć jest zawsze aktywna.6

Automatyczne wznawianie sesji (v0.13.0+)

Wersja v0.13.0 umożliwia przetrwanie przerwania pracy agenta. Po ponownym uruchomieniu gateway automatycznie wznawia przerwane sesje; ponowne uruchomienia wywołane przez /update zachowują stan sesji podczas aktualizacji; przeładowanie plików źródłowych w trakcie programowania utrzymuje aktywną sesję zamiast wymuszać rozpoczęcie nowej.18 W praktyce oznacza to, że długotrwałe zadania wykonywane przez gateway oraz zadania uruchamiane przez cron nie resetują już swojego okna kontekstowego po ponownym uruchomieniu procesu.

Checkpoint v2 (v0.13.0+)

W wersji v0.13.0 mechanizm utrwalania stanu został przepisany jako rozwiązanie oparte na jednym magazynie, z rzeczywistym oczyszczaniem, zabezpieczeniami przestrzeni dyskowej i bez osieroconych repozytoriów pomocniczych.18 Poprzedni system checkpoint gromadził stan na dysku w przypadku długo działających profile; magazyn v2 nakłada twardy limit na lokalną przestrzeń zajmowaną przez checkpoint i usuwa powielone dane ewidencyjne, które powodowały ten wzrost. Nie trzeba zmieniać konfiguracji widocznej dla użytkownika; kolejny zapis checkpoint skorzysta ze ścieżki v2.


Osobowość i SOUL.md

SOUL.md stanowi główną tożsamość instancji Hermes. Zajmuje pozycję nr 1 w prompcie systemowym, zastępując domyślną tożsamość zapisaną na stałe w kodzie.13

Hermes automatycznie tworzy domyślny plik SOUL.md w ~/.hermes/SOUL.md (lub $HERMES_HOME/SOUL.md w przypadku niestandardowych profile). Istniejące pliki użytkownika nigdy nie są nadpisywane. Hermes wczytuje SOUL.md wyłącznie z HERMES_HOME — nie szuka go w bieżącym katalogu roboczym. Dzięki temu osobowość pozostaje przewidywalna we wszystkich projektach.13

Co powinno znaleźć się w SOUL.md

Plik ten służy do definiowania trwałych wytycznych dotyczących sposobu wypowiedzi i osobowości:13 - ton - styl komunikacji - poziom bezpośredniości - domyślny styl interakcji - elementy stylistyczne, których należy unikać - sposób, w jaki Hermes powinien reagować na niepewność, brak zgody i niejednoznaczność

W mniejszym stopniu służy do zapisywania:13 - jednorazowych instrukcji dotyczących projektu - ścieżek plików - konwencji repozytorium - tymczasowych szczegółów przepływu pracy

Takie informacje powinny znaleźć się w AGENTS.md, a nie w SOUL.md.

SOUL.md a AGENTS.md

To najważniejsze rozróżnienie w zarządzaniu tożsamością Hermes:13

SOUL.md — tożsamość, ton, styl, domyślne zasady komunikacji i zachowania na poziomie osobowości.

AGENTS.md — architektura projektu, konwencje kodowania, preferencje dotyczące narzędzi, przepływy pracy właściwe dla repozytorium, polecenia, porty, ścieżki i uwagi dotyczące wdrożenia.

Przydatna zasada: jeśli coś powinno towarzyszyć użytkownikowi wszędzie, należy umieścić to w SOUL.md. Jeśli dotyczy konkretnego projektu, powinno znaleźć się w AGENTS.md.13

Wbudowane osobowości

Hermes udostępnia wbudowane osobowości, między którymi można przełączać się za pomocą /personality:1333

Nazwa Opis
helpful Przyjazny asystent ogólnego przeznaczenia
concise Krótkie i konkretne odpowiedzi
technical Szczegółowy i precyzyjny ekspert techniczny
creative Innowacyjne, nieszablonowe myślenie
teacher Cierpliwy nauczyciel podający jasne przykłady
kawaii Urocze wyrażenia, błyskotki i entuzjazm
catgirl Neko-chan używająca kocich powiedzonek
pirate Kapitan Hermes, obeznany z technologią korsarz
shakespeare Poetycka proza o dramatycznym charakterze
surfer Swobodny styl surfera
noir Narracja w stylu rasowego detektywa
uwu Maksymalna słodycz i język uwu
philosopher Głęboka refleksja nad każdym zapytaniem
hype MAKSIMUM ENERGII

Niestandardowe osobowości w config.yaml:13

agent:
  personalities:
    codereviewer: >
      You are a meticulous code reviewer. Identify bugs, security issues,
      performance concerns, and unclear design choices. Be precise and constructive.

Następnie można przełączyć osobowość za pomocą /personality codereviewer.

SOUL.md a /personality

SOUL.md określa bazowy sposób wypowiedzi. /personality stanowi nakładkę obowiązującą na poziomie sesji.13 Warto zachować pragmatyczny, domyślny plik SOUL.md, a następnie używać /personality teacher podczas rozmowy edukacyjnej lub /personality creative podczas burzy mózgów.


Nous Tool Gateway (v0.10.0+)

Od wersji Hermes Agent v0.10.0 (2026-04-16) płatni subskrybenci Nous Portal uzyskują zarządzany dostęp do starannie dobranego zestawu narzędzi za pośrednictwem dotychczasowych danych uwierzytelniających Portal — bez konieczności zarządzania dodatkowymi kluczami API.61 Sam Hermes CLI nadal jest objęty licencją MIT i pozostaje w pełni otwartoźródłowy. Zmiana polega na tym, że uwierzytelnienie w Portal zapewnia teraz dostęp nie tylko do wnioskowania modeli.

Najszybszym sposobem rozpoczęcia pracy jest hermes setup --portal, które README przedstawia jako „jedno polecenie po świeżej instalacji”: loguje ono użytkownika za pośrednictwem OAuth, ustawia Nous jako dostawcę i włącza Tool Gateway. Od tego momentu relacją tą zarządza hermes portal. Polecenie hermes portal login (domyślne, gdy nie podano podpolecenia) przeprowadza ten sam jednorazowy proces wdrożenia; hermes portal info wyświetla „podsumowanie uwierzytelnienia Portal i routingu Tool Gateway”; hermes portal open otwiera stronę subskrypcji w domyślnej przeglądarce; hermes portal tools wyświetla narzędzia gateway oraz wskazuje, które z nich są kierowane przez Nous. hermes portal status pozostało jako ukryty alias zgodności wstecznej dla info, a dokumentacja CLI w tym tagu nadal podaje podpolecenie status, dlatego działają obie formy.28

Co zawiera gateway

Narzędzie Dostawca Zastosowanie
Wyszukiwanie w internecie Firecrawl Pobieranie aktualnych informacji dla agentów
Generowanie obrazów FAL / FLUX 2 Pro Generowanie obrazów bezpośrednio w treści bez konfigurowania klucza FAL
Zamiana tekstu na mowę OpenAI TTS Odpowiedzi głosowe w gateway komunikatorów
Automatyzacja przeglądarki Browser Use Bezobsługowa nawigacja i pozyskiwanie danych

Jak to działa

Gateway jest włączany osobno dla każdego narzędzia za pomocą nowego pola konfiguracji use_gateway. Jeśli w hermes auth zapisano dane uwierzytelniające Portal i włączono gateway dla danego narzędzia, jego wywołania są kierowane przez Portal. W przeciwnym razie używany jest bezpośredni klucz API (jeśli jest dostępny).

# config.yaml — per-tool gateway opt-in
tools:
  web_search:
    provider: firecrawl
    use_gateway: true          # route via Nous Portal subscription
  image_generation:
    provider: fal
    use_gateway: true

Kolejność pierwszeństwa w czasie działania: gdy gateway jest dostępny, a narzędzie ma ustawienie use_gateway: true, Hermes wybiera gateway, nawet jeśli skonfigurowano również bezpośredni klucz API. Ma to znaczenie dla rozliczeń — wywołania przez gateway korzystają z subskrypcji Portal, a nie z salda bezpośredniego klucza API.

Włączanie gateway

hermes model                      # select Nous Portal (OAuth flow)
hermes tools                      # per-platform tool picker integrates gateway tools
hermes status                     # confirms gateway/subscription detection

Subskrypcja jest wykrywana automatycznie na podstawie danych uwierzytelniających OAuth do Portal, które są już zapisane w hermes auth — osobne logowanie nie jest potrzebne. Od wersji v0.19.0 subskrypcją można również zarządzać bezpośrednio podczas sesji: /subscription pokazuje plan i pozostały limit, przedstawia dokładny koszt przejścia na wyższy plan lub termin wejścia w życie obniżenia planu oraz wprowadza zmianę wraz z banerami informującymi o zaplanowanej zmianie i możliwością jej cofnięcia; /topup umożliwia doładowanie środków. Aplikacja na komputery ma odpowiadającą temu kartę ustawień rozliczeń.56

Ceny i dostęp

Ceny oraz nazwy planów są publikowane na stronie cennika Nous Portal (https://portal.nousresearch.com/pricing). W tym przewodniku nie wymieniono planów, ponieważ należą one do produktu Portal, a nie do Hermes CLI, i zmieniają się niezależnie od wydań Hermes. Rejestracji można dokonać pod adresem https://portal.nousresearch.com/, natomiast aktualne plany należy sprawdzić na stronie cennika.

Bezpłatny plan Nous i prowadzony pierwszy start (v0.21.2+)

Od wersji v0.21.2 świeża instalacja nie wymaga płatnego planu ani klucza API, aby uruchomić działającego agenta: bezpłatne wnioskowanie i konektory są dostępne od razu, do zalogowania wystarczy jedno polecenie, a /login rozpoczyna proces logowania z poziomu czatu. Narzędzia konektorów (Gmail, Linear, Notion i pozostałe) można wyszukiwać za pomocą tool_search tak samo jak każde inne narzędzie. Aplikacja na komputery oferuje prowadzony pierwszy start kontrolowany przez HERMES_GUEST_ONBOARDING=1; włącza go wyłącznie dosłowna wartość 1 – test samej aplikacji potwierdza, że wartości 'true', '0' oraz wartość pusta pozostawiają go wyłączonym, a decyzja o uruchomieniu zostaje zapisana w środowisku uruchamianego backendu, dzięki czemu odziedziczona wartość nigdy nie przenika do procesu.48

Od okresu wydania v0.21.4 łączenie tych konektorów jest pojedynczą operacją należącą do backendu, a nie logiką rozproszoną między poszczególnymi frontendami: wywołanie narzędzia manage_connections steruje na backendzie maszyną stanów połączenia operującą wyłącznie na danych (ze stałym, 300-sekundowym limitem czasu operacji – celowo niebędącym kluczem konfiguracji), a Desktop, TUI i CLI wyświetlają ją jako tę samą kartę konfiguracji. Karta tworzy pole dla każdego brakującego poświadczenia (nazwa, komunikat, wymagane) i utrzymuje przycisk działania w stanie nieaktywnym, dopóki wszystkie wymagane pola nie zawierają tekstu, natomiast backend wymusza ten sam podział ograniczony wyłącznie do sekretów we wszystkich frontendach.51

Informacja o wycofaniu

  • Zmienna środowiskowa HERMES_ENABLE_NOUS_MANAGED_TOOLS została usunięta w wersji v0.10.0. Zarządzane narzędzia włącza się teraz za pomocą pola konfiguracji use_gateway ustawianego osobno dla każdego narzędzia, a ich dostępność zależy od stanu subskrypcji Portal.61

Kontekst: czym to wydanie nie jest

Hermes Agent CLI nie wymaga subskrypcji. Projekt nadal jest objęty licencją MIT, a wszystkie podstawowe funkcje (CLI, skills, pamięć, gateway komunikatorów, cron, MCP, lokalny dashboard oraz BYOK dla każdego dostawcy) działają kompleksowo bez żadnych opłat. Wersja v0.10.0 dodaje wygodną ścieżkę dla użytkowników, którzy już płacą za Nous Portal — nie usuwa niczego ze ścieżki bezpłatnej.


Messaging Gateway

Hermes może działać jako stale aktywny proces gateway, który w ramach jednego procesu łączy się z 28 platformami komunikacyjnymi: Telegram, Discord, Slack, WhatsApp, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat, Photon (iMessage), WhatsApp Cloud API, WeCom Callback, Raft, IRC, ntfy, Buzz oraz ogólnym adapterem Webhook.360171819 Liczba 28 pochodzi z tabeli porównawczej platform w dokumentacji dla tagu v2026.8.31; tymczasem gateway/config.py definiuje 24 wbudowane elementy wyliczenia Platform (w tym pozycje niezwiązane z czatem, takie jak local, api_server, webhook, msgraph_webhook i relay), a każdą inną nazwę dynamicznie przypisuje do jednego z 22 dołączonych katalogów adapterów w plugins/platforms/, dlatego samo zliczenie elementów wyliczenia lub katalogów nie da liczby podanej w dokumentacji.25 Wersja v0.9.0 dodała obsługę iMessage za pośrednictwem BlueBubbles (automatyczna rejestracja webhooka, kreator konfiguracji i odporność na awarie) oraz natywną obsługę WeChat przez iLink Bot API, wraz z trybem wywołań zwrotnych WeCom dla aplikacji firmowych.16 Wersja v0.11.0 dodała QQBot.60 Wersja v0.12.0 dodała Microsoft Teams i Tencent Yuanbao.17 Wersja v0.13.0 dodała Google Chat jako 20. platformę, wykorzystując tę samą rozszerzalną architekturę adapterów; IRC i Microsoft Teams również przeniesiono na nowy wzorzec adapterów z ogólnymi hakami pluginów env_enablement_fn / cron_deliver_env_var.18 Wersja v0.14.0 dodaje LINE i SimpleX Chat oraz uzupełnia kompleksową obsługę Microsoft Teams o uwierzytelnianie Graph, odbiornik webhooków, środowisko wykonawcze pipeline’u i dostarczanie wiadomości wychodzących.19 Wersja v0.17.0 (19 czerwca 2026) dodaje obsługę iMessage bez pośrednika przez Photon Spectrum (OAuth za pomocą kodu urządzenia i polecenia hermes photon login — bez konieczności używania Maca ani pośrednika BlueBubbles), oficjalny adapter WhatsApp Business Cloud API (zastępujący wymóg korzystania z procesu pośredniczącego), grupy i natywne załączniki w SimpleX oraz Raft jako dołączony plugin platformy.21 W tabeli dokumentacji znajdują się jeszcze dwie pozycje, którym nie poświęcono szczególnej uwagi w informacjach o wydaniach: ntfy to lekki kanał powiadomień push typu publish-subscribe oparty na HTTP (można zasubskrybować temat w aplikacji mobilnej ntfy, wysłać do niego wiadomość, aby porozmawiać z agentem, i otrzymać odpowiedź na telefonie; działa z publicznym serwerem ntfy.sh lub instancją hostowaną samodzielnie, bez potrzeby używania SDK ani demona), natomiast Buzz łączy Hermes ze społecznością Buzz — rozwijaną przez Block platformą open source do współpracy ludzi i agentów, działającą w protokole Nostr — wywołując buzz CLI w celu wysyłania wiadomości oraz korzystając z natywnej subskrypcji przychodzącej Nostr WebSocket. Obie platformy konfiguruje się przez hermes gateway setup.25

Konfiguracja

hermes gateway setup                # Interactive platform configuration
hermes gateway install              # Install as user service (systemd/launchd)
hermes gateway start                # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run                  # Run in foreground (debugging)

Interaktywna konfiguracja prowadzi przez proces łączenia każdej platformy: tokeny API, identyfikatory botów, mapowania kanałów i listy dozwolonych użytkowników.6

Przepływ wiadomości

Zgodnie z dokumentacją architektury projektu źródłowego:3

Platform event → Adapter.on_message() → MessageEvent
  → GatewayRunner._handle_message()
    → authorize user
    → resolve session key
    → create AIAgent with session history
    → AIAgent.run_conversation()
    → deliver response back through adapter

Każda platforma komunikacyjna korzysta z tej samej pętli konwersacji AIAgent co CLI. Właśnie dlatego polecenia z ukośnikiem działają identycznie w obu miejscach, a zadanie cron zaplanowane w Telegramie może dostarczyć swoje wyniki do Discorda — różnica między platformami występuje wyłącznie na obrzeżu systemu.3

Wersja v0.19.0 dodaje routing wiadomości oparty na profilach oraz trwałe dostarczanie. Pojedynczy multipleksowany gateway korzystający z jednego tokenu bota może kierować określone serwery, kanały lub wątki do różnych profili — każdy z całkowicie odizolowaną konfiguracją, skills, pamięcią i sekretami — z możliwością nadpisania ustawień przez GATEWAY_MULTIPLEX_PROFILES. Wzmocnienie odporności sprawia też, że jeden błędnie skonfigurowany profil nie może już wyłączyć całego gateway. Wewnętrznie indeks routingu przeniesiono do state.db (sessions.json jest teraz opcjonalną starszą kopią), a odpowiedzi końcowe są rejestrowane w trwałym rejestrze zobowiązań do dostarczenia, obejmującym operację wysłania przez platformę — jeśli po przygotowaniu odpowiedzi gateway ulegnie awarii, zostanie ona ponownie dostarczona przy następnym uruchomieniu, zamiast bezpowrotnie zniknąć.56 Izolację między kierowanymi profilami wzmocniono w wersji v0.21.2, usuwając zestaw wycieków między profilami występujących właśnie w tej konfiguracji multipleksowanej: dziedziczone listy dozwolonych użytkowników, dane uwierzytelniające wysyłane do hosta profilu domyślnego, sekrety ze skarbca profilu domyślnego trafiające do serwerów stdio MCP, załączniki MEDIA: przenikające między profilami oraz token bearer Nous sąsiedniego profilu pozostający w pamięci podręcznej procesu (#107609-#107630).48

Wersja v0.21.1 sprawia, że granice konwersacji są wyznaczane wyłącznie jawnie. Dokument dotyczący cyklu życia sesji dla tagu v2026.9.7 określa tę zasadę w czterech zdaniach: „Brak aktywności ani upływ czasu zegarowego nigdy nie powodują zmiany konwersacji. /new i /reset tworzą jawną granicę; kompresja kontekstu nadal służy do zarządzania długimi historiami. Starsza konfiguracja czasomierza jest ignorowana. Istniejący typ danych SessionResetPolicy stanowi nieaktywną warstwę zgodności, a nie zasadę środowiska wykonawczego”. Jawne zawieszenie nadal tworzy granicę przy następnej wiadomości przychodzącej, odzyskiwanie respektuje sfinalizowane granice, zamiast ponownie je otwierać, a usunięcie wyłącznie zasobów pozostawia możliwość wznowienia konwersacji. Jeśli sesja w używanym gateway zdaje się „nigdy nie wygasać”, jest to obecnie zachowanie zamierzone; należy samodzielnie rozpocząć nową za pomocą /new.43

Od okresu wydania v0.21.4 drugi proces hermes gateway run dołącza do istniejącego procesu albo odmawia uruchomienia, zamiast ponownie wiązać ten sam zasób. Obowiązuje zasada jednego procesu hermes serve i jednego hermes gateway run na hosta oraz użytkownika systemu operacyjnego, przy czym każdy z nich multipleksuje wszystkie profile. Uruchomienie gateway dla profilu już obsługiwanego przez działający multiplekser powoduje jedynie dołączenie i zakończenie z kodem 0; jeśli multiplekser nie obsługuje jeszcze tego profilu, Hermes prosi go o ponowne przeskanowanie profiles/ i dołącza, gdy profil zostanie wykryty; jeżeli uruchomionego procesu nie da się skłonić do obsługi profilu, polecenie odmawia wykonania, zamiast po cichu uruchamiać drugi gateway. Opcja --replace wskazuje teraz proces hosta niezależnie od tego, który profil go uruchomił, natomiast --force całkowicie pomija pytanie, gdy proces właściciela przestał odpowiadać. Samodzielne procesy gateway nadal mogą działać równolegle: jeśli aktywny gateway jest samodzielnym (niemultipleksowanym) procesem innego profilu, używany profil uruchamia obok niego własny proces tak jak wcześniej, dopóki migracja nie zostanie wymuszona (#109417). Jeśli dwa procesy gateway zostaną uruchomione jednocześnie, ten, który nie uzyska blokady hosta, kończy działanie z kodem 75, a każdy supervisor generowany przez Hermes ponawia taką próbę; do tego czasu istnieje już rekord zwycięskiego procesu, więc ponowiona próba dołącza do niego albo odmawia wykonania zgodnie z powyższymi zasadami. Blokady i rekord punktu koordynacyjnego znajdują się w $HERMES_GATEWAY_LOCK_DIR, a jeśli ta zmienna nie jest ustawiona — w $XDG_STATE_HOME/hermes/gateway-locks (domyślnie ~/.local/state/hermes/gateway-locks) i są ograniczone do użytkownika systemu operacyjnego; rekord, którego PID już nie istnieje lub został ponownie wykorzystany przez inny proces, jest uznawany za nieaktualny i ignorowany, dlatego awaria gateway nie blokuje kolejnego uruchomienia. Aplikacja Desktop przestrzega tej samej zasady, dołączając do działającego backendu hosta, zamiast uruchamiać drugi proces.51

Od wersji v0.21.5 multipleksowanie nie jest już opcjonalne. gateway.multiplex_profiles ma jedną prawidłową wartość: true. Brak klucza jest interpretowany jako włączenie tej funkcji, a klucz zostaje zapisany w config.yaml profilu domyślnego; jawna wartość false jest natomiast zastępowana w miejscu wartością true, czemu towarzyszy jednorazowy komunikat w ramce podczas uruchamiania gateway oraz ponownie w podsumowaniu kolejnego polecenia hermes update. Stary mechanizm rezygnacji zastępują dwa elementy sterujące. Aby wyłączyć jeden profil bez zatrzymywania botów pozostałych użytkowników, należy uruchomić hermes -p <name> gateway stop: host parkuje profil (tworząc znacznik profiles/<name>/gateway.parked), a hermes -p <name> gateway start usuwa stan zaparkowania; przyciski Stop/Start w dashboardzie i aplikacji Desktop działają tak samo. Profil nazwany, który nadal wymaga własnego gateway, ustawia gateway.standalone: true we własnym pliku config.yaml; host nigdy go nie obsługuje, a jego polecenia stop/start odnoszą się do jego własnego procesu. Dokumentacja określa ten klucz jako „tymczasową warstwę zgodności”, a nie obsługiwaną topologię; w profilu domyślnym jest on ignorowany z ostrzeżeniem. Rozdzielenie między użytkowników systemu operacyjnego lub użycie HERMES_HOME poza katalogiem profiles/ domyślnego katalogu domowego nadal wymaga opcji --force.53

Autoryzacja i parowanie użytkowników

hermes pairing list                    # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending

Kody parowania uniemożliwiają przypadkowym osobom komunikowanie się z używanym gateway. Użytkownik wysyła kod parowania ze swojej platformy komunikacyjnej, a następnie należy zatwierdzić go poleceniem hermes pairing approve; od tej chwili użytkownik jest autoryzowany.6

unauthorized_dm_behavior określa, co przed sparowaniem otrzyma nieznana osoba wysyłająca wiadomość prywatną: pair odsyła kod parowania w wiadomości prywatnej, ignore po cichu odrzuca wiadomość, natomiast decline — wartość dodana w okresie wydania v0.21.4 — wysyła jedną uprzejmą odmowę, po czym przez 24 godziny nie odpowiada danemu nadawcy (#88028). Odmowa jest deduplikowana dla każdej pary platformy i nadawcy, również między aliasami, a jej treść pochodzi z unauthorized_dm_decline_message (klucza globalnego; pusta wartość oznacza użycie wbudowanej odpowiedzi: „Cześć! Jestem osobistym asystentem i mogę rozmawiać tylko z moim właścicielem, więc nie mogę bezpośrednio Ci pomóc. Przepraszam!”). Zachowanie można ustawić globalnie albo osobno dla każdej platformy, gdzie zapisuje je kreator konfiguracji:

# ~/.hermes/config.yaml
unauthorized_dm_behavior: decline      # global; gateway.unauthorized_dm_behavior also works
unauthorized_dm_decline_message: ""    # empty = built-in reply
platforms:
  telegram:
    unauthorized_dm_behavior: pair     # per-platform value always wins

Jeśli niczego nie ustawiono, efekślna wartość domyślna zależy od list dozwolonych użytkowników. Gdy nie skonfigurowano żadnej takiej listy, jest nią pair; po ustawieniu dowolnej listy (GATEWAY_ALLOWED_USERS albo zmiennej dozwolonych użytkowników, użytkowników grupowych lub czatów grupowych określonej platformy) wartością staje się ignore, ponieważ lista sygnalizuje celowo ograniczony gateway, a wysyłanie kodów nieznanym kontaktom generuje zbędne wiadomości i może ujawniać informacje (#9337). Globalne ustawienie ignore lub decline zastępuje tę regułę, lecz globalne pair nie może tego zrobić, ponieważ jest interpretowane tak samo jak wartość domyślna; aby zachować parowanie przy aktywnej liście dozwolonych użytkowników, należy ustawić pair osobno dla każdej platformy. (Własna wartość dm_policy adaptera platformy, jeśli została ustawiona, jest sprawdzana przed regułą listy dozwolonych użytkowników). Email ma charakter skrzynki odbiorczej i domyślnie używa ignore, chyba że włączono inną opcję za pomocą jego własnego klucza właściwego dla platformy; wartość globalna go nie obejmuje. Podczas konfigurowania platformy bez listy dozwolonych użytkowników hermes gateway setup udostępnia odmowę jako jedną z możliwych odpowiedzi.51


Zaplanowane zadania (cron)

Hermes oferuje rozbudowany system cron, w którym zadania są zadaniami agenta, a nie poleceniami powłoki. Każde zaplanowane zadanie jest wykonywane przez nową instancję AIAgent ze skonfigurowanym promptem i opcjonalnie dołączonymi skills, a wyniki mogą być dostarczane na dowolną platformę:36

hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id>         # Trigger now on the next tick
hermes cron remove <id>
hermes cron status           # Check if scheduler is running
hermes cron tick             # Run due jobs once and exit

Można je również utworzyć konwersacyjnie na czacie w komunikatorze:

Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.

Agent skonfiguruje zadanie cron za pomocą swoich narzędzi. Zadania są trwale przechowywane w JSON i zachowywane po ponownym uruchomieniu.3

Wersja v0.21.0 wyposażyła zaplanowane zadania w pamięć i zdolność oceny sytuacji. Cztery mechanizmy, wszystkie zweryfikowane dla tagu v2026.8.31:3537

  • Ciągłość. continuity=true dołącza do każdego uruchomienia własny najnowszy wynik danego zadania, dzięki czemu agent rozpoznawczy lub monitorujący „budzi się, widząc swój poprzedni raport, może usuwać duplikaty i kontynuować od miejsca, w którym zakończył pracę” — dołączona instrukcja brzmi „unikaj powtarzania informacji, które już zgłoszono”, pierwsze uruchomienie pozostaje bez zmian, a wewnętrznie flaga jest przechowywana jako zarezerwowany wpis self w context_from. Można ją przełączać za pomocą hermes cron create ... --continuity oraz hermes cron edit <job_id> --continuity / --no-continuity.37
  • Trwałe notatniki. Każde zadanie otrzymuje niewielki magazyn roboczy KV na kursory, znaczniki postępu i listy obserwowanych elementów (16 KB na wartość, 64 KB na zadanie — jego zawartość jest dołączana do promptu przy każdym uruchomieniu, dlatego limity są celowe). Dane zapisuje się za pomocą hermes cron notepad <job_id> set <key> <value>, które działający agent wywołuje przez swoje narzędzie terminalowe.37
  • Tryb monitorowania. Do zadania można dołączyć niedrogie źródło monitor_script/monitor_url, uruchamiane jako pierwsze przy każdym cyklu: niezmieniony wynik (porównywany bajt po bajcie) całkowicie wstrzymuje uruchomienie agenta — bez wywołania LLM, bez dostarczenia wyniku, z dyskretnym statusem uruchomienia no_change — natomiast wykrycie zmiany powoduje dołączenie bloku różnic i zwykłe uruchomienie agenta. Skrypty monitorujące powinny generować stabilne wyniki, w przeciwnym razie każdy cykl będzie wyglądał jak zmiana.37
  • Poziom intensywności rozumowania dla poszczególnych zadań i dostarczanie do Bot Chat. --reasoning-effort ustala poziom rozumowania zadania (od none do ultra), zastępując ustawienia globalne i ustawienia modelu dla uruchomień tego zadania; z kolei deliver=bot-chat dostarcza wynik jako prawdziwą wiadomość przychodzącą do kanonicznej sesji Bot Chat profilu, gdzie bot „podejmuje wszelkie niezbędne działania i odpowiada na swoim czacie”, zamiast ograniczać się do wyświetlenia wiadomości człowiekowi w kanale.37

Integracja z MCP

Hermes obsługuje Model Context Protocol zarówno jako klient, jak i serwer:6

Jako klient — można połączyć Hermes z zewnętrznymi serwerami MCP, aby rozszerzyć zestaw dostępnych narzędzi:

hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name>   # Toggle individual tool selection
hermes mcp login <name>       # Force re-auth for an OAuth server (--flow browser|device)
hermes mcp reauth [--all]     # Re-authenticate one OAuth server, or every one

Można też skonfigurować je ręcznie w config.yaml:14

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

Od wersji v0.19.0 narzędzia MCP są udostępniane modelowi zgodnie z konwencją nazewnictwa mcp__server__tool — każda nazwa narzędzia zawiera nazwę jego serwera, dzięki czemu narzędzia o tej samej nazwie udostępniane przez dwa serwery nie powodują już konfliktu — a powiadomienia dziennika serwera MCP trafiają do agent.log.56

Wersja v0.21.1 dodaje do OAuth w MCP obsługę kodu urządzenia: hermes mcp login <name> przyjmuje --flow {browser,device} — browser oznacza dotychczasowy przepływ PKCE, a device logowanie kodem urządzenia zgodne z RFC 8628, przeznaczone dla maszyn bez interfejsu graficznego lub maszyn zdalnych — przy czym flaga zastępuje konfigurację oauth.flow serwera. Ta sama wersja wymusza własność profilu przez cały czas trwania sesji OAuth, ignoruje uszkodzone pamięci podręczne metadanych OAuth, zamiast blokować serwer, oraz przekazuje desktopowe OAuth w MCP przez lokalne wywołania zwrotne klienta; -t/--toolsets filtruje teraz również uruchamiane skonfigurowane serwery MCP, dzięki czemu wywołanie o ograniczonym zakresie pomija zimny start serwerów, których nie potrzebuje.44

Wersja v0.21.0 przekształca desktopowy interfejs MCP w centrum sterowania: serwery i katalog są połączone na jednej stronie, dostępny jest import metodą „wklej cokolwiek” przez przeciągnięcie, kontrole stanu w tle ostrzegają o wygasającym uwierzytelnieniu, zanim wywołanie narzędzia zakończy się niepowodzeniem, nakładka kosztów i użycia całej floty pokazuje szacowaną liczbę tokenów schematu oraz 30-dniowe użycie każdego serwera, a głębokie linki hermes:// instalują serwer MCP po wyraźnym potwierdzeniu.35

Wersja v0.21.4 dodaje mcp.discovery_concurrency (domyślnie 4; 0 = bez ograniczeń, #117373): limit liczby skonfigurowanych serwerów MCP, z którymi proces wykrywania może łączyć się jednocześnie. Nadal nawiązywane jest połączenie z każdym serwerem — limit zapobiega jedynie ich jednoczesnemu połączeniu — a wartość niecałkowita lub ujemna powoduje zapisanie ostrzeżenia w dzienniku i przywrócenie wartości domyślnej.51

Jako serwer — można udostępnić rozmowy Hermes innym agentom:

hermes mcp serve
hermes mcp serve -v    # Verbose

Kompresja kontekstu

Hermes automatycznie kompresuje długie rozmowy, aby mieściły się w oknie kontekstu modelu. Model podsumowujący używany do kompresji wykonuje osobne wywołanie LLM — można skierować je do dowolnego dostawcy lub endpointu.4 Od wersji v0.20.6 zasada zachowywania końcowej części rozmowy domyślnie korzysta z trybu lean (compression.tail_mode: lean), a w przypadku tego tagu ustawienia modelu, dostawcy i endpointu modelu podsumowującego znajdują się w auxiliary.compression.*, zamiast w starszych kluczach compression.summary_* — starsze klucze są automatycznie migrowane przy pierwszym wczytaniu (wersja konfiguracji 17).3031

compression:
  enabled: true
  threshold: 0.50          # Compress at this % of context limit
  threshold_tokens: null   # Optional absolute token cap -- trigger fires at the lower of ratio vs cap
  target_ratio: 0.20       # Fraction of threshold to preserve as recent tail (legacy tail mode)
  tail_mode: lean          # Tail retention: "lean" (default) or "legacy"
  protect_last_n: 20       # Min recent messages to keep uncompressed
  protect_first_n: 3       # Non-system head messages pinned across compactions

auxiliary:
  compression:
    model: ""              # Empty = main chat model; e.g. "google/gemini-3-flash-preview"
    provider: "auto"       # "auto", "openrouter", "nous", "codex", "main", etc.
    base_url: null         # Custom OpenAI-compatible endpoint (overrides provider)

O czym decyduje tail_mode. legacy zachowuje dosłowną końcową część o rozmiarze określonym przez target_ratio — w konfiguracjach z dużym oknem lub podniesionym progiem oznacza to gromadzenie 100–240 tys. tokenów podczas każdej kompresji. lean zachowuje dosłowną końcową część o rozmiarze 2,5% okna kontekstu, ograniczonym do przedziału od 10 tys. do 25 tys. tokenów, a ciągłość przenosi do podsumowania: szczegółowego dziennika sesji zachowującego identyfikatory ze skompresowanego obszaru (jedno pomocnicze wywołanie modelu podsumowującego na próbę), automatycznie wyodrębnionego indeksu punktów odniesienia (numery PR, SHA, ścieżki, komunikaty błędów — wyrażenia regularne, bez parafrazowania), wszystkich rzeczywistych wiadomości użytkownika cytowanych dosłownie oraz wskaźnika odzyskiwania session_search, dzięki któremu agent może ponownie uzyskać dostęp do wszystkich treści usuniętych z kontekstu na rzecz podsumowania. Wynik zmierzony w dokumentacji dla rzeczywistych sesji liczących 500 tys. tokenów: zachowano około 49 tys. tokenów zamiast około 162 tys. Stare wyniki narzędzi w końcowej części trybu lean są redukowane do jednowierszowych skrótów zawierających wskaźnik odzyskiwania, a nieznane wartości tail_mode powodują powrót do lean.31

Opcje dostawcy:431

auxiliary.compression.provider auxiliary.compression.base_url Wynik
auto (domyślnie) nie ustawiono Automatyczne wykrywanie najlepszego dostępnego dostawcy
nous / openrouter / itd. nie ustawiono Wymuszenie danego dostawcy i użycie jego uwierzytelniania
dowolna wartość ustawiono Bezpośrednie użycie niestandardowego endpointu (dostawca jest ignorowany)

Model podsumowujący musi obsługiwać okno kontekstu co najmniej tak duże jak model główny, ponieważ otrzymuje pełną środkową część rozmowy w jednym wywołaniu — jeśli jego okno jest mniejsze, wywołanie kończy się niepowodzeniem, a środkowe tury są usuwane bez podsumowania.431

Ostrzeżenia o wyczerpywaniu budżetu

Gdy agent wykonuje złożone zadanie wymagające wielu wywołań narzędzi, może nieświadomie wyczerpać swój budżet iteracji (od wersji v0.20.0 domyślnie 500 tur zamiast 90). Funkcja monitorowania budżetu automatycznie ostrzega model:4

Próg Poziom Co widzi model
70% Uwaga [BUDGET: 350/500. 150 iterations left. Start consolidating.]
90% Ostrzeżenie [BUDGET WARNING: 450/500. Only 50 left. Respond NOW.]

Limity czasu strumienia

Połączenie strumieniowe LLM ma dwie warstwy limitów czasu, które automatycznie dostosowują się do lokalnych dostawców (localhost, adresy IP sieci LAN):4

Limit czasu Domyślnie Lokalni dostawcy Zmienna środowiskowa
Limit czasu odczytu z gniazda 120 s Automatycznie zwiększany do 1800 s HERMES_STREAM_READ_TIMEOUT
Wykrywanie nieaktywnego strumienia 180 s Automatycznie wyłączone HERMES_STREAM_STALE_TIMEOUT
Wywołanie API (bez przesyłania strumieniowego) 1800 s Bez zmian HERMES_API_TIMEOUT

Limit czasu odczytu z gniazda jest zwiększany do 30 minut dla lokalnych endpointów, ponieważ lokalne modele LLM mogą potrzebować kilku minut na wstępne przetworzenie dużych kontekstów, zanim wygenerują pierwszy token.4


Lokalny panel internetowy (v0.9.0+)

Panel działający w przeglądarce, przeznaczony do lokalnego zarządzania Hermes Agent. Umożliwia konfigurowanie ustawień, monitorowanie sesji, przeglądanie skills oraz zarządzanie gateway bez modyfikowania plików konfiguracyjnych ani korzystania z terminala.16 Uruchamia się go poleceniem hermes dashboard. To najłatwiejsza ścieżka wdrożenia dla nowych użytkowników preferujących GUI.

Monitorowanie procesów w tle (v0.9.0+)

watch_patterns umożliwia określenie wzorców monitorowanych w danych wyjściowych procesów działających w tle oraz otrzymywanie powiadomień w czasie rzeczywistym po ich dopasowaniu.16 Można wykrywać błędy, oczekiwać na określone zdarzenia („listening on port”) lub obserwować logi kompilacji — wszystko bez odpytywania. W połączeniu z notify_on_complete z wersji v0.8.0 (funkcją powiadamiającą o zakończeniu zadania w tle) Hermes oferuje teraz pełną warstwę obserwowalności procesów działających w tle.15

Wymienny context engine (v0.9.0+)

Zarządzanie kontekstem jest teraz wymiennym komponentem konfigurowanym za pomocą hermes plugins. Można zastosować niestandardowe context engine, które kontrolują, co agent widzi w każdej turze — poprzez filtrowanie, podsumowywanie lub wstrzykiwanie kontekstu właściwego dla danej dziedziny.16 Oddziela to strategię kontekstu od głównej pętli agenta, umożliwiając dostosowanie kontekstu do konkretnego projektu lub dziedziny.

Tworzenie i przywracanie kopii zapasowych (v0.9.0+)

hermes backup tworzy pełne archiwum konfiguracji, sesji, skills i pamięci. hermes import przywraca dane z archiwum kopii zapasowej.16 Funkcji tej można używać do migracji między urządzeniami, tworzenia migawek przed wprowadzeniem istotnych zmian lub udostępniania członkom zespołu sprawdzonej konfiguracji.

Obsługa Termux / Androida (v0.9.0+)

Hermes działa natywnie na Androidzie za pośrednictwem Termux. Dostosowane ścieżki instalacji, optymalizacje TUI dla ekranów urządzeń mobilnych, obsługa mechanizmu głosowego i polecenie /image działają bezpośrednio na urządzeniu.16

Wzmocnienie zabezpieczeń (v0.13.0+)

W wersji v0.13.0 usunięto 8 problemów bezpieczeństwa klasy P0 oraz zmieniono jedno ustawienie domyślne na korzystniejsze dla użytkownika.18 Wersja v0.14.0 usuwa kolejne 12 problemów klasy P0 i 50 klasy P1, w tym wzmacnia ochronę przed atakami brute force na sudo oraz nadużyciami sudo-stdin, eliminuje sposoby omijania zabezpieczeń przed niebezpiecznymi poleceniami, oczyszcza błędy narzędzi przed ich ponownym przekazaniem do modelu, zabezpiecza uwierzytelnianie API wtyczek panelu, rozszerza ochronę skills-hub przed SSRF i wprowadza podczas instalacji skanowanie pod kątem ostrzeżeń dotyczących łańcucha dostaw.19

Poprawka Co się zmieniło
Domyślne maskowanie sekretów Wcześniej wymagało włączenia. Sekrety w logach i danych przesyłanych przez hermes debug share są maskowane, chyba że funkcja zostanie jawnie wyłączona. W wersji v0.12.0 maskowanie domyślnie wyłączono po zgłoszeniach dotyczących uszkadzania danych przesyłanych w żądaniach; wersja v0.13.0 ponownie je włącza jako bezpieczniejsze ustawienie bazowe.
Obejście zabezpieczeń wiadomości prywatnych między serwerami Discord (CVSS 8.1) Listy dozwolonych ról Discord są teraz ograniczone do konkretnego serwera, co eliminuje możliwość autoryzowania wiadomości prywatnych na wszystkich serwerach na podstawie roli użytkownika na jednym z nich.
Domyślne ograniczenia WhatsApp Adapter WhatsApp domyślnie odrzuca wiadomości od nieznajomych i nigdy nie odpowiada w czacie z samym sobą.
Okno TOCTOU w MCP OAuth Usunięto stan wyścigu występujący podczas zapisywania danych uwierzytelniających w przepływach MCP OAuth.
TOCTOU w pliku auth.json mechanizmu CLI Usunięto analogiczne okno TOCTOU w komponencie zapisującym dane uwierzytelniające do magazynu uwierzytelniania CLI.
Podstawowa ochrona przeglądarki przed SSRF Routing hybrydowy wymusza podstawową ochronę przed SSRF wymierzonym w metadane chmurowe, blokując żądania próbujące uzyskać dostęp do 169.254.169.254 i jego odpowiedników.
Skanowanie cron pod kątem wstrzykiwania promptów Przed uruchomieniem zadania cron złożone prompty (w tym wczytana zawartość skills) są skanowane pod kątem wstrzykiwania promptów.
Maskowanie w hermes debug share Dane w logach przesyłanych przez funkcję udostępniania debugowania są maskowane w chwili wysyłania, a nie tylko podczas zapisu.

Jeśli utrzymuje się wdrożenie Hermes, wersje v0.13.0 i v0.14.0 należy traktować jako aktualizacje istotne dla bezpieczeństwa, a nie tylko wydania nowych funkcji. Wersja v0.13.0 eliminuje obejście zabezpieczeń między serwerami Discord oraz dwa okna TOCTOU; v0.14.0 wprowadza kolejną serię wzmocnień obejmujących obsługę sudo, ponowne przekazywanie błędów narzędzi, APIs wtyczek, ochronę skills-hub przed SSRF oraz ostrzeżenia dotyczące zależności.

Wersja v0.21.0 wprowadza czwartą serię zabezpieczeń. Zapisy do chronionych plików instrukcji agenta – AGENTS.md, CLAUDE.md, SOUL.md, .cursorrules, skills i magazynów pamięci – zawsze wymagają teraz zatwierdzenia, dzięki czemu agent poddany wstrzyknięciu promptu nie może niepostrzeżenie zmienić własnych stałych instrukcji. Mechanizm jest domyślnie włączony (security.protected_instruction_files: true, z listą dodatkowych wzorców nazw bazowych zgodnych z fnmatch w protected_instruction_extra_patterns), a źródło precyzyjnie określa eliminowany wektor ataku: „wstrzyknięta instrukcja edytująca AGENTS.md / CLAUDE.md / SOUL.md”. Zwraca również uwagę, że pliki instrukcji są wczytywane z drzew katalogu cwd, dlatego „plik AGENTS.md znajdujący się w dowolnym miejscu, z którego agent może później zostać uruchomiony, stanowi aktywny cel”.3539 To samo wydanie usuwa luki umożliwiające wyciek sekretów przez błędy terminala, odczyty plików .env, checkpointy i logi ACP; rozszerza system zatwierdzania o destrukcyjne polecenia i ścieżki Windows; sprawia, że uprawnienia nadane w macOS pozostają zachowane po aktualizacjach dzięki stabilnej tożsamości podpisu TCC (jednorazowa konfiguracja: hermes desktop --setup-tcc-identity, wyłącznie w systemie macOS, wymaga openssl/security/codesign); usuwa pozycję Blender MCP z katalogu oraz powiązany skill po naruszeniu bezpieczeństwa projektu źródłowego; a także dodaje skanowanie zabezpieczeń Tier-1 podczas instalowania wtyczek.3539


Architektura dla praktyków

Ta sekcja jest przeznaczona dla osób, które chcą zrozumieć działanie systemu od środka, aby móc diagnozować problemy, rozszerzać go lub analizować wydajność. Stanowi syntezę dokumentacji architektury projektu źródłowego.3

Punkty wejścia → AIAgent

Każdy punkt wejścia w Hermes ostatecznie wywołuje AIAgent.run_conversation():

┌──────────────────────────────────────────────────────────────────┐
│                        Entry Points                              │
│                                                                  │
│  CLI (cli.py)    Gateway (gateway/run.py)    ACP (acp_adapter/)  │
│  Batch Runner    API Server                  Python Library     │
└──────────┬──────────────┬───────────────────────┬────────────────┘
           │              │                       │
           ▼              ▼                       ▼
┌──────────────────────────────────────────────────────────────────┐
│                     AIAgent (run_agent.py)                       │
│                                                                  │
│  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐             │
│  │ Prompt      │  │ Provider     │  │ Tool         │             │
│  │ Builder     │  │ Resolution   │  │ Dispatch     │             │
│  └──────┬──────┘  └──────┬───────┘  └──────┬───────┘             │
│         │                │                 │                    │
│  ┌──────┴───────┐ ┌──────┴───────┐  ┌──────┴───────┐             │
│  │ Compression  │ │ 3 API Modes  │  │ Tool Registry│             │
│  │ & Caching    │ │ chat_compl   │  │ 47 tools     │             │
│  │              │ │ codex_resp   │  │ 20 toolsets  │             │
│  │              │ │ anthropic    │  │              │             │
│  └──────────────┘ └──────────────┘  └──────────────┘             │
└──────────────────────────────────────────────────────────────────┘

Diagram opracowany na podstawie dokumentacji architektury projektu źródłowego.3

„47 narzędzi / 20 toolsets” a „28 narzędzi” w banerze. Liczba „47 narzędzi” oznacza cały rejestr narzędzi w repozytorium źródłowym — wszystkie narzędzia, których kod źródłowy jest dostarczany z Hermes, ze wszystkich toolsets. Faktycznie uruchomiony CLI wyświetli w banerze startowym mniejszą liczbę (instalacja, na której zweryfikowano ten przewodnik, zgłasza 28 tools / 89 skills). Nie jest to błąd. Wiele toolsets jest opcjonalnych i trzeba je jawnie włączyć w config.yaml w sekcji toolsets: — między innymi adaptery platform komunikacyjnych, automatyzację przeglądarki i bardziej zaawansowane narzędzia do pozyskiwania danych. Łączna liczba w rejestrze oznacza „co jest dostępne”, natomiast liczba w banerze — „co jest włączone w bieżącym profile”. Aktywne toolsets można sprawdzić za pomocą hermes tools --list, a poszczególne toolsets włączać lub wyłączać w bloku toolsets: w ~/.hermes/config.yaml (albo za pomocą /tools list / /tools enable <name> / /tools disable <name> w działającej sesji — usunięcie narzędzia powoduje zresetowanie sesji, aby agent ponownie utworzył manifest narzędzi).

Trzy tryby API

Hermes abstrahuje różnice między dostawcami za pomocą trzech trybów API, wybieranych automatycznie podczas działania:3

Tryb API Używany przez
chat_completions OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, większość niestandardowych punktów końcowych, dowolny serwer zgodny z OpenAI
codex_responses OpenAI Codex (przez ChatGPT OAuth)
anthropic_messages Anthropic API (natywny), Anthropic OAuth, serwery proxy zgodne z Anthropic

Mechanizm rozpoznawania w runtime_provider.py odwzorowuje krotki (provider, model) na (api_mode, api_key, base_url) dla ponad 18 dostawców, obsługując przepływy OAuth, pule danych uwierzytelniających oraz rozpoznawanie aliasów.3

Przepływ danych w sesji CLI

User input → HermesCLI.process_input()
  → AIAgent.run_conversation()
    → agent.prompt_builder.build_system_prompt()
    → runtime_provider.resolve_runtime_provider()
    → API call (chat_completions / codex_responses / anthropic_messages)
    → tool_calls? → model_tools.handle_function_call() → loop
    → final response → display → save to SessionDB

Na podstawie strony poświęconej architekturze projektu źródłowego.3

Kolejność składania promptu

Stos promptu obejmuje:13

  1. SOUL.md (tożsamość agenta — albo wbudowany wariant zastępczy, jeśli plik jest niedostępny)
  2. Wskazówki dotyczące zachowania uwzględniającego dostępne narzędzia
  3. Pamięć i kontekst użytkownika (MEMORY.md, USER.md)
  4. Wskazówki dotyczące skills
  5. Pliki kontekstowe (AGENTS.md, .cursorrules)
  6. Znacznik czasu
  7. Wskazówki dotyczące formatowania właściwego dla danej platformy
  8. Opcjonalne nakładki na prompt systemowy, takie jak /personality

SOUL.md stanowi fundament — wszystkie pozostałe elementy są na nim nadbudowywane.13

Przechowywanie sesji

Sesje są przechowywane w bazie SQLite z pełnotekstowym wyszukiwaniem FTS5. System śledzi pochodzenie sesji (relacje nadrzędne i podrzędne między kompresjami), izoluje je według platform oraz wykonuje zapisy atomowe z obsługą współbieżnego dostępu.3

Jeśli magazyn sprawia problemy w instalacji z serii v0.21.x, należy korzystać co najmniej z wersji v0.21.2: usunięto w niej całą klasę problemów z niestabilnością state.db występujących w czasach v0.21.0 (dodatkowe procesy zapisujące wzajemnie anulowały swoje blokady, prawidłowe bazy danych były zgłaszane jako uszkodzone, a jeden wadliwy wiersz powodował awarię sessions list). Koordynację hostowanych pokojów przeniesiono ponadto z głównego magazynu do osobnego pliku shared-state.db, dzięki czemu profile gateways nigdy nie otwierają głównego magazynu sesji w trybie zapisu. hermes doctor osobno wskazuje teraz uszkodzenia strukturalne i uszkodzenia indeksu FTS; w razie uszkodzenia FTS pogarsza się jakość wyszukiwania, zamiast dochodzić do przerwania tury. Z kolei hermes sessions recover --inspect-only (działający offline, niedestrukcyjny i przypisany do profile) raportuje możliwość odczytu tabel kanonicznych bez tworzenia wyjściowej bazy danych — to podpolecenie istniało już przed omawianym okresem, lecz nie było dotąd udokumentowane w tym miejscu. Więcej informacji zawiera sekcja Co nowego w v0.21.2.48 W przypadku magazynu zablokowanego w niewłaściwym trybie dziennika SQLite w okresie wydania v0.21.4 dodano konwerter offline hermes sessions set-journal-mode delete|wal (zob. wiersz hermes sessions w sekcji Polecenia najwyższego poziomu).51

System pluginów

Dostępne są trzy źródła wykrywania: ~/.hermes/plugins/ (użytkownika), .hermes/plugins/ (projektu) oraz punkty wejścia pip. Plugins rejestrują narzędzia, hooks oraz polecenia CLI za pośrednictwem kontekstowego API. Dostawcy pamięci stanowią wyspecjalizowany typ pluginu w plugins/memory/.3 Od wersji v0.21.2 dostępny jest również starannie wyselekcjonowany katalog pluginów przypiętych za pomocą SHA, który można przeglądać i z którego można instalować plugins według nazw, a także hermes plugins pack przeznaczony do „deklaratywnych zestawów pluginów nadających się do udostępniania”: jeden plik hermes-pack.yaml przypina zestaw pluginów do dokładnych identyfikatorów SHA commitów, instalacje pakietów rozwijają się w zwykłe przypięte instalacje, natomiast zgoda na uprawnienia pozostaje udzielana osobno dla każdego pluginu.48

W okresie wydania v0.21.4 katalog przekształcono z powierzchni CLI w dostarczany artefakt. Katalog plugin-catalog/ w repozytorium rozrósł się z 9 wpisów w v2026.9.14 do 228 w v2026.9.21 — po jednym zweryfikowanym YAML na każdy plugin (nazwa, repozytorium, opiekun, poziom, kategoria, możliwości), przypiętym do dokładnego 40-znakowego SHA commitu, przy czym obecność w katalogu oznacza dopuszczenie — publikowanych jako plugin-catalog.json dla CLI (pobierany na bieżąco i zapisywany w pamięci podręcznej w ~/.hermes/cache/). Witryna dokumentacji tworzy teraz na podstawie tych samych danych osobną stronę dla każdego pluginu (/docs/plugins/<name>) oraz każdego autora (/docs/plugins/by/<slug>). Każda strona renderuje README pluginu pobrany z przypiętego commitu — nigdy z najnowszego stanu gałęzi — za pośrednictwem stosowanej podczas kompilacji listy dozwolonych elementów, która odrzuca surowe HTML. Kolejność według dat dodania i aktualizacji jest określana na podstawie dat autorów commitów. Dziesięć społecznościowych pluginów wymienionych w wydaniu v0.21.4 figuruje w katalogu dla tego tagu pod faktycznymi identyfikatorami katalogowymi: hermes-tailscale, hermes-ssh, shodan, hermes-terminal, hermes-rss (oraz osobny rss-reader), hermes-resetwatch, done-bell, kiwi, cognee i web-octen. W aplikacji komputerowej centrum Plugins umożliwia teraz odinstalowanie pluginu po potwierdzeniu w oknie dialogowym — plugins z katalogu za pośrednictwem plugins.manage remove, a samodzielne plugins aplikacji komputerowej przez mechanizm ładujący Electron.51

hermes plugins                       # Interactive enable/disable UI
hermes plugins browse                # List every curated plugin catalog entry (v0.21.2+)
hermes plugins search <query>        # Search the curated plugin catalog (v0.21.2+)
hermes plugins install <name|repo>   # Install from the curated catalog, a Git URL, or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list
hermes plugins pack install <src>    # Shareable SHA-pinned plugin sets; also: pack export, pack show (v0.21.2+)

Okres zgodności (v0.21.1), obecnie zakończony: zewnętrzne plugins musiały zrezygnować ze ścieżek importu sprzed dekompozycji do 2026-09-14. W ramach dekompozycji z września 2026 (PR #102117) przeniesiono wewnętrzne elementy często importowane przez plugins, a tymczasowa warstwa COMPAT_MANIFEST.md ponownie eksportowała 1 148 przeniesionych nazw publicznych z ich dawnych modułów, wyświetlając ostrzeżenie raz dla każdej nazwy w danym procesie (HermesPluginCompatWarning). Usunięcie nastąpiło zgodnie z harmonogramem 2026-09-14 za pośrednictwem warunku daty w dostarczanym kodzie (COMPAT_REMOVAL_DATE w hermes_cli/plugin_compat.py; nie był potrzebny żaden commit wycofujący kod): od tego dnia plugin, którego dotyczy problem, jest wyłączany — nie zostaje załadowany, a czerwony komunikat pojawia się w banerze CLI, w hermes doctor i hermes update; jednorazowo wyświetla się również okno modalne w aplikacji komputerowej, a przyczyna jest widoczna w hermes plugins list. Autorzy: hermes plugins compat <path> nadal wypisuje każde file:line ze starą i nową ścieżką w formacie stara ścieżka -> nowa ścieżka oraz kończy działanie z kodem 1, dopóki pozostają jakiekolwiek wystąpienia (można dodać --json, aby uzyskać dane w formacie przeznaczonym do przetwarzania maszynowego). Użytkownicy zależni od nieutrzymywanego pluginu nadal mogą ustawić plugins.allow_deprecated_imports: true w config.yaml — musi to być dosłowna wartość logiczna YAML, a nie ciąg znaków w cudzysłowie — i rozwiązanie to wciąż działa, ponieważ commit wycofujący, który usuwa stare ścieżki, nie został jeszcze wdrożony: manifest i shims są obecne w v2026.9.14, v2026.9.21, v2026.9.24 oraz w main według stanu na 24 września (w okresie v0.21.4 moduł zgodności zmieniono jedynie w celu buforowania skanów pluginów i normalizowania ścieżek systemu Windows; w okresie v0.21.5 plik hermes_cli/plugin_compat.py pozostał bez zmian, a usunięto wyłącznie wpisy manifestu dotyczące skasowanego modułu Hindsight). Ta furtka przestanie działać w chwili wdrożenia tego commitu wycofującego, ponieważ same stare ścieżki znikną. Uwzględniono wyłącznie publiczne nazwy najwyższego poziomu; nazwy prywatne i punkty zaczepienia używane przez monkeypatch w testach nigdy nie stanowiły obsługiwanej powierzchni i nie są przywracane.4253

Zasady projektowe

Na podstawie strony poświęconej architekturze projektu źródłowego:3

Zasada Znaczenie w praktyce
Stabilność promptu Prompt systemowy nie zmienia się w trakcie rozmowy. Nie występują modyfikacje unieważniające pamięć podręczną, z wyjątkiem jawnych działań użytkownika (/model)
Obserwowalne wykonywanie Każde wywołanie narzędzia jest widoczne dla użytkownika za pośrednictwem callbacks. Aktualizacje postępu w CLI (wskaźnik aktywności) oraz gateway (wiadomości czatu)
Możliwość przerwania Wywołania API oraz wykonywanie narzędzi można przerwać w trakcie za pomocą danych wejściowych użytkownika lub sygnałów
Rdzeń niezależny od platformy Jedna klasa AIAgent obsługuje CLI, gateway, ACP, przetwarzanie wsadowe oraz serwer API. Różnice między platformami są obsługiwane w punkcie wejścia
Luźne powiązania Opcjonalne podsystemy (MCP, plugins, dostawcy pamięci, środowiska RL) korzystają ze wzorców rejestru oraz mechanizmu bramkowania check_fn, a nie ze sztywnych zależności
Izolacja profiles Każdy profile otrzymuje własne HERMES_HOME, konfigurację, pamięć, sesje oraz PID gateway. Wiele profiles może działać równocześnie

Migracja z OpenClaw

Hermes Agent jest następcą OpenClaw. W przypadku migracji z istniejącej instalacji OpenClaw:65

hermes claw migrate --dry-run                    # Preview what would be migrated
hermes claw migrate --preset full                # Full migration including API keys
hermes claw migrate --preset user-data --overwrite   # User data only, no secrets
hermes claw migrate --source /custom/path        # Non-default OpenClaw location

hermes claw migrate domyślnie odczytuje dane z ~/.openclaw (automatycznie wykrywa również starsze foldery ~/.clawdbot i ~/.moldbot) i zapisuje je w ~/.hermes.6

Importowane bezpośrednio (ponad 30 kategorii): SOUL.md, MEMORY.md, USER.md, AGENTS.md, umiejętności z 4 folderów źródłowych, model domyślny, niestandardowi dostawcy, serwery MCP, tokeny i listy dozwolonych użytkowników platform komunikacyjnych (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), domyślne ustawienia agenta (poziom wnioskowania, kompresja, opóźnienie imitujące człowieka, strefa czasowa, sandbox), zasady resetowania sesji (obecnie nieaktywne: od wersji v0.21.1 liczniki czasu nigdy nie przełączają konwersacji43), reguły zatwierdzania, konfiguracja TTS, ustawienia przeglądarki, ustawienia narzędzi, limit czasu wykonywania, lista dozwolonych poleceń, konfiguracja gateway oraz klucze API z 3 źródeł.6

Archiwizowane do ręcznego przeglądu: zadania cron, wtyczki, hooki/webhooki, backend pamięci (QMD), konfiguracja rejestru umiejętności, interfejs/tożsamość, rejestrowanie zdarzeń, konfiguracja wielu agentów, powiązania kanałów, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6

Klucze API są wyszukiwane w trzech źródłach według następującej kolejności priorytetów: wartości konfiguracji → ~/.openclaw/.env → auth-profiles.json.6


Rozwiązywanie problemów

„Nie skonfigurowano dostawcy wnioskowania. Uruchom polecenie ‘hermes model’, aby wybrać dostawcę i model”

To pierwszy błąd pojawiający się po każdej nowej instalacji: Hermes nie ma jeszcze ustalonego dostawcy. Komunikat oznacza dokładnie to, co mówi — żadna z trzech ścieżek uwierzytelniania nie zapewniła działającego dostawcy. Należy uruchomić:

hermes model

Interaktywny selektor prowadzi przez wszystkich obsługiwanych dostawców, w tym procedury z kodem urządzenia OAuth (Nous Portal, GitHub Copilot, Anthropic, OpenAI Codex) oraz niestandardowe punkty końcowe dla samodzielnie hostowanych serwerów. Jeśli dostawca miał być już skonfigurowany, hermes doctor pokaże, które dane uwierzytelniające Hermes rzeczywiście wykrywa. Najczęstsze przyczyny to klucz API zapisany w niewłaściwym miejscu (powinien znajdować się w .env lub zostać ustawiony przez hermes config set, a nie w profilu powłoki), wygasłe dane uwierzytelniające OAuth w ~/.hermes/auth.json albo niestandardowy punkt końcowy w config.yaml, który utracił wartość base_url. Szczegółowe informacje o ścieżkach uwierzytelniania znajdują się w sekcji Uwierzytelnianie i dostawcy.27

„Nie ustawiono klucza API”

Aby interaktywnie skonfigurować dostawcę, należy uruchomić hermes model albo wykonać polecenie hermes config set OPENROUTER_API_KEY your_key. Polecenie hermes doctor dokładnie wskaże brakujące klucze.7

„Limit kontekstu: 2048 tokenów” podczas uruchamiania (modele lokalne)

Hermes automatycznie wykrywa długość kontekstu za pośrednictwem punktu końcowego /v1/models serwera, jednak wiele lokalnych serwerów zgłasza niskie wartości domyślne. Należy ustawić ją jawnie w config.yaml:2

model:
  default: your-model
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768

Wywołania narzędzi są wyświetlane jako tekst, zamiast się wykonywać

Na serwerze nie włączono wywoływania narzędzi albo model nie obsługuje go za pośrednictwem implementacji serwera.2

Serwer Rozwiązanie
llama.cpp Dodać --jinja do polecenia uruchamiającego
vLLM Dodać --enable-auto-tool-choice --tool-call-parser hermes
SGLang Dodać --tool-call-parser qwen (lub odpowiedni parser)
Ollama Wywoływanie narzędzi jest domyślnie włączone — należy sprawdzić za pomocą ollama show <model>, czy model je obsługuje
LM Studio Zaktualizować do wersji 0.3.6 lub nowszej i użyć modelu z natywną obsługą narzędzi

Odpowiedzi urywają się w połowie zdania

Możliwe są dwie przyczyny:2

  1. Niski limit wyjściowy (max_tokens) na serwerze — SGLang domyślnie ogranicza odpowiedź do 128 tokenów. Należy ustawić --default-max-tokens na serwerze albo skonfigurować model.max_tokens w config.yaml.
  2. Wyczerpanie kontekstu — model wypełnił całe okno kontekstu. Należy zwiększyć model.context_length albo włączyć kompresję kontekstu w Hermes.

„Odmowa połączenia” z WSL2 do serwera modelu działającego w systemie Windows

WSL2 korzysta z wirtualnej karty sieciowej z własną podsiecią — localhost wewnątrz WSL2 odnosi się do maszyny wirtualnej z systemem Linux, a nie do hosta Windows. Dostępne są dwie możliwości:2

Sieć lustrzana (Windows 11 22H2 lub nowszy): należy edytować %USERPROFILE%\.wslconfig:

[wsl2]
networkingMode=mirrored

Następnie należy wykonać wsl --shutdown i uruchomić środowisko ponownie. localhost będzie odtąd działać w obu kierunkach.

Zastępczy adres IP hosta (starsze wersje Windows): należy pobrać adres IP hosta Windows z poziomu WSL2 i użyć go zamiast localhost:

ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host

Serwer modelu musi również nasłuchiwać na 0.0.0.0, a nie na 127.0.0.1 — dla Ollama należy ustawić OLLAMA_HOST=0.0.0.0, dla llama-server/SGLang dodać --host 0.0.0.0, a w LM Studio włączyć opcję „Serve on Network”.2

Budżet iteracji ignoruje agent.max_turns

Jeśli wiersz aktywności pokazuje N/90 (lub inny nieaktualny limit), mimo że w config.yaml widnieje agent.max_turns: 500, prawdopodobną przyczyną jest nieaktualny wpis HERMES_MAX_ITERATIONS w ~/.hermes/.env: kreator konfiguracji zapisywał wcześniej budżet w obu miejscach, a jeśli mechanizm pomostowy podczas uruchamiania przerwie działanie z powodu wcześniejszego błędu analizy konfiguracji, pozostałość w .env po cichu zyskuje pierwszeństwo. Od wersji v0.21.1 polecenie hermes doctor wykrywa tę kolizję, a hermes doctor --fix usuwa wpis z .env, pozostawiając config.yaml jako źródło nadrzędne.41

Gdzie wszystko się znajduje?

Pomocne są tutaj polecenia hermes status i hermes dump. hermes logs list wyświetla wszystkie pliki dzienników wraz z ich rozmiarami. hermes config path wyświetla lokalizację pliku konfiguracyjnego. hermes config env-path wyświetla lokalizację pliku .env.6


Najczęściej zadawane pytania

Czym różni się Hermes Agent od Claude Code?

Claude Code to oficjalny CLI firmy Anthropic, ograniczony do modeli Anthropic. Hermes Agent to framework agenta typu open source opracowany przez Nous Research, który współpracuje z dowolnym dostawcą zgodnym z OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google lub własnym, samodzielnie hostowanym endpointem.12 Hermes zawiera również gateway komunikacyjny dla Telegram/Discord/Slack/WhatsApp/Signal, którego Claude Code nie oferuje.

Czy można używać Hermes z kluczem API firmy Anthropic?

Tak. Można to zrobić na 3 sposoby:2

  1. Ustawić ANTHROPIC_API_KEY w ~/.hermes/.env i uruchomić hermes chat --provider anthropic --model claude-sonnet-4-6
  2. Uruchomić hermes model i wybrać Anthropic — Hermes użyje magazynu danych uwierzytelniających Claude Code, jeśli będzie dostępny
  3. Ustawić ręcznie ANTHROPIC_TOKEN (token konfiguracji lub token OAuth) jako rozwiązanie zapasowe

Jeśli Claude Code jest już używany na tym samym komputerze, zalecana jest opcja 2 — zachowuje ona możliwość odświeżania danych uwierzytelniających Claude.

Jak zmienić dostawcę bez utraty rozmowy?

W sesji należy użyć /model provider:model. Historia rozmowy, pamięć i skills zostaną zachowane:9

/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5

Skonfigurowano Anthropic, ale funkcje obsługi obrazu, sieci i kompresji nie działają

W aktualnych kompilacjach ten dawny problem w zasadzie nie powinien już występować. Domyślnie (auxiliary.*.provider: "auto") każde zadanie pomocnicze — obsługa obrazu, klasyfikacja zatwierdzeń, kompresja i tytuły sesji — jest wykonywane przez główny model czatu, dlatego konfiguracja oparta wyłącznie na Anthropic obsługuje je za pomocą posiadanego już OAuth. Stary mechanizm domyślny (Gemini Flash przez OpenRouter → Nous → automatyczne wykrywanie Codex, z cichym ograniczeniem funkcjonalności, gdy żadnego z nich nie skonfigurowano) został usunięty: „auto używa teraz głównego modelu dla wszystkich zadań, a ustawienia poszczególnych zadań w config.yaml nadal mają pierwszeństwo”.34

Jeśli zadanie pomocnicze nadal kończy się niepowodzeniem, należy sprawdzić, czy jawne ustawienie danego zadania nie wskazuje na nieskonfigurowanego dostawcę (auxiliary.<task>.provider / .model w config.yaml) albo czy nie pozostały nieaktualne klucze ze starszych wersji. Od tagu v2026.8.31 moduł podsumowujący na potrzeby kompresji konfiguruje się tak samo jak każde inne zadanie pomocnicze — przez auxiliary.compression.provider — a starsze klucze compression.summary_* są tam automatycznie migrowane (wersja konfiguracji 17).31 Wyodrębnianie treści z sieci nie jest już w ogóle zadaniem LLM („bez udziału LLM”), dlatego w aktualnych kompilacjach błąd podsumowywania treści internetowych nie wynika z problemu z modelem pomocniczym.34 Aby jawnie przypisać zadanie z powrotem do głównego dostawcy:

auxiliary:
  vision:      { provider: "main" }
  compression: { provider: "main" }

Czym różnią się SOUL.md i AGENTS.md?

SOUL.md definiuje tożsamość agenta — ton, styl i domyślne zasady komunikacji. Znajduje się w ~/.hermes/SOUL.md i obowiązuje wszędzie. AGENTS.md jest właściwy dla konkretnego projektu — opisuje architekturę, konwencje, polecenia i ścieżki — i znajduje się w katalogu projektu.13 Jeśli ustawienia mają obowiązywać wszędzie, należy użyć SOUL.md. Jeśli dotyczą konkretnego projektu — AGENTS.md.

Jak uruchomić obok siebie wiele instancji Hermes?

Za pomocą profiles. Każdy profile otrzymuje własne HERMES_HOME, konfigurację, pamięć, sesje oraz PID gateway:6

hermes profile create work --clone
hermes profile use work                 # Sticky default
hermes -p work chat -q "..."            # One-off without switching
hermes profile alias work --name h-work # Wrapper script

Czy Hermes obsługuje lokalne LLM?

Tak, za pośrednictwem niestandardowego endpointu. Hermes współpracuje z dowolnym serwerem zgodnym z OpenAI: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan lub własnym.2 Instrukcje konfiguracji poszczególnych serwerów zawiera sekcja Niestandardowe i samodzielnie hostowane endpointy.

Dlaczego baner startowy pokazuje mniej narzędzi, niż według przewodnika oferuje Hermes?

W przewodniku podano 47 narzędzi / 20 toolsets z rejestru architektury projektu źródłowego — jest to pełna liczba narzędzi, których kod źródłowy Hermes dostarcza we wszystkich toolsets. Uruchomiona instalacja pokazuje na banerze mniejszą liczbę (instalacja referencyjna użyta w tym przewodniku zgłasza 28 narzędzi), ponieważ podczas uruchamiania Hermes włącza wyłącznie domyślny zestaw toolsets. Wiele toolsets wymaga osobnego włączenia: adaptery gateway dla komunikatorów, automatyzacja przeglądarki, bardziej rozbudowane mechanizmy pozyskiwania danych oraz kilka wyspecjalizowanych integracji muszą zostać jawnie wymienione w sekcji toolsets: pliku ~/.hermes/config.yaml, zanim zostaną załadowane. Łączna liczba w rejestrze = „co jest dostępne po włączeniu”. Łączna liczba na banerze = „co rzeczywiście załadowano w bieżącym profile”. Aby sprawdzić, które toolsets są aktywne, a które dostępne, lecz wyłączone, należy użyć hermes tools --list. Poszczególne toolsets można przełączać w czasie działania za pomocą /tools enable <name> i /tools disable <name> (wyłączenie powoduje zresetowanie sesji, aby agent odbudował manifest narzędzi zgodnie z nowym zestawem).

Jak Hermes obsługuje przełączanie na model zapasowy po awarii głównego dostawcy?

W config.yaml należy skonfigurować blok fallback_model:2

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Gdy główny dostawca zawiedzie (limit zapytań, błąd serwera lub błąd uwierzytelniania), Hermes przełączy się na model zapasowy w trakcie sesji bez utraty historii rozmowy. Następuje to najwyżej raz na sesję.

Czy agent może z czasem doskonalić własne skills?

Tak — właśnie na tym polega „samodoskonalenie” Hermes Agent. Agent może tworzyć, aktualizować i usuwać skills za pomocą narzędzia skill_manage. Gdy opracuje nietrywialny proces, zapisuje go jako skill do ponownego wykorzystania w przyszłości.11 Agent tworzy skills po złożonych zadaniach (wymagających co najmniej 5 wywołań narzędzi), gdy napotka błędy i znajdzie skuteczne rozwiązanie, gdy jego sposób działania zostanie skorygowany lub gdy odkryje nietrywialny proces.

Czy dostępna jest integracja z IDE?

Tak — Hermes może działać jako serwer ACP (Agent Client Protocol) dla VS Code, Zed i JetBrains:6

pip install -e '.[acp]'
hermes acp

Historia zmian

Data Zmiana Źródło
2026-09-24 Wersja 1.23 przewodnika: blok wprowadzający do wersji v0.14.0, który od pierwszej wersji przewodnika znajdował się nad bieżącym wydaniem, zamyka teraz historię „Co nowego” jako najstarsza sekcja, zgodnie z kolejnością od najnowszych informacji stosowaną w pozostałej części historii. Bez zmian w treści; sekcja TL;DR prowadzi teraz bezpośrednio od najważniejszych wniosków do informacji o źródłach i sekcji „Wybór ścieżki”. Struktura przewodnika
2026-09-24 Wersja 1.22 przewodnika: Hermes v0.21.5 (tag v2026.9.24, 24 września) — trzecia zbiorcza poprawka; opracowane informacje odłożono do wersji v0.22.0. Na początku dodano nową sekcję „Co nowego”, do której odsyła TL;DR. Zakres omówiony na poziomie tagu: Hindsight przeniesiono z głównego drzewa do katalogu pluginów (nie wspomniano o tym w informacjach o wydaniu), wraz z automatyczną migracją; wycofano gateway.multiplex_profiles: false, wprowadzono parkowanie dla poszczególnych profili oraz gateway.standalone; dodano GPT-6 Sol/Luna i Claude Opus 5.5 do selektorów Nous i OpenRouter. Sekcja dotycząca zewnętrznych dostawców pamięci wymienia teraz 7 dostawców dołączonych do pakietu oraz Hindsight z katalogu. W sekcji Messaging Gateway dodano akapit o wycofanej możliwości rezygnacji. Ramkę dotyczącą kompatybilności ponownie sprawdzono dla tego tagu: plik plugin_compat.py pozostał bez zmian, a mechanizm awaryjny nadal działa. Sprostowanie: liczba dołączonych pluginów dostawców wynosi 38, a nie 39, natomiast wiersz OpenCode Free oznaczono jako usunięty; obie zmiany pochodzą z 18 września. 5253
2026-09-23 Wersja 1.21 przewodnika: korekta poprawności i czytelności, nadal dla Hermes v0.21.4 (tag v2026.9.21; brak nowszego wydania). Sekcja „Co nowego” jest teraz uporządkowana od najnowszych informacji, wersja v0.21.3 otrzymała osobną sekcję, a TL;DR rozpoczyna się od bieżącego wydania. Parowanie: decline jest jedyną nową wartością; po ustawieniu dowolnej listy dozwolonych elementów faktyślną wartością domyślną staje się ignore; struktura YAML ma postać platforms.<name>.unauthorized_dm_behavior albo klucza najwyższego poziomu. Format stream-json przyjmuje --query-file, dla którego dodano wiersz w tabeli opcji. Przy set-journal-mode odnotowano zasadę zatrzymania wszystkiego oraz opcję --force w systemie Windows. Akapit o pojedynczej instancji na hoście zaczyna się teraz od opisu zachowania istotnego dla operatora. Usunięto zdania dotyczące procesu zapisującego. 5051
2026-09-22 Wersja 1.20 przewodnika: Hermes v0.21.4 (tag v2026.9.21, 21 września) — druga zbiorcza poprawka: „5 071 commitów bez merge”, „5 169 zmienionych plików”, „1 812 scalonych PR-ów”, „2 116 zamkniętych zgłoszeń” od wersji v0.21.3, opisana krótką notą odkładającą opracowane omówienie do wersji v0.22.0. Pod blokiem wersji v0.21.3 dodano nową sekcję „Co nowego”. Wszystkie 5 głównych liczb odtworzono dokładnie w lokalnym klonie dla wskazanego commita pomiarowego 4b8a8134 (tag dodaje 1 commit wydania: 5 072 bez merge; łączna liczba wynosi 5 173 z commitami scalającymi, zgodnie z porównaniem GitHub API); jest to drugie co do wielkości okno między tagami w historii, po 5 139 w wersji v0.21.1 (twierdzenie sprawdzono ponownie i pozostaje prawdziwe). Celowo nieudokumentowaną listę zmian z tego wydania omówiono WYŁĄCZNIE po weryfikacji kodu źródłowego dla tagu, umieszczając każdy element w jego stałej sekcji: pojedyncza instancja na hoście (gateway/host_rendezvous.py: po jednym procesie hermes serve i hermes gateway run na host, dla każdego użytkownika systemu operacyjnego; blokada hosta i rekord rendezvous z potwierdzeniem aktywności (pid, createTime); host_attach.py — 5 wyników: ATTACH/RESCAN/REPLACE_HOST/REFUSE/START; część Desktop host-backend-attach.ts używa sekwencji rejestr -> HTTP -> token -> WS z bramką uruchamiania na poziomie hosta — akapit dodano do sekcji Messaging Gateway); jedna operacja konektora zarządzana przez backend (tools/connectors/operation.py — „Czyste dane, bez operacji wejścia/wyjścia”, limit 300 s celowo nie jest kluczem konfiguracji, karta konfiguracji manage_connections w Desktop/TUI/CLI zgodnie z testem dla tagu — rozszerzono podsekcję bezpłatnego poziomu Nous); --format stream-json (_parser.py:247-249 oraz hermes_cli/stream_json.py: system/init -> text/tool_use/tool_result -> jedna koperta result; wymaga -q, implikuje --quiet, odrzuca --tui, limit wyniku narzędzia wynosi 5 000 znaków — dodano wiersz do tabeli opcji czatu); skills.auto_load (config_defaults.py:1435, „przypięte jako w pełni załadowane w każdej nowej sesji (CLI, TUI, gateway, cron, API)”, rozpoznawane jednokrotnie podczas tworzenia promptu, brakujące nazwy powodują ostrzeżenie i są pomijane, HERMES_IGNORE_RULES wyłącza tę funkcję — dodano nową podsekcję „Przypięte skills”); decline w gateway (gateway/config.py:139, jedna uprzejma odmowa, a następnie 24 godz. ciszy zgodnie z DECLINE_DEDUPE_SECONDS #88028, unauthorized_dm_decline_message, konfiguracja dla poszczególnych platform przez platforms.<name>.extra, domyślną wartością dla poczty e-mail jest ignore — rozszerzono sekcję dotyczącą parowania); mcp.discovery_concurrency (config_defaults.py:526, wartość domyślna 4, 0 = bez limitu #117373, nieprawidłowe wartości powodują ostrzeżenie i przywrócenie wartości domyślnej, każdy serwer nadal nawiązuje połączenie — rozszerzono sekcję MCP); parametry after/before w session_search oraz ponowna próba z luźniejszym OR (schemat narzędzia :708-725, granice włączające/wyłączające, format ISO lub 7d/24h/2w; hermes_state_search.py:1151-1163 — przy braku wyników ponawiana jest próba z DOWOLNYM terminem w indeksie unicode61, przy zachowaniu semantyki dokładnych trafień; wyłączone są zapytania OR/NOT, jednoterminowe i CJK — rozszerzono sekcję Session Search, a jej nieaktualne twierdzenie o „podsumowywaniu przez Gemini Flash” POPRAWIONO zgodnie z pozbawioną LLM konstrukcją o jednym kształcie z wersji v0.15.0 według 34); hermes sessions set-journal-mode delete\|wal (subcommands/sessions.py:177 oraz sessions_cmd_journal_mode.py, samoobsługowe działanie offline dla #100896, odrzuca obcych właścicieli blokad, weryfikuje bajty nagłówka 18/19, doctor wskazuje to polecenie — rozszerzono wiersz sesji i sekcję Session Storage); fala zmian w Desktop (pole czcionki desktop.font_family zastępujące motywową zmienną --dt-font-sans, propozycje uwzględniające przede wszystkim dostępność; „Update engine” — aktualizacja środowiska wykonawczego jednym kliknięciem z widoczną możliwością ponowienia po błędzie; odinstalowywanie w centrum pluginów po potwierdzeniu, przez plugins.manage remove / moduł ładujący Electron); katalogi wideo (plugins/video_gen/fal ltx-2.5 + kling-o3 z opisami możliwości zweryfikowanymi dla tagu; wiersz wykazu w dokumentacji toolset); rozbudowa katalogu pluginów (plugin-catalog/ — wzrost z 9 do 228 pozycji w tym oknie, dopuszczanie YAML przypiętego skrótem SHA, strony WWW dla poszczególnych pluginów i autorów z plikami README z przypiętych commitów renderowanymi przez mechanizm listy dozwolonych elementów, sortowanie według dat commitera na dodane/zaktualizowane; potwierdzono obecność 10 pluginów społeczności wymienionych w wydaniu pod ich rzeczywistymi slugami: hermes-tailscale/hermes-ssh/shodan/hermes-terminal/hermes-rss/hermes-resetwatch/done-bell/kiwi/cognee/web-octen — rozszerzono sekcję Plugin System). Kategorię poprawek (izolacja profili/multipleksowania, cron, kanban, Desktop, state.db) WSTRZYMANO do skanowania wersji v0.22.0, zgodnie z odroczeniem podanym w samym wydaniu. Ponownie zweryfikowano stan kompatybilności: wycofanie usuwające ścieżkę WCIĄŻ nie zostało zastosowane — manifest i shimy są obecne zarówno w v2026.9.21, JAK I w main na commicie a53b42ddea (22 września 2026, pobranym tego samego dnia); zmiany w oknie plugin_compat.py obejmują wyłącznie pamięć podręczną skanowania pluginów i ścieżki systemu Windows w formacie POSIX (#112576), a kontrola literalnej wartości logicznej została przeniesiona z :261-268 do :296-303 i nadal używa is True; aktualność informacji odświeżono w punkcie dotyczącym wersji v0.21.1, bloku v0.21.3, ramce sekcji Plugin System oraz 42. Ponowne pomiary dla v2026.9.21: statyczni dostawcy — 39 (liczba AST w models_catalog_static.py:311) oraz foldery pluginów dostawców — 39, obie wartości bez zmian; oznaczenie tagu przy liczbie dostawców w TL;DR zmieniono z v2026.9.14 na v2026.9.21; usunięto określenie wersji v0.21.3 jako „bieżącego wydania”. 505142
2026-09-15 Przewodnik v1.19: Hermes v0.21.2 (tag v2026.9.11, 11 września) „The state.db Patch Release” + v0.21.3 (tag v2026.9.14, 14 września) oraz następstwa terminu zgodności pluginów. Poniżej sekcji v0.21.1 dodano nową sekcję „Co nowego”. W v0.21.2 („947 commitów bez merge”, „312 scalonych PR-ów”, „140 współtwórców”) na pierwszy plan wysuwa się kampania na rzecz niezawodności state.db (6 PR-ów, 44 problemy: koordynację hostowanych pokoi przeniesiono z głównego magazynu do shared-state.db — zweryfikowano w gateway/hosted_rooms.py:398-426 dla tego tagu; dashboard najpierw otwiera bazę w trybie tylko do odczytu; zabezpieczenie cron korzysta z rejestru śledzonych połączeń; doctor --fix odrzuca checkpointy, których bezpieczeństwa nie można udowodnić; uszkodzenie indeksu FTS ogranicza możliwości wyszukiwania, zamiast awaryjnie kończyć turę; uszkodzone wiersze są wyświetlane jako ?, zamiast powodować awarię sessions list; wiązanie przypięte do profilu; otwarcia w trybie tylko do odczytu nie przejmują już blokady zapisu, 4–20 s -> 0,01 s; zachowano zalecaną w wydaniu procedurę dla operatorów: najpierw hermes doctor, następnie hermes sessions recover --inspect-only — parser w hermes_cli/subcommands/sessions.py:185-196, a podpolecenie ISTNIAŁO JUŻ przed tym okresem (było obecne w v2026.8.31), dlatego opisano je jako nowo uwzględnione w przewodniku, a nie nowe); wzmocnienie izolacji wielu profili (#107609–#107630 usunęły rzeczywiste luki w obietnicy „pełnej izolacji”, obowiązującej od v0.19.0 — dziedziczone listy dozwolonych elementów, dane uwierzytelniające przekazywane do hosta profilu domyślnego, sekrety skarbca udostępniane serwerom stdio MCP, załączniki MEDIA: dostępne między profilami, tokeny bearer Nous profili równorzędnych; w sekcjach Profile i akapicie o multipleksowaniu Messaging Gateway dodano uwagi rzetelnie przedstawiające ograniczenia); skarb́iec danych uwierzytelniających bez dostępu do haseł (logowanie, płatności i automatyczne uzupełnianie za pomocą 1Password, Bitwarden lub lokalnego skarbca poprzez metadane uchwytów z przestrzenią nazw, przy czym hasło jest pobierane dopiero podczas wypełniania; hasło główne nigdy nie jest argumentem narzędzia; TOTP z zapisanego klucza aplikacji uwierzytelniającej — zweryfikowano agent/vault_backends/ + agent/vault_store.py:74-105 dla tego tagu); katalog pluginów (hermes plugins browse/search + obsługujące katalog polecenie install + pack install/export/show, przypięcie za pomocą SHA — podparsery zweryfikowano dla tego tagu; zaktualizowano blok poleceń w sekcji System pluginów); bezpłatny plan Nous + pierwsze uruchomienie z instrukcjami (bezpłatne wnioskowanie i konektory, /login z poziomu czatu, HERMES_GUEST_ONBOARDING=1, gdzie funkcję włącza WYŁĄCZNIE dosłowna wartość 1 — zweryfikowano guest-onboarding-flag.test.ts; dodano nową podsekcję w części Nous Tool Gateway); a także poprawki zapobiegające lawinowemu uruchamianiu procesów przez aplikację desktopową. Krótki blok v0.21.3 („1 036 commitów bez merge”, „338 scalonych PR-ów”; utworzono tag, aby automatycznie aktualizowane agenty Cloud otrzymały tę wersję): odświeżanie tokenu w trybie single-flight zapobiega unieważnianiu sesji wskutek serii równoczesnych odświeżeń (commit 5dea46d13d, #110061), wyeliminowano zduplikowane uchwyty zapisujące do state.db (commit 939a2f64b4, #110934); obie zmiany zweryfikowano wyłącznie w przedziale v2026.9.11..v2026.9.14; przytoczono zapowiedź z samego wydania („Pełne, opracowane informacje o wydaniach z tego okresu pojawią się wraz z v0.22.0, które udokumentuje wszystkie zmiany od v0.21.0” … „Żadna zmiana z tego okresu nie zostanie pominięta”) oraz wymieniono celowo jeszcze nieudokumentowane elementy (selektory intensywności rozumowania, OpenRouter PKCE, HEIF/AVIF, serię zmian FAL, Slack Agent Sessions API, odmowę użycia WAL między maszynami wirtualnymi), WSTRZYMUJĄC ich opis do analizy v0.22.0. Następstwa terminu zgodności przepisano w czasie przeszłym w punkcie omawiającym v0.21.1, ramce System pluginów oraz 42: usunięcie aktywowano ZGODNIE Z HARMONOGRAMEM za pomocą bramki daty, a nie poprzez wycofanie kodu (hermes_cli/plugin_compat.py:32 w v2026.9.14 ustawia COMPAT_REMOVAL_DATE; removal_in_effect() w :86-90 zwraca wartość true od 2026-09-14), a objęte zmianą pluginy są teraz wyłączane i wyświetlają czerwone powiadomienie — jednak zmiana usuwająca stare ścieżki importu NIE została jeszcze wdrożona (COMPAT_MANIFEST.md + compat_manifest.json + shimy są obecne zarówno w tym tagu, JAK I w main w 5d59366010, pobranym 2026-09-15 o 12:55 PT), dlatego plugins.allow_deprecated_imports: true nadal umożliwia ładowanie objętych zmianą pluginów; akceptowana jest wyłącznie dosłowna wartość logiczna (plugin_compat.py:261-268, is True — ciąg znaków w cudzysłowie nigdy nie włącza obejścia). Zmiany odnotowane wyłącznie w changelogu i zweryfikowane na podstawie wydania lub kodu źródłowego: bots_require_mention w Telegramie wymaga od botów wzmianki @mention, przerywając pętle komunikacji bot–bot; hermes -z --resume kontynuuje sesję (-z = --oneshot, hermes_cli/_parser.py:113); pasywne sprawdzanie aktualizacji odpytuje GitHub API najwyżej raz dziennie, zamiast wykonywać git fetch co 30 min (banner.py:129-131 w v2026.9.11, :136-139 w v2026.9.14); hermes backup -k/--keep domyślnie zachowuje 3 najnowsze archiwa zip (subcommands/backup.py:24-26), a kopie zapasowe config.yaml znajdują się w jednym folderze backups/config/ o ograniczonym rozmiarze; klucze model_thresholds można ograniczać do dostawcy w formacie provider:substr (agent/context_compressor.py:1558-1567); --clone-all nie kopiuje już zadań cron (flaga należy do hermes profile, subcommands/profile.py:24, A NIE do hermes cron); kanban promote odrzuca elementy, których nadrzędne zadania nie zostały ukończone, a kanban_request_review odrzuca nieznane profile recenzentów; /model oraz automatyczny wybór modeli pomocniczych nigdy nie obciążają kosztami dostawcy, którego nie wybrano, ani nie przełączają się automatycznie na dostawcę bez danych uwierzytelniających; do selektorów dodano DeepSeek V4.1 Flash (Nous Portal + OpenRouter), GPT Image 2.5 oraz Opus 5 + Fable 5.1 w natywnym selektorze Anthropic; okres przechowywania danych przez debug share skrócono do 1 dnia w przypadku awaryjnego użycia dpaste. Ponowne pomiary dla v2026.9.14: 39 dostawców statycznych (liczba AST wpisów CANONICAL_PROVIDERS w models_catalog_static.py:314) oraz 39 folderów pluginów dostawców — obie wartości bez zmian; domyślna wartość --max-turns wynosząca 500 znajduje się teraz w cli.py:404 (cli.py:400 w 41 pozostaje poprawne dla wskazanego tam tagu); model_catalog.ttl_minutes wynosi 20 (config_defaults.py:1866); twierdzenie z v0.21.1 o największym przedziale (5 139) pozostaje prawdziwe w porównaniu z dwoma nowymi przedziałami (lokalne liczby commitów bez merge: 959 i 1 037); oznaczenie wersji dla liczby dostawców w TL;DR zmieniono z v2026.9.7 na v2026.9.14. 484942
2026-09-08 Przewodnik v1.18: Hermes v0.21.1 (tag v2026.9.7, 7 września) — zbiorcza poprawka: największy dotąd zakres między kolejnymi tagami („5 139 commitów bez merge”, „632 scalone PR-y”), opisany celowo zwięzłą notą, która odsyła pełne, opracowane informacje do v0.22.0. Nad sekcją Pantheon dodano nową sekcję nowości, obejmującą 6 zweryfikowanych źródłowo grup zmian: wrześniową dekompozycję oraz termin zgodności pluginów przypadający na 2026-09-14 (COMPAT_MANIFEST.md: 1 148 nazw przeniesionych do leniwego ładowania, jedno ostrzeżenie HermesPluginCompatWarning na nazwę, narzędzie sprawdzające hermes plugins compat, awaryjna opcja plugins.allow_deprecated_imports; do sekcji Plugin System dodano ramkę dotyczącą okresu zgodności), granice konwersacji gateway resetowane wyłącznie jawnie (SessionResetPolicy jest teraz nieaktywna — zaktualizowano sekcję Messaging Gateway i opatrzono adnotacjami listę migracji z claw), OAuth przy użyciu kodu urządzenia dla MCP (hermes mcp login --flow device, RFC 8628; do bloku poleceń MCP dodano login i reauth --all; własność profilu w ramach sesji OAuth, ignorowanie uszkodzonych pamięci podręcznych metadanych, lokalne dla klienta desktopowego wywołania zwrotne, filtry -t przy uruchamianiu serwerów MCP), niezawodność delegowania (jednostki ukończenia przez delegation.independent_completions z polem group dla każdego zadania, domyślnie jedno ukończenie na wywołanie; przekazywanie procesów działających w tle z polami orphaned_processes i unread_completions w wynikach; delegation.fallback_providers; łańcuchy agentów potomnych walidowane przez normalizator; częściowe wyniki odporne na awarie; agenci potomni nigdy nie dziedziczą godzinnego poziomu pamięci podręcznej — wszystko odczytane ze źródła narzędzia delegowania dla tego tagu), dostawców/modele (GPT-6 Astra + Astra Pro z poziomami fast/flex, dostępne zależnie od konta w Codex OAuth wraz z opcjonalnym wariantem -900k; claude-fable-5.1; gemini-3.7/3.8-flash; qwen3.8-max-0902; Muse Spark 1.3 + plugin image_gen muse-image; wyszukiwanie/ekstrakcja Tavily; zarządzane środowisko uruchomieniowe llama.cpp; dostawcy w procesach zewnętrznych; odświeżanie katalogu co 20 minut przez model_catalog.ttl_minutes) oraz falę zmian w aplikacji desktopowej (tryb komentowania w przeglądarce w aplikacji, przekazujący selektor/znaczniki/style dla każdej adnotacji w partiach pogrupowanych według regionów; ustrukturyzowane sterowanie sesją i automatyzacją; tworzenie sesji przez przeciągnięcie; import sesji z obcą transkrypcją; display.resume_last_session; zgoda na użycie rzeczywistego profilu przy pierwszym uruchomieniu; wbudowany katalog opcjonalnych skills; rosyjska lokalizacja aplikacji desktopowej). Tylko w dzienniku zmian, zweryfikowane na podstawie commitów lub źródła: niezawodność cron (wzmocnione przekazywanie po ponownym uruchomieniu w 3 zweryfikowanych commitach naprawczych, serializacja deduplikacji dostarczania z zachowaniem stanów końcowych, usunięcie warunku wyścigu przy tworzeniu wstrzymanego zadania, kierowanie multimediów cron w Discord do właściwego celu z raportowaniem błędów przesyłania, zachowanie ciągłości podczas cichych cykli audytu), parsowanie powłoki przy zatwierdzaniu (sekwencje ucieczki przy rozdzielaniu GNU env i operandy argv0, granice argumentów env i komentarzy powłoki, zachowanie granic poleceń w cytowanych treściach podstawiania poleceń, approvals.deny wewnątrz izolowanych kontenerów), mechanizm nadzorujący dostępność podczas uruchamiania gateway (hermes_startup_watchdog.py; gateway.startup_watchdog z limitem 300 s i kodem 75 przy wymuszonym zakończeniu), odporność state.db (odzyskiwanie utraconych danych do lost-and-found przez sqlite3-.recover, kierowanie FTS like_scan, nowy plik docs/state-db-recovery.md), wydajność (search_files uruchamia ripgrep natywnie na lokalnych hostach POSIX, transkrypcje potomnych agentów delegowanych wyłączono z indeksu trigramowego FTS w schemacie v30, współdzielony klient OpenAI httpx dla ścieżek głównych i pomocniczych), gateway.trust_env, selektor /model oparty na Slack Block Kit oraz dostarczanie multimediów ze zdalnej piaskownicy (dane uwierzytelniające ani prowadzące do nich dowiązania symboliczne nigdy nie opuszczają piaskownicy); sekcję rozwiązywania problemów uzupełniono o kontrolę pozostawionej wartości HERMES_MAX_ITERATIONS w narzędziu doctor. Ponowne sprawdzenie dla tagu v2026.8.31 -> v2026.9.7: 39 statycznych dostawców i 39 folderów pluginów dostawców, w obu przypadkach z wpisami identycznymi jak w v0.21.0 — wstępne twierdzenie „38 statycznych, xai wchłonięty przez plugin” zostało obalone u źródła (krotka xai nadal znajduje się na liście statycznej; przeniesiono jedynie plik, hermes_cli/models.py -> hermes_cli/models_catalog_static.py:311); ścieżkę prompt_builder.py zmieniono na agent/prompt_builder.py w modelu mentalnym i przepływie danych CLI; informację z v0.16 o cogodzinnym odświeżaniu katalogu pozostawiono w kontekście tej wersji, a obok dodano interwał 20-minutowy. Ponownie zweryfikowane, niezmienione informacje: uwaga dotycząca nazwy hermes approvals test, domyślna wartość 500 dla --max-turns (cli.py:400 w tym tagu; nie przeniesiono nieaktualnego docstringa podającego 60), 2000 wierszy dla read_file, limity delegowania 250/10, compression.tail_mode: lean, Node 26, 17 lokalizacji CLI. 41424344454647
2026-07-28 Przewodnik v1.12: Rozszerzenie treści na podstawie popytu w wyszukiwarce — 2 tematy o wysokiej konwersji nie miały odpowiadających im nagłówków. Bez nowego wydania. Dane GSC wskazują, że zapytania hermes swarm i hermes agent swarm osiągają konwersję na poziomie 4,4–6,3% przy pozycji około 8, a hermes smart model routing — 4,9% przy pozycji 6,7, choć żadne z tych pojęć nie miało własnej sekcji: swarm występował jedynie w tekście sekcji Multi-Agent Kanban i w wierszach dziennika zmian, natomiast „smart model routing” pojawiał się wyłącznie w przypisie. W sekcji Multi-Agent Kanban dodano Czym jest Hermes Swarm? — swarm zdefiniowano jako równolegle działających agentów roboczych korzystających z jednej trwałej tablicy, opisano topologię swarm z v0.15.0, automatyczną dekompozycję, wybór modelu dla poszczególnych zadań, zadania zaplanowane i zarządzanie drzewami roboczymi, a także zestawiono w tabeli awarie, którym zapobiegają poszczególne mechanizmy. Tytuł Rotacja dostawców i mechanizm awaryjny zmieniono na Inteligentne kierowanie modeli: rotacja dostawców i mechanizm awaryjny, dodając wprowadzenie łączące pule danych uwierzytelniających, model awaryjny i routing pomocniczy w jeden system. Do kotwicy nie prowadziły żadne odnośniki wewnętrzne, dlatego zmiana tytułu niczego nie narusza. 59 2 6
2026-08-31 Przewodnik v1.17: Hermes v0.21.0 „The Pantheon Release” (tag v2026.8.31, 31 sierpnia) — pojawia się opracowane wydanie zbiorcze. Nad sekcją Herald dodano nową sekcję nowości, uporządkowaną według obszarów funkcji z samego wydania: Bot Mode dołączony do aplikacji desktopowej i domyślnie włączony (nazwane profile, deterministyczne awatary, czaty grupowe ze wzmiankami @), bezpośrednie wiadomości między botami przez hermes peer (odpowiedzi trafiają do kanonicznego Bot Chat każdego agenta), ciągłość cron (continuity=true, trwałe notatniki, pomijanie LLM w trybie monitorowania, przypinanie poziomu wysiłku dla poszczególnych zadań — sekcję zadań zaplanowanych uzupełniono o mechanikę wszystkich 4 funkcji dla tego tagu), bieżąca orkiestracja subagentów (delegate_task list/steer/stop, wyniki agentów potomnych zgodne ze schematem JSON, wartości domyślne zwiększone do 250 iteracji / 10 równoległych agentów potomnych — zweryfikowane źródłowo w config_defaults.py, wobec czego wartości 3/50 na stronie dokumentacji delegowania są nieaktualne), centrum poleceń MCP (+odnośniki instalacyjne hermes:// — zaktualizowano sekcję MCP), fala możliwości CLI (do tabel poleceń ukośnikowych dodano /palette + Ctrl+P oraz /status korzystające ze współdzielonego rejestru; odnotowano filtrowanie /model podczas pisania; wykazano, że nazwa hermes approval-check z informacji o wydaniu odpowiada w tym tagu poleceniu hermes approvals test — taki podkomenda nie istnieje), sterowana przez agenta przeglądarka w aplikacji, fala dostawców/modeli (6 nowych dostawców; macierz uzupełniono o wiersze Tencent TokenPlan, Nebius Token Factory, Ramp Router i Alibaba Token Plan wraz ze zmiennymi środowiskowymi przytoczonymi z dokumentacji; model_overrides; ostrzeżenia dotyczące poziomów trenowania na danych; pluginy dostawców instalowane przez pip), fala zabezpieczeń (zapisy do AGENTS.md/skills/memory zawsze wymagają zatwierdzenia — security.protected_instruction_files: true oraz bramka w tools/file_tools.py zweryfikowane dla tego tagu; kompleksowe maskowanie danych; obsługa zatwierdzeń w Windows; hermes desktop --setup-tcc-identity; usunięcie Blender MCP — do sekcji wzmacniania zabezpieczeń dodano czwartą falę), dojrzewanie gateway, fala 8 skills oraz lista WYCOFANYCH zmian (Model Council /council, context engine DCP, serwer gateway działający wyłącznie przez WS — odtwarzanie ze znacznikami sekwencji #94219 ZOSTAŁO wydane; powrót Electron do 40.10.2; grep potwierdza, że przewodnik nigdy nie opisywał żadnej z wycofanych funkcji). Tymczasowy charakter informacji o odłożeniu pełnych not w podsekcji wydania zbiorczego został ROZWIĄZANY i odsyła ona teraz do opracowanej sekcji; bloki zakresów zachowano jako zapis dla poszczególnych tagów. Ponowne sprawdzenie dla tagu v2026.8.27 -> v2026.8.31: liczba statycznych dostawców wzrosła z 38 do 39 (+tencent-tokenplan), folderów pluginów dostawców z 37 do 39 (+nebius-token-factory, +router, oba z auth_type="api_key"), a wierszy dostawców w dokumentacji z 41 do 45; bez zmian i ponownie zweryfikowane: 28 wierszy platform w dokumentacji / 24 elementy wyliczenia Platform (identyczna lista) / 22 foldery adapterów, identyczne _BUILTIN_SUBCOMMANDS (73, peer obecne już od okresów objętych wydaniami zbiorczymi, brak version), 7 backendów terminala + rejestr pluginów (rejestr identyczny bajt w bajt), 14 osobowości i 17 lokalizacji (pliki identyczne bajt w bajt / identyczne listy), domyślne ustawienie kompresji lean i zestaw slotów pomocniczych, identyczne bajt w bajt _startup_fast.py/portal_cli.py. Rozbieżności usunięte podczas weryfikacji: hermes chat -q w TTY inicjuje teraz sesję interaktywną (nowa opcja --oneshot przywraca tryb odpowiedzi i zakończenia), a domyślną wartość --max-turns w tabeli czatu skorygowano z 90 na 500 zgodnie z pomocą parsera dla tego tagu. 35363738394033
2026-08-27 Przewodnik v1.16: Hermes v0.20.6 (tag v2026.8.27, 27 sierpnia) — czwarte wydanie zbiorcze. Podsekcję dotyczącą wydań zbiorczych rozszerzono o czwarte okno, zgodnie z opisem samego wydania (około 1 313 commitów w około 1 557 plikach, +177 113 / −21 682 — około 525 scalonych PR-ów od v0.20.5): przeglądanie z użyciem rzeczywistego profilu wymagające zgody (domyślny profil Chromium, w systemie Windows procedura zamknięcia po zatwierdzeniu), desktopową przeglądarkę Browser we własnym oknie systemu operacyjnego, zarządzany silnik zdalnych aktualizacji SSH i panel profili floty, rozszerzenie zdalnego katalogu MCP (ponad 50 zweryfikowanych w działaniu serwerów hostowanych przez dostawców, w tym Cloudflare, Grafana Cloud, Better Stack i Railway), opcjonalne szyfrowanie zapisanych sekretów przy użyciu systemowego magazynu kluczy, nowe modele w selektorze (GLM-5.3-Flash, bezpłatny MiniMax M3, MiniMax H3 Max do wideo), buforowanie wyników z TTL dla web_search/web_extract, obsługę wielu zapytań przez tool_search wraz ze stemmingiem, wstrzymywanie gateway przez aktualizatory za pośrednictwem gniazda sterującego, odrzucanie niebezpiecznych aktualizacji w miejscu w instalacjach zarządzanych przez obrazy lub pakiety, trwałe potwierdzenia incydentów cron, kontrolę rozwijania podglądu linków w Slack oraz współdzielone tożsamości kontenerów Docker. Dwa stwierdzenia z informacji o wydaniu przeczyły dotychczasowym sekcjom; oba potwierdzono dla tego tagu i poprawiono: kompresja lean-tail jest domyślna (sekcję Context Compression przepisano z użyciem kluczy obowiązujących w tym tagu — tail_mode: lean, threshold_tokens, protect_first_n oraz parametrów modułu podsumowującego w auxiliary.compression.*, wraz z automatyczną migracją do wersji 17 konfiguracji; poprawiono odwróconą uwagę dotyczącą rozwiązywania problemów) oraz backendy terminala można rozszerzać za pomocą pluginów (opis zmieniono na siedem wbudowanych backendów oraz rejestr pluginów w stylu selektora dostawców; nazwy wbudowane są zastrzeżone). Ponownie zweryfikowano dane dla tagu i zaktualizowano v2026.8.19 → v2026.8.27: 38 statycznych dostawców + 37 folderów pluginów dostawców, 24 elementy wyliczenia Platform / 22 foldery adapterów / 28 wierszy tabeli w dokumentacji, brak podpolecenia version (73 pozycje w _BUILTIN_SUBCOMMANDS, w tym worktree), opcje parsera i cytowane teksty pomocy bez zmian, BUILTIN_PERSONALITIES nadal zawiera 14 pozycji (od helpful do hype); locales/ obejmuje teraz 17 katalogów (en + 16 tłumaczeń; dodano liczbę dla tego tagu). Gałąź main znajduje się DOKŁADNIE na tym tagu (ahead_by: 0, identyczny stan). Poprawiono również rozbieżność wykrytą podczas weryfikacji: nieaktualną wartość domyślną systemu pomocniczego — auto kieruje teraz każde zadanie pomocnicze do głównego modelu czatu, zamiast wykrywać Gemini Flash przez OpenRouter → Nous → Codex; sekcję Auxiliary Models przepisano zgodnie z listą slotów dla tego tagu (dodano title_generation, tts_audio_tags, triage_specifier, kanban_decomposer i profile_describer wraz z opartymi na źródłach, jednozdaniowymi opisami; sloty web_extract i session_search usunięto wcześniej — żaden nie korzysta już z LLM — a flush_memories zniknął z ustawień domyślnych), a wpis dotyczący rozwiązywania problemów wyłącznie z Anthropic ponownie osadzono w aktualnych źródłach. Wiersz dotyczący nowej instalacji w opisie wydania używa surowego adresu URL skryptu GitHub; w przewodniku zachowano kanoniczny adres hermes-agent.nousresearch.com/install.sh. Wyselekcjonowane informacje o wydaniu v0.21.0 są nadal zapowiadane. 293031323334
2026-08-26 Przewodnik v1.15: KOREKTA — brak nowego wydania (najnowszy tag v2026.8.19 / v0.20.5 z 21 sierpnia); dotychczasowe informacje ponownie zweryfikowano dla tego tagu. Backendy terminala: sześć → siedem; do tabeli i komentarza w konfiguracji dodano vercel_sandbox. Platformy komunikacyjne: przypadkowe wskazania liczby „22” uzgodniono z tabelą porównawczą dokumentacji, która dla tego tagu zawiera 28 pozycji, oraz podano sposób liczenia (24 wbudowane elementy wyliczenia Platform, 22 dołączone foldery adapterów); do listy gateway dodano ntfy i Buzz. Dostawcy: „około 20 / około 22 pierwszoplanowych” zastąpiono liczbami pochodzącymi ze źródeł (38 statycznych pozycji CANONICAL_PROVIDERS oraz automatyczne rozszerzanie o 37 dołączonych pluginów dostawców; 41 wierszy usług chmurowych/subskrypcji na stronie dokumentacji), usunięto określenie „pełna lista”, poprawiono wiersz Qwen OAuth i dodano 17 wierszy macierzy (OpenCode Free, bezpośrednio OpenAI API, Vertex AI, Azure Foundry, Bedrock, NVIDIA NIM, Ollama Cloud, StepFun, MiniMax OAuth, Meta AI, NovitaAI, Arcee AI, GMI Cloud, Actual Computer, Tencent TokenHub, CommandCode, Alibaba Coding Plan). hermes version → hermes --version (dla tego tagu nie jest to podpolecenie). Przy hermes honcho zaznaczono zależność od pluginu. „--plan dla floty” → hermes update --plan. Sekcję Global Options rozszerzono o --in, --tui, --cli, --dev, --ignore-rules, --ignore-user-config; do Top-Level Commands dodano 34 wiersze z _BUILTIN_SUBCOMMANDS, w tym hermes worktree list\|prune wraz z jego flagami; dodano polecenie ukośnikowe /worktree; udokumentowano hermes setup --portal oraz hermes portal login\|info\|open\|tools. W chwili weryfikacji gałąź main wyprzedzała tag o 1 104 commity (wszystkie zostały następnie uwzględnione w v2026.8.27); wyselekcjonowane informacje są zapowiadane dla v0.21.0. 23242526272829
2026-08-24 Przewodnik v1.14: v0.20.5 (tag v2026.8.19, opublikowany 21 sierpnia). Podsekcję dotyczącą wydań zbiorczych rozszerzono o trzecie okno (około 746 commitów / około 323 PR-y od v0.20.4): warstwę web bez kluczy (bezpłatna rotacja między 5 dostawcami z pierścieniowym mechanizmem przełączania awaryjnego — wyszukiwanie w internecie w nowych instalacjach bez żadnych kluczy), dopracowanie CLI (rozmyte wyszukiwanie w selektorze /model, paleta poleceń Ctrl+P, bogatszy widok /status), wątki pokojów grupowych w Bot Mode + zwijane podsumowania + przeciąganie i upuszczanie plików PDF oraz innych plików, hermes worktree list/prune, potwierdzenia aktualizacji hermes update i weryfikację --plan dla floty, trwałą pamięć cron z poziomem intensywności rozumowania określanym dla każdego zadania, zabezpieczenia przed zastojem wymuszające dyscyplinę wykonywania na podstawie wniosków z ewaluacji Composio, dostawcę opencode-free niewymagającego uwierzytelniania oraz poprawę wydajności aplikacji desktopowej (hydracja z renderowaniem w pierwszej kolejności, React Compiler w obu rendererach). Wydanie v0.21.0 z pełnymi, wyselekcjonowanymi informacjami jest nadal oczekiwane — podsumowania pochodzą z opisu okna zamieszczonego w samym wydaniu. Zaktualizowano historię wersji w nagłówku. 23
2026-08-20 Przewodnik v1.13: v0.20.3 (tag v2026.8.16.2, opublikowany 17 sierpnia) oraz v0.20.4 (tag v2026.8.18, 18 sierpnia). Nowa podsekcja w ramach Herald Release: seria wydań zbiorczych wprowadza teraz nowe funkcje, a nie tylko stabilizację. v0.20.3 (około 250 commitów / około 125 PR-ów): migracja MCP 2.x SDK z obsługą protokołu bezstanowego z 2026-07-28, dołączony plugin Bot Mode (hermes-bots) z podstawowym protokołem współpracowników, plugin dostawcy CommandCode, kontrakty środowiska wykonawczego Cua Driver 0.20 do obsługi komputera, wzmocnienie własności środowiska wykonawczego Python, samonaprawianie harmonogramu cron, poprawki zapobiegające utracie danych podczas przekazywania sesji oraz porty z ekosystemu (/worktree, zachowanie ręcznych zmian przez /rollback, skanowanie bezpieczeństwa podczas instalowania pluginów). v0.20.4 (około 146 commitów / około 74 PR-y): szklana/półprzezroczysta warstwa aplikacji desktopowej z selektorem efektu oszronienia, pasek boczny SESSIONS|BOTS z kartami i możliwością ukrywania oraz ponownego wyświetlania poszczególnych botów, doradcze skanowanie NVIDIA SkillEvaluator Tier 1 podczas instalowania skill (licencja + bezpieczeństwo), wzmocnienie wysyłania multimediów przez cron oraz rzetelne raportowanie zaparkowanej gałęzi przez hermes update. W informacjach o obu wydaniach zapowiedziano pełne, wyselekcjonowane informacje wraz z v0.21.0 — podsumowania pochodzą z opisów okien zawartych w samych wydaniach. Zaktualizowano zdanie w nagłówku i historię tagów. 54
2026-08-16 Przewodnik v1.12: v0.20.0 „The Herald Release” (3 sierpnia, tag v2026.8.3) oraz stabilizacyjne tagi v0.20.1 (13 sierpnia) i v0.20.2 (16 sierpnia). Trzy korekty naprawiają instrukcje, które przestały działać: wymagany jest Node 26 (instalator przypina NODE_VERSION="26" i odrzuca starsze środowiska wykonawcze — informacja o Node v22 w serwisie dokumentacji jest nieaktualna, dlatego rozstrzygające są instalator i informacje o wydaniu), pip i Homebrew zostały wycofane, a nie uznane za przestarzałe („obsługiwane kanały to instalator powłoki / Docker / Nix”), a domyślny limit iteracji zmieniono z 90 na 500, przez co wszystkie liczby w tabeli presji na budżet stały się nieaktualne. Polecenie instalacji poprawiono tak, aby używało kanonicznego adresu https://hermes-agent.nousresearch.com/install.sh. Usunięta funkcja: źródło skill claude-marketplace zniknęło, a na liście źródeł zastąpiło je browse-sh; domyślne źródła GitHub to teraz openai, anthropics, huggingface, NVIDIA i gstack. Liczbę platform messaging gateway zmieniono z 22 na 28, wyliczając bezpośrednio pozycje w tabeli porównawczej dokumentacji (dokumentacja nie podaje oficjalnej liczby). Windows (natywnie) należy do Tier 1, a nie do wczesnej wersji beta; system macOS jest obsługiwany wyłącznie na Apple Silicon. Nowa sekcja opisuje samo wydanie: konwersacyjny tryb głosowy z możliwością przerwania wypowiedzi, A2A v1.0, podpisane wychodzące webhooki cyklu życia, skill grounded-citations, falę funkcji CLI obejmującą !//init//diff//context//focus oraz hermes import-agent, źródło sekretów command-helper, skrócenie zimnego startu hermes -w z około 14 s do około 1,8 s, a także artefakty aplikacji desktopowej wraz z Plugin SDK. Potwierdzono brak zmian w trzech ścieżkach uwierzytelniania, układzie ~/.hermes/, poleceniu hermes update i udokumentowanej liście narzędzi. 55
2026-07-21 Przewodnik v1.11: v0.19.0 „The Quicksilver Release” (20 lipca 2026, tag v2026.7.20). Dodano sekcję „Co nowego w v0.19.0”: skrócenie TTFT dla pierwszej tury o ok. 80% (zimne przesłanie→dispatch z ok. 4,3 s do ok. 0,9 s w CLI/gateway/TUI/aplikacji desktopowej/cron), domyślnie strumieniowane rozumowanie (display.show_reasoning WŁ.), fala ok. 20 PR-ów przyspieszających aplikację desktopową (14-krotnie szybsze strumieniowanie Markdown) oraz przyrostowe renderowanie Markdown w TUI; instalacje przez pip/Homebrew są przestarzałe (wyłącznie ostrzeżenie „nieobsługiwane rozwiązanie starszego typu”; planowane wycofanie publikowania w PyPI/Homebrew) — poprawiono sekcję instalacji i TL;DR, wskazując jednowierszowy instalator; wymienne źródło SecretSource z dostawcami Bitwarden i 1Password (odwołania op://, wiele sejfów, deterministyczny priorytet, pochodzenie każdej zmiennej); domyślnie inteligentne zatwierdzanie (niezależny recenzent LLM dla każdego oznaczonego polecenia) + definiowane przez użytkownika reguły odmowy, obowiązujące również w trybie YOLO + /deny <reason> + ponownie wdrożona eskalacja zatwierdzenia przez pre_tool_call pluginu; rozliczenia w terminalu /subscription + /topup + karta rozliczeń w aplikacji desktopowej (wycofano twierdzenie o „braku oddzielnego polecenia subskrypcji”); transkrypcje subagentów na żywo + trwałe delegowanie w tle + rejestr obowiązków dostarczenia w state.db; max_async_children uznano za przestarzałe na rzecz ujednoliconych limitów współbieżności delegowania; routing wiadomości gateway oparty na profilach (jeden multipleksowany token bota → odizolowane profile, GATEWAY_MULTIPLEX_PROFILES, indeks routingu w state.db, sessions.json jako opcjonalna kopia zgodności ze starszym rozwiązaniem); dostawcy/modele: Fireworks AI (2. pozycja w selektorze), DeepInfra, Upstage Solar, pełna obsługa GPT-5.6 (Sol/Terra/Luna + Pro), grok-4.5 GA, kimi-k3 (wycofano kimi-k2.x), pełna integracja Claude Sonnet 5, ustawienie enabled: false dla poszczególnych dostawców + excluded_providers, poziomy nakładu rozumowania max/ultra z nadpisaniami dla poszczególnych modeli/slotów MoA oraz /reasoning o zakresie sesji; CLI/MCP: hermes sessions export (Markdown/Quarto/HTML/tylko prompt/ślad HF, --redact), /model --once, łączone wywołania skill za pomocą poleceń slash, --safe-mode, hermes config get/unset, prawdziwie bezinterfejsowe hermes serve, nazewnictwo MCP mcp__server__tool. Odnotowano również pominięte tagi poprawek v0.18.1 (tag v2026.7.7) i v0.18.2 (tag v2026.7.7.2), 7–8 lipca 2026 — zbiorcze poprawki infrastruktury; istotna poprawka w v0.18.2 usuwa przypięcie WhatsApp Baileys do wersji 7.0.0-rc13, aby zapewnić niezawodne kompilacje Docker. 56 57
2026-07-16 Dodano pierwszą pozycję dotyczącą rozwiązywania problemów z dosłownym komunikatem błędu podczas uruchamiania „No inference provider configured. Run ‘hermes model’ to choose a provider and model” — w odpowiedzi na zapotrzebowanie widoczne w wyszukiwaniach; wskazuje interaktywny selektor, hermes doctor i trzy metody uwierzytelniania. Bez zmian w produkcie. 2 7
2026-07-01 Przewodnik v1.10: v0.18.0 „The Judgment Release” (1 lipca 2026, tag v2026.7.1). Dodano sekcję „Co nowego w v0.18.0”: zamknięto pełny backlog P0/P1 (ok. 692 pozycje); Mixture-of-Agents jako funkcja pierwszej klasy z oznaczonymi wynikami zespołu poszczególnych modeli i strumieniowaniem na żywo; kontrakty ukończenia — /goal weryfikuje własną pracę przez uruchomienie kontroli projektu; /learn (opis przepływu pracy → skill wielokrotnego użytku, zgodny z CONTRIBUTING.md); /journey — oś czasu pamięci/skill oraz graf pamięci w aplikacji desktopowej; równoległe uruchamianie subagentów w tle (współbieżnie delegowane zadania); Desktop Projects (projekt/repozytorium/ścieżka); gateway skalowany do zera z koordynacją wygaszania; Google Vertex AI (Gemini przez konta usługi GCP, automatyczne odświeżanie OAuth2); edytor promptów /prompt wykorzystujący \$EDITOR. Źródło: wydania hermes-agent. 22
2026-06-21 Przewodnik v1.9: v0.17.0 „The Reach Release” (19 czerwca 2026, tag v2026.6.19). Dodano sekcję „Co nowego w v0.17.0”. Komunikatory: iMessage bez serwera pośredniczącego przez Photon Spectrum (hermes photon login, OAuth z kodem urządzenia), oficjalny adapter WhatsApp Business Cloud API (bez mostu), grupy i załączniki SimpleX, plugin platformy Raft. Modele: z-ai/glm-5.2 (1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (xAI OAuth, 200k); domyślny model xAI → grok-build-0.1; adaptacyjne modele Anthropic pomijają pole reasoning. Aplikacja desktopowa/panel: subagenci w tle z oknami podglądu na żywo (delegate_task(background=true)), kompletny kreator profili, przeprojektowane Skills Hub, Automation Blueprints, bezpieczne logowanie 401, motywy z VS Code Marketplace oraz interfejs w języku japońskim i chińskim tradycyjnym. Skills/narzędzia: edycja obraz-na-obraz w image_generate, atomowa partia operations w memory, skill simplify-code, wartość logiczna write_approval (zastępuje write_mode). Architektura: mechanizm obsługi pozyskiwania danych MCP, wymienny CronScheduler + Chronos, zakres Managed (/etc/hermes), przekazywanie Gateway-Gateway. Polecenia: /version, /billing, hermes curator run --consolidate (opcjonalne). Bezpieczeństwo: usunięto możliwość ominięcia listy blokad poleceń powłoki przez escaping, adaptery zatwierdzania/gateway działają w trybie fail-closed, oczyszczono środowisko cron, utajniono sekrety w zrzutach debugowania, kontrola wyprowadzania danych przez stdio MCP, aktualizacje urllib3 + PyJWT usuwające luki CVE. 21
2026-06-08 Przewodnik v1.8: v0.16.0 „The Surface Release” (5 czerwca 2026, tag v2026.6.5). Zmieniono tytuł przewodnika na v0.16 i dodano sekcję „Co nowego w v0.16.0”. Najważniejsza zmiana: Hermes nie ogranicza się już do terminala. Natywna aplikacja Hermes Desktop (Electron, macOS/Linux/Windows) z instalacją jednym kliknięciem, samodzielną aktualizacją z poziomu aplikacji, strumieniowanym czatem, obsługą przeciągania i upuszczania oraz wklejania obrazów ze schowka, paletą Cmd+K, archiwum i wyszukiwaniem sesji, selektorem modeli na pasku stanu, połączeniem ze zdalnym gateway przez bezpieczne WebSocket (OAuth lub użytkownik/hasło, hosty dla poszczególnych profili, międzyprofilowe łącza @session) oraz pełnym tłumaczeniem na chiński uproszczony opartym na typowanym i18n. Panel administracyjny w przeglądarce (panel internetowy → pełne narzędzie administracyjne): włączanie/wyłączanie katalogu MCP, zarządzanie danymi uwierzytelniającymi, tworzenie webhooków/hooków, konfiguracja pamięci, sterowanie gateway, strona System z kontrolą przed aktualizacją i funkcją Debug Share, nowa strona Channels oraz wymienne uwierzytelnianie (użytkownik/hasło, samodzielnie hostowane OIDC, hermes dashboard register). Nowe polecenia: /undo [N] (CLI/TUI/komunikatory), konfigurowalny domyślny interfejs (cli/tui, --cli), ujednolicone /model w TUI + nakładka Sessions, hermes portal, hermes prompt-size, hermes sessions optimize. Nowe modele: deepseek-v4-flash, MiniMax-M3 (kontekst 1M), qwen3.7-plus, gemini-3.5-flash; pierwszoklasowa obsługa xAI Grok OAuth w programie uruchamiającym aplikację desktopową; rozmyty selektor modeli; odświeżanie katalogu co godzinę. Skills: odchudzony zestaw domyślny (Spotify → natywny plugin, Linear → hermes mcp install linear, usunięto nieaktywne skills), bramka trafności environments: (kanban/docker/s6), domyślnie zaufane źródło NVIDIA/skills, progresywne ujawnianie narzędzi MCP/pluginu o ograniczonym zakresie. Bezpieczeństwo: CVE-2026-48710 (Starlette BadHost) — przypięcie wersji ≥1.0.1; kontrole SSRF przeniesiono poza pętlę zdarzeń; token okaziciela Bedrock usunięto ze środowiska podprocesu; dostęp do odczytu bws_cache.json zabezpieczono kontrolą; docker restart/stop/kill dodano do niebezpiecznych wzorców; oczyszczanie niewidocznych znaków Unicode. Zamknięto 2 problemy P0 i 62 problemy P1 (16 oznaczonych jako związane z bezpieczeństwem). 20
2026-05-31 Przewodnik v1.7.1: v0.15.1 (29 maja 2026, 01:12 UTC) — poprawka Velocity. Hotfix wydany tego samego dnia po Velocity; linia z przypiętym tagiem v2026.5.29. Usuwa pętlę ponownego ładowania panelu po błędzie 401, która wpływała na wdrożenia w trybie loopback. Docker nie traktuje już --insecure jako ustawienia niejawnego — aby ponownie je włączyć, należy jawnie ustawić HERMES_DASHBOARD_INSECURE=1. Bezpośrednie polecenia MCP (npx, npm, node) znów są prawidłowo rozpoznawane wewnątrz kontenerów Docker. Znaczniki źródeł i boczny pasek kategorii na stronie Skills są poprawnie renderowane. Procesy robocze Kanban prawidłowo reagują na SIGTERM, zamiast pozostawiać osierocone procesy. Katalog Skills.sh rozszerzono z 858 do 19 932 pozycji dzięki wykrywaniu przez mapę witryny. 28 commitów, 21 scalonych PR-ów, 9 współtwórców. v0.15.2 (29 maja 2026, 13:37 UTC) — poprawka pakietowania Velocity. Naprawia dystrybucje wheel i sdist, dołączając manifesty plugin.yaml, dzięki czemu instalacje z PyPI działają bez konieczności pobocznego ładowania drzewa źródłowego. Hotfix dotyczący wyłącznie pakietowania, 4 współtwórców. 58
2026-05-28 Przewodnik v1.7: dodano v0.15.0 (28 maja 2026) — wydanie Velocity (tag v2026.5.28). Najważniejsze zmiany: gruntowna refaktoryzacja i nowe mechanizmy orkiestracji. Refaktoryzacja bazy kodu: rozmiar pliku run_agent.py zmniejszono o 76% (z 16 083 do 3 821 wierszy), rozdzielając kod między 14 spójnych modułów. Multi-agent Kanban v2: automatyczny podział celów wysokiego poziomu na podzadania, topologia roju do równoległej koordynacji procesów roboczych, wybór modelu dla poszczególnych zadań, zadania zaplanowane oraz zarządzanie drzewami roboczymi. Wydajność: czas zimnego uruchamiania skrócono o kolejną sekundę; liczba wywołań funkcji na konwersację spadła o 47%; przeprojektowana funkcja session_search działa 4 500 razy szybciej dzięki usunięciu zależności LLM (i wyeliminowaniu kosztu jej API). Bezpieczeństwo: mechanizm ochrony przed promptware zabezpiecza przed wstrzykiwaniem promptów klasy Brainworm w trzech krytycznych punktach kontroli bezpieczeństwa; integracja z Bitwarden Secrets Manager zastępuje wiele kluczy API poszczególnych dostawców jednym tokenem inicjalizacyjnym. Pakiety skill: jednoczesne wczytywanie wielu skill za pomocą jednego polecenia slash. Orkiestrator sesji TUI: zarządzanie wieloma sesjami w jednym oknie terminala. Nowi dostawcy: Krea 2 (Medium/Large) oraz obsługa wtyczki FAL do generowania obrazów; kolejna runda integracji z xAI dodaje wtyczkę wyszukiwania internetowego, przekazywanie OAuth do usług nadrzędnych, wykrywanie wycofanych modeli oraz naturalne pauzy w TTS. Statystyki: 1 302 commity, 747 scalonych PR-ów i 321 współtwórców ze społeczności. Zgodnie z informacjami o wydaniu GitHub poprawka opublikowana tego samego lub następnego dnia rozwiązuje problemy z pętlą ponownego wczytywania panelu po błędzie 401, jawną zmienną środowiskową --insecure dla Docker, rozpoznawaniem poleceń bez ścieżki przez MCP w Docker (npx, npm, node), przywróceniem strony Skills, obsługą sygnału SIGTERM przez procesy robocze Kanban oraz pełnym katalogiem Skills obejmującym 19 932 wpisy udostępnione za pośrednictwem mapy witryny. 59
2026-05-21 Przewodnik v1.6: dodano v0.14.0 (16 maja 2026) — wydanie Foundation. Najważniejsze zmiany: lżejsze podstawy instalacji i środowiska wykonawczego oraz szersza obsługa dostawców, gateway, multimediów i weryfikacji. Dodano OAuth SuperGrok z kontekstem 1M w grok-4.3, zgodne z OpenAI polecenie hermes proxy dla dostawców OAuth, natywną funkcję x_search, instalację przez pip install hermes-agent, leniwe instalowanie zależności, uruchamianie szybsze o około 19 s, 180-krotnie szybsze wywołania CDP przeglądarki, LINE i SimpleX Chat zwiększające liczbę obsługiwanych platform komunikacyjnych do 22, pełną obsługę Microsoft Teams, /handoff, /subgoal, natywne przyciski doprecyzowania w Telegram i Discord, uzupełnianie historii Discord, analizę surowych pikseli przez vision_analyze, stopkę weryfikującą modyfikacje plików po każdej turze, diagnostykę semantyczną LSP przy każdym zapisie, ujednoliconą funkcję video_generate, computer_use za pośrednictwem cua-driver dla dostawców innych niż Anthropic, klikalne adresy URL OSC8, obsługę Zed ACP Registry, router OpenRouter Pareto Code, NovitaAI, środowisko wykonawcze Codex app-server, zaufane repozytorium huggingface/skills, 9 opcjonalnych skill, interfejsy wtyczek ctx.llm / tool_override, wyszukiwanie internetowe Brave/DDGS, zmianę nazwy Qwen Cloud, natywną wersję beta dla Windows oraz rozwiązania 12 problemów P0 i 50 problemów P1. 19
2026-05-07 Przewodnik v1.5: dodano v0.13.0 (7 maja 2026) — wydanie Tenacity. Najważniejsze zmiany: trwała tablica multi-agent Kanban (heartbeat, odzyskiwanie zadań, wykrywanie procesów zombie, bramka halucynacji, max_retries dla poszczególnych zadań, tablice dla wielu projektów), dzięki której roje stają się pełnoprawnym mechanizmem, a nie tylko wzorcem delegowania. Polecenie /goal utrzymuje agenta przy określonym celu przez kolejne tury (wzorzec pętli Ralph jako polecenie slash). Nowe narzędzie video_analyze, wykorzystujące przede wszystkim Gemini i umożliwiające rozszerzenie obsługi o zgodne modele. Dostawca xAI Custom Voices TTS z klonowaniem głosu. Internacjonalizacja obejmująca 7 języków (zh-Hans, ja, de, es, fr, uk, tr) dla CLI i komunikatów gateway; dokumentacja wyłącznie w zh-Hans. Google Chat jako 20. platforma komunikacyjna dzięki modułowemu wzorcowi adapterów; IRC i Microsoft Teams przeniesiono do tego samego wzorca. ProviderProfile ABC + plugins/model-providers/ umożliwiają podłączanie zewnętrznych dostawców bez modyfikowania podstawowego kodu. Automatyczne wznawianie sesji po ponownym uruchomieniu gateway, wykonaniu /update oraz przeładowaniu pliku źródłowego. Przepisane od podstaw Checkpoints v2 z jednym magazynem, rzeczywistym usuwaniem zbędnych danych i zabezpieczeniami przestrzeni dyskowej. Rozwiązano osiem problemów bezpieczeństwa P0: domyślnie włączone maskowanie sekretów, obejście izolacji wiadomości prywatnych między serwerami Discord (CVSS 8.1), odrzucanie nieznajomych i wyciszanie czatu z samym sobą w WhatsApp, podatność TOCTOU w OAuth obsługiwanym przez MCP, podatność TOCTOU w pliku auth.json interfejsu CLI, podstawowe zabezpieczenie przeglądarki przed SSRF, skanowanie zadań cron pod kątem wstrzykiwania promptów oraz maskowanie danych w hermes debug share. Dodano lintowanie po zapisie dla Python/JSON/YAML/TOML, tryb cron no_agent uruchamiający wyłącznie skrypty, listy dozwolonych użytkowników na platformach Slack/Telegram/Mattermost/Matrix/DingTalk oraz ulepszenia MCP (transport SSE, przekazywanie OAuth, tagi MEDIA dla obrazów). Statystyki od v0.12.0: 864 commity, 588 scalonych PR-ów, 829 zmienionych plików, 295 współtwórców ze społeczności i 282 zamknięte zgłoszenia (13 P0, 36 P1). 18
2026-05-06 Przewodnik v1.4: dodano v0.12.0 (30 kwietnia 2026) — wydanie Curator. Najważniejsza zmiana: autonomiczny działający w tle Curator, uruchamiany przez mechanizm cron gateway (domyślnie w cyklu 7-dniowym), który ocenia bibliotekę skill według zestawu kryteriów, usuwa nieużywane skill, konsoliduje powiązane skill i zapisuje raporty z każdego uruchomienia — między aktywnymi sesjami Hermes sam dba o swój stan. Pętlę samodoskonalenia rozszerzono o ocenianie według zestawu kryteriów, preferowanie aktywnych aktualizacji, prawidłowe dziedziczenie środowiska wykonawczego oraz ograniczone zestawy toolset obejmujące wyłącznie pamięć i skill. Czterech nowych dostawców wnioskowania: GMI Cloud, Azure AI Foundry, MiniMax OAuth i Tencent Tokenhub. LM Studio otrzymało status pełnoprawnego dostawcy. Zdalne manifesty katalogów modeli aktualizują się teraz automatycznie, bez konieczności publikowania nowych wydań. Dwie nowe platformy komunikacyjne: Microsoft Teams (19., przez modułową architekturę gateway) i Tencent Yuanbao (18., z natywną obsługą tekstu i multimediów). Natywna integracja ze Spotify przez PKCE OAuth wraz z dołączonym skill; wtyczka Google Meet do rozmów i transkrypcji; dostawca lokalnego TTS Piper. ComfyUI v5 i TouchDesigner-MCP przeniesiono z opcjonalnych do domyślnie dołączanych. Nowe skill: Humanizer, claude-design, design-md, airtable. Dodatki do CLI: jednorazowy tryb hermes -z, kontrola wstępna hermes update --check, polecenie slash /reload-skills oraz wymienne style wskaźnika zajętości. Widoczny czas zimnego uruchamiania TUI skrócono o około 57% dzięki leniwej inicjalizacji agenta i leniwemu importowaniu. Bezpieczeństwo: maskowanie sekretów jest domyślnie wyłączone, aby zapobiegać uszkadzaniu ładunków danych; bezwzględna lista blokad dla poleceń powodujących nieodwracalne skutki. Statystyki: 1 096 commitów, 550 scalonych PR-ów i 213 współtwórców ze społeczności. 17
2026-04-25 Przewodnik v1.3: dodano v0.11.0 (23 kwietnia 2026) — wydanie Interface. Pełne przepisanie interaktywnego TUI z użyciem React/Ink oraz backendu RPC Python JSON (tui_gateway); przypięte pole wprowadzania tekstu, transmisja odpowiedzi na żywo z obsługą schowka OSC-52, stabilne klawisze wyboru, pasek stanu ze stoperem dla każdej tury i gałęzią git, potwierdzenie /clear, ustawienie motywu jasnego oraz nakładka pokazująca uruchamianie subagentów. Modułowa architektura transportu — konwersję formatów i transport HTTP wydzielono do agent/transports/, upraszczając integrację dostawców. Natywna obsługa AWS Bedrock przez Converse API. Pięć nowych ścieżek wnioskowania: NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth i Vercel ai-gateway. GPT-5.5 przez Codex OAuth — nowy flagowy model OpenAI jest teraz dostępny przez ChatGPT Codex OAuth bez osobnego klucza API. QQBot (17. platforma komunikacyjna) z konfiguracją przez skanowanie kodu QR i transmisją strumieniową. Rozszerzenie interfejsu wtyczek: polecenia slash, kierowanie wywołań narzędzi, blokowanie wykonywania i przekształcanie wyników. /steer <prompt> — wskazówki przekazywane agentowi w trakcie działania, które wstrzykują notatkę widoczną dla uruchomionego agenta po następnym wywołaniu narzędzia, bez przerywania tury ani naruszania pamięci podręcznej promptu. Hooki powłoki umożliwiają podłączanie skryptów jako hooków cyklu życia bez wtyczek Python. Tryb bezpośredniego dostarczania webhooków przekazuje ładunki wprost do czatu na platformie, z pominięciem agenta na potrzeby dystrybucji do wielu odbiorców. Inteligentniejsze delegowanie dzięki rolom orkiestratora, konfigurowalnej głębokości uruchamiania agentów i koordynacji plików. Panel otrzymuje system wtyczek, zmianę motywu na żywo, i18n oraz responsywność na urządzeniach mobilnych. Statystyki od v0.9.0: 1 556 commitów, 761 scalonych PR-ów, 1 314 zmienionych plików, 224 174 wstawione wiersze i 29 współtwórców ze społeczności. 60
2026-04-16 Przewodnik v1.2: dodano v0.10.0 — Nous Tool Gateway. Płatni subskrybenci Nous Portal mogą teraz korzystać z zarządzanych narzędzi (wyszukiwanie internetowe Firecrawl, generowanie obrazów FAL / FLUX 2 Pro, OpenAI TTS oraz automatyzacja przeglądarki Browser Use) bez dodatkowych kluczy API. Każde narzędzie można włączyć osobno za pomocą nowego pola konfiguracji use_gateway. Gdy skonfigurowano obie opcje, środowisko wykonawcze preferuje gateway zamiast bezpośrednich kluczy API. Usunięto zmienną środowiskową HERMES_ENABLE_NOUS_MANAGED_TOOLS. CLI Hermes Agent pozostaje objęty licencją MIT i jest w pełni bezpłatny. 61
2026-04-13 Przewodnik v1.1: dodano funkcje z wersji v0.8.0 i v0.9.0. Lokalny panel internetowy, tryb /fast, platformy iMessage i WeChat (łącznie 16), monitorowanie procesów w tle (watch_patterns), modułowy context engine, hermes backup/hermes import, Termux/Android, dostawcy xAI, MiMo, Google AI Studio i Qwen, polecenie /debug oraz kompleksowe wzmocnienie zabezpieczeń. 15 16
2026-04-10 Przewodnik v1.0: pierwsze wydanie obejmujące Hermes Agent v0.7.0. Uwierzytelnianie u dostawców, konfiguracja, CLI, polecenia slash, narzędzia, skill, pamięć, gateway, cron, MCP, kompresja, architektura, migracja z OpenClaw, rozwiązywanie problemów i FAQ.
—

Źródła


  1. Nous Research, plik README projektu „Hermes Agent” w serwisie GitHub. Główne źródło opisu produktu (samodoskonalący się agent, obsługa wielu dostawców, gateway komunikacyjny, backendy terminalowe, rozwijanie skill, harmonogram cron i delegowanie) oraz jednolinijkowego polecenia „Szybka instalacja”. ↩↩↩

  2. Nous Research, „Dostawcy AI” w dokumentacji Hermes Agent. Główne źródło pełnej listy dostawców, metod uwierzytelniania dla poszczególnych dostawców (Nous Portal OAuth, kod urządzenia Codex, typy tokenów Copilot w GitHub, trzy metody uwierzytelniania Anthropic, chińscy dostawcy AI, routing Hugging Face i niestandardowe endpointy), trzech ścieżek uwierzytelniania (klucz API w .env, OAuth za pomocą hermes model, niestandardowy endpoint w config.yaml), składni polecenia /model (w tym custom:name:model), szablonów konfiguracji Ollama/vLLM/SGLang/llama.cpp/LM Studio, instrukcji dotyczących sieci w WSL2, łańcucha wykrywania długości kontekstu, konfiguracji modelu zapasowego, inteligentnego routingu modeli oraz nazwanych dostawców niestandardowych. Z tej strony pochodzą wszystkie użyte w tym artykule nazwy zmiennych środowiskowych właściwe dla poszczególnych dostawców, typy tokenów, nadpisania bazowych adresów URL i identyfikatory modeli. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  3. Nous Research, „Architektura” w przewodniku dla deweloperów Hermes Agent. Główne źródło diagramu przedstawiającego ogólny zarys systemu, struktury katalogów, przepływu danych przez ścieżki sesji i wiadomości gateway CLI, trzech trybów API (chat_completions, codex_responses, anthropic_messages), rozpoznawania dostawcy za pomocą runtime_provider.py, utrwalania sesji za pomocą SQLite + FTS5, listy platform obsługiwanych przez gateway komunikacyjny, źródeł wykrywania systemu pluginów, izolacji profile oraz sześciu zasad projektowych. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  4. Nous Research, „Konfiguracja” w podręczniku użytkownika Hermes Agent. Główne źródło struktury katalogu konfiguracji, reguły dotyczącej config.yaml i .env („config.yaml ma pierwszeństwo w przypadku ustawień innych niż poufne”), łańcucha pierwszeństwa konfiguracji (argumenty CLI → zmienne środowiskowe → config.yaml → .env → wartości domyślne), ustawień kompresji kontekstu (blok compression.* z polami threshold, threshold_tokens, target_ratio, tail_mode, protect_last_n, protect_first_n; model, dostawca i endpoint modułu podsumowującego znajdują się w auxiliary.compression.* od czasu migracji do wersji 17 konfiguracji), progów presji budżetu (70% — ostrożność, 90% — ostrzeżenie), limitów czasu przesyłania strumieniowego z automatycznym dostosowaniem dla lokalnego dostawcy oraz pełnego bloku konfiguracji modeli pomocniczych (auxiliary: z pozycjami vision, web_extract, approval, compression, session_search, skills_hub, mcp, flush_memories). Z tej strony pochodzi również ograniczenie dostawcy "main" do pozycji pomocniczych, kompresji i modelu zapasowego. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  5. Nous Research, „Migracja z OpenClaw” w przewodnikach Hermes Agent. Źródło przebiegu migracji OpenClaw → Hermes. ↩↩

  6. Nous Research, „Dokumentacja poleceń CLI” w dokumentacji referencyjnej Hermes Agent. Główne źródło każdego opisanego w tym artykule polecenia CLI najwyższego poziomu, w tym hermes chat, hermes model, hermes gateway, hermes setup, hermes auth, hermes status, hermes cron, hermes webhook, hermes doctor, hermes dump, hermes logs, hermes config, hermes pairing, hermes skills, hermes honcho, hermes memory, hermes acp, hermes mcp, hermes plugins, hermes tools, hermes sessions, hermes insights, hermes claw, hermes profile, hermes completion, hermes update i hermes uninstall. Z tej strony pochodzą wszystkie użyte w tym artykule flagi podpoleceń, opisy opcji, zasady działania puli poświadczeń, składnia filtrowania logów, flagi migracji OpenClaw, polecenia zarządzania profile oraz polecenia instalowania usług. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  7. Nous Research, „Instalacja” w przewodniku wprowadzającym do Hermes Agent. Główne źródło jednolinijkowego polecenia instalatora, opisu jego działania (wymagania wstępne, obsługiwane platformy, automatyczne wykrywanie Termux oraz wymagania dotyczące Windows/WSL2), tabeli opcjonalnych dodatków, kroków instalacji ręcznej i poleceń weryfikacyjnych. ↩↩↩↩↩↩↩↩↩

  8. Nous Research, „Dokumentacja poleceń CLI” — w szczególności sekcja hermes dump, opisująca format danych wyjściowych polecenia (nagłówek, środowisko, tożsamość, model, terminal, klucze API, funkcje, usługi, obciążenie i nadpisania konfiguracji) oraz jego przeznaczenie do udostępniania informacji diagnostycznych. ↩

  9. Nous Research, „Dokumentacja poleceń z ukośnikiem” w dokumentacji referencyjnej Hermes Agent. Główne źródło każdego polecenia z ukośnikiem wymienionego w tym artykule, architektury COMMAND_REGISTRY, podziału na CLI i komunikatory, dynamicznych poleceń skill z ukośnikiem, szybkich poleceń w config.yaml, sposobu działania dopasowywania prefiksów oraz poleceń dostępnych wyłącznie w komunikatorach (/status, /sethome, /approve, /deny, /update, /commands). ↩↩↩↩↩↩↩↩↩↩

  10. Nous Research, „Narzędzia i toolset” w podręczniku użytkownika Hermes Agent. Główne źródło przeglądu kategorii narzędzi, poleceń używania toolset, siedmiu backendów terminalowych (local, docker, ssh, singularity, modal, daytona, vercel_sandbox), konfiguracji kontenerów (cpu, pamięć, dysk, trwałość), wzmacniania zabezpieczeń kontenerów, zarządzania procesami w tle API oraz obsługi sudo. ↩↩↩↩↩↩↩↩↩↩

  11. Nous Research, „System skill” w podręczniku użytkownika Hermes Agent. Główne źródło informacji o stopniowym ujawnianiu, formacie SKILL.md, skill przeznaczonych dla konkretnych platform, aktywacji warunkowej (fallback_for_toolsets, requires_toolsets, fallback_for_tools, requires_tools), skill zarządzanych przez agenta za pomocą skill_manage, poleceniach huba skill i liście źródeł (official, skills-sh, well-known, github, clawhub, claude-marketplace, lobehub), skanowaniu zabezpieczeń i poziomach zaufania oraz zewnętrznych katalogach skill. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  12. Nous Research, „Pamięć trwała” w podręczniku użytkownika Hermes Agent. Główne źródło limitów znaków w MEMORY.md / USER.md, wzorca zamrożonej migawki, operacji narzędzia pamięci (add, replace, remove), wskazówek dotyczących tego, co zapisywać, a co pomijać, porównania pamięci z wyszukiwaniem sesji oraz zewnętrznych dostawców pamięci. W tagu v2026.9.24 na powiązanej stronie Dostawcy pamięci (wiersz 9) podano, że „Hermes Agent jest dostarczany z 7 pluginami zewnętrznych dostawców pamięci”, a także że „więcej (takich jak Hindsight) jest dostępnych w katalogu pluginów”; katalog plugins/memory/ w tym tagu zawiera byterover, holographic, honcho, mem0, openviking, retaindb i supermemory. ↩↩↩↩↩↩↩↩

  13. Nous Research, „Osobowość i SOUL.md” w podręczniku użytkownika Hermes Agent. Główne źródło informacji o działaniu SOUL.md (znajduje się w HERMES_HOME, nigdy nie jest nadpisywany, zajmuje pozycję nr 1 w komunikacie systemowym i przed dołączeniem podlega skanowaniu zabezpieczeń), różnicy między SOUL.md a AGENTS.md, liście wbudowanych osobowości (14 osobowości, od helpful do hype), niestandardowych osobowościach w config.yaml, wzorcu nakładki /personality oraz pełnej kolejności składania stosu komunikatów. ↩↩↩↩↩↩↩↩↩↩↩↩

  14. Nous Research, „Korzystanie z MCP w Hermes” oraz Dokumentacja konfiguracji MCP w przewodnikach i dokumentacji referencyjnej Hermes Agent. Źródło formatu konfiguracji mcp_servers: w config.yaml z polami command, args i env. ↩

  15. Informacje o wydaniu Hermes Agent v0.8.0. 8 kwietnia 2026. Automatyczne powiadomienia o procesach w tle, bezpłatny MiMo v2 Pro w Nous Portal, przełączanie /model na żywo między platformami, natywny dostawca Google AI Studio, Qwen OAuth, limity czasu oparte na okresie bezczynności, przyciski zatwierdzania w Slack/Telegram, MCP OAuth 2.1 PKCE, scentralizowane rejestrowanie zdarzeń i rozbudowa systemu pluginów. ↩↩↩↩↩

  16. Informacje o wydaniu Hermes Agent v0.9.0. 13 kwietnia 2026. Lokalny panel internetowy, tryb szybki (/fast), iMessage za pośrednictwem BlueBubbles, WeChat + WeCom, Termux/Android, monitorowanie procesów w tle (watch_patterns), natywni dostawcy xAI + Xiaomi MiMo, rozszerzalny context engine, ujednolicona obsługa serwerów proxy, wzmocnione zabezpieczenia (poprawki dotyczące przechodzenia między katalogami, wstrzykiwania poleceń powłoki, SSRF i RCE), hermes backup/hermes import, /debug + hermes debug share, obsługa 16 platform. 487 commitów, 269 scalonych PR-ów, 24 współtwórców. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  17. Informacje o wydaniu Hermes Agent v0.12.0. 30 kwietnia 2026. „Wydanie Curator”. Autonomiczny Curator działający w tle, który ocenia, porządkuje i konsoliduje bibliotekę skill w domyślnym cyklu 7-dniowym, uruchamianym przez mechanizm cron w gateway. Ulepszono pętlę samodoskonalenia: ocenianie na podstawie kryteriów, preferowanie aktywnych aktualizacji, prawidłowe dziedziczenie środowiska wykonawczego oraz ograniczone toolsets, zawężone do pamięci i skills. Czterech nowych dostawców inferencji: GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio uzyskało status rozwiązania pierwszej klasy. Zdalne manifesty katalogów modeli aktualizują się automatycznie, bez konieczności publikowania nowych wydań. Dwie nowe platformy komunikacyjne: Microsoft Teams (19., za pośrednictwem rozszerzalnej architektury gateway) oraz Tencent Yuanbao (18., natywna obsługa tekstu + multimediów). Natywna integracja ze Spotify przez PKCE OAuth z dołączonym skill; wtyczka Google Meet do połączeń i transkrypcji; lokalny dostawca TTS Piper. ComfyUI v5 + TouchDesigner-MCP są domyślnie dołączone. Nowe skills: Humanizer, claude-design, design-md, airtable. CLI: jednorazowy tryb hermes -z, kontrola wstępna hermes update --check, polecenie ukośnikowe /reload-skills, rozszerzalne style wskaźnika zajętości. Czas zimnego startu TUI skrócono o około 57% dzięki leniwej inicjalizacji. Bezpieczeństwo: maskowanie sekretów jest domyślnie wyłączone; bezwzględna lista blokująca polecenia powodujące nieodwracalne skutki. Statystyki od wersji v0.11.0: 1 096 commitów, 550 scalonych PR-ów, 213 współtwórców ze społeczności. Zob. także: tag wydania v2026.4.30. ↩↩↩

  18. Informacje o wydaniu Hermes Agent v0.13.0. 7 maja 2026. „Wydanie Tenacity”. Wieloagentowa tablica Kanban z sygnałem heartbeat, odzyskiwaniem zadań, wykrywaniem procesów zombie, bramką przeciw halucynacjom, ustawieniem max_retries dla poszczególnych zadań oraz obsługą wielu projektów. Polecenie ukośnikowe /goal do blokowania celu między kolejnymi turami (podstawowy mechanizm pętli Ralph) z konfigurowalnym budżetem tur. Narzędzie video_analyze, wykorzystujące w pierwszej kolejności Gemini i zapewniające rozszerzalność zgodną z innymi rozwiązaniami multimodalnymi. Dostawca TTS xAI Custom Voices z klonowaniem głosu. Internacjonalizacja obejmująca 7 języków: zh-Hans, ja, de, es, fr, uk, tr (CLI + komunikaty gateway; dokumentacja wyłącznie w zh-Hans). Google Chat jako 20. platforma komunikacyjna, obsługiwana za pomocą wzorca rozszerzalnych adapterów z ogólnymi hookami wtyczek env_enablement_fn / cron_deliver_env_var; IRC i Microsoft Teams przeniesiono do tego samego wzorca. Klasa abstrakcyjna ProviderProfile + plugins/model-providers/ dla rozszerzalnych dostawców zewnętrznych. Automatyczne wznawianie sesji po ponownym uruchomieniu gateway, wykonaniu /update i przeładowaniu plików źródłowych. Przebudowana wersja checkpoints v2 z jednym magazynem, rzeczywistym usuwaniem zbędnych danych, zabezpieczeniami dotyczącymi miejsca na dysku i bez osieroconych repozytoriów pomocniczych. Zamknięto osiem luk bezpieczeństwa klasy P0: domyślnie włączone maskowanie sekretów, obejście ograniczeń wiadomości prywatnych między serwerami Discord (CVSS 8.1, listy dozwolonych ról ograniczone do serwera), domyślne odrzucanie wiadomości od nieznajomych w WhatsApp + brak odpowiedzi na własnym czacie, błąd TOCTOU podczas zapisywania danych uwierzytelniających MCP OAuth, błąd TOCTOU dotyczący auth.json w mechanizmach zapisu danych uwierzytelniających CLI, podstawowa ochrona przed SSRF wymierzonym w metadane chmurowe przeglądarki przy routingu hybrydowym, skanowanie przez cron złożonego promptu (w tym zawartości skill) pod kątem wstrzykiwania promptów, maskowanie zawartości dzienników przez hermes debug share podczas przesyłania. Inne istotne elementy: lintowanie po zapisie dla Python/JSON/YAML/TOML, tryb nadzorczy cron no_agent uruchamiający wyłącznie skrypty, listy dozwolonych elementów platform dla Slack/Telegram/Mattermost/Matrix/DingTalk, ulepszenia MCP (transport SSE, przekazywanie OAuth, wyniki obrazowe jako znaczniki MEDIA). Statystyki od wersji v0.12.0: 864 commity, 588 scalonych PR-ów, 829 zmienionych plików, 295 współtwórców ze społeczności, 282 zamknięte zgłoszenia (13 P0, 36 P1). ↩↩↩↩↩↩↩↩↩↩↩↩

  19. Informacje o wydaniu Hermes Agent v0.14.0. 16 maja 2026. „Wydanie Foundation”. Od wersji v0.13.0: 808 commitów, 633 scalone PR-y, 1 393 zmienione pliki, 165 061 dodanych wierszy, 545 zamkniętych zgłoszeń (12 P0, 50 P1) oraz 215 współtwórców ze społeczności. Dodano SuperGrok OAuth z modelem grok-4.3 i kontekstem 1M, hermes proxy, x_search, pakiet PyPI, leniwe ładowanie zależności, współdzieloną między sesjami pamięć podręczną promptów Claude z czasem przechowywania 1 godziny, uruchamianie szybsze o około 19 s, 180-krotnie szybsze wywołania CDP przeglądarki, LINE i SimpleX Chat — łącznie 22 platformy komunikacyjne, /handoff, natywne przyciski doprecyzowania, uzupełnianie historii Discord, analizę surowych pikseli vision_analyze, stopkę weryfikatora zmian plików dla każdej tury, diagnostykę semantyczną LSP, ujednolicone video_generate, computer_use oparte na cua-driver, łącza OSC8, obsługę Zed ACP Registry, router OpenRouter Pareto Code, NovitaAI, środowisko wykonawcze Codex app-server, huggingface/skills, wtyczkę ctx.llm, tool_override, wyszukiwanie Brave/DDGS, wzmocnioną ochronę przed niebezpiecznymi poleceniami, /subgoal, zmianę nazwy Qwen Cloud, natywną wersję beta dla Windows, łącznie 16 ustawień regionalnych oraz rozległe aktualizacje dokumentacji i testów. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  20. Informacje o wydaniu Hermes Agent v0.16.0, „The Surface Release”, tag v2026.6.5, opublikowane 2026-06-06T00:55:58Z (data tagu wydania: 5 czerwca 2026); najnowsze na 2026-06-08. Nowy natywny Hermes Desktop (Electron, macOS/Linux/Windows; połączenie ze zdalnym gateway przez bezpieczne WebSocket z użyciem OAuth lub nazwy użytkownika i hasła; zdalne hosty osobne dla każdego profile; międzyprofilowe odnośniki @session; interfejs w języku chińskim uproszczonym dzięki typowanemu i18n, display.language). Panel internetowy rozbudowano do pełnego panelu administracyjnego (przełączniki katalogu MCP, zarządzanie danymi uwierzytelniającymi, tworzenie webhooków i hooków, konfiguracja pamięci, sterowanie gateway, strona System z kontrolą przed aktualizacją i funkcją Debug Share, strona Channels; rozszerzalne uwierzytelnianie, w tym samodzielnie hostowane OIDC oraz hermes dashboard register). Nowe polecenia: /undo [N], konfigurowalny domyślny interfejs (cli/tui, --cli), /model w TUI i nakładka Sessions, hermes portal, hermes prompt-size, hermes sessions optimize. Nowe modele: deepseek-v4-flash, MiniMax-M3 (kontekst 1M), qwen3.7-plus, gemini-3.5-flash; xAI Grok OAuth; wyszukiwarka rozmyta; odświeżanie katalogu co godzinę. Skills: odchudzony zestaw domyślny, filtr trafności environments:, domyślnie zaufane źródło NVIDIA/skills, progresywne ujawnianie narzędzi, poprawka fałszywego powodzenia OAuth dla MCP. Bezpieczeństwo: przypięcie Starlette do wersji ≥1.0.1 z powodu CVE-2026-48710 (BadHost), kontrole SSRF poza pętlą zdarzeń, usuwanie tokenu bearer Bedrock ze środowiska podprocesu, zabezpieczenie odczytu bws_cache.json, dodanie docker restart/stop/kill do wzorców niebezpiecznych poleceń, oczyszczanie niewidocznych znaków Unicode; zamknięto 2 zgłoszenia P0 i 62 zgłoszenia P1 (16 oznaczonych jako związane z bezpieczeństwem). Pominięto marketingową narrację informacji o wydaniu (liczby PR-ów i commitów, „nic z tego nie istniało tydzień temu”); odnotowano wyłącznie konkretne fakty o funkcjach i wersjach powiązane z tym tagiem. Weryfikacja w bieżącej sesji: 8 czerwca 2026. ↩↩↩↩↩↩↩↩

  21. Informacje o wydaniu Hermes Agent v0.17.0, „The Reach Release”, tag v2026.6.19, 19 czerwca 2026; najnowsze na 2026-06-21. Komunikatory: iMessage przez Photon Spectrum (OAuth z kodem urządzenia, hermes photon login, bez przekaźnika na komputerze Mac); oficjalny adapter API WhatsApp Business Cloud (zastępuje proces bridge); grupy SimpleX, natywne załączniki, grupowanie tekstu i automatyczne akceptowanie; Raft jako dołączona wtyczka platformowa. Modele i dostawcy: z-ai/glm-5.2 (kontekst 1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (xAI OAuth, kontekst 200k); domyślny model xAI → grok-build-0.1; adaptacyjne modele Anthropic korzystają ze współczesnego kontraktu myślenia (bez pola reasoning). CLI/polecenia ukośnikowe: /version, /billing, hermes photon login, hermes curator run --consolidate (opcjonalne), graficzny interfejs hermes model, klonowanie profile. Desktop: okna monitorowania subagentów działających w tle (delegate_task(background=true)), selektor modelu Composer, skróty z możliwością zmiany przypisania, natywne powiadomienia systemowe, wersje robocze osobne dla każdego wątku, motywy z VS Code Marketplace, interfejs w języku japońskim i chińskim tradycyjnym. Panel: pełny kreator profile, globalny przełącznik profile, przebudowany Skills Hub ze skanowaniem bezpieczeństwa, Automation Blueprints, bezpieczne logowanie (401 za OAuth). Skills/narzędzia: edycja obrazu na podstawie obrazu za pomocą image_generate u różnych dostawców, atomowe operacje wsadowe operations dla memory, skill simplify-code do równoległego przeglądu, wartość logiczna write_approval zastępuje write_mode. Architektura: subagenci działający w tle (uchwyt zwracany natychmiast, wynik ponownie wprowadzany jako tura), obsługa pozyskiwania danych MCP do potwierdzania w trakcie wywołania narzędzia, udostępnianie między turami narzędzi MCP nawiązujących połączenie z opóźnieniem, rozszerzalny CronScheduler i zarządzany cron Chronos, zakres Managed (/etc/hermes przypięty przez administratora), przekaźnik Gateway-Gateway. Bezpieczeństwo: zamknięto możliwość obejścia listy blokującej ucieczki powłoki, wymuszono bezpieczne odrzucanie w razie braku modułu zatwierdzania oraz w adapterach gateway z własną polityką, oczyszczono środowisko skryptów zadań cron, dane poufne są redagowane w zrzutach debugowania, metadane hosta nie są ujawniane w statusie publicznym, przesyłanie przez stdio w MCP jest sprawdzane pod kątem wzorców eksfiltracji, zaktualizowano urllib3 i PyJWT z powodu luk CVE. Pominięto marketingową narrację wydania (liczby commitów i PR-ów). Weryfikacja w bieżącej sesji: 21 czerwca 2026. ↩↩↩↩↩↩↩↩↩↩↩

  22. Informacje o wydaniu Hermes Agent v0.18.0 (tag v2026.7.1), 1 lipca 2026 — „The Judgment Release”. Porządkowanie zaległości według priorytetów (zamknięto wszystkie pozycje P0/P1, około 692 pozycji w ciągu 12 dni); Mixture-of-Agents dostępny jako pełnoprawny model we wszystkich interfejsach, z pełnym wynikiem każdego modelu referencyjnego wyświetlanym w osobnym, opisanym bloku oraz odpowiedzią przesyłaną strumieniowo na żywo; kontrakty ukończenia dla /goal (agent weryfikuje własną pracę, uruchamiając kontrole projektu); polecenie /learn (tworzenie wielokrotnego użytku skill z dowolnej rzeczy poprzez jej opisanie, z automatycznym zachowaniem zgodności z CONTRIBUTING.md); /journey — wizualna oś czasu pamięci i skills z możliwością edycji oraz graf pamięci w aplikacji Desktop; równoległe rozdzielanie pracy między subagentów działających w tle (wiele współbieżnych delegowanych zadań); Desktop Projects (model projekt/repozytorium/lane); gateway skalowany do zera z koordynacją wygaszania; obsługa Google Vertex AI (Gemini przez konta usług GCP, automatyczne odświeżanie tokenu OAuth2); polecenie /prompt wykorzystujące $EDITOR. Weryfikacja w bieżącej sesji: 1 lipca 2026 (PST) na stronie wydań GitHub; v0.18.0 jest najnowszym wydaniem. ↩↩↩↩↩↩↩↩↩↩↩

  23. Informacje o wydaniu Hermes Agent v0.20.5 (tag v2026.8.19, podana data wydania: 19 sierpnia, opublikowane 21 sierpnia 2026; pobrano przez API GitHub 24 sierpnia 2026 — prerelease: false). Dosłowny opis zakresu: „~746 commitów w ~1 250 plikach (+111 500 / -20 701) — ~323 scalone PR-y, obejmujące wątki pokojów grupowych w Bot Mode, składane podsumowania rozmów, awatary z twarzami blobów oraz załączniki PDF/plikowe obsługujące przeciąganie i upuszczanie; warstwę internetową bez kluczy (bezpłatna rotacja 5 dostawców z pierścieniowym przełączaniem awaryjnym, wyszukiwanie internetowe w nowych instalacjach bez żadnych kluczy); falę dopracowania CLI (rozmyta wyszukiwarka /model, paleta poleceń Ctrl+P, bogatsze /status); dyscyplinę wykonywania i zabezpieczenia przed zatrzymaniem środowiska uruchomieniowego wynikające z ustaleń ewaluacji Composio; potwierdzenia hermes update i weryfikację floty za pomocą --plan; hermes worktree list/prune; dostawcę bez opencode i bez uwierzytelniania; wyjaśnianie wielu pytań; optymalizacje wydajności aplikacji Desktop (hydracja Bot Mode z priorytetem pierwszego renderowania, wskaźniki postępu kompozytora, React Compiler w obu rendererach); a także trwałą pamięć i poziom wysiłku rozumowania osobny dla każdego zadania cron”. W informacji o wydaniu powtórzono: „Pełne, starannie opracowane informacje o wydaniu dla tego zakresu zostaną opublikowane wraz z v0.21.0”. ↩↩↩↩↩↩↩↩↩↩↩

  24. Backendy terminala w tagu v2026.8.31 (ponownie zweryfikowane dla wersji 1.17 przewodnika; agent/terminal_env_registry.py jest identyczny bajt w bajt ze swoją wersją z v2026.8.31, fakty w docstringu tools/terminal_tool.py pozostają niezmienione, a tools/environments/ nadal zawiera te same 7 modułów backendów, obecnie wraz z pomocniczym modułem path_utils.py): docstring modułu tools/terminal_tool.py, dosłownie: „Narzędzie terminalowe wykonujące polecenia w środowiskach lokalnych, Docker, Modal, SSH, Singularity, Daytona i Vercel Sandbox” oraz, na liście wyboru środowiska, pozycja vercel_sandbox: „Wykonywanie w chmurowych piaskownicach Vercel Sandbox”; moduł backendu tools/environments/vercel_sandbox.py istnieje w tym tagu obok daytona.py, docker.py, local.py, modal.py, singularity.py i ssh.py. README w tym tagu: „7 backendów terminala — lokalny, Docker, SSH, Singularity, Modal, Daytona i Vercel Sandbox”. Na stronie dokumentacji Tools & Toolsets (źródło website/docs/user-guide/features/tools.md w tym tagu) vercel_sandbox opisano w tabeli jako „chmurowa maszyna microVM Vercel Sandbox” przeznaczona do „wykonywania w chmurze z trwałością systemu plików opartą na migawkach”; pokazano komentarz konfiguracyjny # or: docker, ssh, singularity, modal, daytona, vercel_sandbox i podano: „Należy uwierzytelnić się za pomocą wszystkich 3 zmiennych: VERCEL_TOKEN, VERCEL_PROJECT_ID i VERCEL_TEAM_ID. … Obsługiwane środowiska uruchomieniowe to node24, node22 i python3.13; Hermes domyślnie używa /vercel/sandbox jako katalogu głównego zdalnego obszaru roboczego”. W wersji v2026.8.31 pakiet tools/environments/ zawiera również wspólną infrastrukturę (base.py z klasą abstrakcyjną BaseEnvironment, file_sync.py, modal_utils.py, managed_modal.py); docstring pakietu traktuje zarządzany Modal jako tryb Modal, a nie 8. backend: „Modal ma ponadto tryb bezpośredni i zarządzany przez Nous, wybierane za pomocą terminal.modal_mode”. ↩↩↩

  25. Liczba platform komunikacyjnych w tagu v2026.8.31 (ponownie zweryfikowana dla przewodnika v1.17; identyczna jak w v2026.8.31 — 28 wierszy w tabeli dokumentacji, te same 24 elementy wyliczenia Platform, te same 22 foldery adapterów). Strona dokumentacji Messaging Gateway (źródło website/docs/user-guide/messaging/index.md w tym tagu) zawiera tabelę „Porównanie platform” z 28 wierszami: Telegram, Discord, Slack, Google Chat, WhatsApp, WhatsApp Cloud API, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, WeCom Callback, Weixin, BlueBubbles, Photon (iMessage), QQ, Yuanbao, Microsoft Teams, LINE, ntfy, Raft, IRC, Buzz, SimpleX. Plik gateway/config.py definiuje class Platform(Enum) z 24 jawnymi elementami (local, telegram, discord, whatsapp, whatsapp_cloud, slack, signal, mattermost, matrix, homeassistant, email, sms, dingtalk, api_server, webhook, msgraph_webhook, feishu, wecom, wecom_callback, weixin, bluebubbles, qqbot, yuanbao, relay) oraz dokumentuje: „Platformy obsługiwane przez wtyczki korzystają z dynamicznych elementów tworzonych na żądanie przez _missing_(), dzięki czemu Platform("irc") działa bez modyfikowania tego wyliczenia”. Drzewo plugins/platforms/ tego tagu zawiera 22 foldery adapterów: a2a buzz dingtalk discord email feishu google_chat homeassistant irc line matrix mattermost ntfy photon raft simplex slack sms teams telegram wecom whatsapp. Opisy platform: strona ntfy, dosłownie: „ntfy to prosta usługa powiadomień typu publikowanie–subskrybowanie oparta na HTTP. Działa z bezpłatnym publicznym serwerem ntfy.sh lub dowolną samodzielnie hostowaną instancją… należy zasubskrybować temat w aplikacji mobilnej ntfy, wysyłać do niego wiadomości, aby rozmawiać z agentem, i odbierać odpowiedzi na telefonie”. Strona Buzz, dosłownie: „Adapter Buzz łączy Hermes ze społecznością Buzz — platformą współpracy ludzi i agentów o otwartym kodzie źródłowym, stworzoną przez Block na bazie protokołu Nostr — oraz przekazuje wiadomości między kanałami Buzz (lub wiadomościami prywatnymi) a agentem. Ruch wychodzący wywołuje w powłoce plik binarny buzz CLI… ruch przychodzący korzysta z natywnej subskrypcji Nostr WebSocket”. Obie strony: „Uruchomić hermes gateway setup i wybrać… aby przejść przez konfigurację krok po kroku”. ↩↩↩

  26. Liczba dostawców w tagu v2026.8.31 (ponownie zweryfikowana dla przewodnika v1.17; wersja v0.21.0 ZMIENIŁA te wartości względem 38 statycznych wpisów, 37 folderów wtyczek i 41 wierszy dokumentacji w v2026.8.31). Plik hermes_cli/models.py deklaruje CANONICAL_PROVIDERS: list[ProviderEntry] z 39 statycznymi wpisami (nous, fireworks, openrouter, moa, novita, lmstudio, anthropic, openai-codex, openai-api, alibaba, xai-oauth, xiaomi, tencent-tokenhub, tencent-tokenplan, nvidia, copilot, copilot-acp, huggingface, gemini, vertex, deepseek, xai, zai, kimi-coding, kimi-coding-cn, stepfun, minimax, minimax-oauth, minimax-cn, ollama-cloud, arcee, gmi, kilocode, opencode-zen, opencode-go, bedrock, azure-foundry, ai-gateway, qwen-oauth), po których znajduje się komentarz „Automatycznie rozszerzaj CANONICAL_PROVIDERS o każdego dostawcę zarejestrowanego w providers/, którego nie ma jeszcze na powyższej liście. Dodanie plugins/model-providers// wystarczy, aby udostępnić nowego dostawcę w selektorze modeli”; pętla pomija wyłącznie typy uwierzytelniania oauth_device_code, oauth_external, external_process, aws_sdk, copilot i vertex (bez zmian). Drzewo plugins/model-providers/ tego tagu zawiera 39 folderów dostawców (nebius-token-factory i router dodano w okresie wydania v0.21.0); wszystkie spośród dziewięciu pozycji bez statycznego wpisu (actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage) są rozpoznawane jako typ uwierzytelniania api_key — siedem jawnie deklaruje auth_type="api_key" (w tym obie nowe wtyczki), natomiast commandcode i opencode-free dziedziczą auth_type: str = "api_key" z providers/base.py. Strona dokumentacji AI Providers (źródło website/docs/integrations/providers.md w tym tagu) zawiera w tabelach 45 nazwanych dostawców oraz wiersz „Niestandardowy punkt końcowy” (wiersze dodane od wersji v2026.8.31: Ramp Router, Nebius Token Factory, Tencent TokenPlan, Alibaba Cloud (Token Plan) — zacytowane w 36); każda nazwa zmiennej środowiskowej, identyfikator dostawcy, alias i uwaga dotycząca uwierzytelniania w nowych wierszach macierzy pochodzi z tej tabeli, w tym „OpenCode Free | Bez klucza — nie jest wymagany klucz API ani konto (dostawca: opencode-free, aliasy: free, opencode_free). Wybrać za pomocą hermes model lub /model free; żądania są wysyłane anonimowo”, „Google Vertex AI | … OAuth2 za pomocą JSON konta usługi lub ADC, rozliczenia GCP”, „AWS Bedrock | … standardowy łańcuch poświadczeń AWS za pośrednictwem boto3” oraz „CommandCode | … Działa z planami GOAT/Pro/Max/Provider (nie z planem Go za 1 USD — brak dostępu do API)”. Wiersz Meta AI pochodzi z bloku klucza API pierwszej klasy na tej samej stronie: „Meta Model API (rodzina Muse Spark)… hermes chat --provider meta-ai --model muse-spark-1.2… Wymaga: MODEL_API_KEY”. Cerebras występuje wyłącznie w tabeli „Inni zgodni dostawcy” na tej stronie (https://api.cerebras.ai/v1, „wnioskowanie na układach scalonych w skali wafla”), dlatego figuruje pod wierszem niestandardowego punktu końcowego, a nie jako dostawca pierwszej klasy. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  27. Interfejs CLI w tagu v2026.8.31 (ponownie zweryfikowany dla przewodnika v1.17; cytowane teksty pomocy dotyczące opcji globalnych oraz wszystkie informacje o _BUILTIN_SUBCOMMANDS pozostają bez zmian względem v2026.8.31 — frozenset jest identyczny i zawiera 73 pozycje — natomiast zmiany w hermes_cli/_parser.py dotyczą wyłącznie hermes chat, co opisano w 40). Opcje globalne i ich teksty pomocy pochodzą z pliku hermes_cli/_parser.py: --in („Przejdź do DIR przed rozpoczęciem lub wznowieniem. W połączeniu z „–resume latest” lub -c wybierana jest najnowsza sesja dla obszaru roboczego DIR, a sesja pozostaje w DIR (pomijane jest przywracanie zapisanego katalogu roboczego).”), --ignore-user-config („Zignoruj ~/.hermes/config.yaml i użyj wbudowanych ustawień domyślnych (dane uwierzytelniające z .env nadal są ładowane)”), --ignore-rules („Pomiń automatyczne wstrzykiwanie AGENTS.md, SOUL.md, .cursorrules, pamięci oraz wstępnie załadowanych skills”), --tui („Uruchom nowoczesny TUI zamiast klasycznego REPL”), --cli („Wymuś klasyczny REPL oparty na prompt_toolkit (zastępuje display.interface=tui)”), --dev („Z –tui: uruchom źródła TypeScript za pomocą tsx (pomiń kompilację dist)”) oraz --version/-V („Wyświetl wersję i zakończ”). hermes_cli/_startup_fast.py korzysta ze ścieżki szybkiej wyłącznie dla argv in (["--version"], ["-V"]), a frozenset _BUILTIN_SUBCOMMANDS w pliku hermes_cli/main.py nie zawiera pozycji version; dokumentacja poleceń CLI opisuje hermes --version („Wyświetl informacje o wersji”), ale nie hermes version. Opisy poleceń są tekstami help= parsera z plików hermes_cli/main.py oraz hermes_cli/subcommands/*.py w tym tagu (na przykład approvals: „Narzędzia monitów o zatwierdzenie (analizują historię w celu utworzenia propozycji listy dozwolonych operacji)”; pause: „Zatrzymanie awaryjne: wstrzymaj wysyłanie zadań cron/kanban oraz nowe tury gateway”; sync: „Skill Sync — synchronizuj swoje skills między urządzeniami i z zespołem”; verify: „Wykryj sposób uruchamiania projektu i przeprowadź jego test dymny”; login: „Funkcja przestarzała. Użyj hermes auth, aby zarządzać danymi uwierzytelniającymi, hermes model, aby wybrać dostawcę, albo hermes setup, aby przeprowadzić pełną konfigurację.”), porównanymi z tabelą poleceń najwyższego poziomu w dokumentacji. Opcję hermes update --plan zdefiniowano w pliku hermes_cli/subcommands/update.py: „Wyświetl plan aktualizacji i zakończ bez wprowadzania zmian: rodzaj instalacji (git/docker/nix), wszystkie działające usługi Hermes we wszystkich profiles wraz z ich nadzorcą i uruchomioną wersją kodu, a także sposób ponownego uruchomienia każdej z nich. Operacja tylko do odczytu; bezpieczna dla działającej floty.”; polecenie fleet nie istnieje w _BUILTIN_SUBCOMMANDS. Polecenie hermes worktree jest zarejestrowane w hermes_cli/main.py (pomoc: „Przeprowadź audyt nagromadzonych drzew roboczych git i scalonych gałęzi oraz je odzyskaj”) z podpoleceniami list (aliasy ls, audit; „Sklasyfikuj każde drzewo: wiek, rozmiar, werdykt, przyczyna (działanie domyślne)”), prune („Usuń bezpieczne drzewa i całkowicie scalone gałęzie lokalne”) oraz opcjami --repo, --dry-run („Wyświetl plan bez wprowadzania zmian”), --trees-only („Usuń tylko drzewa robocze; pozostaw lokalne gałęzie bez zmian”) i --branches-only („Usuń tylko scalone gałęzie lokalne; pozostaw drzewa robocze bez zmian”). Polecenie ukośnikowe /worktree jest obsługiwane przez _handle_worktree_command w pliku hermes_cli/cli_commands_mixin.py (blok składni: /worktree, /worktree new [name], /worktree list, /worktree prune [--dry-run]); sekcja „Czyszczenie drzew roboczych” w podręczniku użytkownika CLI dodaje: „Wewnątrz sesji /worktree prune [--dry-run] wykonuje tę samą operację (i nigdy nie modyfikuje drzewa, w którym działa sesja).” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  28. Polecenia Nous Portal w tagu v2026.8.31 (ponownie zweryfikowane dla przewodnika v1.17; plik hermes_cli/portal_cli.py jest identyczny bajt w bajt z wersją z v2026.8.31). Sekcja „Pomiń zbieranie klucza API — Nous Portal” w pliku README z tego tagu: „Jedno polecenie po świeżej instalacji: hermes setup --portal … Spowoduje ono zalogowanie przez OAuth, ustawienie Nous jako dostawcy oraz włączenie Tool Gateway. W dowolnej chwili można sprawdzić konfigurację za pomocą hermes portal info.” Plik hermes_cli/portal_cli.py rejestruje portal (pomoc: „Skonfiguruj Nous Portal (logowanie, wybór modelu, Tool Gateway); zobacz także portal info”) z podpoleceniami login („Zaloguj się do Nous Portal i skonfiguruj go (opcja domyślna; jednorazowe wdrożenie)”), info („Wyświetl podsumowanie uwierzytelniania Portal i routingu Tool Gateway”), open („Otwórz stronę subskrypcji Portal w domyślnej przeglądarce”), tools („Wyświetl narzędzia Tool Gateway oraz wskaż, które są kierowane przez Nous”) oraz komentarzem w kodzie „status zachowano jako ukryty alias info zapewniający zgodność wsteczną.” Na stronie dokumentacji Tool Gateway widnieją polecenia hermes setup --portal # Fresh install: Nous OAuth + set Nous as provider + turn on the Tool Gateway in one go oraz hermes portal info # Portal auth + Tool Gateway routing summary; dokumentacja poleceń CLI w tym samym tagu nadal opisuje hermes portal [status|open|tools]. ↩↩↩

  29. Porównanie GitHub API, NousResearch/hermes-agent, v2026.8.19...main, pobrane 26 sierpnia 2026: ahead_by: 1104, behind_by: 0. Lista wydań API wskazuje v2026.8.19 (Hermes Agent v0.20.5, opublikowane 2026-08-21T12:16:39Z) jako najnowszy tag, a informacje o jego wydaniu podają: „Pełne, opracowane informacje o wydaniach z tego okresu zostaną opublikowane wraz z v0.21.0, które udokumentuje wszystkie zmiany od v0.20.0.” Ponownie sprawdzono 27 sierpnia 2026 względem nowego tagu: v2026.8.27...main zwraca ahead_by: 0, behind_by: 0, status: identical — main wskazuje teraz dokładnie tag v0.20.6. ↩↩

  30. Informacje o wydaniu Hermes Agent v0.20.6 (tag v2026.8.27, deklarowana data wydania: 27 sierpnia, opublikowane 2026-08-27T12:06:53Z; pobrane za pośrednictwem GitHub API 27 sierpnia 2026 — prerelease: false). Oryginalne sformułowanie wprowadzenia: „Wydanie poprawkowe. Ten tag obejmuje około 525 PR-ów scalonych od wersji v0.20.5 w stabilne, otagowane wydanie dla dalszych użytkowników (obrazy Docker, wdrożenia hostowane, świeże instalacje).” Oryginalny opis zakresu zmian: „Od wersji v0.20.5 (v2026.8.19, oznaczonej tagiem 21 sierpnia) w tym okresie wprowadzono około 1313 commitów w około 1557 plikach (+177 113 / -21 682) — około 525 scalonych PR-ów, w tym przeglądanie przy użyciu rzeczywistego profilu wymagające zgody (korzystanie z domyślnego profilu Chromium do lokalnego przeglądania, z przepływem zamykania za zgodą w systemie Windows); osobne okno systemowe przeglądarki desktopowej wraz z zarządzanym silnikiem zdalnych aktualizacji SSH i panelem profiles floty; duże rozszerzenie katalogu zdalnych MCP (ponad 50 zweryfikowanych w działaniu serwerów hostowanych przez dostawców, w tym Cloudflare, Grafana Cloud, Better Stack, Railway); buforowanie wyników web_search/web_extract z TTL; domyślną kompresję lean-tail; wielozapytaniowe tool_search z mechanizmem stemmingu; opcjonalne szyfrowanie zapisanych sekretów przy użyciu systemowego pęku kluczy (koniec z monitami pęku kluczy macOS przy każdym uruchomieniu); wstrzymywanie gateways przez aktualizatory za pośrednictwem gniazda sterującego zamiast kończenia ich procesów wraz z całymi drzewami; odmawianie niebezpiecznych aktualizacji w miejscu przez instalacje zarządzane za pomocą obrazów lub pakietów (#91277, faza 3); potwierdzanie trwałych incydentów cron oraz czytelniejsze błędy rozbieżności wersji kodu; mechanizmy kontroli rozwijania podglądów odnośników w Slack; współdzielone tożsamości kontenerów Docker; wymienne backendy środowiska terminalowego; a także nowe modele w selektorach (GLM-5.3-Flash, bezpłatny MiniMax M3, MiniMax H3 Max video).” W informacji o wydaniu powtórzono: „Pełne, opracowane informacje o wydaniach z tego okresu zostaną opublikowane wraz z v0.21.0, które udokumentuje wszystkie zmiany od v0.20.0 — najważniejsze zmiany, obszary funkcjonalne oraz pełną listę współtwórców. Nie pominięto żadnego elementu z tego okresu.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  31. Kompresja w tagu v2026.8.31, ponownie zweryfikowana w v2026.8.31 na potrzeby przewodnika v1.17: tail_mode: str = "lean", zabezpieczenie ("legacy", "lean"), domyślna wartość "lean" w agent_init, migracja konfiguracji do wersji 17 oraz poniższa uwaga o nieaktualnym komentarzu dotyczącym konfiguracji pomocniczej pozostają aktualne w nowym tagu (context_compressor.py otrzymał ścieżkę ponowienia dla przypiętego routingu podsumowania, która nie zmienia żadnej z przytoczonych wartości domyślnych). agent/context_compressor.py ustawia domyślnie tail_mode: str = "lean" w ContextCompressor.__init__, z komentarzem „Tryb oszczędnego ogona (#compaction-v2): ‘lean’ = mały, ograniczony ogon ostatnich treści + sekcja podsumowania z dosłownie zachowanymi wiadomościami użytkownika + wskaźniki odzyskiwania; ‘legacy’ = ogon obejmujący 0,20okna (obecne zachowanie wersji produkcyjnej)” oraz zabezpieczeniem self.tail_mode = tail_mode if tail_mode in ("legacy", "lean") else "lean". agent/agent_init.py odczytuje compression.tail_mode z domyślną wartością "lean"; komentarz podaje parametry obu trybów: „’lean’ (domyślny) zachowuje ograniczony ogon obejmujący 2,5% / 10–25 tys. tokenów w postaci dosłownej, wraz z mechanizmem wskaźników odzyskiwania… ‘legacy’ przywraca ogon sprzed #87326, obejmujący dosłownie 0,20progu, co w konfiguracjach z dużym oknem lub podwyższonym progiem zatrzymuje 100–240 tys. tokenów przy każdej kompresji”. Strona dokumentacji konfiguracji (źródło website/docs/user-guide/configuration.md w tym tagu) przedstawia blok compression: zawierający enabled, threshold: 0.50, threshold_tokens: null, target_ratio: 0.20, tail_mode: lean (z adnotacją w v2026.8.31: „’lean’ (domyślny — ograniczony ogon 2,5%, 10–25 tys., ze szczegółowym dziennikiem sesji + indeksem kotwic + wskaźnikami odzyskiwania session_search w podsumowaniu, wszystko z JEDNEGO wywołania pomocniczego modelu podsumowującego; około 3 razy mniej tokenów zachowanych po kompresji) albo ‘legacy’ (dosłowny ogon obejmujący 0,20×progu)”), protect_last_n: 20 i protect_first_n: 3, umieszcza parametry modelu podsumowującego w auxiliary.compression (model, provider, base_url) oraz informuje: „Starsze konfiguracje zawierające compression.summary_model, compression.summary_provider i compression.summary_base_url są automatycznie migrowane do auxiliary.compression.* przy pierwszym wczytaniu (wersja konfiguracji 17). Nie jest wymagane żadne działanie ręczne”. Migrację obsługuje _migrate_to_17 w hermes_cli/config_migrations.py („Wersja 16 -> 17: usunięcie przestarzałych kluczy compression.summary_”). Strona dla deweloperów dotycząca kompresji kontekstu (źródło website/docs/developer-guide/context-compression-and-caching.md w tym tagu) przedstawia w tabeli tail_mode z domyślną wartością lean, podaje „Wynik dla rzeczywistych sesji zawierających 500 tys. tokenów: zachowano około 49 tys. zamiast około 162 tys.” oraz „Stare wyniki narzędzi wewnątrz ogona lean są redukowane do jednowierszowych znaczników zastępczych zawierających wskaźnik odzyskiwania”, a także zawiera ostrzeżenie dotyczące modelu podsumowującego (w v2026.8.31): „Model podsumowujący musi mieć okno kontekstu co najmniej tak duże jak główny model agenta. […] Następnie kompresor usuwa środkowe tury bez podsumowania, po cichu tracąc kontekst rozmowy”. (Jedno nieaktualne miejsce w źródle nadrzędnym: na stronie konfiguracji w sekcji „Pełna dokumentacja konfiguracji pomocniczej” gniazdo auxiliary.compression nadal opatrzone jest komentarzem „Limit czasu kompresji kontekstu (oddzielny od konfiguracji compression.)”; kod migracji, interaktywny selektor konfiguracji pomocniczej hermes model oraz sekcja tej samej strony poświęcona kompresji są nowszymi, zgodnymi ze sobą źródłami). ↩↩↩↩↩↩↩

  32. Wymienne backendy terminala w tagu v2026.8.31 (ponownie zweryfikowane na potrzeby przewodnika v1.17; agent/terminal_env_registry.py jest identyczny bajt w bajt ze swoją wersją z v2026.8.31). Docstring modułu agent/terminal_env_registry.py, dosłownie: „Centralna mapa zarejestrowanych wymiennych backendów terminala. Wypełniana przez wtyczki podczas ładowania za pośrednictwem PluginContext.register_terminal_environment_provider; używana przez tools.terminal_tool._create_environment” oraz „Nazwy wbudowanych backendów są zastrzeżone — register_provider odrzuca dostawcę, którego nazwa koliduje z jedną z nich, dzięki czemu wtyczka nigdy nie może przesłonić implementacji docker/modal/… znajdujących się w głównym repozytorium”; celowo „nie ma tu mechanizmu ustalania aktywnego dostawcy: aktywnym backendem jest dokładnie ten wskazany przez TERMINAL_ENV / terminal.backend, tak samo jak w przypadku backendów wbudowanych”. Jego frozenset BUILTIN_BACKEND_NAMES zawiera siedem backendów oraz alias trybu wewnętrznego managed_modal: local, docker, singularity, modal, managed_modal, daytona, vercel_sandbox, ssh. Nowa strona dokumentacji Wtyczki dostawców środowiska terminala (źródło website/docs/developer-guide/terminal-environment-plugin.md w tym tagu), dosłownie: „Hermes uruchamia polecenia powłoki za pośrednictwem wymiennego zestawu backendów terminala. Wbudowane backendy (local, Docker, Singularity, Modal, Daytona, Vercel Sandbox, SSH) znajdują się w głównym repozytorium w katalogu tools/environments/. Zewnętrzni dostawcy środowisk sandbox integrują się natomiast jako wtyczki — samodzielne repozytorium wtyczki instalowane w ~/.hermes/plugins/, rejestrujące backend wybierany przez użytkownika dokładnie tak samo jak wbudowany, za pomocą terminal.backend w config.yaml”; w tabeli wymieniono obszary obsługiwane przez zarejestrowanego dostawcę (przekazywanie poleceń, selektor backendu hermes setup, status testu na dashboardzie, kontrole hermes status/hermes doctor, wskazówki dotyczące środowiska w promptach systemowych, obsługa ścieżek kontenera i cwd, usuwanie sekretów, izolacja środowiska sandbox dla poszczególnych sesji), a cel projektu opisano następująco: „Zadeklarowanie tych flag u dostawcy eliminuje klasyczny rodzaj błędów ‘nowy backend pominięto w miejscu klasyfikacji N’ — rdzeń odwołuje się w każdym miejscu do rejestru zamiast do zakodowanej na stałe listy nazw”. ↩↩↩

  33. Ponowna kompleksowa weryfikacja w tagu v2026.8.31 (przewodnik v1.17). Ustawienia regionalne: drzewo locales/ zawiera 17 katalogów komunikatów — en.yaml oraz 16 tłumaczeń (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh) — identycznych jak w v2026.8.27. Osobowości: BUILTIN_PERSONALITIES w hermes_cli/personality.py zawiera te same 14 pozycji, od helpful do hype (helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype); plik jest identyczny bajt w bajt ze swoją wersją z v2026.8.27. Liczby, które ZMIENIŁY SIĘ w tym tagu: 39 statycznych pozycji CANONICAL_PROVIDERS (wcześniej 38) oraz 39 katalogów plugins/model-providers/ (wcześniej 37) — zob. 26 i 36. Liczby bez zmian: 24 elementy enum Platform (identyczna lista elementów w gateway/config.py, do którego dodano jedynie pole gateway room_link_url), 22 katalogi adapterów plugins/platforms/, 28 wierszy w tabeli porównawczej platform w dokumentacji; _BUILTIN_SUBCOMMANDS zawiera te same 73 pozycje (peer i worktree są obecne, nadal nie ma version ani approval-check — nazwy użytej w informacjach o wydaniu dla hermes approvals test); hermes_cli/_startup_fast.py i hermes_cli/portal_cli.py są identyczne bajt w bajt ze swoimi wersjami z v2026.8.27. ↩↩↩↩

  34. Routing modeli pomocniczych w tagu v2026.8.31 (ponownie zweryfikowany dla przewodnika w wersji 1.17; blok wartości domyślnych "auxiliary" w nowym tagu zawiera identyczny zestaw slotów, uwagi dotyczące usunięć oraz ustawienia niezwiązane ze slotami, a poniższe cytaty z dokumentacji pozostają dosłownie zgodne). Strona dokumentacji konfiguracji (źródło website/docs/user-guide/configuration.md w tym tagu), dosłownie: „Domyślnie (auxiliary.*.provider: "auto") Hermes kieruje każde zadanie pomocnicze do głównego modelu czatu — tego samego dostawcy i modelu, które wybrano za pomocą hermes model. Aby rozpocząć, nie trzeba niczego konfigurować, należy jednak pamiętać, że w przypadku kosztownych modeli rozumujących (Opus, MiniMax M2.7 itd.) zadania pomocnicze generują zauważalne koszty”; uwaga „Dlaczego ustawienie ‘auto’ korzysta z głównego modelu”: „We wcześniejszych kompilacjach użytkownicy agregatorów (OpenRouter, Nous Portal) byli kierowani do taniego, domyślnego modelu po stronie dostawcy. Było to zaskakujące — użytkownicy płacący za subskrypcję agregatora zauważali, że ich ruch pomocniczy obsługuje inny model. Obecnie auto używa głównego modelu dla wszystkich, a nadpisania poszczególnych zadań w config.yaml nadal mają pierwszeństwo”; oraz o ekstrakcji treści internetowych: „(Ekstrakcja treści internetowych nie jest zadaniem pomocniczym: web_extract i migawki przeglądarki deterministycznie skracają długie treści oraz zapisują pełny tekst do stronicowania za pomocą read_file — bez udziału LLM.)” Autorytatywny zestaw slotów znajduje się w bloku wartości domyślnych "auxiliary" w pliku hermes_cli/config_defaults.py w tym tagu: vision, compression, skills_hub, approval, review, mcp, title_generation, memory_query_rewrite, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer, goal_judge, curator, monitor, background_review, moa_reference oraz moa_aggregator (a także ustawienia niezwiązane ze slotami: transient_retries, free_only, openrouter_model i stream_only_base_urls); sloty zawierają provider, model, base_url, api_key, timeout, extra_body oraz osobne dla każdego zadania reasoning_effort. Uwagi dotyczące usunięć w tym samym pliku, dosłownie: „web_extract nie korzysta już z pomocniczego LLM — strony są skracane i zapisywane ze wskaźnikiem read_file (bez podsumowywania), a migawki przeglądarki działają według tego samego schematu. Stary blok auxiliary.web_extract.* został tutaj usunięty. Istniejące wartości w plikach config.yaml użytkowników są nieszkodliwymi pozostałościami i są ignorowane” oraz „session_search nie korzysta już z pomocniczego LLM (PR #27590 — narzędzie o jednym formacie odpowiedzi zwraca treść z bazy danych bezpośrednio)”; w bloku nie istnieje klucz flush_memories. Jednozdaniowe opisy slotów pochodzą z komentarzy w tym samym pliku („Specyfikator selekcji — rozwija ogólny, jednozdaniowy opis z kolumny Kanban Triage w konkretną specyfikację, a następnie przenosi go do todo. Wywoływany przez hermes kanban specify”; „Dekompilator Kanban — rozkłada zadanie selekcji na graf zadań podrzędnych kierowanych do profili specjalistycznych według opisu. Wywoływany przez hermes kanban decompose oraz dyspozytor automatycznej dekompozycji Kanban”; „Generator opisów profili — automatycznie tworzy 1–2-zdaniowy opis zastosowań danego profilu. Wywoływany przez hermes profile describe <name> --auto oraz przycisk automatycznego generowania w panelu”; „Moduł oceny celu — ocenia, czy najnowsza odpowiedź z wykonania /goal spełnia cel lub kontrakt”; „Kurator — fork przeglądu użycia skill”; „Przegląd w tle — fork samodoskonalenia uruchamiany po turze, który decyduje, czy zapisać wspomnienie lub zmodyfikować skill”), komentarzy z pełnej dokumentacji na stronie konfiguracji („Wstawianie ukrytych znaczników audio TTS przez Gemini 3.1”; „Automatycznie generowane tytuły sesji. Pusty język oznacza użycie języka rozmowy”; auxiliary.title_generation.enabled: false wyłącza automatyczne tytuły) oraz tabeli konfiguracji na stronie dokumentacji Kanban („auxiliary.kanban_decomposer | Model tworzący graf zadań (wywoływany przez Decompose)”; „auxiliary.profile_describer | Model automatycznie generujący opisy profili (wywoływany przez hermes profile describe --auto)”). Ścieżka interaktywna: uruchomić hermes model i wybrać „Konfiguruj modele pomocnicze”, aby otworzyć selektor dla poszczególnych zadań (vision, title_generation, tts_audio_tags, compression, approval, triage_specifier, kanban_decomposer, profile_describer, delegation); wpis Delegation jest zapisywany w nadrzędnym delegation.*, ponieważ subagenci „są pełnoprawnymi agentami podrzędnymi, a nie pobocznymi wywołaniami LLM”. ↩↩↩↩↩↩↩↩↩↩↩

  35. Informacje o wydaniu Hermes Agent v0.21.0, „The Pantheon Release”, tag v2026.8.31, deklarowana data wydania: 31 sierpnia; opublikowano 2026-08-31T19:29:49Z. Statystyki, dosłownie: „Od wersji v0.20.0: około 5 800 commitów · około 2 475 scalonych PR-ów · około 5 680 zmienionych plików · około 869 000 wstawień · około 135 000 usunięć · około 2 100 zamkniętych zgłoszeń · ponad 760 współtwórców”. Wprowadzenie, dosłownie: „The Pantheon Release. Wersja v0.20.0 uczyniła Hermesa heroldem — przemawiał i przekazywał wieści innym agentom. W wersji v0.21.0 bogowie się gromadzą” oraz „To wydanie obejmuje wszystko z infrastrukturalnych tagów poprawek v0.20.1–v0.20.6 — te okresy zostały tutaj w pełni udokumentowane”. Użyte powyżej cytaty dotyczące obszarów funkcji, dosłownie: tryb Bot Mode — „Bot Mode jest teraz dołączoną i domyślnie włączoną częścią aplikacji komputerowej: każdy profil agenta otrzymuje nazwę, deterministyczną twarz awatara (z opcjami losowania i blokowania) oraz miejsce we wspólnym składzie” i „Wcześniej termin ‘multi-agent’ oznaczał instalację techniczną; teraz przypomina aplikację czatu pełną współpracowników” (#87886, #88243, #89386, #96726); hermes peer — „Odpowiedzi trafiają do kanonicznego Bot Chat każdego agenta, dzięki czemu rozmowy między agentami są trwałe i możliwe do przejrzenia, zamiast znikać po wysłaniu” (#88725, #88178, #91487); cron — „continuity=true przenosi wynik każdego uruchomienia do następnego (dzięki czemu monitor może pomijać duplikaty tego, co już zgłosił), każde zadanie otrzymuje trwały notatnik roboczy, a zadania w trybie monitora całkowicie pomijają LLM, gdy nic się nie zmieniło” (#91447, #80774, #81139, #81138); delegation — „można wyświetlić działających agentów podrzędnych, przekazać jednemu z nich korektę kursu w trakcie działania albo zatrzymać go wcześniej i zachować częściowy wynik. Dodano opcjonalną walidację wyników agentów podrzędnych według schematu JSON, koszt poszczególnych delegacji widoczny w wynikach oraz podwyższone wartości domyślne (250 iteracji, 10 równocześnie działających agentów podrzędnych)” (#85232, #81144, #81142, #86506, #86745); MCP — „głębokie linki hermes://, które instalują serwer MCP po jednoznacznym potwierdzeniu” (#87525–#87581); CLI — „Ctrl+P otwiera paletę poleceń z wyszukiwaniem rozmytym, selektor /model filtruje wyniki podczas pisania, /status wyświetla tryb rozumowania, oczekujące zatwierdzenia i wykorzystanie kontekstu, a pasek stanu może pokazywać na żywo procent trafień w pamięci podręcznej, opóźnienie i liczbę tokenów na sekundę, z możliwością osobnego włączania każdego pola” (#90730, #90717, #90745, #98250, #98282, #97666); przeglądarka — „Hermes teraz samodzielnie nawiguje, klika i odczytuje zawartość” (#90197, #89366); dostawcy — „Meta Model API (Muse Spark) pojawia się jako wbudowany dostawca, obok CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router i Actual Computer” (#88565, #88308, #97917, #97916, #97915 oraz odzyskane #79644/#26491); bezpieczeństwo — „Chronione pliki instrukcji agenta (AGENTS.md, skills, magazyny pamięci) wymagają teraz zawsze zatwierdzenia zapisu, dzięki czemu agent zaatakowany przez prompt injection nie może po cichu zmienić własnych stałych poleceń” (#81152), a także kompleksowe maskowanie danych (#80965), obsługa zatwierdzeń w systemie Windows (#84428), tożsamość TCC (#95091) oraz usunięcie MCP z Blendera (#83404). Sekcja wycofanych zmian, dosłownie: „Tryb Model Council (/council) — wdrożony, a następnie wycofany; nie jest częścią tego wydania”; „Context engine DCP — wdrożony, a następnie wycofany; nie jest częścią tego wydania”; „Serwer gateway wyłącznie przez WS (#94245) — scalony, a następnie wycofany (#96118); FastAPI pozostaje elementem ścieżki uruchamiania aplikacji komputerowej. Odtwarzanie zdarzeń ze znacznikami sekwencji (#94219) ZOSTAŁO wydane”; „Electron został cofnięty do wersji 40.10.2; kotwicę interpretera TCC usunięto (zastąpiło ją podejście oparte na tożsamości podpisu, które trafiło do wydania)”. Sekcję poprawek błędów zamyka zdanie: „…oraz prace odpowiadające około dwóm tysiącom kolejnych zamkniętych zgłoszeń — w tym okresie scalano średnio około 85 PR-ów dziennie”. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  36. Nowi dostawcy w tagu v2026.8.31. W pliku hermes_cli/models.py dodano ProviderEntry("tencent-tokenplan", "Tencent TokenPlan", "Tencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages)") (statyczny wpis nr 39), modele katalogowe hy4-preview, hy3, hy3-preview oraz wyświetlaną wyłącznie w selektorze grupę "tencent": ("Tencent Hy", "Hy4 / Hy3 via TokenHub & TokenPlan", ["tencent-tokenhub", "tencent-tokenplan"]). W plugins/model-providers/ dodano nebius-token-factory/ i router/; oba deklarują auth_type="api_key", więc mechanizm automatycznego rozszerzania je uwzględnia. Dosłowna treść docstringa wtyczki routera: „Profil dostawcy dla Ramp Router, gateway LLM firmy Ramp: jeden punkt końcowy zgodny z OpenAI Responses pod adresem https://api.router.com/v1, który kieruje każde żądanie do dostawców nadrzędnych (OpenAI, Anthropic, xAI, Fireworks, …) oraz obsługuje po stronie serwera mechanizmy awaryjne i limity wydatków” … „Responses API to natywny protokół komunikacyjny.” … „Prawidłowe identyfikatory modeli to te zwracane przez GET /v1/models dla danego klucza (konta BYOK widzą dodatkowe wpisy), dlatego ten profil nie zawiera fallback_models — selektor korzysta z danych pobieranych na żywo, zgodnie z zaleceniem Router, aby nigdy nie kodować nazw modeli na stałe”. Strona dokumentacji dostawców AI w tym tagu zawiera tabelę 45 nazwanych dostawców oraz wiersz Custom Endpoint; cztery wiersze dodane od wersji v2026.8.27, w brzmieniu: „Ramp Router | RAMP_ROUTER_API_KEY w ~/.hermes/.env (dostawca: router; aliasy: ramp-router, ramp, router.com; gateway natywny dla Responses, katalog pobierany na żywo i ograniczony do konta)”; „Nebius Token Factory | NEBIUS_API_KEY w ~/.hermes/.env (dostawca: nebius-token-factory; aliasy: nebius, nebius-tf, tokenfactory)”; „Tencent TokenPlan | TOKENPLAN_API_KEY w ~/.hermes/.env (dostawca: tencent-tokenplan, aliasy: tokenplan, tencent-lkeap; punkt końcowy Anthropic Messages)”; „Alibaba Cloud (Token Plan) | ALIBABA_TOKEN_PLAN_API_KEY w ~/.hermes/.env (dostawca: alibaba-token-plan; punkt końcowy dla Chin kontynentalnych: alibaba-token-plan-cn) — warstwa Model Studio z płaską pulą tokenów”. W tym tagu model_overrides znajduje się w hermes_cli/config_defaults.py ("model_overrides": {}; jawne wpisy model_overrides.<provider>.<model_id> mają pierwszeństwo przed katalogiem, a wpisy _default uzupełniają luki wyłącznie w przypadku modeli nieobjętych katalogiem). ↩↩↩↩↩↩↩↩

  37. Ciągłość zadań cron w tagu v2026.8.31. Dosłowna treść strony dokumentacji cron (źródło website/docs/user-guide/features/cron.md w tym tagu): „Ustawienie continuity=true sprawia, że zadanie dołącza do każdego uruchomienia swój własny najnowszy wynik. Zwykle każde uruchomienie zadania cyklicznego zaczyna się bez pamięci — moduł wyszukujący wiadomości ponownie zgłasza te same materiały, a monitor ponownie alarmuje o tym samym stanie. Po włączeniu ciągłości zadanie budzi się ze świadomością tego, co zgłosiło poprzednio, dzięki czemu może eliminować duplikaty i kontynuować od miejsca, w którym skończyło”; „Przy kolejnych uruchomieniach poprzedni wynik jest poprzedzany instrukcją dotyczącą ciągłości („należy unikać powtarzania tego, co już zgłoszono”) … Wewnętrznie flaga jest przechowywana jako zastrzeżony wpis self w context_from.”; „Z poziomu CLI: hermes cron create "every 6h" "Scan for news" --continuity, a do przełączania tej funkcji w istniejącym zadaniu służą hermes cron edit <job_id> --continuity / --no-continuity. Ten sam przełącznik znajduje się w edytorze cron na dashboardzie oraz w oknie procedury Bot Mode w aplikacji desktopowej”. Dosłowny opis poziomu wysiłku dla poszczególnych zadań: „Zadanie może mieć przypisany własny poziom intensywności rozumowania, niezależny od przypisanego modelu: jeden z none, minimal, low, medium, high, xhigh, max, ultra. Jeśli zostanie ustawiony, dla uruchomień tego zadania zastępuje zarówno globalne agent.reasoning_effort, jak i agent.reasoning_overrides właściwe dla poszczególnych modeli”; ustawia się go za pomocą hermes cron create/edit --reasoning-effort high. Dosłowny opis dostarczania do Bot Chat: „bot-chat dostarcza wynik do kanonicznej sesji „Bot Chat” profilu jako rzeczywistą wiadomość … odbiorcą jest tutaj sam bot: otrzymuje wynik jako wiadomość przychodzącą, podejmuje wszelkie wymagane działania i odpowiada na swoim czacie”. Notatniki: docstring modułu cron/notepad.py — „Niewielki notatnik KV, z którego każde zadanie cron może korzystać do przenoszenia stanu między zaplanowanymi wybudzeniami (kursory, znaczniki postępu, listy obserwacyjne)”, z limitami „MAX_VALUE_BYTES (16 KB)” i „MAX_JOB_TOTAL_BYTES (64 KB)” („notatnik jest dołączany do promptu przy każdym uruchomieniu, więc nieograniczony wzrost powiększałby prompt przy każdym wybudzeniu”) oraz informacją: „Ścieżką zapisu jest CLI (hermes cron notepad <job_id> set <key> <value>), wywoływany przez działającego agenta za pomocą jego narzędzia terminalowego; nie dodaje się żadnego narzędzia modelu”. Tryb monitora: docstring cron/monitor.py — „Obsługa zadań cron w trybie monitora — wykrywanie zmian z pomijaniem na podstawie hasha”, wykorzystująca „tanie źródło monitora (monitor_script lub monitor_url)”; „brak zmian → uruchomienie agenta jest całkowicie pomijane (bez LLM, bez dostarczenia); cykl zostaje zarejestrowany jako ciche uruchomienie no_change”; „Wynik jest porównywany jako DOKŁADNE BAJTY — bez usuwania znaczników czasu ani normalizacji białych znaków. Skrypty monitorujące powinny generować stabilny wynik … w przeciwnym razie każdy cykl będzie wyglądał jak zmiana.”; „enabler: #80774”. ↩↩↩↩↩↩↩

  38. Orkiestracja działających podagentów w tagu v2026.8.31. Na stronie dokumentacji delegowania (źródło website/docs/user-guide/features/delegation.md w tym tagu), w sekcji „Sterowanie działającym podagentem”, interfejs sterowania obejmuje {"action": "list"}, {"action": "steer", "subagent_id": "sa-0-1a2b3c4d", "message": "focus on pricing instead"}, {"action": "stop", "subagent_id": "sa-0-1a2b3c4d"}; dosłownie: „list zwraca aktywne elementy podrzędne konwersacji: subagent_id, cel, status, running_seconds, accepting_steer oraz ścieżkę do bieżącego transkryptu”; „stop kończy działanie elementu podrzędnego przy następnej granicy iteracji; częściowy wynik nadal wraca do konwersacji jako zwykła wiadomość o ukończeniu”; działania sterujące są „ograniczone do własnego drzewa uruchomień wywołującego — konwersacja nigdy nie może zobaczyć ani kontrolować elementów podrzędnych innej sesji — i nigdy nie wykorzystują limitu uruchamiania podagentów na turę, dzięki czemu stop działa nawet po osiągnięciu limitu”; opis dostarczania polecenia sterującego rzetelnie uwzględnia wyścig („Umieszczenie w kolejce nie oznacza dostarczenia, ale nigdy nie jest sztucznym sukcesem”; pending_steer jest przekazywane do wyników, a jeśli element podrzędny zakończył działanie wcześniej, ustawiane jest missed_steer). Wartości domyślne: hermes_cli/config_defaults.py ustawia delegation.max_iterations: 250 („limit iteracji dla każdego podagenta — każdy podagent otrzymuje własny budżet, niezależny od max_iterations elementu nadrzędnego”) oraz delegation.max_concurrent_children: 10 („ujednolicony limit współbieżności: maksymalna liczba równoległych elementów podrzędnych w jednej partii ORAZ maksymalna liczba równocześnie działających w tle jednostek delegowania (background=true) … (Zastępuje przestarzałe max_async_children.)”). Jedno nieaktualne miejsce w źródłach projektu: sama strona dokumentacji delegowania nadal mówi o „domyślnie 3 zadaniach” i pokazuje w opisie konfiguracji „max_iterations: 50 … (domyślnie: 50)”; dostarczany plik config_defaults.py oraz informacje o wydaniu („podniesione wartości domyślne: 250 iteracji, 10 równocześnie działających elementów podrzędnych”) są nowszymi, zgodnymi ze sobą źródłami. ↩↩

  39. Fala zmian związanych z bezpieczeństwem w tagu v2026.8.31. Chronione pliki instrukcji: hermes_cli/config_defaults.py domyślnie ustawia security.protected_instruction_files: True (komentarz: „Zapisy do plików instrukcji agenta (AGENTS.md/CLAUDE.md/SOUL.md/…)”) wraz z protected_instruction_extra_patterns: [] (fnmatch względem nazwy bazowej); tools/file_tools.py implementuje bramkę — „Chronione pliki instrukcji agenta (bramka zatwierdzania zawsze wymagająca potwierdzenia)” dla _PROTECTED_INSTRUCTION_BASENAMES = frozenset({"agents.md", "claude.md", "soul.md", ".cursorrules", ...}) — i dosłownie określa model zagrożeń: „wektor: wstrzyknięta instrukcja, która edytuje AGENTS.md / CLAUDE.md / SOUL.md” oraz „pliki instrukcji kontekstu projektu są ładowane z drzew cwd — plik AGENTS.md w dowolnym miejscu, z którego agent może później zostać uruchomiony, jest aktywnym celem”. Tożsamość TCC: hermes desktop --setup-tcc-identity zaimplementowano w hermes_cli/main.py — _desktop_macos_setup_tcc_identity(identity: str = "Hermes Local Signing"), „Jednorazowa konfiguracja dla hermes desktop --setup-tcc-identity”, z zabezpieczeniami „(–setup-tcc-identity jest dostępne wyłącznie w systemie macOS; pomijanie)” oraz „(–setup-tcc-identity wymaga openssl, security i codesign …)”. Przegląd mechanizmów redakcji danych (#80965, #80964, #81675, #81686, #88232), obsługa zatwierdzeń w systemie Windows (#84428), usunięcie MCP z Blendera (#83404) oraz skanowanie instalacji pluginów poziomu Tier-1 (#80728) opisano w informacjach o wydaniu.35 ↩↩↩↩

  40. Zmiany w warstwie CLI w tagu v2026.8.31. COMMAND_REGISTRY w hermes_cli/commands.py rejestruje CommandDef("palette", "Open the fuzzy command palette (also Ctrl+P)", "Info", ...) oraz CommandDef("status", "Show session, model, token, and context info", "Session", ...) — /status jest poleceniem sesji ze wspólnego rejestru, a nie poleceniem dostępnym wyłącznie w komunikatorach. W _BUILTIN_SUBCOMMANDS nie ma wpisu approval-check (73 wpisy, identyczne jak w v2026.8.27); test bez wykonywania operacji, określany w informacjach o wydaniu v0.21.0 jako hermes approval-check (#81137), to hermes approvals test — tekst pomocy parsera w hermes_cli/subcommands/approvals.py dla tego tagu brzmi: „Sprawdza bez wykonywania operacji decyzję o zatwierdzeniu polecenia (nigdy go nie wykonuje)”, z opcjami --backend („Typ backendu terminala, względem którego ma zostać przeprowadzona ocena (domyślnie: lokalny …)”) oraz --json. W hermes_cli/_parser.py zmieniono wyłącznie sekcję hermes chat: tekst pomocy dla -q/--query brzmi teraz „Zapytanie do wykonania. W prawdziwym TTY treść wprowadzona w wierszu polecenia inicjuje sesję interaktywną (jest dosłownie przesyłana jako pierwsza tura); w połączeniu z –oneshot lub -Q albo w środowisku innym niż TTY udzielana jest odpowiedź, po czym program kończy działanie.”; nowa flaga --oneshot ma opis „Z -q/–query-file: odpowiada na zapytanie i kończy działanie (starsze zachowanie pojedynczego zapytania), zamiast inicjować sesję interaktywną. Stosowane automatycznie dla standardowego wejścia/wyjścia poza TTY oraz przez -Q/–quiet.”; natomiast --max-turns opisano jako „Maksymalna liczba iteracji wywoływania narzędzi na turę konwersacji (domyślnie: 500 lub agent.max_turns w konfiguracji)”. ↩↩↩↩↩↩↩↩↩

  41. Informacje o wydaniu Hermes Agent v0.21.1, tag v2026.9.7, deklarowana data wydania: 7 września, opublikowano 2026-09-07T22:17Z. Treść jest celowo zwięzła; dosłownie: „wydanie poprawkowe”, które „zbiera bieżący stan gałęzi main od wersji v0.21.0 dla wdrożeń opartych na tagach i dalszych odbiorców”; statystyki okresu w chwili przygotowania: „5 139 commitów bez scaleń w 4 364 zmienionych plikach (+601 014 / -768 419)” oraz „632 scalone PR-y”; a także „Pełne, opracowane informacje o wydaniu dla tego okresu zostaną opublikowane wraz z wersją v0.22.0”. Weryfikacja w lokalnym klonie: git rev-list --count --no-merges v2026.8.31..v2026.9.7 = 5 140, a git diff --shortstat = +601 018 / -768 423 — liczby w treści odzwierciedlają stan sprzed commitu wydania i różnią się dokładnie o ten commit; największy wcześniejszy okres między sąsiednimi tagami to v2026.7.20..v2026.7.30, obejmujący 2 790 commitów bez scaleń (w lokalnym klonie zmierzono każdą parę sąsiednich tagów, począwszy od v2026.3.12). Kontrola diagnostyczna opisana w sekcji rozwiązywania problemów znajduje się w hermes_cli/doctor_config.py:330-362 dla tego tagu (_drift_max_iterations_ghost): nieaktualna zmienna HERMES_MAX_ITERATIONS w .env przesłania agent.max_turns, gdy most startowy przerywa działanie z powodu wcześniejszego błędu parsowania konfiguracji (problem #17534), a hermes doctor --fix usuwa odpowiedni wiersz z .env. Weryfikacja w bieżącej sesji: 8 września 2026. ↩↩↩↩↩

  42. COMPAT_MANIFEST.md w tagu v2026.9.7 (katalog główny repozytorium, 3 869 wierszy). Dosłownie: „Dekompozycja z września 2026 (PR #102117) podzieliła duże moduły Hermes Agent na wyspecjalizowane pliki”; „Wewnętrzne ścieżki importu nie stanowią stabilnego API”; „Ta warstwa jest tymczasowa i zostanie usunięta 2026-09-14. Dodano ją w pojedynczym commicie i usuwa się ją przez wycofanie tego commitu.”; tabela opisująca skutki (przed 2026-09-14: żółte powiadomienie podające nazwę pluginu, datę i hermes plugins compat; plugin „zostaje załadowany; każde rozwiązanie starej ścieżki emituje jednokrotnie HermesPluginCompatWarning”; od 2026-09-14: „czerwone powiadomienie: plugin WYŁĄCZONY” oraz „nie jest ładowany; hermes plugins list pokazuje przyczynę”; Desktop: „jednorazowe okno modalne”); mechanizm awaryjny, dosłownie: „plugins.allow_deprecated_imports: true w config.yaml pozwala ładować dotknięte problemem pluginy również po tej dacie, dopóki wycofanie commitu faktycznie nie usunie ścieżek.”; liczba według rodzaju: moved-lazy 1148, import 592, restored-def 290, restored-helper 41, restored-import 17, module-stub 3, unrestorable 34; zakres: tylko publiczne nazwy najwyższego poziomu, „Punkty zaczepienia używane przez monkeypatch w testach również nie są zachowywane.” Parser narzędzia sprawdzającego w hermes_cli/subcommands/plugins.py:104-112: hermes plugins compat [path] [--json], opis dosłownie: „Statycznie skanuje każdy włączony zewnętrzny plugin pod kątem importów ścieżek modułów sprzed dekompozycji (patrz COMPAT_MANIFEST.md) i wyświetla plik:wiersz, stara ścieżka -> nowa ścieżka. Kończy działanie z kodem 1, jeśli problem dotyczy któregokolwiek pluginu.” Kształt dekompozycji zweryfikowany dla tego tagu: agent/ = 214 modułów najwyższego poziomu + 7 podpakietów (lsp, monitoring, pet, proxy_sources, secret_sources, transports, verify), hermes_cli/subcommands/ = 61 modułów, CANONICAL_PROVIDERS w hermes_cli/models_catalog_static.py:311 z 39 wpisami, których slugi są identyczne z listą z v2026.8.31 w hermes_cli/models.py (uwzględniono statyczną krotkę xai; plugins/model-providers/ nadal zawiera 39 folderów), stary plik prompt_builder.py najwyższego poziomu został usunięty (obecnie agent/prompt_builder.py), a run_agent.py nadal pozostaje głównym plikiem AIAgent w katalogu głównym. Następstwa, ponownie zweryfikowane dla wersji 1.19 przewodnika (15 września 2026): usunięcie zostało aktywowane zgodnie z harmonogramem jako bramka daty, a nie przez wycofanie commitu — w tagu v2026.9.14 plik hermes_cli/plugin_compat.py:32 ustawia COMPAT_REMOVAL_DATE = _dt.date(2026, 9, 14), funkcja removal_in_effect() (wiersze 86–90) zwraca wartość true od tej daty lub w przypadku braku pliku manifestu, natomiast allow_deprecated_imports() (wiersze 261–268) honoruje wyłącznie literał logiczny (warunek to ... is True; komentarz w źródle: „Wyłącznie literał logiczny”, dlatego ciąg YAML taki jak "false" lub "no" nigdy nie może otworzyć obejścia po usunięciu). Wycofanie commitu usuwające stare ścieżki NIE zostało wdrożone: COMPAT_MANIFEST.md, compat_manifest.json oraz hermes_cli/plugin_compat.py są obecne zarówno w v2026.9.14, jak i w gałęzi main w commicie 5d59366010 (2026-09-15 12:55 PT, pobranym tego samego dnia), dlatego mechanizm awaryjny nadal rozwiązuje stare ścieżki; przestanie działać w chwili wdrożenia wycofania. Ponownie zweryfikowano dla wersji 1.20 przewodnika (22 września 2026): nadal nie ma wycofania — wszystkie trzy pliki są obecne w tagu v2026.9.21 oraz w gałęzi main w commicie a53b42ddea (zatwierdzonym 2026-09-22 i pobranym tego samego dnia). W v2026.9.21 bramka i warunek pozostają zasadniczo niezmienione: COMPAT_REMOVAL_DATE nadal znajduje się w plugin_compat.py:32, removal_in_effect() w :86, a allow_deprecated_imports() obecnie w :296-303, z identycznym warunkiem wymagającym literału logicznego (... is True; komentarz brzmi teraz „Wyłącznie literał logiczny: YAML "false" / "no" nie może otworzyć obejścia po usunięciu.”). Jedyne zmiany w tym module w okresie wersji v0.21.4 dotyczą wydajności i przenośności: ogólnoprocesowa pamięć podręczna skanowania, indeksowana sygnaturą plików (relpath, mtime_ns, size) z każdego folderu pluginu (multipleksowany gateway wykrywa pluginy jednokrotnie dla każdego obsługiwanego profile, a ponowne parsowanie kodu źródłowego każdego pluginu kosztowało około 0,4 s na profile podczas rozruchu), oraz ścieżki trafień w formacie POSIX w natywnym systemie Windows (#112576); ponadto z samego manifestu usunięto dwa wiersze związane z opencode (_OPENCODE_KEYLESS_EXTRA_SLUGS, is_opencode_zen_free_model) — bez zmian strukturalnych. ↩↩↩↩↩↩↩↩↩

  43. docs/session-lifecycle.md w tagu v2026.9.7, sekcja „6. Jawne granice konwersacji”, dosłownie i w całości: „Brak aktywności ani upływ czasu zegarowego nigdy nie powodują rotacji konwersacji. /new i /reset tworzą jawną granicę; kompresja kontekstu nadal zarządza długimi historiami. Starsza konfiguracja czasomierza jest ignorowana. Istniejący typ danych SessionResetPolicy stanowi nieaktywną warstwę zgodności, a nie zasadę środowiska uruchomieniowego. Jawne zawieszenie nadal tworzy granicę przy następnym przychodzącym komunikacie. Odzyskiwanie respektuje jawne i historyczne sfinalizowane granice, zamiast ponownie je otwierać. Eksmisja obejmująca wyłącznie zasoby oraz usuwanie osieroconych procesów WebSocket pozostawiają możliwość wznowienia konwersacji”. ↩↩↩↩

  44. Autoryzacja MCP w tagu v2026.9.7. Parser: hermes_cli/subcommands/mcp.py:55-66 — login („Wymuś ponowne uwierzytelnienie serwera MCP opartego na OAuth”) przyjmuje --flow z opcjami browser/device, a tekst pomocy brzmi dosłownie: „Przepływ OAuth (zastępuje oauth.flow): PKCE w przeglądarce lub kod urządzenia RFC 8628”; reauth („Ponownie uwierzytelnij jeden serwer MCP korzystający z OAuth albo wszystkie takie serwery (–all)”) przyjmuje opcjonalną nazwę oraz --all. Przepływ kodu urządzenia dodano w omawianym okresie: commit f5afe8bd40 „feat: autoryzowanie serwerów MCP za pomocą kodów urządzeń z CLI”. Powiązane wzmocnienia zabezpieczeń, według tematów commitów z omawianego okresu: f914c9b070 „fix(mcp): egzekwowanie własności profilu we wszystkich sesjach OAuth”; f94307a7f7 „fix: ignorowanie uszkodzonych pamięci podręcznych metadanych OAuth dla MCP”; e3ba651b6d „fix(desktop): przekazywanie OAuth dla MCP przez lokalne wywołania zwrotne klienta”. Uruchamianie filtrowane według toolset: tools/mcp_tool_discovery.py:412-426 — filtr istnieje po to, aby „hermes -z -t <toolsets>” mógł „pominąć uruchamianie na zimno serwerów, których wywołujący nie potrzebuje”, a pusty filtr całkowicie pomija ładowanie MCP. ↩↩↩

  45. Niezawodność delegowania w tagu v2026.9.7, ustalona na podstawie kodu źródłowego narzędzia delegowania. Jednostki ukończenia: tools/delegate_tool_dispatch.py:326-341 (_units_of) — dosłownie: „Domyślnie wyłączone (delegation.independent_completions): całe wywołanie stanowi JEDNĄ jednostkę i jest zwracane jako jedna wiadomość. Lawina ukończeń dla poszczególnych zadań (po jednej nowej turze na każde) powodowała fragmentację orkiestratorów, które nie były na to przygotowane.”; jednostki tworzone są po jednej dla każdej odrębnej grupy group (w kolejności pierwszego wystąpienia) oraz po jednej dla każdego zadania bez grupy, a każda z nich osobno wraca do konwersacji; commit z omawianego okresu c89f3b8800 „fix(delegation): domyślnie jedno ukończenie na wywołanie; jednostki w kolejce nie utykają już w miejscu”. Przekazywanie procesów działających w tle: commit 3c0d90e8ef „feat(delegation): subagenci przekazują procesy działające w tle procesowi nadrzędnemu; pozostałości są nazywane, a nie obdarzane zaufaniem”; w tym tagu tools/delegate_tool_child_run.py:744-763 (account_background_processes) zapisuje przekazane procesy w wyniku, wymienia nadal działające, lecz nieprzekazane procesy jako orphaned_processes, a zakończone, ale nigdy nieodczytane — jako unread_completions (wraz z końcowym fragmentem wyjścia), zanim cleanup je zakończy; zgodnie z docstringiem proces nadrzędny „musi otrzymać tę informację ze środowiska uruchomieniowego”, zamiast ufać deklaracji procesu podrzędnego, że „obserwator działa”; operacją przekazania jest process_manage(action="handoff") (wyłącznie dla procesów podrzędnych), która pod blokadą rejestru zmienia ProcessSession.owner_task_id za pośrednictwem process_registry.transfer_ownership (tools/AGENTS.md, sekcja Delegation, w tym tagu). Mechanizm rezerwowy: delegation.fallback_providers w hermes_cli/config_defaults.py, komentarz dosłownie: „W przypadku nieprzypisanego na stałe procesu podrzędnego null = dziedziczenie łańcucha procesu nadrzędnego; [] = wyłączenie mechanizmu rezerwowego. Proces podrzędny przypisany na stałe według dostawcy, punktu końcowego lub modelu nie otrzymuje mechanizmu rezerwowego, chyba że to ustawienie jawnie go określa.”; walidacja łańcucha w tools/delegate_tool_config.py:417-425 (_resolve_child_fallback_chain): „Nieprawidłowe wpisy są odrzucane przez kanoniczny normalizator”. Odporność na awarie: tools/async_delegation.py:222-246 trwale zapisuje każdy ukończony proces podrzędny należący do nadal działającej jednostki wieloprocesowej we własnym wierszu tej jednostki ("partial": True), dzięki czemu awaria przed ukończeniem jednostki nie powoduje utraty ukończonych procesów podrzędnych. Poziom pamięci podręcznej: tools/delegate_tool.py:106-112 (_apply_child_cache_ttl), dosłownie: „Delegowany proces podrzędny nigdy nie korzysta z 1-godzinnego poziomu pamięci podręcznej.”; w procesie podrzędnym z _cache_ttl == "1h" wartość zostaje zmieniona na "5m". ↩↩

  46. Dostawcy i modele w tagu v2026.9.7. Poziomy Astra: hermes_cli/models_catalog_static.py:22-25 — openai/gpt-6-astra-fast „dwukrotna cena, poziom priorytetowy”, -flex „połowa ceny, poziom flex”, a także -pro-fast/-pro-flex; gpt-6-astra i -pro znajdują się w OPENROUTER_MODELS i nie należą do zbioru wykluczeń _OPENROUTER_ONLY, dlatego są również dostępne w Nous Portal. Ograniczenie dostępu do Astra i 900K: hermes_cli/codex_models.py:96-101 („Dostępność Astra zależy od konta: model może być prezentowany wyłącznie w aktywnym katalogu powiązanym z kontem”) oraz agent/model_metadata.py:1447-1462 — Codex OAuth deklaruje 272K, gpt-6-astra kwalifikuje się do 900K, z komentarzem „deklarowane 272K; wejście 920 043 zaakceptowane, 1 000 043 odrzucone (test na żywo 2026-09-04)”, natomiast CODEX_CONTEXT_VARIANT_SUFFIX = "-900k" jest „sufiksem opcjonalnym używanym wyłącznie w selektorze; nigdy nie jest wysyłany w komunikacji” (po stronie OpenRouter kontekst Astra wynosi 1 050 000 zgodnie z model_metadata.py:334). Nowe pozycje katalogu w tym samym pliku statycznym (wiersze 30–42): anthropic/claude-fable-5.1, google/gemini-3.8-flash i gemini-3.7-flash, qwen/qwen3.8-max-0902 i qwen/qwen3.8-flash, meta/muse-spark-1.3 oraz -contributor (kontekst 1M zgodnie z agent/model_metadata.py:349). muse-image: plugins/image_gen/meta-ai/__init__.py („API modelu Meta (muse-image): zgodny z OpenAI (https://api.meta.ai/v1)”, modele obejmują muse-image-1.0). Tavily: hermes_cli/config_defaults.py:2522-2525, dosłownie „Klucz API Tavily do natywnego dla AI wyszukiwania i wyodrębniania treści z internetu (opcjonalny — po wybraniu Tavily działa bez klucza)”, narzędzia web_search i web_extract; blok web wskazuje, że Tavily „jest bezkluczową opcją wymagającą jawnego włączenia za pomocą hermes tools, a nie elementem pierścienia”. Zarządzane środowisko uruchomieniowe llama.cpp: pakiet hermes_cli/local_runtime/ („Zarządzane środowisko uruchomieniowe llama.cpp”), blok konfiguracji w config_defaults.py:2327 („oficjalne pliki binarne, jeden nadzorowany” serwer; odsyłacz do dokumentacji user-guide/local-models) oraz interfejs aplikacji komputerowej apps/desktop/src/api/local-models.ts. Dostawcy korzystający z procesów zewnętrznych: agent/auxiliary_client.py:4740-4799 (_resolve_external_process_branch, „dostawcy external_process z PROVIDER_REGISTRY, obsługiwani za pośrednictwem zarejestrowanego profilu”), z kluczem opartym na zarejestrowanym profilu, „aby możliwe było rozpoznanie dostawcy ACP spoza drzewa projektu”. Częstotliwość odświeżania katalogu: migracja konfiguracji 39 -> 40 w hermes_cli/config_migrations.py:622-627 („model_catalog.ttl_hours -> ttl_minutes (domyślnie 20)”, komunikat dla użytkownika „Katalog modeli jest teraz odświeżany co 20 minut (model_catalog.ttl_minutes)”), przy czym hermes_cli/model_catalog.py uwzględnia starsze ttl_hours „tylko wtedy, gdy ttl_minutes nadal ma wartość domyślną”. ↩↩↩

  47. Wydanie aplikacji desktopowej oznaczone tagiem v2026.9.7. Tryb komentarzy: website/docs/user-guide/desktop.md w tym tagu; dosłowny zarys: „proszę kliknąć Annotate na pasku przeglądarki podglądu, następnie kliknąć dowolny element (lub przeciągnąć, aby zaznaczyć obszar) na aktywnej stronie i wpisać notatkę; każdy zapisany komentarz pozostaje na stronie jako numerowany znacznik”; „Zapisanie znacznika nigdy nie wysyła tury”; „Add N comments dołącza do edytora wykadrowany zrzut ekranu dla każdego znacznika oraz krótki prompt wskazujący każdy komentarz”; „Każdy komentarz do elementu zawiera jego selektor CSS, znaczniki oraz style obliczone istotne dla układu, dzięki czemu agent może odnaleźć element w kodzie źródłowym, zamiast zgadywać na podstawie obrazu”; „Wartości pól haseł i pól ukrytych, a także wszystkie atrybuty wyglądające jak klucz lub token, są redagowane na stronie, zanim opuszczą ją znaczniki”; „Większe partie są grupowane według części strony, w której znajduje się każdy komentarz, dzięki czemu ponad dwadzieścia komentarzy zamienia się w kilka fragmentów pracy, zamiast w osobne zadanie dla każdego z nich”; „ponieważ grupy stanowią osobne poddrzewa DOM, zwykle dotyczą różnych plików, co pozwala bezpiecznie przekazywać je równoległym procesom roboczym”. Commity z tego okresu: 10f2a20966 „feat(desktop): dodanie trybu komentarzy do przeglądarki w aplikacji”; e4bda3ff77 „feat(desktop): komentarze przeglądarki zawierają selektor elementu, jego znaczniki i style”; elementy sterujące sesją 8cb2bcc8c1 „udostępnienie ustrukturyzowanych elementów sterujących sesją” + bfddf556bf „odtworzenie ustrukturyzowanych elementów sterujących sesją” + dffd8d62c2 „dodanie elementów sterujących automatyzacją sesji”; 6b1e12c7f4 „przeciąganie w celu tworzenia sesji z poziomu New session oraz grup projektu, elementów sterujących i profilu”; 9186e3ebc5 „widok importowania do sesji transkrypcji z zewnętrznych agentów programistycznych”; a1c25d393a „wbudowany katalog opcjonalnych skills w Capabilities → Skills z instalacją jednym kliknięciem”; rosyjska wersja językowa a922dad9d8 „feat(desktop): dodanie rosyjskiej wersji językowej (ru)” + 269e5bde33 (rejestruje ru w testach i dokumentacji wersji językowych; plik apps/desktop/src/i18n/ru.ts jest nowy w tym okresie, natomiast katalog locales/ elementu CLI nadal zawiera 17 katalogów językowych). display.resume_last_session: hermes_cli/config_defaults.py:777, wartość domyślna True, komentarz dosłownie: „Po zimnym uruchomieniu aplikacja desktopowa ponownie otwiera ostatni czat/ostatnią stronę (także w Settings → Appearance)”. Zgoda dotycząca rzeczywistego profilu: apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx („Monit o zgodę wyświetlany przy pierwszym użyciu przeglądania z rzeczywistym profilem”; pojawia się, gdy otwierany jest panel Browser przy wyłączonym browser.use_real_profile; akceptacja zapisuje ten sam klucz konfiguracji, którego używa przełącznik Capabilities, „Not now” wycisza monit na czas działania aplikacji, a „Don’t show again” zachowuje to ustawienie między uruchomieniami). ↩↩

  48. Informacje o wydaniu Hermes Agent v0.21.2, „Wydanie poprawkowe state.db”, tag v2026.9.11, podana data wydania: 11 września, publikacja: 2026-09-11T19:20Z. Dosłowne objaśnienie: „Wersja v0.21.0 wprowadziła gruntownie przebudowaną obsługę połączeń magazynu sesji, a w niektórych instalacjach spowodowało to podatność pliku state.db na problemy: procesy zapisujące równolegle wzajemnie anulowały swoje blokady, sprawne bazy danych były zgłaszane jako uszkodzone, a pojedynczy nieprawidłowy wiersz powodował awarię sessions list”. Statystyki zmierzone dla commita 04dd80a977: „947 commitów bez merge’ów”, „1 869 zmienionych plików”, „312 scalonych PR-ów”, „140 współtwórców” (weryfikacja w lokalnym klonie: git rev-list --count --no-merges v2026.9.7..v2026.9.11 = 959 — liczba w treści pochodzi ze stanu sprzed wydania, podobnie jak w przypadku v0.21.1). Dosłowny nagłówek kampanii: „kampania na rzecz niezawodności state.db (6 PR-ów, zamknięto 44 zgłoszenia)” (PR-y #108076, #108082, #108130, #108086, #108074, #108067); dosłowne zalecenie dotyczące aktualizacji: „najpierw uruchomić hermes doctor; polecenie prawidłowo rozróżnia teraz uszkodzenia struktury i indeksu oraz, gdy sama przebudowa nie wystarcza, wskazuje hermes sessions recover --inspect-only (przypięte do profilu)”. Weryfikacja źródła dla tego tagu: stan hostowanych pokoi przeniesiono poza główny magazyn w gateway/hosted_rooms.py:398-426 — default_db_path kieruje gatewaye profili do „współdzielonego GŁÓWNEGO pliku shared-state.db zamiast nadrzędnego pliku state.db”, a jego docstring jako powód, dla którego gatewaye profili nigdy nie mogą otwierać nadrzędnego magazynu sesji w trybie zapisu, wskazuje cyklicznie występujący przypadek uszkodzeń powodowanych przez wiele procesów zapisujących, zaobserwowany we flocie 6 gatewayów (2026-09-03). Parser hermes sessions recover znajduje się w hermes_cli/subcommands/sessions.py:185-196, a tekst pomocy dla --inspect-only brzmi dosłownie: „Tylko zgłoś możliwość odczytu tabel kanonicznych; nie twórz wyjściowej bazy danych”; podpolecenie istniało już przed tym okresem (było obecne w hermes_cli/main.py w v2026.8.31), lecz wcześniej nie zostało opisane w tym przewodniku. Sejf poświadczeń: docstring w agent/vault_backends/__init__.py („Backendy logowania do sejfu poświadczeń przeglądarki”; uchwyty mają przestrzeń nazw zależną od backendu, dzięki czemu narzędzia przeglądarki mogą je przekierowywać bez zmian schematu; zewnętrzne menedżery pozostają zablokowane do czasu odblokowania w danej sesji; hasło główne „nigdy nie jest argumentem narzędzia ani częścią argv i nigdy nie jest utrwalane”), agent/vault_backends/base.py (LoginBackend „wyświetla metadane danych logowania (nigdy sekretów) i pobiera JEDNO hasło w chwili wypełniania”) oraz agent/vault_store.py:74-105 (klucze uwierzytelniające wyłącznie jako seedy base32 lub identyfikatory URI otpauth://totp, odrzucanie licznikowego HOTP, generowanie kodów przez totp_now); w tym tagu obecne są backendy local.py, onepassword.py, bitwarden.py oraz pliki agent/secret_sources/{onepassword,bitwarden,command}.py. Podparsery katalogu pluginów w hermes_cli/subcommands/plugins.py: tekst pomocy dla install: „Zainstaluj plugin z katalogu kuratorowanego, adresu URL Git lub owner/repo”, dla search: „Przeszukaj kuratorowany katalog pluginów Hermes”, dla browse: „Wyświetl wszystkie pozycje kuratorowanego katalogu pluginów”, dla pack: „Deklaratywne zestawy pluginów przeznaczone do udostępniania (hermes-pack.yaml)” z poleceniami install/export/show. Wdrażanie gościa w apps/desktop/electron/guest-onboarding-flag.test.ts: dosłowny tytuł testu „guestOnboardingEnabled: dokładnie “1” w env lub –guest-onboarding w argv włącza bezpłatną warstwę”; zestaw testów sprawdza, że wartości 'true', '0' i pusta są wyłączone, a desktopBackendSpawnEnv „na końcu utrwala decyzję dotyczącą uruchomienia i nigdy nie pozwala na wyciek odziedziczonej wartości”. Grupa zgłoszeń dotyczących wzmacniania obsługi wielu profili #107609–#107630, zgodnie z listą w wydaniu. Weryfikacja w bieżącej sesji: 15 września 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  49. Informacje o wydaniu Hermes Agent v0.21.3, tag v2026.9.14, podana data wydania: 14 września, publikacja: 2026-09-14T16:04Z. Dosłownie określony cel: tag „istnieje po to, aby poniższe poprawki logowania do zdalnego gatewaya trafiły do agentów Cloud, które automatycznie aktualizują się do najnowszego tagu wydania”. Statystyki zmierzone dla commita 9b419a2d3c: „1 036 commitów bez merge’ów”, „2 642 zmienione pliki”, „338 scalonych PR-ów” (weryfikacja w lokalnym klonie: git rev-list --count --no-merges v2026.9.11..v2026.9.14 = 1 037, ponownie z uwzględnieniem commita wydania). Oba udokumentowane elementy zweryfikowano w lokalnym klonie i występują wyłącznie w tym okresie: commit 5dea46d13d „fix(dashboard-auth): pojedyncze współdzielone odświeżenie dla bramki plików cookie i trasy natywnej, poza pętlą zdarzeń” (#110061, naprawia #55712; wraz ze zmianą hermes-portal#1209 po stronie Portal, czyli ruchomym 30-dniowym limitem bezczynności z 5-minutowym okresem karencji dla rotowanego tokenu) oraz commit 939a2f64b4 „fix: długotrwałe procesy przestają tworzyć zduplikowane uchwyty procesów zapisujących do state.db” (#110934, naprawia #100896 i #103339). Dosłowna informacja o odroczeniu: „Pełne, kuratorowane informacje o wydaniu dla tego okresu pojawią się wraz z v0.22.0, które udokumentuje wszystko od v0.21.0” oraz „Nic z tego okresu nie zostanie pominięte”; celowo nieudokumentowana lista w tym wydaniu obejmuje żądania JSON-RPC od serwera do klienta wraz z rejestrem kontraktów komunikacji Pydantic, wybór nakładu rozumowania we wszystkich selektorach modeli, OpenRouter OAuth PKCE, dekodowanie HEIF/HEIC/AVIF, przebudowę modeli równorzędnych Honcho, rozszerzenia katalogu FAL (Wan 3.0, Kling 3.0 / Kling Image v3, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1, Meta Muse), tabele wklejane do Slack i API Agent Sessions, poprawki izolacji multipleksowanych profili i sprawdzania aktywności gatewaya oraz odmowę użycia WAL przez state.db w systemach plików obejmujących wiele maszyn wirtualnych — zgodnie z objaśnieniem samego wydania wszystkie te elementy zachowano do przeglądu v0.22.0. Weryfikacja w bieżącej sesji: 15 września 2026. ↩↩↩

  50. Informacje o wydaniu Hermes Agent v0.21.4, tag v2026.9.21, deklarowana data wydania: 21 września, opublikowano 2026-09-21T18:10:55Z. Dosłownie określony cel: „Wydanie poprawkowe. Ten tag obejmuje około 1 800 PR-ów scalonych od wersji v0.21.3 i udostępnia je jako stabilne, oznaczone wydanie dla dalszych odbiorców (obrazy Docker, Hermes Cloud, wdrożenia hostowane). Pełne, starannie opracowane informacje dotyczące tego okresu zostaną opublikowane wraz z wersją v0.22.0”. Statystyki zmierzone dla commitu 4b8a8134009a: „5 071 commitów bez merge” w „5 169 zmienionych plikach” (+312 961 / -62 855), „1 812 scalonych PR-ów” i „2 116 zamkniętych zgłoszeń” — testy na lokalnym klonie dokładnie odtwarzają wszystkie pięć wartości (git rev-list --count --no-merges v2026.9.14..4b8a8134 = 5 071; git diff --shortstat = 5 169 plików, +312 961 / -62 855; commit tagu d337b736aa „chore(release): v0.21.4 (v2026.9.21)” jest potomkiem 4b8a8134, co daje 5 072 commity bez merge oraz łącznie 5 173 commity z merge, a API porównania GitHub dla v2026.9.14...v2026.9.21 raportuje total_commits: 5173, ahead_by: 5173, behind_by: 0). Klasyfikacja okresów (sprawdzona ponownie dla wersji 1.21 przewodnika 23 września): pod względem liczby commitów bez merge we wszystkich sąsiadujących parach tagów v2026.* prowadzi v2026.8.31..v2026.9.7 (5 140 wraz z commitem wydania), a v2026.9.14..v2026.9.21 (5 072) zajmuje drugie miejsce, przed v2026.7.20..v2026.7.30 (2 790); pod względem deklarowanej w informacjach o wydaniu liczby scalonych PR-ów wartość 1 812 jest najwyższa spośród wszystkich informacji zbiorczych dotyczących pojedynczego okresu (v0.21.1: „632 scalone PR-y”, v0.19.1: „około 1 000+ PR-ów”; wartość „około 2 475” dla v0.21.0 obejmuje sześć tagów v0.20.x od wersji v0.20.0, nie dotyczy więc jednego okresu między tagami). Dosłowna informacja o odroczeniu: „Pełne, starannie opracowane informacje o wydaniu dla tego okresu zostaną opublikowane wraz z wersją v0.22.0 i udokumentują wszystko od wersji v0.21.0” oraz „Nic z tego okresu nie zostanie pominięte”. Lista elementów celowo nieudokumentowanych wymienia blokadę pojedynczej instancji gateway i rekord rendezvous, dzięki któremu Desktop łączy się z uruchomionym backendem hosta; obsługę konektorów należącą do backendu wraz z kartą konfiguracji Desktop/TUI/CLI; --format stream-json; skills.auto_load; selektor czcionki czatu/interfejsu w Desktop, aktualizacje lokalnego silnika jednym kliknięciem oraz odinstalowywanie w centrum Plugins; zachowanie decline wobec nieautoryzowanych wiadomości prywatnych; mcp.discovery_concurrency; granice after/before w session_search oraz ponowną próbę wyszukiwania ze złagodzeniem warunków przez OR; hermes sessions set-journal-mode; LTX 2.5 i Kling O3 w katalogach wideo; strony witryny katalogu dla poszczególnych pluginów i autorów, zawierające pliki README z przypiętych commitów oraz sortowanie według daty dodania lub aktualizacji; „tuzin nowych pluginów społeczności w katalogu (tailscale, ssh, shodan, terminal, rss, resetwatch, done-bell, kiwi, cognee, Octen)” (skrótowe określenie z informacji o wydaniu; wpisy katalogu w chwili utworzenia tagu to hermes-tailscale, hermes-ssh, shodan, hermes-terminal, hermes-rss, hermes-resetwatch, done-bell, kiwi, cognee, web-octen); a także „obszerną serię poprawek dotyczących izolacji profili/multipleksowania, cron, kanban, Desktop i state.db”. Aktualizacja: hermes update (instalacje z git) lub jednowierszowe polecenie instalatora; „Docker / Hermes Cloud: obrazy są budowane na podstawie tego tagu (nousresearch/hermes-agent:v2026.9.21)”. Weryfikacja w bieżącej sesji: 22 września 2026. ↩↩↩↩↩↩

  51. Elementy ujawnione w v0.21.4 zweryfikowano w kodzie źródłowym oznaczonym tagiem v2026.9.21 (przewodnik v1.20 z 22 września 2026; uzupełnienia reguł operatora w przewodniku v1.21 z 23 września). Singleton hosta: docstring w gateway/host_rendezvous.py — „Singleton obejmujący cały host: jedna blokada + jeden rekord dla każdej ROLI i każdego użytkownika systemu operacyjnego”; „dokładnie JEDNO hermes serve i JEDNO hermes gateway run na host, z których każde multipleksuje wszystkie profile”; blokada hosta typu flock/msvcrt „utrzymywana przez cały czas działania zwycięskiego procesu” oraz rekord koordynacyjny, dzięki któremu drugie wywołanie może „udowodnić, że jest to ten sam aktywny proces, i PODŁĄCZYĆ SIĘ zamiast wiązać drugi port”; „Nieaktualność jest udowadniana, nigdy zakładana” za pomocą (pid, createTime) („podłączający się klient nigdy nie może łączyć się z portem należącym do ponownie wykorzystanego PID-u”); katalog główny blokad to $HERMES_GATEWAY_LOCK_DIR, a w przeciwnym razie $XDG_STATE_HOME/hermes/gateway-locks, z zakresem ograniczonym do użytkownika systemu operacyjnego (gateway/status.py:308-324: względna ścieżka XDG_STATE_HOME jest ignorowana, a ścieżką zapasową jest ~/.local/state). Ścieżka operatora: _host_attach_or_none w gateway/run.py:5466-5499 wyświetla komunikat o podłączeniu i kończy działanie z kodem 0 przy ATTACH, odmawia przy REFUSE, wysyła --replace do „procesu HOSTA, niezależnie od tego, który katalog domowy go uruchomił” przy REPLACE_HOST oraz pomija pytanie przy --force („wyjście awaryjne operatora, gdy właściciel się zawiesił lub podaje nieprawdziwe informacje”); _claim_host_gateway_role (gateway/run.py:5331-5346) kończy proces przegrywający wyścig o blokadę kodem EX_TEMPFAIL (75), ponieważ „Każdy generowany przez nas supervisor ponawia próbę po kodzie 75, a przy ponowieniu rekord właściciela już istnieje”. Pięć wyników w gateway/host_attach.py: ATTACH, RESCAN->ATTACH (rescan-profiles przez gniazdo sterujące), REPLACE_HOST, REFUSE („Nigdy nie uruchamiać po cichu drugiego procesu”), START (samodzielne gatewaye dla poszczególnych profili współistnieją „do czasu wymuszenia tej migracji (#109417)”). Część desktopowa: apps/desktop/electron/host-backend-attach.ts („Podłączenie do działającego backendu Hermes hosta — tylko multipleksowanie, część desktopowa”); sekwencja operacji wejścia/wyjścia odczytuje rejestr uruchomień z katalogu głównego maszyny, weryfikuje kandydata kolejno przez „gotowość HTTP -> token obsługiwanej sesji -> uwierzytelnianie WebSocket” oraz utrzymuje „bramkę na poziomie hosta, dzięki której dwie aplikacje uruchamiane jednocześnie tworzą jeden backend zamiast dwóch”; HOST_SPAWN_GATE_STALE_MS = 60_000). Działanie konektora: dosłownie w tools/connectors/operation.py:1: „Jedna operacja połączenia należąca do backendu na każde wywołanie manage_connections. Czyste dane, bez operacji wejścia/wyjścia.”; OPERATION_DEADLINE_SECONDS = 300.0 z komentarzem „To nie jest klucz konfiguracji: konfigurowalny przez użytkownika czas oczekiwania z ograniczeniami okazał się pułapką (PR1 zawierał takie rozwiązanie, ale nie został scalony)”; narzędzie zarejestrowane jako manage_connections (tools/connectors/tool.py:16,48,113); required_env dla każdego celu „({name, prompt, required}); karta wyświetla pole dla każdego wpisu i wstrzymuje jego operację, dopóki wszystkie wymagane pola nie zawierają tekstu”; karta dla trzech frontendów wymieniona w tests/hermes_cli/test_mcp_catalog_env_boundary.py:330 („Backend karty konektora — karta konfiguracji Desktop/TUI/CLI — stosuje ten sam podział obejmujący wyłącznie sekrety”). stream-json: hermes_cli/_parser.py:247-249 w parserze czatu — --format z opcjami text/stream-json, domyślnie text, tekst pomocy dosłownie: „’stream-json’ emituje rozdzielane znakami nowego wiersza zdarzenia JSON (JSONL), implikuje –quiet i nie może być łączone z –tui”; docstring modułu hermes_cli/stream_json.py: „jeden obiekt JSON w każdym wierszu stdout … system/init -> przyrosty text / tool_use / tool_result -> jedna końcowa koperta result (kod wyjścia, tekst końcowy, statystyki tokenów). Diagnostyka i session_id pozostają na stderr”, _TOOL_OUTPUT_CAP = 5000, kod wyjścia 2 dla niedozwolonych kombinacji, stream_json_requested w hermes_cli/stream_json.py:23, które przed zakończeniem z kodem 2 akceptuje query albo query_file (punkt wejścia Fire w cli.py:1703-1705 sprawdza już rozstrzygnięte zapytanie); --query-file PATH w hermes_cli/_parser.py:218-222 we wzajemnie wykluczającej się grupie z -q (tekst pomocy dosłownie: „Odczytaj pojedyncze zapytanie z pliku zamiast z wiersza poleceń (‘-’ odczytuje stdin). Bezpieczne dla dowolnego tekstu: powłoka niczego nie interpretuje”), odczytywane przez _read_query_file (hermes_cli/main.py:1735-1762), dostępne od tagu v2026.8.19; testy kontraktu w tests/hermes_cli/test_stream_json.py (w tym „nigdy nie może trafić do stdout w trybie stream-json”). skills.auto_load: hermes_cli/config_defaults.py:1435, domyślnie [], komentarz dosłownie: „Nazwy skill przypiętych jako w pełni załadowane w każdej nowej sesji (CLI, TUI, gateway, cron, API). Rozstrzygane jednokrotnie podczas pierwszego tworzenia promptu agenta; brakujące lub wyłączone nazwy powodują ostrzeżenie i są pomijane; HERMES_IGNORE_RULES wyłącza tę listę podobnie jak pozostały automatycznie wstrzykiwany kontekst.” decline: gateway/config.py:137-139 — komentarz dosłownie: „’pair’ wysyła w wiadomości prywatnej kod parowania, ‘ignore’ po cichu odrzuca wiadomość, ‘decline’ wysyła jedną uprzejmą odmowę, a następnie zachowuje ciszę wobec tego nadawcy przez gateway.pairing.DECLINE_DEDUPE_SECONDS (#88028)”, UNAUTHORIZED_DM_BEHAVIORS = {"pair", "ignore", "decline"}, domyślna wartość pola "pair" (:626), pusty unauthorized_dm_decline_message -> DEFAULT_UNAUTHORIZED_DM_DECLINE_MESSAGE (odpowiedź zacytowana w sekcji dotyczącej parowania); DECLINE_DEDUPE_SECONDS = 24 * 3600 oraz znaczniki czasu odmowy uwzględniające aliasy w gateway/pairing.py:37,565-576; rozstrzyganie dla poszczególnych platform oraz domyślna wartość dla Email w get_unauthorized_dm_behavior (gateway/config.py:803-809: „Email ma strukturę skrzynki odbiorczej, dlatego domyślnie używa "ignore", chyba że jego własne unauthorized_dm_behavior jawnie wybierze inne zachowanie — ustawienie globalne tego nie zmienia”). Sam klucz wraz z pair/ignore i regułą dla Email poprzedza ten okres (występował już w v2026.9.14, gateway/config.py:564,736-742; wprowadzony przez #1919 w marcu 2026); nowością jest wyłącznie decline. Efektywna wartość domyślna: _get_unauthorized_dm_behavior w gateway/authz_mixin.py:699-740, kolejność według docstringa: „jawna konfiguracja dla platformy; Email -> “ignore”; jawna globalna wartość inna niż domyślna; dm_policy adaptera (pairing -> “pair”, allowlist/disabled -> “ignore”); dowolna skonfigurowana lista dozwolonych -> “ignore” …; w przeciwnym razie “pair”” (#9337), przy czym ustawienie globalne jest uwzględniane wyłącznie wtedy, gdy != "pair". Struktura YAML: klucze poszczególnych platform w platforms.<name> są przenoszone do PlatformConfig.extra (gateway/config.py:456-460, #10206), klucz najwyższego poziomu lub zagnieżdżony gateway.unauthorized_dm_behavior jest pośredniczony przez gateway/config_loader.py:39-46,102, a hermes gateway setup zapisuje platforms.<name>.unauthorized_dm_behavior za pomocą write_platform_config_field (hermes_cli/config.py:2061-2069; hermes_cli/gateway_setup_wizard.py:182-184,219-249, opcja „Uprzejmie odmawiaj nieznanym nadawcom — jednorazowa wiadomość, a następnie cisza”). Wiadomość odmowy ma wyłącznie zasięg globalny (gateway/run_inbound.py:139). discovery_concurrency: hermes_cli/config_defaults.py:526, domyślnie 4; tools/mcp_tool_discovery.py:27-40 („mcp.discovery_concurrency nadpisuje tę wartość, 0 = bez ograniczenia (#117373)”; wartość niebędąca liczbą całkowitą lub wartość ujemna powoduje zapisanie w logu komunikatu „nie jest nieujemną liczbą całkowitą; użycie %d” i zastosowanie wartości domyślnej); semantykę limitu, a nie bramki, utrwala tests/tools/test_mcp_tool.py:2813 („ogranicza liczbę jednoczesnych połączeń — nadal współbieżnych, każdy serwer” nawiązuje połączenie). Granice session_search i ponawianie: tools/session_search_tool.py:578,621-635,708-725 — after: „Włącznie dolna granica czasu rozpoczęcia sesji. Data/data i czas w formacie ISO (np. 2026-06-01) albo względny czas trwania (7d, 24h, 2w = w ciągu ostatnich N)”, before: „Wyłącznie górna granica czasu rozpoczęcia sesji. Data/data i czas w formacie ISO (wartość zawierająca wyłącznie datę oznacza północ UTC tego dnia) albo względny czas trwania (7d = starsze niż tydzień)”; oba parametry mają „wyłącznie strukturę Discovery”, przy czym „sortowanie jest preferencją rankingu, a nie granicą”, a nowe parametry „dodano po detail”, aby zachować stabilność schematu; ponowienie z poluzowanym operatorem OR w hermes_state_search.py:1151-1163, komentarz dosłownie: „niejawny operator AND między terminami oznacza, że zapytanie wielowyrazowe sformułowane jako parafraza nie znajduje zapisanego zdania, w którym brakuje choćby JEDNEGO słowa … Gdy dokładne zapytanie i wszystkie warianty zapasowe oparte na podciągach niczego nie znajdą, wyszukiwanie jest ponawiane w indeksie unicode61 z dopasowaniem DOWOLNEGO terminu. … Uruchamiane wyłącznie po braku wyników, dzięki czemu trafienia zachowują semantykę dokładnego dopasowania; zapytania z jawnym OR/NOT, zapytania jednoterminowe oraz kierowane ścieżką CJK pozostają bez zmian”; dedykowany zestaw testów tests/hermes_state/test_search_or_relaxed_fallback.py. set-journal-mode: parser w hermes_cli/subcommands/sessions.py:177, tekst pomocy dosłownie: „Konwertuj state.db między journal_mode=WAL i DELETE w trybie offline (po zatrzymaniu wszystkich procesów korzystających z pliku)”; docstring w hermes_cli/sessions_cmd_journal_mode.py — samoobsługowa ścieżka offline dla #100896 (wcześniej „jedynym wyjściem awaryjnym było nieudokumentowane, ręczne uruchomienie PRAGMA journal_mode=DELETE”), „odmów, gdy JAKIKOLWIEK obcy proces utrzymuje plik lub plik pomocniczy (foreign_state_db_holders), przełącz tryb bez oczekiwania na zamknięcie procesów otwierających plik (_set_journal_mode_no_wait), a następnie zweryfikuj bajty 18/19 nagłówka, które SQLite zapisuje dla danego trybu”; dispatch oznaczony jako „offline: nie wolno otwierać magazynu, który jest konwertowany” (hermes_cli/sessions_cmd.py:982); hermes doctor zaleca to polecenie z --db w przypadku magazynów innych niż domyślne (hermes_cli/doctor_platform.py:148,163). Opis parsera dosłownie: „Uruchom to po zatrzymaniu gateway, dashboardu i każdego CLI: polecenie odmawia działania, gdy jakikolwiek proces utrzymuje plik, przełącza tryb i weryfikuje nagłówek pliku”; tekst pomocy dla --force: „Tylko Windows: kontynuuj bez skanowania procesów utrzymujących plik — funkcja ta nie jest tam dostępna — po samodzielnym zatrzymaniu wszystkich procesów Hermes” (hermes_cli/subcommands/sessions.py:176-189), wymuszane w _refusal (sessions_cmd_journal_mode.py:40-44: „nie można dowieść, że baza danych jest nieużywana w systemie Windows — brak skanowania procesów utrzymujących plik”). Fala zmian w Desktop: pole czcionki w apps/desktop/src/app/settings/chat-font-setting.tsx (CONFIG_PATH = 'desktop.font_family', automatyczny zapis po 550 ms) wraz z themes/chat-font.ts (propozycje: OpenDyslexic, Atkinson Hyperlegible, Lexend, Inter, IBM Plex Sans, Source Sans 3, Noto Sans, Segoe UI, SF Pro Text; pusta wartość oznacza krój z motywu), zastosowane przez themes/context.tsx:279, które nadpisuje token motywu --dt-font-sans; aktualizacje silnika w apps/desktop/src/app/settings/local-models-settings.tsx wraz z testem (przycisk „Aktualizuj silnik”, gdy zarządzane lokalne środowisko wykonawcze zgłasza update_available, uruchamiający installLocalRuntime jako raportujące postęp zadanie runtime-install; test „pozostawia nieudaną jawną aktualizację widoczną wraz z możliwością bezpośredniego ponowienia i bez przygotowanych modeli”); odinstalowywanie w centrum Plugins w apps/desktop/src/app/capabilities/plugins/plugins-tab.tsx wraz z testem („odinstalowuje za pomocą plugins.manage remove dopiero po zaakceptowaniu okna dialogowego potwierdzenia”; samodzielne desktopowe plugins za pomocą uninstallDiskPlugin w loaderze Electron). Katalogi wideo: plugins/video_gen/fal/__init__.py:43-44,99-101 — ltx-2.5 („LTX 2.5”, „Otwarty model audio-wideo firmy Lightricks. Natywne audio, do 20 s / 4K (i2v), predefiniowane ruchy kamery.”, tani poziom, lightricks/ltx-2.5/text-to-video/fast i /image-to-video/fast, proporcje obrazu 16:9/9:16, całkowite czasy trwania; :128: „fal odrzuca LTX 2.5 powyżej 10 s w rozdzielczości 1440p/2160p”) oraz kling-o3 („Kling O3 (Standard)”, „Pionierski model Kuaishou. Natywne, wieloujęciowe opowiadanie historii, opcjonalne audio, 3–15 s.”, poziom premium, czas trwania 3–15 jako ciąg znaków, i2v wyznacza proporcje obrazu na podstawie obrazu wejściowego, generate_audio jest rzeczywistym przełącznikiem); testy payloadów w tests/plugins/video_gen/test_fal_plugin.py:641,681; wiersz wykazu w website/docs/reference/toolsets-reference.md:72. Rozbudowa katalogu: plugin-catalog/ w v2026.9.14 = 9 wpisów + removed.yaml, w v2026.9.21 = 228 wpisów + removed.yaml; struktura wpisu według plugin-catalog/hermes-tailscale.yaml (nazwa, repozytorium, 40-znakowy sha, opis, opiekun, tier: community, kategoria, docs_url, możliwości); model dopuszczania i publikowania w hermes_cli/plugin_catalog.py:4-10,33 („przypięty do dokładnego, 40-znakowego SHA commita. Sama obecność w katalogu JEST” dopuszczeniem; website/scripts/extract-plugins.py publikuje /docs/api/plugin-catalog.json; LIVE_CATALOG_URL jest pobierany i zapisywany w pamięci podręcznej w ~/.hermes/cache/plugin-catalog.json); strony witryny w website/plugins/plugin-catalog-pages/index.js („/docs/plugins/ — jedna strona na wpis”, „/docs/plugins/by/ — jedna strona na opiekuna”, „scalony PR katalogu to jedyny sposób, aby strona się pojawiła, zmieniła lub zniknęła”, a witryna „ogranicza funkcjonalność, lecz nigdy nie przerywa działania”) oraz readme.js (README każdego wpisu renderowane „z PRZYPIĘTEGO commita” za pośrednictwem surowego adresu URL ze wskazanym sha, „nigdy z końcówki gałęzi”, dzięki czemu strona pokazuje dokładnie ten README, który przeczytał recenzent katalogu; renderowanie w czasie budowania według listy dozwolonych, usuwające surowy HTML, limit 512 KB, hosty ograniczone do raw.githubusercontent.com i gitlab.com; rezygnacja za pomocą readme: false); slugi autorów oraz znaczniki dodania/aktualizacji oparte na dacie committera w website/scripts/extract-plugins.py:80,142; wszystkie dziesięć społecznościowych plugins wymienionych z nazwy w wydaniu jest obecnych jako wpisy pod tym tagiem i slugami podanymi w 50. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  52. Informacje o wydaniu Hermes Agent v0.21.5, tag v2026.9.24, podana data wydania: 24 września, opublikowano 2026-09-24T10:09:38Z. Cel, dosłownie: „Wydanie poprawkowe. Ten tag zbiera około 460 PR-ów scalonych od wersji v0.21.4 w stabilne, oznaczone tagiem wydanie dla dalszych odbiorców (obrazy Docker, Hermes Cloud, wdrożenia hostingowe). Pełne, zredagowane informacje dotyczące tego okresu zostaną opublikowane wraz z wersją v0.22.0”. Statystyki zmierzone dla commita oznaczonego tagiem f97608f178 („chore: release v0.21.5 (2026.9.24)”): „1 610 commitów bez merge” w „4 828 zmienionych plikach” (+164 132 / -149 440), „460 scalonych PR-ów” i „475 zamkniętych zgłoszeń”. Kontrole w lokalnym klonie dokładnie odtwarzają wartości dotyczące commitów i różnic (git rev-list --count --no-merges v2026.9.21..v2026.9.24 = 1 610; 1 638 z merge; git diff --shortstat = 4 828 plików, +164 132 / -149 440); liczby PR-ów i zgłoszeń nie zostały niezależnie zweryfikowane. Lista elementów celowo nieudokumentowanych w treści wymienia GPT-6 „Sol/Terra/Luna” oraz Claude Opus 5.5 w katalogach Nous i OpenRouter, zatrzymywanie, uruchamianie i ponowne uruchamianie poszczególnych profili za pomocą gateway.standalone, a także falę SDK pluginów Desktop; nie wspomina natomiast o Hindsight. Ścieżka aktualizacji, dosłownie: „hermes update (instalacje z repozytorium git) albo ponowne uruchomienie jednoliniowego instalatora” oraz „obrazy są budowane na podstawie tego tagu (nousresearch/hermes-agent:v2026.9.24)”. ↩↩↩↩

  53. Elementy wersji v0.21.5 zweryfikowane w kodzie źródłowym dla tagu v2026.9.24 (wersja przewodnika 1.22, 24 września 2026). Hindsight: commit 4cbf862abe „chore(memory): remove the bundled hindsight provider (moved to the plugin catalog)” (22 września) jest przodkiem tagu; w plugins/memory/ dla tego tagu znajduje się 7 folderów dostawców (byterover, holographic, honcho, mem0, openviking, retaindb, supermemory), podczas gdy w v2026.9.21 było ich 8; commit 73c598e319 „build: drop the hermes-agent[hindsight] extra” usunął ten element z pyproject.toml. plugin-catalog/hindsight.yaml: repo: https://github.com/vectorize-io/hindsight, maintainer: vectorize-io, tier: community, requires_hermes: ">=0.21.4". Migracja: docstring w hermes_cli/memory_provider_migration.py (wiersze 1–14) wymienia 2 hooki: „hermes update” i „inicjalizację agenta”; wiersz 75 wyświetla komunikat „Dostawca pamięci „{name}” został przeniesiony poza rdzeń — zainstalowano jego plugin z katalogu”; recover_at_startup() (wiersz 110) „respektuje security.allow_lazy_installs”; funkcja jest wywoływana w hermes_cli/update_cmd_deps.py:535-536 oraz agent/agent_init.py:1315-1316. Skutki na dysku i polecenia weryfikacyjne: memory-providers.md:482-490. Multiplex: hermes_cli/gateway_multiplex_mode.py, wiersz 10: „Jawna wartość false została WYCOFANA”, a wiersze 43–44: „gateway.multiplex_profiles: false zostało wycofane i przepisane na true” (commit b936546561, 23 września). gateway.standalone: hermes_cli/profiles.py:979-982, „Profil DEFAULT nigdy nie jest standalone — sam JEST hostem — a jeśli ustawiono w nim ten klucz, ostrzeżenie jest wyświetlane raz na proces” (commit 0238c9d740). Parkowanie: commit 4c342c05de „stop, start and restart one profile under the host multiplexer”; multi-profile-gateways.md:120-138, 233-244 („tymczasowa warstwa zgodności”; „gateway.standalone ma pierwszeństwo”). Modele: hermes_cli/models_catalog_static.py, OPENROUTER_MODELS, wiersze 32 oraz 36–37 (anthropic/claude-opus-5.5, openai/gpt-6-sol, -sol-pro, gpt-6-luna, -luna-pro); lista nous w wierszu 162 jest z niej wyprowadzana. W katalogach wyboru modeli dla tego tagu nie występuje identyfikator modelu gpt-6-terra, dlatego wymieniono tu wyłącznie Sol i Luna. Dostawcy: CANONICAL_PROVIDERS w wierszu 314 zawiera po przetworzeniu 39 wpisów (liczba ustalona na podstawie AST, bez zmian); plugins/model-providers/ zawiera 38 folderów zarówno w v2026.9.21, jak i v2026.9.24, wobec 39 w v2026.9.14. Commit 998f614c7f „feat(providers): remove the keyless opencode-free tier” (18 września) usunął plugin; jego komunikat brzmi: „Bezpłatna warstwa OpenCode zwraca obecnie HTTP 403 dla anonimowego ruchu spoza klienta OpenCode”. hermes_cli/auth.py:1255-1259 zachowuje błąd dla opencode-free, free i opencode_free, który wskazuje na opencode-zen oraz opencode-go. Zgodność: COMPAT_MANIFEST.md, compat_manifest.json oraz hermes_cli/plugin_compat.py są obecne w tym tagu i w main dla aa8a33d22d (24 września). Wynik git diff v2026.9.21 v2026.9.24 -- hermes_cli/plugin_compat.py jest pusty (COMPAT_REMOVAL_DATE w wierszu 32; kontrola „Literal boolean only” w wierszach 296–303). Z pary manifestów zniknęły jedynie wpisy dotyczące usuniętego plugins.memory.hindsight (-7 / -12 wierszy). ↩↩↩↩↩↩↩↩

  54. Informacje o wydaniu Hermes Agent v0.20.3 (tag v2026.8.16.2, podana data wydania: 16 sierpnia, opublikowano 17 sierpnia 2026) oraz informacje o wydaniu v0.20.4 (tag v2026.8.18, 18 sierpnia 2026); oba pobrano za pośrednictwem GitHub API 20 sierpnia 2026 (prerelease: false). Dosłownie z v0.20.3: „migracja SDK MCP 2.x i obsługa bezstanowego protokołu z 2026-07-28, dołączony plugin Bot Mode (hermes-bots) z podstawowym protokołem współpracowników, plugin dostawcy CommandCode, wzmocnienie własności środowiska uruchomieniowego Python podprocesów (izolacja PYTHONHOME/PYTHONPATH), kontrakty środowiska uruchomieniowego Cua Driver 0.20 do obsługi komputera”. Dosłownie z v0.20.4: „prace nad szklanymi i półprzezroczystymi powierzchniami aplikacji desktopowej (matowe szkło, wybór szronienia, wstępny wybór w macOS), pasek boczny SESSIONS|BOTS z kartami oraz możliwością ukrywania i odkrywania poszczególnych botów, … skanowanie doradcze NVIDIA SkillEvaluator Tier 1 podczas instalacji skill (kontrole licencji i bezpieczeństwa)”. Oba wydania: „Pełne, zredagowane informacje dotyczące tego okresu zostaną opublikowane wraz z wersją v0.21.0”. ↩↩↩↩↩↩↩↩↩↩↩↩↩

  55. Informacje o wydaniu Hermes Agent v0.20.0, „The Herald Release”, tag v2026.8.3, 3 sierpnia 2026, wraz z tagami stabilizacyjnymi v2026.8.13 i v2026.8.16. Dosłownie z informacji o wydaniu: „Node 26 jest wymagany we wszystkich instalatorach oraz operacjach naprawy i aktualizacji”; „kanały brew oraz pip/PyPI wheel zostały wycofane (obsługiwane kanały to instalator powłoki / Docker / Nix)”; „domyślny limit iteracji 90 → 500”; „usunięto źródło claude-marketplace”. Minimalną wersję Node potwierdzono niezależnie w kodzie źródłowym instalatora w pliku scripts/install.sh — NODE_VERSION="26" oraz warunek „Node.js $(node –version) jest zbyt stary (Hermes wymaga Node >=26)” — którego komentarz nagłówkowy dokumentuje również kanoniczne polecenie jednowierszowe curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash. Należy zwrócić uwagę na rozbieżność: strona instalacji w dokumentacji nadal wskazuje Node v22 i jest nieaktualna względem obu tych źródeł. Poziomy obsługi platform pochodzą ze strony obsługi platform; źródła skill i domyślne repozytoria taps — ze strony skills; liczbę 28 platform ustalono przez wyliczenie pozycji w tabeli porównawczej na stronie komunikacji, która nie podaje oficjalnej sumy. Wszystkie materiały pobrano i zweryfikowano 16 sierpnia 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  56. Informacje o wydaniu Hermes Agent v0.19.0, „The Quicksilver Release”, tag v2026.7.20, 20 lipca 2026; najnowsze na dzień 21 lipca 2026. Statystyki od wersji v0.18.0: około 2245 commitów, około 1065 scalonych PR-ów, około 3300 zamkniętych zgłoszeń, ponad 450 współtwórców ze społeczności. Fundament wydajnościowy: skrócenie TTFT w pierwszej turze o około 80%, czas od wysłania zimnego żądania do jego przekazania zmniejszony z około 4,3 s do około 0,9 s w CLI/gateway/TUI/aplikacji desktopowej/cron (PR #59332); rozumowanie domyślnie przesyłane strumieniowo na żywo przy włączonym display.show_reasoning oraz renderowanie odpowiedzi token po tokenie (PR #59389); seria około 20 PR-ów przyspieszających aplikację desktopową, w tym 14-krotnie szybsze strumieniowe renderowanie Markdown; przyrostowe renderowanie Markdown w TUI. Instalacje za pomocą pip/Homebrew uznano za przestarzałe i wyświetlają już tylko ostrzeżenie „unsupported legacy”; planowane jest zaprzestanie publikowania w PyPI/Homebrew (PR #57225). Rozszerzalny interfejs SecretSource z dostawcami Bitwarden i 1Password, odwołaniami op://, obsługą wielu sejfów, deterministyczną kolejnością pierwszeństwa oraz informacją o pochodzeniu każdej zmiennej (PR #59498). Inteligentne zatwierdzanie jako ustawienie domyślne (niezależny recenzent LLM dla każdego oznaczonego polecenia), definiowane przez użytkownika reguły odmowy obowiązujące również w trybie YOLO, /deny <reason> (PR-y #62661, #59164, #54518); ponownie wdrożono eskalację zatwierdzenia pre_tool_call we wtyczkach (PR #60504). Rozliczenia w terminalu przez /subscription i /topup oraz karta rozliczeń w aplikacji desktopowej (PR #51639). Pliki transkrypcji subagentów aktualizowane na żywo oraz trwałe delegowanie zadań w tle (PR-y #67479, #63494); rejestr zobowiązań dotyczących dostarczenia wyników w state.db (PR #67181); max_async_children uznano za przestarzałe na rzecz ujednoliconych limitów równoczesnego delegowania (PR #56955). Routing gateway oparty na profilach, GATEWAY_MULTIPLEX_PROFILES oraz indeks routingu przeniesiony do state.db; sessions.json pozostaje opcjonalną kopią zgodności ze starszymi wersjami (PR-y #64835, #65700, #60589, #59203). Dostawcy/modele: pełnoprawna obsługa Fireworks AI na 2. pozycji selektora (PR #62593), DeepInfra, Upstage Solar, kompleksowa obsługa GPT-5.6 Sol/Terra/Luna i Pro (PR #61616), ogólna dostępność grok-4.5, kimi-k3 (wycofano kimi-k2.x), pełna integracja Claude Sonnet 5, ustawienie enabled: false dla poszczególnych dostawców oraz excluded_providers (PR #67971); poziomy wysiłku rozumowania max/ultra z ustawieniami zastępczymi dla poszczególnych modeli i pozycji MoA oraz /reasoning obowiązujące w obrębie sesji (PR-y #62650, #64458). CLI/MCP: hermes sessions export do formatów Markdown/Quarto/HTML/wyłącznie prompt/HF-trace z opcją --redact (PR #60186), /model --once (PR #67113), łączone wywołania slash-skill (PR #57987), --safe-mode, hermes config get/unset (PR #65540), rzeczywiście bezinterfejsowy hermes serve (PR #55923), nazewnictwo MCP mcp__server__tool (PR #52750). Pominięto marketingową narrację wydania; elementów wycofanych w tym okresie (zapory ruchu wychodzącego iron-proxy, skill dynamic-workflow, operacje dostawcy pamięci) celowo nie odnotowano jako dostarczonych. Weryfikacja w bieżącej sesji: 21 lipca 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  57. Tag wydania Hermes Agent v0.18.1 oraz tag wydania v0.18.2, 7–8 lipca 2026. Zbiorcze poprawki infrastruktury dla linii v0.18; zasadnicza poprawka w wersji v0.18.2 usuwa przypięcie WhatsApp Baileys do wersji 7.0.0-rc13, aby zapewnić niezawodne kompilacje Docker. Oba okresy poprawek uwzględniono zbiorczo i w pełni udokumentowano w informacjach o wydaniu v0.19.0. ↩

  58. Informacje o wydaniu Hermes Agent v0.15.1 oraz informacje o wydaniu Hermes Agent v0.15.2. v0.15.1 (29 maja 2026, 01:12 UTC) to wydana tego samego dnia poprawka awaryjna do Velocity: naprawiono pętlę ponownego ładowania dashboardu z błędem 401 w trybie loopback; Docker wymaga teraz jawnego ustawienia HERMES_DASHBOARD_INSECURE=1; samodzielne polecenia MCP (npx, npm, node) są rozpoznawane w kontenerach Docker; przywrócono etykiety źródeł i panel boczny kategorii na stronie Skills; procesy robocze Kanban reagują na SIGTERM; katalog Skills.sh powiększył się z 858 do 19 932 pozycji dzięki mapie witryny. 28 commitów, 21 scalonych PR-ów, 9 współtwórców. v0.15.2 (29 maja 2026, 13:37 UTC) to poprawka awaryjna dotycząca wyłącznie pakowania, która dołącza manifesty plugin.yaml do dystrybucji wheel i sdist, dzięki czemu instalacje z PyPI działają bez pobierania kodu źródłowego z zewnętrznego źródła. 4 współtwórców. ↩

  59. Informacje o wydaniu Hermes Agent v0.15.0 oraz strona wydań Hermes Agent. „The Velocity release”, tag v2026.5.28. Statystyki: 1302 commity, 747 scalonych PR-ów, 321 współtwórców ze społeczności. Refaktoryzacja zmniejsza run_agent.py o 76% (z 16 083 do 3821 wierszy rozdzielonych między 14 modułów). Dodano wieloagentową platformę Kanban (automatyczny podział zadań, topologia roju, ustawienia modelu dla poszczególnych zadań, zadania zaplanowane, zarządzanie worktree). Przeprojektowano session_search, uzyskując 4500-krotne przyspieszenie i usuwając zależność LLM. Ochrona przed złośliwymi promptami klasy Brainworm w trzech krytycznych punktach zabezpieczeń. Integracja z Bitwarden Secrets Manager zastępuje wiele kluczy API poszczególnych dostawców jednym tokenem inicjującym. Pakiety skill umożliwiają ładowanie wielu skills za pomocą jednego polecenia slash. Orkiestrator sesji TUI pozwala zarządzać wieloma sesjami w jednym oknie terminala. Obsługa Krea 2 (Medium/Large) oraz wtyczki FAL do generowania obrazów. Kolejna seria integracji z xAI dodaje wtyczkę wyszukiwania internetowego, OAuth upstream, wykrywanie wycofanych modeli oraz naturalne pauzy TTS w wyjściu głosowym. Wydanie poprawkowe wskazane w GitHub rozwiązuje problemy z pętlą ponownego ładowania dashboardu z błędem 401, wymaganiem jawnego ustawienia zmiennej środowiskowej HERMES_DASHBOARD_INSECURE=1 przez opcję Docker --insecure, rozpoznawaniem samodzielnych poleceń MCP (npx, npm, node) w Docker, renderowaniem strony Skills, obsługą SIGTERM przez procesy robocze Kanban, pełnym katalogiem Skills zawierającym 19 932 pozycje dzięki mapie witryny oraz niewielką partią poprawek dotyczących dostarczania plików .md, bezpieczeństwa sond gateway, redagowania adresów URL w sieci, obsługi obrazu przez proces roboczy Kanban i domyślnych ustawień obserwacji hindsight. ↩↩↩↩

  60. Informacje o wydaniu Hermes Agent v0.11.0. 23 kwietnia 2026. „The Interface release” — kompletne przepisanie interaktywnego CLI w React/Ink z backendem Python JSON-RPC (tui_gateway); rozszerzalna architektura transportu (agent/transports/); natywna obsługa AWS Bedrock przez Converse API; pięć nowych ścieżek wnioskowania (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 przez Codex OAuth; QQBot jako 17. platforma komunikacyjna z konfiguracją przez skanowanie kodu QR; rozszerzony zakres wtyczek (polecenia slash, przekazywanie wywołań narzędzi, blokowanie wykonywania, przekształcanie wyników); /steer <prompt> do korygowania działania agenta w trakcie wykonywania przez wstrzyknięcie kontekstu po następnym wywołaniu narzędzia bez naruszania pamięci podręcznej promptu; hooki powłoki dla zdarzeń cyklu życia bez wtyczek Python; tryb bezpośredniego dostarczania webhooków, który przekazuje payloady prosto do czatu na platformie; inteligentniejsze delegowanie z rolami orkiestratora, konfigurowalną głębokością tworzenia agentów i koordynacją plików; system wtyczek dashboardu, przełączanie motywu na żywo, i18n, responsywność na urządzeniach mobilnych. Statystyki od wersji v0.9.0: 1556 commitów · 761 scalonych PR-ów · 1314 zmienionych plików · 224 174 dodane wiersze · 29 współtwórców ze społeczności. Zob. także: tag wydania Hermes Agent v0.11.0 w GitHub. ↩↩↩

  61. Hermes Agent v0.10.0 Release Notes. 16 kwietnia 2026. „Wydanie Tool Gateway”. Integracja z Nous Tool Gateway dla płatnych subskrybentów Nous Portal — zarządzany dostęp do wyszukiwania internetowego Firecrawl, generowania obrazów FAL / FLUX 2 Pro, OpenAI TTS oraz automatyzacji przeglądarki Browser Use bez dodatkowych kluczy API. Możliwość włączenia osobno dla każdego narzędzia za pomocą nowego pola konfiguracyjnego use_gateway. Gdy skonfigurowane są obie opcje, środowisko uruchomieniowe preferuje gateway zamiast bezpośrednich kluczy API. Pełna integracja z hermes tools i hermes status. Zastępuje przestarzałą zmienną środowiskową HERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementacja autorstwa @jquesnelle (emozilla). CLI Hermes Agent pozostaje objęty licencją MIT i jest w pełni open source; gateway stanowi integrację z istniejącym produktem subskrypcyjnym Portal, a nie paywall dla CLI. Zobacz również: Nous Portal, aby sprawdzić ceny subskrypcji i się zarejestrować. ↩↩↩