Hermes Agent: praktyczny podręcznik referencyjny (2026)
# v0.14 Foundation dodaje SuperGrok OAuth, hermes proxy, x_search, instalację z PyPI, 22 platformy komunikacyjne, /handoff, diagnostykę zapisu LSP, video_generate, computer_use, natywną betę dla Windows oraz lżejsze instalacje leniwe.
TL;DR: Hermes Agent to open-source’owy, samodoskonalący się agent AI od Nous Research. Działa jako CLI oraz jako wieloplatformowy gateway komunikacyjny, przechowuje trwałą tożsamość i pamięć trwałą na dysku, agreguje skill, które ulepszają się wraz z użyciem, i 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 albo z własnym, samodzielnie hostowanym endpointem.1219 Od wersji v0.14.0 (16 maja 2026) Hermes dodaje OAuth SuperGrok z kontekstem grok-4.3 1M, lokalny proxy zgodny z OpenAI dla dostawców OAuth (
hermes proxy), pełnoprawnex_search, obsługę instalacji z PyPI, leniwe instalowanie zależności, 22 platformy komunikacyjne z LINE i SimpleX Chat,/handoff, semantyczną diagnostykę LSP po zapisach, ujednoliconevideo_generate,computer_useprzez cua-driver dla dostawców innych niż Anthropic, natywną betę Windows oraz zamknięcie 12 zgłoszeń P0 i 50 zgłoszeń P1.19 Najtrudniejszą częścią dla większości nowych użytkowników jest uwierzytelnianie dostawcy: Hermes obsługuje około 20 pełnoprawnych dostawców oraz niestandardowe endpointy, a także trzy odrębne ścieżki uwierzytelniania: klucz API w.env, OAuth przezhermes modelalbo niestandardowy endpoint wconfig.yaml. Model uwierzytelniania warto poznać najpierw — wszystko inne zależy od tego, który dostawca zostanie rozpoznany.
Hermes Agent działa jako pełne środowisko uruchomieniowe agenta, a nie nakładka na czat. Odczytuje system plików, wykonuje polecenia w sandboxowanych backendach, pobiera dane z internetu, uruchamia subagentów, wykonuje zaplanowane zadania cron, komunikuje się z Telegram/Discord/Slack/WhatsApp/Signal/Email z poziomu jednego procesu gateway i tworzy własne skill na podstawie doświadczenia.1 CLI to terminalowy interfejs użytkownika zbudowany na pętli konwersacji w run_agent.py; gateway to długo działający proces, który kieruje wiadomości z platform komunikacyjnych przez tę samą pętlę konwersacji.3
Różnica między okazjonalnym a eksperckim użyciem Hermes sprowadza się do pięciu systemów. Opanowanie ich sprawia, że Hermes staje się mnożnikiem możliwości:
- Rozpoznawanie dostawcy: jak przepływy uwierzytelniania mapują się na wywołania API
- Hierarchia konfiguracji:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - System narzędzi i toolset: co agent może robić, z ograniczeniami zależnymi od platformy
- System skill: proceduralna pamięć, którą agent tworzy i rozwija
- Gateway + cron + profile: uruchamianie Hermes tam, gdzie faktycznie Pan/Pani pracuje, a nie tylko tam, gdzie akurat się znajduje
Najważniejsze wnioski
- Uwierzytelnianie dostawcy ma trzy ścieżki, nie jedną. Klucz API w
.env, OAuth przezhermes model/hermes authalbo niestandardowy endpoint wconfig.yaml. Należy wybrać ścieżkę zgodną z dostawcą, a nie tę, która wydaje się znajoma. - Zmiana dostawcy to jedno polecenie.
hermes modelinteraktywnie prowadzi przez każdego obsługiwanego dostawcę, w tym logowania OAuth, a/model provider:modelprzełącza model w trakcie sesji bez utraty historii.2 - Dwa pliki są edytowalną przez użytkownika powierzchnią konfiguracji.
~/.hermes/config.yamlprzechowuje ustawienia, a~/.hermes/.envprzechowuje sekrety.auth.json,SOUL.md,MEMORY.mdiskills/są zarządzane bezpośrednio przez Hermes —SOUL.mdmożna edytować ręcznie, ale resztę modyfikuje sam agent.4 - Hermes jest następcą OpenClaw. Przy migracji
hermes claw migrateautomatycznie importuje ponad 30 kategorii stanu.5 - Jakość usługi zależy od modelu pomocniczego. Wizja, podsumowywanie stron, kompresja i zapis pamięci korzystają z osobnego pomocniczego LLM. Domyślnie jest to Gemini Flash przez automatyczne wykrywanie (OpenRouter → Nous → Codex) — jeśli żaden z nich nie jest skonfigurowany, funkcje te degradują się po cichu, dopóki sloty pomocnicze nie zostaną skierowane na głównego dostawcę.4
Co zmienia v0.14
v0.14.0 mniej opiera się na jednej sztandarowej funkcji, a bardziej na zmniejszeniu tarcia podczas konfiguracji i rozszerzeniu miejsc, w których Hermes może działać.19 Główne zmiany operacyjne:
- Instalacja i start są lżejsze.
pip install hermes-agentdziała z PyPI, ciężkie adaptery instalują się leniwie przy pierwszym użyciu, a ścieżka uruchamiania odracza wystarczająco dużo pracy, aby skrócić zimny start o około 19 sekund. - Subskrypcje mogą stać się lokalnymi endpointami API.
hermes proxyprzekształca dostawców opartych na OAuth, takich jak Claude Pro, ChatGPT Pro i SuperGrok, w lokalny endpoint zgodny z OpenAI dla narzędzi takich jak Codex, Aider, Cline i Continue. - Zasięg gateway się rozszerza. LINE i SimpleX Chat zwiększają liczbę platform do 22, Microsoft Teams jest połączony end-to-end, uzupełnianie historii Discord jest domyślnie włączone, a prompt
clarifyw Telegram/Discord korzysta teraz z natywnych przycisków. - Weryfikacja podczas zapisu jest lepsza. Po edycjach Hermes może pokazywać podsumowania zmian plików dla każdej tury oraz semantyczną diagnostykę language-server przed następną turą, co przybliża go do pracy agenta opartej na dowodach.
- Narzędzia desktopowe i medialne są szersze.
computer_usedziała przez cua-driver dla dostawców innych niż Anthropic,video_generatejest ujednolicone za pluggable backendami, avision_analyzewysyła surowe piksele do modeli, które faktycznie potrafią widzieć.
Każda sekcja poniżej opiera się na dokumentacji upstream pod adresem hermes-agent.nousresearch.com/docs oraz drzewie źródłowym w github.com/NousResearch/hermes-agent. Każde twierdzenie faktograficzne ma przypis wskazujący konkretną stronę upstream, z której pochodzi.
Wybór ścieżki
| Czego potrzeba | Gdzie przejść |
|---|---|
| Zainstalować Hermes | Instalacja — instalator jednoliniowy albo kroki ręczne |
| Zalogować się u dostawcy | Uwierzytelnianie i dostawcy — sekcja, po którą Pan/Pani tu przyszedł/przyszła |
| Zmienić modele w trakcie sesji | Polecenie hermes auth oraz Niestandardowe i samodzielnie hostowane endpointy dla składni /model |
| Uruchomić lokalny LLM | Niestandardowe i samodzielnie hostowane endpointy — Ollama, vLLM, SGLang, llama.cpp, LM Studio |
| Podłączyć platformy komunikacyjne | Messaging Gateway — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat (łącznie 22) |
| Napisać lub zainstalować skill | System skill — stopniowe ujawnianie + skill hub |
| Głębokie odniesienie dla każdego polecenia CLI | Proszę czytać dalej — i linkować bezpośrednio do poleceń 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), messaging gateway (gateway/run.py), adapter ACP do integracji z edytorem, runner wsadowy oraz serwer API.3 Wszystkie ostatecznie wywołują AIAgent.run_conversation() w run_agent.py, który:
- Buduje prompt systemowy z
SOUL.md,MEMORY.md,USER.md, skills, plików kontekstu oraz wskazówek dla narzędzi za pomocąprompt_builder.py3 - Ustala providera uruchomieniowego przez
runtime_provider.py— to etap, który wybiera auth, bazowy URL oraz tryb API3 - Wywołuje providera przy użyciu jednego z trzech trybów API:
chat_completions,codex_responsesalboanthropic_messages3 - Przekazuje wszystkie zwrócone wywołania narzędzi przez
model_tools.pyoraz centralny rejestr narzędzi (tools/registry.py)3 - Powtarza pętlę, aż model wygeneruje odpowiedź końcową, po czym zapisuje sesję w SQLite z FTS53
Zrozumienie tej pętli jest ważne, ponieważ każda funkcja — personalities, memory, skills, compression, fallback — podpina się pod jeden z tych etapów. Gdy podczas czytania klucza konfiguracji pojawia się pytanie, do czego służy, odpowiedź zwykle brzmi: „to pokrętło na etapie 1, 2, 3 albo 4 powyższej pętli”.
Rdzeń niezależny od platformy. Jedna klasa AIAgent obsługuje CLI, gateway, ACP, batch oraz serwer API. Różnice platformowe znajdują się w punkcie wejścia, a nie w samym agencie.3 Dlatego te same slash commands działają w terminalu i w Telegram — są obsługiwane ze współdzielonego COMMAND_REGISTRY w hermes_cli/commands.py.6
Struktura katalogów jest systemem. Hermes przechowuje wszystko w ~/.hermes/ (albo w $HERMES_HOME dla profili niestandardowych):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 ma określoną rolę; żadne z nich się nie nakładają. Jeśli trzeba znaleźć odpowiedź na pytanie „gdzie Hermes przechowuje X”, będzie to jedno z tych miejsc.
Instalacja
Jednowierszowy instalator pozostaje zalecaną, prowadzoną ścieżką dla większości użytkowników. Obsługuje Python, uv, Node.js, ripgrep, ffmpeg, sklonowanie repozytorium, środowisko wirtualne oraz globalne polecenie hermes.7 v0.14.0 dostarcza też prawdziwy pakiet PyPI, więc pip install hermes-agent jest teraz realną opcją bezpośredniej instalacji, jeśli środowisko Python jest już pod kontrolą użytkownika.19
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
pip install hermes-agent
hermes
Działa na Linux, macOS, WSL2 oraz Android/Termux (instalator automatycznie wykrywa Termux i przełącza się na przetestowany pakiet dla Androida).7 v0.14.0 dodaje natywną obsługę Windows we wczesnej wersji beta przez instalator PowerShell, ale WSL2 pozostaje bezpieczniejszą rekomendacją do zastosowań produkcyjnych, dopóki ścieżka Windows nie dojrzeje.19
Po zakończeniu:
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
Jedynym wymaganiem wstępnym jest git. Instalator automatycznie przygotowuje Python 3.11 przez uv (bez sudo), Node.js v22 (do automatyzacji przeglądarki i mostka WhatsApp), ripgrep oraz ffmpeg.7
Weryfikacja instalacji
hermes version # Check version
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 informuje, czego brakuje i jak to naprawić.7 hermes dump to polecenie diagnostyczne, które warto wkleić do zgłoszenia GitHub albo wątku na Discord, prosząc o pomoc — jest to zwykłe tekstowe podsumowanie całej konfiguracji z usuniętymi sekretami.8
Instalacja ręczna
Jeśli potrzebna jest pełna kontrola — niestandardowa wersja Python, konkretne extras, integracja z Nix/NixOS — ręczny proces jest udokumentowany krok po kroku w upstreamowym przewodniku instalacji.7 Kluczowe opcjonalne extras, które można łączyć z uv pip install -e ".[<extras>]":
| Extra | Co dodaje |
|---|---|
all |
Wszystko poniżej |
messaging |
Telegram i Discord gateway |
cron |
Parsowanie wyrażeń cron |
cli |
Terminalowe menu UI dla kreatora konfiguracji |
modal |
Backend wykonywania w chmurze Modal |
voice |
Wejście mikrofonowe CLI + odtwarzanie audio |
tts-premium |
Głosy premium ElevenLabs |
honcho |
AI-native memory (integracja Honcho) |
mcp |
Obsługa Model Context Protocol |
homeassistant |
Integracja Home Assistant |
acp |
Obsługa integracji z edytorem ACP |
slack |
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 Termux jest inne — używa pip z plikiem constraints, a nie uv pip:
python -m pip install -e ".[termux]" -c constraints-termux.txt
Dzieje się tak, ponieważ .[all] na Androidzie pobiera faster-whisper przez extra voice, który zależy od kół ctranslate2 niepublikowanych dla Androida.7
Uwierzytelnianie i dostawcy
Hermes obsługuje około 19 pełnoprawnych dostawców oraz niestandardowe punkty końcowe, a także 3 odrębne ścieżki uwierzytelniania. Poniżej znajduje się pełny zakres uwierzytelniania, uporządkowany według ścieżek, aby łatwo można było znaleźć wariant pasujący do posiadanej konfiguracji.
3 ścieżki uwierzytelniania
Każdy dostawca w Hermes należy do jednego z 3 wzorców uwierzytelniania:
Ścieżka 1 — klucz API w .env. Należy umieścić klucz 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 oraz większość dostawców zewnętrznych.2
Ścieżka 2 — OAuth przez hermes model lub hermes auth. Uruchamia przepływ kodu urządzenia, otwiera przeglądarkę, zapisuje poświadczenia w ~/.hermes/auth.json (i może importować istniejące poświadczenia 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. Dla dowolnego punktu końcowego API zgodnego z OpenAI — Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM proxy, Together AI, Groq, Azure OpenAI lub własny serwer self-hosted. Konfigurowane jednokrotnie przez hermes model → Custom endpoint, a następnie zapisywane w config.yaml.2
Pełna macierz dostawców
To kompletna lista pełnoprawnych dostawców wraz z dokładnym przepływem konfiguracji dla każdego z nich.2
| Provider | Ścieżka uwierzytelniania | Konfiguracja |
|---|---|---|
| Nous Portal | OAuth | hermes model (logowanie OAuth, oparte na subskrypcji) |
| OpenAI Codex | OAuth | hermes model (kod urządzenia ChatGPT, używa 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 + copilot login) |
| Anthropic | OAuth lub klucz API | hermes model (preferuje poświadczenia 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 (provider: ai-gateway) |
| z.ai / GLM (ZhipuAI) | Klucz API | GLM_API_KEY w ~/.hermes/.env (provider: zai) |
| Kimi / Moonshot | Klucz API | KIMI_API_KEY w ~/.hermes/.env (provider: kimi-coding) |
| MiniMax (global) | Klucz API | MINIMAX_API_KEY w ~/.hermes/.env (provider: minimax) |
| MiniMax China | Klucz API | MINIMAX_CN_API_KEY w ~/.hermes/.env (provider: minimax-cn) |
| Alibaba Cloud (Qwen) | Klucz API | DASHSCOPE_API_KEY w ~/.hermes/.env (provider: alibaba, aliasy: dashscope, qwen) |
| Kilo Code | Klucz API | KILOCODE_API_KEY w ~/.hermes/.env (provider: kilocode) |
| OpenCode Zen | Klucz API | OPENCODE_ZEN_API_KEY w ~/.hermes/.env (provider: opencode-zen) |
| OpenCode Go | Klucz API | OPENCODE_GO_API_KEY w ~/.hermes/.env (provider: opencode-go) |
| DeepSeek | Klucz API | DEEPSEEK_API_KEY w ~/.hermes/.env (provider: deepseek) |
| Hugging Face | Klucz API | HF_TOKEN w ~/.hermes/.env (provider: huggingface, alias: hf) |
| Google / Gemini | Klucz API | GOOGLE_API_KEY lub GEMINI_API_KEY w ~/.hermes/.env (provider: gemini) |
| xAI (Grok) | Natywny dostawca / SuperGrok OAuth | Pełnoprawny dostawca z bezpośrednim dostępem API i katalogiem modeli (v0.9.0+). v0.14.0 dodaje SuperGrok OAuth i zwiększa grok-4.3 do okna kontekstu 1M dla uprawnionych kont.21619 |
| xAI Custom Voices | Klucz API | Dostawca TTS z klonowaniem głosu. Nowość w v0.13.0; należy skonfigurować w sekcji tts: w config.yaml i podać klucz xAI w .env.18 |
| Xiaomi MiMo | Natywny dostawca | Pełnoprawny dostawca z kreatorem konfiguracji i katalogiem modeli. Darmowy 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 Gemini z automatycznie wykrywanymi długościami kontekstu przez rejestr models.dev (v0.8.0+).15 |
| Qwen Cloud | OAuth | Dostawca OAuth z obsługą żądań portalu (v0.8.0+). W v0.14.0 nazwę dostawcy zmieniono z Alibaba Cloud na Qwen Cloud; istniejące klucze konfiguracji nadal działają.1519 |
| Custom endpoint | config.yaml | hermes model → “Custom endpoint” (zapisane w config.yaml) |
Anthropic: 3 metody uwierzytelniania
Anthropic ma własną sekcję, ponieważ Hermes obsługuje 3 odrębne ścieżki dostępu do Claude, a wybór właściwej ma znaczenie. Z dokumentacji upstream: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 przez hermes model Hermes preferuje własny magazyn poświadczeń Claude Code zamiast kopiowania tokenu do ~/.hermes/.env. Dzięki temu odświeżalne poświadczenia Claude pozostają odświeżalne.2 Jeśli Claude Code jest już używane na tej samej maszynie, jest to najczystsza ścieżka.
Aby trwale przypiąć Anthropic w config.yaml:
model:
provider: "anthropic"
default: "claude-sonnet-4-6"
--provider claude oraz --provider claude-code działają również jako skróty dla --provider anthropic.2
GitHub Copilot: 2 tryby
Copilot jest obsługiwany w 2 trybach: bezpośredni GitHub Copilot API (zalecany) oraz Copilot ACP (który uruchamia lokalny Copilot CLI 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
Uwierzytelnianie jest sprawdzane w tej kolejności, zgodnie z dokumentacją upstream:2
1. Zmienna środowiskowa COPILOT_GITHUB_TOKEN
2. Zmienna środowiskowa GH_TOKEN
3. Zmienna środowiskowa GITHUB_TOKEN
4. Awaryjnie CLI gh auth token
5. Logowanie kodem urządzenia OAuth przez hermes model
Typ tokenu ma znaczenie. Copilot API nie obsługuje klasycznych Personal Access Tokens (ghp_*). Obsługiwane typy to tokeny OAuth (gho_*), fine-grained PAT (github_pat_* z uprawnieniem Copilot Requests) oraz tokeny GitHub App (ghu_*). Jeśli gh auth token zwraca token ghp_*, należy użyć hermes model, aby uwierzytelnić się przez OAuth.2
Chińscy dostawcy AI (pełnoprawna obsługa)
Hermes ma wbudowaną obsługę z.ai/GLM, Kimi/Moonshot, MiniMax (punkty końcowe globalne i chińskie) oraz Alibaba Cloud z dedykowanymi identyfikatorami dostawcó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ć zmiennymi środowiskowymi GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL lub DASHSCOPE_BASE_URL.2
Z.AI automatycznie wykrywa punkt końcowy. Podczas używania dostawcy z.ai/GLM Hermes sprawdza wiele punktów końcowych (globalny, chiński, warianty coding), aby znaleźć taki, który akceptuje klucz API. Działający punkt końcowy jest automatycznie zapisywany w pamięci podręcznej — w przypadku większości użytkowników GLM_BASE_URL nie jest potrzebne.2
xAI (Grok) automatycznie włącza buforowanie promptów. Gdy bazowy adres URL zawiera x.ai, Hermes wysyła nagłówek x-grok-conv-id z każdym żądaniem, aby kierować je na ten sam serwer w ramach sesji rozmowy, ponownie wykorzystując buforowane prompty systemowe i historię.2 Działa automatycznie; konfiguracja nie jest potrzebna.
Polecenie hermes auth
hermes auth to polecenie do zarządzania poświadczeniami dla pul i poświadczeń 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ń pozwalają rotować wiele kluczy API lub tokenów OAuth dla tego samego dostawcy — przydatne do rozkładania limitów szybkości na wiele kluczy bez zmian w kodzie.6 Starsze polecenia hermes login / hermes logout zostały usunięte; zamiast nich należy używać hermes auth.6
Niestandardowe i self-hosted punkty końcowe
Hermes działa z dowolnym punktem końcowym API zgodnym z OpenAI. Jeśli serwer implementuje /v1/chat/completions, można skierować na niego Hermes.2
Konfiguracja interaktywna (zalecana):
hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name
Ręczny config.yaml:
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
Oba podejścia zapisują konfigurację w config.yaml, który jest jedynym źródłem prawdy dla modelu głównego, dostawcy i bazowego adresu URL.2 Starsze zmienne środowiskowe OPENAI_BASE_URL i LLM_MODEL nie są już odczytywane na potrzeby konfiguracji modelu głównego — należy użyć hermes model albo bezpośrednio edytować config.yaml.2 (OPENAI_BASE_URL + OPENAI_API_KEY nadal są honorowane jako fallback dla pomocniczej ścieżki routingu provider: "main", więc nie należy usuwać ich pochopnie, jeśli są tam używane).4
Przełączanie niestandardowych punktów końcowych 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 (samo, bez nazwy modelu) odpytuje API /v1/models punktu końcowego i automatycznie wybiera model, jeśli załadowany jest dokładnie 1 — przydatne dla lokalnych serwerów uruchamiających pojedynczy model.2
Lokalne serwery LLM (szablony konfiguracji)
Dokumentacja upstream zawiera pełne przewodniki konfiguracji dla Ollama, vLLM, SGLang, llama.cpp oraz LM Studio. Poniżej znajdują się kluczowe polecenia, które faktycznie trzeba uruchomić. Każde ma utworzyć działający punkt końcowy, na który Hermes może wskazywać.2
Ollama — najprostsza lokalna ścieżka, bez 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
Krytyczny haczyk Ollama: Ollama domyślnie używa bardzo niskich długości kontekstu (4,096 tokenów poniżej 24GB VRAM). Trzeba je zwiększyć przez OLLAMA_CONTEXT_LENGTH albo Modelfile — zgodny z OpenAI API nie przyjmuje długości kontekstu od klienta, więc Hermes nie może ustawić jej za użytkownika.2 Do użytku agentowego należy ustawić co najmniej 16k–32k.
vLLM — wysokowydajne serwowanie 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 --enable-auto-tool-choice oraz --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 wrócą jako zwykły tekst.2
SGLang — szybkie serwowanie z RadixAttention do ponownego użycia cache 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
Haczyk SGLang: domyślne max_tokens wynosi 128. Należy ustawić --default-max-tokens na serwerze albo skonfigurować model.max_tokens w config.yaml, jeśli odpowiedzi są ucinane.2
llama.cpp / llama-server — CPU i Apple Silicon Metal:
./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
--jinja jest wymagane do wywoływania narzędzi. Bez tego llama-server całkowicie ignoruje parametr tools, a model próbuje wywoływać narzędzia, wpisując JSON w tekście odpowiedzi — czego Hermes nie może sparsować jako rzeczywistych wywołań narzędzi.2
LM Studio — aplikacja desktopowa z GUI:
Należy uruchomić serwer z aplikacji LM Studio (karta Developer → Start Server) albo przez CLI: lms server start (uruchamia na porcie 1234) i lms load qwen2.5-coder --context-length 32768.2 Następnie należy wskazać hermes model na http://localhost:1234/v1.
Krytyczny haczyk LM Studio: LM Studio odczytuje długość kontekstu z metadanych modelu, ale wiele modeli GGUF zgłasza domyślnie 2048 lub 4096. Zawsze należy jawnie ustawić długość kontekstu w ustawieniach modelu LM Studio — kliknąć ikonę koła zębatego obok selektora modelu, ustawić “Context Length” na co najmniej 16384 (najlepiej 32768) i ponownie załadować model.2
Nazwani dostawcy niestandardowi
Jeśli pracuje się z wieloma niestandardowymi punktami końcowymi (na przykład lokalnym serwerem deweloperskim i zdalnym serwerem GPU), należy zdefiniować je jako nazwanych dostawców niestandardowych w config.yaml: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ą potrójnej składni:
/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4
Nazwanych dostawców niestandardowych można również wybierać z interaktywnego menu hermes model.2
Wtyczkowa architektura dostawców (v0.13.0+)
v0.13.0 dostarcza ABC ProviderProfile oraz katalog plugins/model-providers/, aby zewnętrzni dostawcy inferencji mogli być dodawani bez modyfikacji rdzenia.18 Jeśli dostawca obsługuje tryb API zgodny z OpenAI, Anthropic albo Codex, można zaimplementować podklasę ProviderProfile, która deklaruje ścieżkę uwierzytelniania, bazowy adres URL, katalog modeli i nagłówki buforowania; Hermes rozwiązuje ją przez tę samą ścieżkę runtime_provider.py, której używają wbudowani dostawcy. To właśnie zmiana architektoniczna stojąca za rozszerzeniem dostawców w v0.13.0: zamiast edytować kod rdzenia w celu dodania dostawcy, dostarcza się plugin.
Lokalny proxy zgodny z OpenAI (v0.14.0+)
hermes proxy udostępnia lokalny punkt końcowy zgodny z OpenAI, oparty na dostawcy OAuth, do którego Hermes jest już zalogowany — Claude Pro, ChatGPT Pro, SuperGrok lub innym zgodnym skonfigurowanym dostawcy.19 Oznacza to, że narzędzia oczekujące API w stylu OpenAI, w tym Codex CLI, Aider, Cline, Continue lub niestandardowe skrypty, mogą ponownie użyć uwierzytelniania Hermes opartego na subskrypcji bez osobnego klucza API. Proxy należy traktować jako lokalną infrastrukturę deweloperską: wiązać je świadomie, nie wystawiać szeroko i pamiętać o warunkach specyficznych dla dostawcy.
Wykrywanie długości kontekstu
Zgodnie z dokumentacją upstream 2 ustawienia są stale mylone: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 albo 200,000 dla Sonnet 4.6). Hermes używa tego do decyzji, kiedy kompresować historię.model.max_tokens— limit wyjścia (maksymalna liczba tokenów, które model może wygenerować w jednej odpowiedzi). Nie jest związany z długością historii.
Należy ustawić context_length, gdy automatyczne wykrywanie błędnie rozpozna rozmiar okna:
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
Hermes używa wieloźródłowego łańcucha rozstrzygania do wykrywania okien kontekstu: nadpisanie w konfiguracji → niestandardowy dostawca per model → trwały cache → endpoint /models → Anthropic /v1/models → OpenRouter API → Nous Portal → models.dev (utrzymywany przez społeczność rejestr dla ponad 3800 modeli) → domyślne fallbacki (128K).2 System jest świadomy dostawcy, więc ten sam model może mieć różne limity kontekstu zależnie od tego, kto go serwuje (np. claude-opus-4.6 ma 1M przy bezpośrednim Anthropic, ale 128K w GitHub Copilot).2
Rotacja dostawców i fallback
Pule poświadczeń. Gdy dostępnych jest wiele kluczy API dla tego samego dostawcy, należy skonfigurować strategię rotacji przez hermes auth. W ten sposób rozkłada się limity szybkości na wiele kluczy.6
Model fallback. Należy skonfigurować zapasowy provider:model, na który Hermes automatycznie przełączy się, gdy model główny zawiedzie (limity szybkości, błędy serwera, niepowodzenia 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
Fallback zamienia model i dostawcę w trakcie sesji bez utraty rozmowy. Uruchamia się najwyżej raz na sesję.2 Obsługiwani dostawcy dla fallbacku: 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 używa lekkich modeli „pomocniczych” do zadań pobocznych: analizy obrazów, streszczania stron internetowych, analizy zrzutów ekranu z przeglądarki, klasyfikacji zatwierdzania niebezpiecznych poleceń, kompresji kontekstu, streszczania wyszukiwania w sesji, dopasowywania skill, wysyłania narzędzi MCP oraz opróżniania pamięci.4 Domyślnie używają one Gemini Flash przez automatyczne wykrywanie (OpenRouter → Nous → Codex).
Można skonfigurować, którego modelu i dostawcy używa każde zadanie pomocnicze. Każdy slot pomocniczy używa tych samych 3 pokręteł: provider, model, base_url.4
auxiliary:
vision:
provider: "auto" # "auto", "openrouter", "nous", "codex", "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: 30
download_timeout: 30
web_extract:
provider: "auto"
model: ""
timeout: 360
approval:
provider: "auto"
model: ""
timeout: 30
compression:
timeout: 120
session_search: { provider: "auto", model: "", timeout: 30 }
skills_hub: { provider: "auto", model: "", timeout: 30 }
mcp: { provider: "auto", model: "", timeout: 30 }
flush_memories:{ provider: "auto", model: "", timeout: 30 }
Opcja dostawcy "main" oznacza „użyj tego samego dostawcy, którego używa mój główny agent” — jest poprawna wyłącznie w konfiguracjach auxiliary:, compression: i fallback_model:. Nie jest poprawna dla ustawienia najwyższego poziomu model.provider. Jeśli jako model główny używany jest niestandardowy punkt końcowy zgodny z OpenAI, w sekcji model: należy ustawić provider: custom.4
Dlaczego to ma znaczenie: jeśli skonfigurowano tylko Anthropic OAuth (bez klucza OpenRouter), analiza wizualna, streszczanie stron i kompresja ulegną degradacji albo przestaną działać, ponieważ domyślny łańcuch fallbacków pomocniczych najpierw próbuje OpenRouter. Należy dodać OPENROUTER_API_KEY dla zadań pomocniczych albo przekonfigurować każdy slot pomocniczy tak, aby używał głównego dostawcy:
auxiliary:
vision:
provider: "main"
web_extract:
provider: "main"
To najczęstszy haczyk typu „moje funkcje po cichu nie działają” u nowych użytkowników Hermes.
System konfiguracji
Hermes ma warstwowy system konfiguracji. Zrozumienie kolejności pierwszeństwa jest kluczowe, ponieważ wyższe warstwy zastępują niższe, a jedną z warstw jest globalny rejestr providerów, którego nie widać w config.yaml.
Układ plików konfiguracyjnych
Zgodnie z dokumentacją upstream, na konfigurację Hermes składają się 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 ustawione są oba, config.yaml ma pierwszeństwo dla ustawień niebędących sekretami.4 Zasada jest następująca:
- 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 config.yaml przy użyciu 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 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 to polecenia, które należy uruchamiać po każdym hermes update — wykrywają nowo dodane opcje konfiguracji, których dany plik jeszcze nie zawiera.6
Pierwszeństwo konfiguracji
Hermes wczytuje konfigurację z kilku źródeł. Gdy wiele źródeł ustawia tę samą wartość, wygrywa źródło o wyższym priorytecie:4
- Argumenty CLI —
hermes chat --model anthropic/claude-sonnet-4(nadpisanie dla pojedynczego wywołania) - Zmienne środowiskowe — stosowane przy starcie procesu
config.yaml— główny plik ustawień.env— wyłącznie sekrety- Wbudowane wartości domyślne — stosowane, gdy żadna inna warstwa nie ustawia wartości
Flagi CLI zawsze wygrywają w ramach tego pojedynczego wywołania. config.yaml pozostaje długoterminowym źródłem prawdy.
Lokalizacja (v0.13.0+)
W v0.13.0 dodano 7 lokalizacji dla komunikatów CLI i gateway: chiński (uproszczony), japoński, niemiecki, hiszpański, francuski, ukraiński i turecki.18 v0.14.0 lokalizuje wszystkie polecenia gateway oraz web dashboard, dodaje 8 kolejnych lokalizacji i zwiększa łączną liczbę do 16.19 Dokumentacja jest obecnie zlokalizowana tylko w zh-Hans. Lokalizacja jest ustalana na podstawie zmiennych środowiskowych LC_ALL / LANG albo jawnego klucza locale: w config.yaml. Angielski pozostaje językiem domyślnym i źródłem prawdy dla każdego ciągu, którego tłumaczenie jeszcze nie obejmuje.
Profile — wiele izolowanych instancji Hermes
Profile zapewniają wiele izolowanych instancji Hermes, z których każda ma własną konfigurację, sesje, skills, pamięć i PID gateway. W ten sposób można uruchomić „służbowy Hermes” i „prywatny Hermes” obok siebie, bez wzajemnego dostępu do swojego stanu.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łasne HERMES_HOME (domyślnie ~/.hermes-<name>/), dzięki czemu wiele profili może uruchamiać gateway równolegle bez wzajemnego kolidowania ze sobą.63
Polecenia CLI
Ta sekcja stanowi praktyczne kompendium poleceń najwyższego poziomu CLI. Autorytatywne źródło oparte na kodzie źródłowym znajduje się w oficjalnej dokumentacji CLI Commands Reference.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> |
Wybór profilu Hermes |
--resume <session>, -r <session> |
Wznowienie sesji na podstawie ID lub tytułu |
--continue [name], -c [name] |
Wznowienie ostatniej sesji (lub dopasowanie po tytule) |
--worktree, -w |
Uruchomienie w izolowanym worktree git |
--yolo |
Pominięcie monitów zatwierdzania niebezpiecznych poleceń |
--pass-session-id |
Dołączenie ID sesji do promptu systemowego agenta |
Polecenia najwyższego poziomu
| Polecenie | Zastosowanie |
|---|---|
hermes chat |
Interaktywny czat lub zapytanie jednorazowe |
hermes model |
Interaktywny wybór domyślnego dostawcy i modelu |
hermes gateway |
Uruchamianie i zarządzanie bramą komunikacyjną |
hermes setup |
Interaktywny kreator konfiguracji |
hermes auth |
Zarządzanie poświadczeniami — dodawanie, listowanie, usuwanie, resetowanie, ustawianie strategii |
hermes status |
Wyświetlanie statusu agenta, uwierzytelniania i platform |
hermes cron |
Inspekcja i uruchamianie harmonogramu cron |
hermes webhook |
Zarządzanie dynamicznymi subskrypcjami webhook |
hermes doctor |
Diagnostyka konfiguracji i zależności |
hermes dump |
Podsumowanie konfiguracji do skopiowania — przydatne przy wsparciu i debugowaniu |
hermes logs |
Przeglądanie, śledzenie i filtrowanie logów agenta/bramy/błędów |
hermes config |
Wyświetlanie, edycja, migracja i odpytywanie konfiguracji |
hermes pairing |
Zatwierdzanie lub odwoływanie kodów parowania komunikatorów |
hermes skills |
Przeglądanie, instalacja, publikacja i audyt umiejętności |
hermes honcho |
Zarządzanie pamięcią międzysesyjną Honcho |
hermes memory |
Konfiguracja 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 wtyczkami |
hermes tools |
Konfiguracja dostępnych narzędzi dla poszczególnych platform |
hermes sessions |
Przeglądanie, eksport, czyszczenie i usuwanie sesji |
hermes insights |
Wyświetlanie analityki tokenów, kosztów i aktywności |
hermes claw |
Narzędzia migracji OpenClaw |
hermes profile |
Zarządzanie profilami (wiele izolowanych instancji) |
hermes completion |
Generowanie skryptów autouzupełniania powłoki (bash/zsh) |
hermes whatsapp |
Konfiguracja i parowanie mostu WhatsApp |
hermes version |
Wyświetlanie informacji o wersji |
hermes update |
Pobranie najnowszego kodu i ponowna instalacja zależności |
hermes uninstall |
Usunięcie Hermes z systemu (--full usuwa również konfigurację i dane) |
hermes backup |
Pełna kopia zapasowa konfiguracji, sesji, umiejętności i pamięci (v0.9.0+)16 |
hermes import |
Przywracanie z archiwum kopii zapasowej — migracja między maszynami lub cofnięcie zmian (v0.9.0+)16 |
hermes dashboard |
Uruchomienie lokalnego panelu webowego do zarządzania agentem w przeglądarce (v0.9.0+)16 |
hermes debug share |
Przesłanie pełnego raportu diagnostycznego do pastebin w celu udostępnienia przy rozwiązywaniu problemów (v0.9.0+)16 |
hermes chat — główny punkt wejścia
Wywołanie hermes bez argumentów uruchamia interaktywny czat. hermes chat to forma jawna z dodatkowymi opcjami:6
hermes chat -q "Summarize the latest PRs" # One-shot, non-interactive
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"
Kluczowe opcje:
| Opcja | Opis |
|---|---|
-q, --query "..." |
Jednorazowy, nieinteraktywny prompt |
-m, --model <model> |
Nadpisanie modelu dla tego uruchomienia |
-t, --toolsets <csv> |
Włączenie zestawu narzędzi rozdzielonych przecinkami |
--provider <provider> |
Wymuszenie dostawcy (zob. pełna lista) |
-s, --skills <name> |
Wstępne załadowanie jednej lub więcej umiejętności dla tej sesji |
-v, --verbose |
Szczegółowe wyjście |
-Q, --quiet |
Tryb programistyczny (bez banera, spinnera, podglądów) |
--resume <session> |
Wznowienie sesji bezpośrednio z poziomu chat |
--worktree |
Utworzenie izolowanego worktree git |
--checkpoints |
Włączenie punktów kontrolnych systemu plików przed destrukcyjnymi zmianami |
--yolo |
Pominięcie monitów zatwierdzania |
--source <tag> |
Tag źródła sesji (domyślnie: cli; tool dla integracji) |
--max-turns <N> |
Maksymalna liczba iteracji wywołań narzędzi na turę (domyślnie: 90) |
hermes setup — pełny kreator konfiguracji
Uruchamia pełny kreator konfiguracji lub przechodzi bezpośrednio do wybranej 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 — strukturowane odpytywanie logów
hermes logs oferuje znacznie więcej niż zwykłe tail -f na plikach logów, ponieważ umożliwia jednoczesne filtrowanie według poziomu, ID sesji i zakresu czasowego.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 logów znajdują się w ~/.hermes/logs/:6
- agent.log — pełna aktywność agenta (wywołania API, dyspozycja narzędzi, cykl życia sesji, poziom INFO+)
- errors.log — wyłącznie ostrzeżenia i błędy (przefiltrowany podzbiór agent.log)
- gateway.log — aktywność bramy komunikacyjnej (połączenia z platformami, dyspozycja, webhooki)
Rotacja odbywa się automatycznie za pomocą RotatingFileHandler z Python — pliki rotowane to agent.log.1, agent.log.2 itd.6
hermes doctor — diagnostyka
hermes doctor [--fix] to pierwsze polecenie, które warto uruchomić w przypadku problemów. Sprawdza poprawność konfiguracji, obecność zależności, dostępność kluczy API, status usług i może podjąć automatyczne naprawy za pomocą flagi --fix.6
Aby udostępnić diagnostykę innej osobie, należy użyć hermes dump — generuje zwięzłe podsumowanie w formacie tekstowym z zamaskowanymi kluczami API, gotowe do wklejenia w zgłoszenie na GitHub lub wątek na Discord.6
Polecenia slash
Polecenia slash działają wewnątrz aktywnej sesji czatu (CLI lub platforma komunikacyjna). Są obsługiwane przez wspólny COMMAND_REGISTRY w hermes_cli/commands.py, dlatego większość poleceń działa identycznie na różnych powierzchniach.9
Kontrola sesji
| Polecenie | Opis |
|---|---|
/new (alias /reset) |
Rozpoczęcie nowej sesji |
/clear |
Wyczyszczenie ekranu + rozpoczęcie nowej sesji |
/history |
Wyświetlenie historii rozmowy |
/save |
Zapisanie bieżącej rozmowy |
/retry |
Ponowienie ostatniej wiadomości |
/undo |
Usunięcie ostatniej wymiany użytkownik/asystent |
/title <name> |
Ustawienie tytułu bieżącej sesji |
/compress |
Ręczna kompresja kontekstu rozmowy |
/rollback [number] |
Wyświetlenie listy checkpointów systemu plików lub ich przywrócenie |
/stop |
Zatrzymanie wszystkich uruchomionych procesów w tle |
/queue <prompt> |
Dodanie promptu do kolejki na następną turę. Uwaga: /q jest przypisane zarówno do /queue, jak i /quit; wygrywa ostatnia rejestracja, więc w praktyce /q rozwiązuje się do /quit — należy zawsze wpisywać pełne /queue.9 |
/resume [name] |
Wznowienie wcześniej nazwanej sesji |
/statusbar (alias /sb) |
Przełączenie paska statusu kontekstu/modelu |
/background <prompt> (alias /bg) |
Uruchomienie promptu w osobnej sesji w tle |
/btw <question> |
Tymczasowe pytanie poboczne (bez narzędzi, nie jest utrwalane) |
/plan [request] |
Załadowanie dołączonego skill plan, aby napisać plan zamiast wykonywać działania |
/branch [name] (alias /fork) |
Rozgałęzienie bieżącej sesji |
/goal <target> |
Zablokowanie agenta na celu, aby trzymał się zadania między turami. Wzorzec Ralph-loop jako prymityw pierwszej klasy. Konfigurowalny budżet 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> |
Przekazanie aktywnej sesji — wiadomości, wywołań narzędzi i kontekstu — do innego modelu, persona lub profile. Nowość w v0.14.0.19 |
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 providers i bieżącego provider |
/personality [name] |
Ustawienie nakładki personality |
/verbose |
Przełączanie sposobu wyświetlania postępu narzędzi |
/reasoning |
Zarządzanie poziomem reasoning effort i jego wyświetlaniem |
/skin |
Wyświetlenie lub zmiana skórki/motywu interfejsu |
/voice [on\|off\|tts\|status] |
Przełączenie trybu głosowego CLI |
/yolo |
Przełączenie trybu YOLO (pomijanie promptów zatwierdzenia) |
/fast |
Przełączenie Fast Mode — priorytetowe przetwarzanie dla modeli OpenAI i Anthropic (v0.9.0+)16 |
/debug |
Szybka diagnostyka na wszystkich platformach (v0.9.0+)16 |
Polecenie /model jest głównym narzędziem do przełączania provider 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
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 toolsets |
/browser [connect\|disconnect\|status] |
Zarządzanie lokalnym połączeniem Chrome CDP |
/skills |
Wyszukiwanie, instalowanie, sprawdzanie lub zarządzanie skills |
/cron |
Zarządzanie zaplanowanymi zadaniami |
/reload-mcp |
Ponowne załadowanie serwerów MCP z config.yaml |
/plugins |
Wyświetlenie zainstalowanych plugins |
/help |
Wyświetlenie wszystkich poleceń |
/usage |
Wyświetlenie użycia tokenów, kosztu i czasu trwania |
/insights |
Wyświetlenie analityki użycia (ostatnie 30 dni) |
/platforms |
Wyświetlenie statusu platform komunikacyjnych |
/profile |
Wyświetlenie nazwy aktywnego profile i katalogu home |
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
Można też zdefiniować quick commands w config.yaml, które mapują krótką nazwę na 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 albo /morning.
Dopasowywanie prefiksów
Polecenia obsługują dopasowywanie prefiksów: wpisanie /h rozwiązuje się do /help, a /mod do /model. Gdy prefiks jest niejednoznaczny, wygrywa pierwsza rejestracja w kolejności registry. Pełne nazwy poleceń i zarejestrowane aliasy zawsze mają pierwszeństwo przed dopasowaniami prefiksów.9
Polecenia specyficzne dla komunikatorów
Niektóre polecenia działają tylko na platformach komunikacyjnych (Telegram, Discord, Slack, WhatsApp, Signal, Email, Home Assistant):9
/status— wyświetlenie informacji o sesji/sethome(alias/set-home) — oznaczenie bieżącego czatu jako platform home/approve [session|always]— zatwierdzenie oczekującego niebezpiecznego polecenia/deny— odrzucenie oczekującego niebezpiecznego polecenia/update— aktualizacja Hermes Agent do najnowszej wersji/commands [page]— przeglądanie wszystkich poleceń i skills (z paginacją)
Niektóre działają wyłącznie w CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9
Narzędzia i toolsets
Hermes zawiera szeroki wbudowany rejestr narzędzi obejmujący wyszukiwanie w sieci, automatyzację przeglądarki, wykonywanie poleceń w terminalu, edycję plików, pamięć, delegowanie, trenowanie RL, dostarczanie wiadomości, integrację z Home Assistant i nie tylko.10 Narzędzia są zorganizowane w logiczne toolsets, które można włączać lub wyłączać dla poszczególnych platform.
Kategorie wysokiego poziomu
| Kategoria | Przykłady | Opis |
|---|---|---|
| Web | web_search, web_extract |
Wyszukiwanie w sieci i wyodrębnianie treści stron |
| Terminal i pliki | terminal, process, read_file, patch |
Wykonywanie poleceń i manipulowanie plikami |
| Przeglądarka | browser_navigate, browser_snapshot, browser_vision |
Interaktywna automatyzacja przeglądarki z tekstem i wizją |
| Media | vision_analyze, video_analyze, video_generate, image_generate, text_to_speech |
Analiza i generowanie multimodalne. video_analyze działa w pierwszej kolejności z Gemini i ma rozszerzalne wsparcie dla zgodnych dostawców multimodalnych (v0.13.0+). v0.14.0 dodaje zunifikowane video_generate z wymiennymi backendami dostawców i przesyła surowe piksele przez vision_analyze, gdy aktywny model obsługuje wizję.1819 |
| Orkiestracja agentów | todo, clarify, execute_code, delegate_task |
Planowanie, doprecyzowanie, wykonywanie kodu, delegowanie do subagentów |
| Computer use | computer_use |
Sterowanie pulpitem przez backend cua-driver; w v0.14.0 działa to z dostawcami obsługującymi wizję innymi niż Anthropic.19 |
| Pamięć i przywoływanie | memory, session_search |
Trwała pamięć + wyszukiwanie w sesjach |
| Automatyzacja i dostarczanie | cronjob, send_message |
Zaplanowane zadania, wiadomości wychodzące |
| Integracje | ha_*, MCP tools, rl_* |
Home Assistant, MCP, trenowanie RL |
Typowe nazwy toolsets to web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant i 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 też przełączać w trakcie sesji za pomocą /tools disable <name> i /tools enable <name>, co resetuje sesję, aby nowy zestaw narzędzi zaczął obowiązywać.9
Backendy terminala
Narzędzie terminala może wykonywać polecenia w 6 różnych środowiskach:10
| Backend | Przypadek użycia |
|---|---|
local |
Uruchamianie na własnym komputerze (domyślnie) — rozwój, zaufane zadania |
docker |
Izolowane kontenery — bezpieczeństwo, odtwarzalność |
ssh |
Zdalny serwer — sandbox, trzymanie agenta z dala od jego własnego kodu |
singularity |
Kontenery HPC — obliczenia klastrowe, bez uprawnień roota |
modal |
Wykonywanie w chmurze serverless |
daytona |
Chmurowy sandbox workspace — trwałe zdalne środowisko dev |
Backendy można przełączać za pomocą hermes config set terminal.backend <name> albo w config.yaml:
terminal:
backend: docker # or: local, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
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, 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 container_persistent: true zainstalowane pakiety, pliki i konfiguracja są zachowywane między sesjami.10
Wszystkie backendy kontenerowe działają ze wzmocnieniami bezpieczeństwa: system plików root tylko do odczytu (Docker), wszystkie możliwości Linux usunięte z wyjątkiem DAC_OVERRIDE, CHOWN i FOWNER, brak eskalacji uprawnień, limity PID (256 procesów), pełna izolacja namespace, trwały workspace przez wolumeny.10
Procesy w tle
Narzędzie terminala obsługuje wykonywanie w tle 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 korzystanie z interaktywnych narzędzi CLI, takich jak Codex i Claude Code.10
Sudo
Jeśli polecenie wymaga sudo, Hermes poprosi o hasło (buforowane na czas sesji). Można też ustawić SUDO_PASSWORD w ~/.hermes/.env.10
Multi-agent Kanban (v0.13.0+)
v0.13.0 przekształca współpracę wielu agentów w prymityw pierwszej klasy: trwałą tablicę Kanban, która śledzi zadania, status i tożsamość workerów między agentami oraz po restartach.18 To właśnie tablica sprawia, że rój workerów Hermes faktycznie kończy pracę, zamiast zatrzymywać się na martwych przekazaniach.
| Mechanizm | Co robi |
|---|---|
| Heartbeats | Każdy worker wysyła puls, gdy posiada zadanie. Pominięty heartbeat oznacza workera jako podejrzanego i zwalnia zadanie do odzyskania. |
| Reclaim | Inny worker może przejąć porzucone zadanie wraz z pełnym stanem zadania i wcześniejszym częściowym wynikiem. |
| Zombie detection | Workery, które kończą działanie bez oznaczenia zadania jako ukończone, są automatycznie blokowane przed przejmowaniem nowej pracy, co zapobiega gromadzeniu martwych tożsamości w roju. |
| Hallucination gate | Wynik, który nie przejdzie bramki, odsyła zadanie z powrotem na tablicę z podanym powodem, zamiast oznaczać je jako wykonane. |
max_retries dla zadania |
Nadpisanie domyślnego budżetu ponowień dla zadania, o którym wiadomo, że jest kruche. |
| Tablice wieloprojektowe | Jeden katalog domowy Hermes może hostować kilka niezależnych tablic. |
Tablica Kanban naturalnie łączy się z /goal (pętla Ralph z zablokowanym celem) po stronie celu oraz z istniejącym narzędziem delegate_task dla semantyki uruchamiania. Wynikiem jest wzorzec roju, w którym każdy agent korzysta z jednego źródła prawdy o tym, co trzeba zrobić dalej, kto to robi i co utknęło.
System skill
Skill to dokumenty wiedzy ładowane na żądanie, które agent może wczytać w razie potrzeby. Działają zgodnie ze wzorcem progresywnego ujawniania, aby ograniczać użycie tokenów, i są zgodne z otwartym standardem agentskills.io.11
Wszystkie skill znajdują się w ~/.hermes/skills/ — to główny katalog i źródło prawdy. Przy świeżej instalacji wbudowane skill są kopiowane z repozytorium. Skill zainstalowane z hubu i utworzone przez agenta również trafiają tutaj.11
Progresywne ujawnianie
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 wczytuje pełną treść skill tylko wtedy, gdy faktycznie 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
Skill mogą się pokazywać lub ukrywać zależnie od tego, które narzędzia są dostępne. Najbardziej przydaje się to w przypadku fallback skill — darmowych lub lokalnych alternatyw, które powinny pojawiać się tylko wtedy, gdy niedostępne jest narzędzie premium:11
| Pole | Zachowanie |
|---|---|
fallback_for_toolsets |
Skill ukryty, gdy wymienione toolset są dostępne |
fallback_for_tools |
To samo, ale sprawdza pojedyncze narzędzia |
requires_toolsets |
Skill ukryty, gdy wymienione toolset są niedostępne |
requires_tools |
To samo, ale sprawdza pojedyncze narzędzia |
Przykład: wbudowany skill duckduckgo-search używa fallback_for_toolsets: [web]. Gdy ustawiono FIRECRAWL_API_KEY, toolset web jest dostępny, a agent używa web_search — skill DuckDuckGo pozostaje ukryty. Bez klucza API skill DuckDuckGo automatycznie pojawia się jako fallback.11
Skill zarządzane przez agenta
Agent może tworzyć, aktualizować i usuwać własne skill za pomocą narzędzia skill_manage. To pamięć proceduralna agenta — gdy agent opracuje nietrywialny workflow, zapisuje podejście jako skill do ponownego użycia w przyszłości.11
Kiedy agent tworzy skill:11 - Po pomyślnym wykonaniu złożonego zadania (ponad 5 wywołań narzędzi) - Gdy napotkał błędy lub ślepe zaułki i znalazł działającą ścieżkę - Gdy użytkownik skorygował jego podejście - Gdy odkrył nietrywialny workflow
Akcje:11
| Akcja | Zastosowanie |
|---|---|
create |
Nowy 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 aktualizacja plików pomocniczych |
remove_file |
Usunięcie pliku pomocniczego |
Skill Hub
Przeglądanie, wyszukiwanie, instalowanie i zarządzanie skill z rejestrów online: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 hubu:11
| Źródło | Przykład | Uwagi |
|---|---|---|
official |
official/security/1password |
Opcjonalne skill dostarczane z Hermes (zaufanie builtin) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Publiczny katalog skill Vercel |
well-known |
well-known:https://mintlify.com/docs/.well-known/skills/mintlify |
Wykrywanie na podstawie URL z witryn publikujących /.well-known/skills/index.json |
github |
openai/skills/k8s |
Bezpośrednie instalacje z repozytorium/ścieżki GitHub |
clawhub |
— | Zewnętrzny marketplace skill |
claude-marketplace |
— | Manifesty plugin/marketplace zgodne z Claude |
lobehub |
— | Konwersja katalogu agentów LobeHub |
Domyślne taps GitHub (możliwe do przeglądania bez konfiguracji): openai/skills, anthropics/skills, VoltAgent/awesome-agent-skills, garrytan/gstack.11
Skanowanie bezpieczeństwa
Wszystkie skill zainstalowane z hubu przechodzą przez skaner bezpieczeństwa, który sprawdza wyciek danych, prompt injection, destrukcyjne polecenia, sygnały supply-chain i inne zagrożenia.11
Poziomy zaufania:11
| Poziom | Źródło | Zasady |
|---|---|---|
builtin |
Dostarczane z Hermes | Zawsze zaufane |
official |
optional-skills/ w repozytorium |
Zaufanie builtin, bez ostrzeżenia o zewnętrznym źródle |
trusted |
Zaufane rejestry (openai/skills, anthropics/skills) |
Bardziej liberalne zasady |
community |
Wszystko pozostałe | Niebezpieczne ustalenia można nadpisać za pomocą --force; werdykty dangerous pozostają zablokowane |
--force może nadpisać niegroźne blokady zasad dla community skill. Nie nadpisuje werdyktu skanowania dangerous.11
Zewnętrzne katalogi skill
Można wskazać Hermes dodatkowe katalogi skill skanowane obok katalogu lokalnego: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ą tylko do odczytu — gdy agent tworzy lub edytuje skill, zawsze zapisuje go w ~/.hermes/skills/. Lokalny priorytet wygrywa, jeśli nazwa skill istnieje w obu miejscach.11
Trwała pamięć
Hermes ma ograniczoną, kuratorowaną pamięć, która utrzymuje się między sesjami. Pamięć agenta składa się z 2 plików, oba przechowywane są w ~/.hermes/memories/:12
| Plik | Cel | Limit znaków |
|---|---|---|
MEMORY.md |
Osobiste notatki agenta — fakty o środowisku, konwencje, zdobyte informacje | 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 snapshot na początku sesji. Agent zarządza własną pamięcią za pomocą narzędzia memory — add, replace albo remove.12
Wzorzec zamrożonego snapshotu: wstrzyknięcie do promptu systemowego jest przechwytywane raz, na początku sesji, i nigdy nie zmienia się w jej trakcie. To celowe rozwiązanie — zachowuje pamięć podręczną prefiksów LLM ze względów wydajnościowych. Zmiany wprowadzone podczas sesji są natychmiast zapisywane na dysku, ale pojawiają się w prompcie systemowym dopiero w następnej sesji.12
Co zapisywać
Zapisywać te informacje (agent robi to proaktywnie):12
- Preferencje użytkownika: „Wolę TypeScript niż JavaScript” → user
- Fakty o środowisku: „Ten serwer działa na Debianie 12 z PostgreSQL 16” → memory
- Korekty: „Nie używać sudo dla poleceń Docker, użytkownik jest w grupie docker” → memory
- Konwencje: „Projekt używa tabulatorów, szerokości linii 120 znaków, docstringów w stylu Google” → memory
- Ukończone prace: „Przeniesiono bazę danych z MySQL do PostgreSQL 2026-01-15” → memory
Pomijać te informacje:12 - Informacje trywialne lub oczywiste - Fakty łatwe do ponownego odkrycia - Surowe zrzuty danych (za duże na pamięć) - Ulotne informacje specyficzne dla sesji - Informacje już obecne w plikach kontekstowych
Wyszukiwanie sesji
Oprócz MEMORY.md i USER.md agent może przeszukiwać swoje wcześniejsze rozmowy za pomocą narzędzia session_search. Wszystkie sesje CLI i komunikatorów są przechowywane w SQLite (~/.hermes/state.db) z pełnotekstowym wyszukiwaniem FTS5. Zapytania zwracają trafne wcześniejsze rozmowy ze streszczeniem Gemini Flash.12
| Funkcja | Trwała pamięć | Wyszukiwanie sesji |
|---|---|---|
| Pojemność | Łącznie ~1 300 tokenów | Bez ograniczeń (wszystkie sesje) |
| Szybkość | Natychmiastowa (w prompcie systemowym) | Wymaga wyszukiwania + streszczenia LLM |
| Przypadek użycia | Kluczowe fakty zawsze dostępne | Znajdowanie konkretnych wcześniejszych rozmów |
| Zarządzanie | Ręcznie kuratorowane przez agenta | Automatyczne — przechowywane są wszystkie sesje |
| Koszt tokenów | Stały na sesję (~1 300 tokenów) | Na żądanie |
Zewnętrzni dostawcy pamięci
Do głębszej trwałej pamięci wykraczającej poza MEMORY.md i USER.md Hermes zawiera 8 wtyczek zewnętrznych dostawców pamięci: Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover i Supermemory.12
Zewnętrzni dostawcy działają równolegle z wbudowaną pamięcią (nigdy jej nie zastępują) i dodają 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)
Aktywny może być tylko jeden zewnętrzny dostawca naraz. Wbudowana pamięć jest zawsze aktywna.6
Automatyczne wznawianie sesji (v0.13.0+)
v0.13.0 sprawia, że przerwanie pracy agenta w trakcie działania nie niszczy sesji. Gateway automatycznie wznawia przerwane sesje po restarcie; restarty /update zachowują stan sesji podczas aktualizacji; przeładowania plików źródłowych w trakcie developmentu utrzymują aktywną sesję zamiast wymuszać nową.18 Praktyczny efekt: długotrwałe prace gateway i zadania uruchamiane przez cron nie resetują już okna kontekstu po restarcie procesu.
Checkpoints v2 (v0.13.0+)
W v0.13.0 trwałość stanu została przepisana jako projekt z jednym magazynem, z rzeczywistym przycinaniem, zabezpieczeniami dyskowymi i bez osieroconych repozytoriów-cieni.18 Poprzedni system checkpoint gromadził stan na dysku w długotrwałych profilach; magazyn v2 nakłada twardy limit na lokalną przestrzeń checkpoint i usuwa zdublowaną księgowość, która powodowała ten wzrost. Nie jest wymagana żadna zmiana konfiguracji widoczna dla użytkownika; następny zapis checkpoint użyje ścieżki v2.
Osobowość i SOUL.md
SOUL.md jest podstawową tożsamością instancji Hermes. Zajmuje miejsce nr 1 w prompcie systemowym, zastępując zakodowaną na stałe domyślną tożsamość.13
Hermes automatycznie inicjalizuje domyślny SOUL.md w ~/.hermes/SOUL.md (albo $HERMES_HOME/SOUL.md dla profili niestandardowych). Istniejące pliki użytkownika nigdy nie są nadpisywane. Hermes ładuje SOUL.md wyłącznie z HERMES_HOME — nie szuka go w bieżącym katalogu roboczym. Dzięki temu osobowość pozostaje przewidywalna między projektami.13
Co powinno znaleźć się w SOUL.md
Warto używać go do trwałych wytycznych dotyczących głosu i osobowości:13 - tonu - stylu komunikacji - poziomu bezpośredniości - domyślnego stylu interakcji - tego, czego unikać stylistycznie - sposobu, w jaki Hermes powinien obsługiwać niepewność, niezgodę i niejednoznaczność
Rzadziej używać go do:13 - jednorazowych instrukcji projektowych - ścieżek plików - konwencji repozytorium - tymczasowych szczegółów workflow
Te elementy należą do AGENTS.md, nie do 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, zachowanie na poziomie osobowości.
AGENTS.md — architektura projektu, konwencje kodowania, preferencje narzędziowe, workflow specyficzne dla repozytorium, polecenia, porty, ścieżki, notatki wdrożeniowe.
Przydatna zasada: jeśli coś ma podążać za użytkownikiem wszędzie, należy to umieścić w SOUL.md. Jeśli należy do projektu, powinno trafić do AGENTS.md.13
Wbudowane osobowości
Hermes zawiera wbudowane osobowości, na które można przełączać się za pomocą /personality:13
| Nazwa | Opis |
|---|---|
helpful |
Przyjazny asystent ogólnego zastosowania |
concise |
Krótkie odpowiedzi prosto do rzeczy |
technical |
Szczegółowy, precyzyjny ekspert techniczny |
creative |
Innowacyjne, nieszablonowe myślenie |
teacher |
Cierpliwy edukator z jasnymi przykładami |
kawaii |
Urocze wyrażenia, błyskotki, entuzjazm |
catgirl |
Neko-chan z kocimi wyrażeniami |
pirate |
Kapitan Hermes, technicznie obeznany bukanier |
shakespeare |
Bardowska proza z dramatycznym zacięciem |
surfer |
Swobodny klimat chill bro |
noir |
Narracja twardego detektywa |
uwu |
Maksymalna słodycz z mową uwu |
philosopher |
Głęboka kontemplacja przy każdym zapytaniu |
hype |
MAKSYMALNA ENERGIA |
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ć się za pomocą /personality codereviewer.
SOUL.md a /personality
SOUL.md jest głosem bazowym. /personality to nakładka na poziomie sesji.13 Warto zachować pragmatyczny domyślny SOUL.md, a potem użyć /personality teacher dla rozmowy edukacyjnej albo /personality creative do burzy mózgów.
Nous Tool Gateway (v0.10.0+)
Od Hermes Agent v0.10.0 (2026-04-16) płatni subskrybenci Nous Portal otrzymują zarządzany dostęp do kuratorowanego zestawu narzędzi przez swoje istniejące dane uwierzytelniające Portal — bez dodatkowych kluczy API do zarządzania.21 Sam Hermes CLI pozostaje objęty licencją MIT i w pełni open source. Zmiana polega na tym, że uwierzytelnienie Portal odblokowuje teraz więcej niż tylko inferencję modeli.
Co znajduje się w gateway
| Narzędzie | Dostawca | Przypadek użycia |
|---|---|---|
| Wyszukiwanie w sieci | Firecrawl | Pozyskiwanie informacji dla agentów, którzy potrzebują świeżych danych |
| Generowanie obrazów | FAL / FLUX 2 Pro | Generowanie obrazów inline bez konfigurowania klucza FAL |
| Text-to-speech | OpenAI TTS | Wynik mówiony w messaging gateway |
| Automatyzacja przeglądarki | Browser Use | Headless nawigacja i scraping |
Jak to działa
Gateway jest włączany osobno dla każdego narzędzia przez nowe pole konfiguracji use_gateway. Jeśli dane uwierzytelniające Portal są dostępne w hermes auth i gateway jest włączony dla danego narzędzia, wywołania tego narzędzia przechodzą przez Portal. W przeciwnym razie używany jest bezpośredni klucz API (jeśli jest obecny).
# 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
Priorytet w czasie działania: gdy gateway jest dostępny i narzędzie ma use_gateway: true, Hermes preferuje gateway nawet wtedy, gdy skonfigurowano również bezpośredni klucz API. Ma to znaczenie dla rozliczeń — wywołania 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
Nie ma osobnego polecenia hermes subscribe ani hermes login --portal. Subskrypcja jest wykrywana automatycznie na podstawie danych uwierzytelniających Portal OAuth, które już znajdują się w hermes auth.
Ceny i dostęp
Ceny i nazwy poziomów są publikowane na stronie cen Nous Portal (https://portal.nousresearch.com/pricing). Ten przewodnik nie wylicza poziomów, ponieważ odpowiada za nie produkt Portal, nie Hermes CLI, i zmieniają się one niezależnie od wydań Hermes. Rejestracja odbywa się pod adresem https://portal.nousresearch.com/; bieżące poziomy należy sprawdzić na stronie cen.
Informacja o wycofaniu
- Zmienna środowiskowa
HERMES_ENABLE_NOUS_MANAGED_TOOLSzostała usunięta w v0.10.0. Narzędzia zarządzane są teraz włączane przez pole konfiguracjiuse_gatewayosobne dla każdego narzędzia i zależą od stanu subskrypcji Portal.21
Ujęcie: czym to wydanie nie jest
Hermes Agent CLI nie jest blokowany subskrypcją. Projekt nadal ma licencję MIT, wszystkie funkcje podstawowe (CLI, skills, pamięć, messaging gateway, cron, MCP, lokalny dashboard, BYOK dla każdego dostawcy) działają end-to-end bez płacenia komukolwiek. 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 długotrwały proces gateway, który łączy się z 22 platformami komunikacyjnymi z poziomu jednego procesu gateway: 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 oraz ogólny adapter Webhook.320171819 Wersja v0.9.0 dodała iMessage przez BlueBubbles (automatyczną rejestrację webhook, kreator konfiguracji, odporność na awarie) oraz natywne wsparcie WeChat przez iLink Bot API z trybem callback WeCom dla aplikacji firmowych.16 Wersja v0.11.0 dodała QQBot.20 Wersja v0.12.0 dodała Microsoft Teams i Tencent Yuanbao.17 v0.13.0 dodała Google Chat jako 20. platformę, korzystając z tej samej wtyczkowej architektury adapterów; IRC i Microsoft Teams zostały również przeniesione na nowy wzorzec adaptera z ogólnymi hookami pluginów env_enablement_fn / cron_deliver_env_var.18 v0.14.0 dodaje LINE i SimpleX Chat oraz domyka stos Microsoft Teams end-to-end za pomocą Graph auth, listenera webhook, środowiska wykonawczego pipeline i dostarczania wychodzącego.19
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 podłączanie każdej platformy: tokeny API, identyfikatory botów, mapowania kanałów, allowlisty.6
Jak przepływają wiadomości
Z dokumentacji architektury upstream: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 działa przez tę samą pętlę konwersacji AIAgent co CLI. Dlatego polecenia slash działają identycznie w obu miejscach i dlatego zadanie cron zaplanowane w Telegram może dostarczyć wynik do Discord — różnica między platformami znajduje się tylko na brzegu systemu.3
Autoryzacja użytkowników i parowanie
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 gateway. Użytkownik wysyła kod parowania ze swojej platformy komunikacyjnej; zatwierdza się go poleceniem hermes pairing approve; od tego momentu użytkownik jest autoryzowany.6
Zaplanowane zadania (cron)
Hermes ma pełnoprawny system cron, w którym zadania są zadaniami agenta, a nie poleceniami shell. Każde zaplanowane zadanie działa przez świeżą instancję AIAgent ze skonfigurowanym promptem, opcjonalnie dołączonymi skills i dostarcza wyniki 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 też utworzyć je konwersacyjnie wewnątrz czatu komunikacyjnego:
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ą zapisywane w JSON i przetrwają ponowne uruchomienia.3
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ć jego powierzchnię narzędziową:
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
Albo ręcznie w config.yaml:14
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
Jako serwer — można udostępnić konwersacje Hermes innym agentom:
hermes mcp serve
hermes mcp serve -v # Verbose
Kompresja kontekstu
Hermes automatycznie kompresuje długie konwersacje, aby mieściły się w oknie kontekstu modelu. Summarizer kompresji to oddzielne wywołanie LLM — można skierować je do dowolnego providera lub endpointu.4
compression:
enabled: true
threshold: 0.50 # Compress at this % of context limit
target_ratio: 0.20 # Fraction to preserve as recent tail
protect_last_n: 20 # Min recent messages to keep uncompressed
summary_model: "google/gemini-3-flash-preview"
summary_provider: "auto" # "auto", "openrouter", "nous", "codex", "main", etc.
summary_base_url: null # Custom OpenAI-compatible endpoint
Opcje providera:4
summary_provider |
summary_base_url |
Wynik |
|---|---|---|
auto (domyślnie) |
nieustawione | Automatyczne wykrycie najlepszego dostępnego providera |
nous / openrouter / etc. |
nieustawione | Wymuszenie tego providera i użycie jego auth |
| dowolny | ustawione | Bezpośrednie użycie niestandardowego endpointu (provider ignorowany) |
summary_model musi obsługiwać długość kontekstu co najmniej tak dużą jak model główny, ponieważ otrzymuje pełną środkową część konwersacji do kompresji.4
Ostrzeżenia o presji budżetu
Gdy agent pracuje nad złożonym zadaniem z wieloma wywołaniami narzędzi, może wyczerpać budżet iteracji (domyślnie: 90 tur), nie zdając sobie z tego sprawy. Presja budżetu automatycznie ostrzega model:4
| Próg | Poziom | Co widzi model |
|---|---|---|
| 70% | Ostrożność | [BUDGET: 63/90. 27 iterations left. Start consolidating.] |
| 90% | Ostrzeżenie | [BUDGET WARNING: 81/90. Only 9 left. Respond NOW.] |
Limity czasu strumienia
Połączenie strumieniowe LLM ma dwie warstwy limitów czasu, które automatycznie dostosowują się do lokalnych providerów (localhost, adresy IP w LAN):4
| Limit czasu | Domyślnie | Lokalni providerzy | Zmienna env |
|---|---|---|---|
| Limit czasu odczytu z gniazda | 120s | Automatycznie podnoszony do 1800s | HERMES_STREAM_READ_TIMEOUT |
| Wykrywanie nieaktywnego strumienia | 180s | Automatycznie wyłączone | HERMES_STREAM_STALE_TIMEOUT |
| Wywołanie API (niestrumieniowe) | 1800s | Bez zmian | HERMES_API_TIMEOUT |
Limit czasu odczytu z gniazda jest podnoszony do 30 minut dla lokalnych endpointów, ponieważ lokalne LLM mogą potrzebować kilku minut na prefill przy dużych kontekstach, zanim wygenerują pierwszy token.4
Lokalny web dashboard (v0.9.0+)
Dashboard działający w przeglądarce do lokalnego zarządzania Hermes Agent. Można konfigurować ustawienia, monitorować sesje, przeglądać skills i zarządzać gateway bez dotykania plików konfiguracyjnych ani terminala.16 Uruchamia się go poleceniem hermes dashboard. To najprostsza ścieżka wdrożenia dla nowych użytkowników preferujących GUI.
Monitorowanie procesów w tle (v0.9.0+)
watch_patterns pozwala ustawić wzorce do monitorowania w wyjściu procesów w tle i otrzymywać powiadomienia w czasie rzeczywistym, gdy wystąpi dopasowanie.16 Można monitorować błędy, czekać na konkretne zdarzenia („listening on port”) albo obserwować logi buildów — wszystko bez odpytywania. W połączeniu z notify_on_complete z v0.8.0 (które powiadamia o ukończeniu zadania w tle) Hermes ma teraz pełną warstwę obserwowalności procesów w tle.15
Pluggable context engine (v0.9.0+)
Zarządzanie kontekstem jest teraz wtyczkowym slotem przez hermes plugins. Można podmieniać niestandardowe context engines, które kontrolują, co agent widzi w każdej turze — filtrowanie, summarization albo wstrzykiwanie kontekstu specyficznego dla domeny.16 Oddziela to strategię kontekstu od głównej pętli agenta, umożliwiając dostosowanie kontekstu per projekt lub per domena.
Backup i restore (v0.9.0+)
hermes backup tworzy pełne archiwum konfiguracji, sesji, skills i pamięci. hermes import przywraca dane z archiwum backup.16 Warto używać tego do migracji między maszynami, tworzenia snapshotów przed większymi zmianami albo udostępniania sprawdzonej konfiguracji członkom zespołu.
Obsługa Termux / Android (v0.9.0+)
Hermes działa natywnie na Androidzie przez Termux. Dostosowane ścieżki instalacji, optymalizacje TUI dla ekranów mobilnych, obsługa backendu głosowego i polecenie /image działają bezpośrednio na urządzeniu.16
Wzmacnianie bezpieczeństwa (v0.13.0+)
v0.13.0 zamknęła 8 problemów bezpieczeństwa P0 i zmieniła jedno ustawienie domyślne na korzyść użytkownika.18 v0.14.0 dodaje kolejne zamknięcia: 12 P0 i 50 P1, w tym wzmocnienie ochrony przed brute-force sudo / sudo-stdin, poprawki obejść dla niebezpiecznych poleceń, sanityzację błędów narzędzi przed ponownym wstrzyknięciem do modelu, uwierzytelnianie API dla pluginu dashboardu, pokrycie SSRF w skills-hub oraz skanowanie ostrzeżeń supply-chain podczas instalacji.19
| Poprawka | Co się zmieniło |
|---|---|
| Domyślna redakcja sekretów włączona | Wcześniej była opcjonalna. Logi i przesyłane dane hermes debug share ukrywają sekrety, chyba że zostanie to jawnie wyłączone. v0.12.0 domyślnie wyłączyła redakcję po zgłoszeniach uszkodzeń payloadów; v0.13.0 ponownie ją włącza jako bezpieczniejszą bazę. |
| Obejście DM między guildami w Discord (CVSS 8.1) | Allowlisty ról Discord są teraz ograniczone do konkretnego guilda, co zamyka ścieżkę, w której rola użytkownika na jednym guildzie autoryzowała DM-y we wszystkich guildach. |
| Domyślne ograniczenia WhatsApp | Adapter WhatsApp domyślnie odrzuca nieznajomych i nigdy nie odpowiada w czacie z samym sobą. |
| Okno TOCTOU w MCP OAuth | Zamknięto race condition podczas zapisu poświadczeń w przepływach MCP OAuth. |
TOCTOU w auth.json CLI |
Zamknięto analogiczne okno TOCTOU w mechanizmie zapisu poświadczeń dla magazynu uwierzytelniania CLI. |
| Minimalna ochrona SSRF w przeglądarce | Routing hybrydowy wymusza podstawową ochronę SSRF przed metadanymi chmurowymi dla żądań próbujących dotrzeć do 169.254.169.254 i odpowiedników. |
| Skanowanie prompt injection w cron | Złożone prompty, w tym wczytana zawartość skill, są skanowane pod kątem prompt injection przed uruchomieniem zadania cron. |
Redakcja hermes debug share |
Przesyłane dane debug share redagują zawartość logów podczas uploadu, nie tylko w momencie zapisu. |
Jeśli utrzymywane jest wdrożenie Hermes, v0.13.0 i v0.14.0 należy traktować jako aktualizacje istotne dla bezpieczeństwa, a nie tylko dostawy funkcji. v0.13.0 zamyka obejście między guildami w Discord i dwa okna TOCTOU; v0.14.0 dodaje kolejną rundę wzmocnień obejmującą obsługę sudo, ponowne wstrzykiwanie błędów narzędzi, API pluginów, SSRF w skills-hub oraz ostrzeżenia dotyczące zależności.
Architektura dla praktyków
Ta sekcja jest przeznaczona dla osób, które chcą zrozumieć, co dzieje się pod spodem, aby móc debugować system, rozszerzać go lub analizować wydajność. To synteza upstreamowej dokumentacji architektury.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 zaadaptowany z upstreamowej dokumentacji architektury.3
„47 narzędzi / 20 toolsetów” kontra „28 narzędzi” w banerze. Liczba „47 narzędzi” oznacza pełny rejestr narzędzi w upstreamowym repozytorium, czyli każde narzędzie, którego kod źródłowy Hermes dostarcza we wszystkich toolsetach. Rzeczywiście uruchomiony CLI pokaże mniejszą liczbę w banerze startowym (instalacja, na której zweryfikowano ten przewodnik, raportuje 28 tools / 89 skills). To nie jest błąd. Wiele toolsetów jest opcjonalnych i trzeba je jawnie włączyć w config.yaml pod toolsets: — adaptery platform komunikacyjnych, automatyzację przeglądarki, cięższe narzędzia scrapingowe itd. Łączna liczba w rejestrze oznacza „co jest dostępne”; liczba w banerze oznacza „co jest włączone w bieżącym profilu”. Aktywne toolsety można sprawdzić poleceniem hermes tools --list, a pojedyncze toolsety włączać lub wyłączać blokiem toolsets: w ~/.hermes/config.yaml albo przez /tools list / /tools enable <name> / /tools disable <name> w uruchomionej sesji — usunięcie narzędzia wywołuje reset sesji, aby agent odbudował manifest narzędzi.
Trzy tryby API
Hermes abstrahuje różnice między providerami do trzech trybów API, wybieranych automatycznie w czasie działania:3
| Tryb API | Używany przez |
|---|---|
chat_completions |
OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, większość niestandardowych endpointów, dowolny serwer zgodny z OpenAI |
codex_responses |
OpenAI Codex (przez ChatGPT OAuth) |
anthropic_messages |
Anthropic API (natywnie), Anthropic OAuth, proxy zgodne z Anthropic |
Resolver runtime_provider.py mapuje krotki (provider, model) na (api_mode, api_key, base_url) dla ponad 18 providerów, obsługując przepływy OAuth, pule poświadczeń i rozwiązywanie aliasów.3
Przepływ danych przez sesję CLI
User input → HermesCLI.process_input()
→ AIAgent.run_conversation()
→ 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
Z upstreamowej strony architektury.3
Kolejność składania promptu
Stos promptu obejmuje:13
SOUL.md(tożsamość agenta — albo wbudowany fallback, jeśli plik jest niedostępny)- Wskazówki zachowania świadome narzędzi
- Pamięć/kontekst użytkownika (
MEMORY.md,USER.md) - Wskazówki dotyczące skills
- Pliki kontekstowe (
AGENTS.md,.cursorrules) - Znacznik czasu
- Wskazówki formatowania specyficzne dla platformy
- Opcjonalne nakładki system-promptu, takie jak
/personality
SOUL.md stanowi fundament — wszystko inne jest budowane na nim.13
Przechowywanie sesji
Przechowywanie sesji oparte na SQLite z pełnotekstowym wyszukiwaniem FTS5. Sesje mają śledzenie linii pochodzenia (parent/child między kompresjami), izolację per platforma oraz atomowe zapisy z obsługą rywalizacji o zasoby.3
System pluginów
Trzy źródła wykrywania: ~/.hermes/plugins/ (użytkownik), .hermes/plugins/ (projekt) oraz punkty wejścia pip. Pluginy rejestrują narzędzia, hooki i polecenia CLI przez kontekst API. Providery pamięci są wyspecjalizowanym typem pluginu w plugins/memory/.3
hermes plugins # Interactive enable/disable UI
hermes plugins install <repo> # Install from Git URL or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list
Zasady projektowe
Z upstreamowej strony architektury:3
| Zasada | Co oznacza w praktyce |
|---|---|
| Stabilność promptu | System prompt nie zmienia się w trakcie rozmowy. Brak mutacji psujących cache poza jawnymi działaniami użytkownika (/model) |
| Obserwowalne wykonanie | Każde wywołanie narzędzia jest widoczne dla użytkownika przez callbacki. Aktualizacje postępu w CLI (spinner) i gateway (wiadomości czatu) |
| Możliwość przerwania | Wywołania API i wykonanie narzędzi można anulować w trakcie działania przez wejście użytkownika lub sygnały |
| Rdzeń niezależny od platformy | Jedna klasa AIAgent obsługuje CLI, gateway, ACP, batch i serwer API. Różnice platformowe znajdują się w punkcie wejścia |
| Luźne powiązania | Opcjonalne podsystemy (MCP, pluginy, providery pamięci, środowiska RL) używają wzorców rejestru i bramkowania check_fn, a nie twardych zależności |
| Izolacja profili | Każdy profil otrzymuje własne HERMES_HOME, config, pamięć, sesje i PID gateway. Wiele profili może działać równolegle |
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 też starsze katalogi ~/.clawdbot i ~/.moldbot) i zapisuje je do ~/.hermes.6
Importowane bezpośrednio (ponad 30 kategorii): SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills z 4 katalogów źródłowych, model domyślny, niestandardowi providerzy, serwery MCP, tokeny platform komunikacyjnych i allowlisty (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), domyślne ustawienia agenta (reasoning effort, kompresja, human delay, strefa czasowa, sandbox), polityki resetowania sesji, reguły zatwierdzania, konfiguracja TTS, ustawienia przeglądarki, ustawienia narzędzi, timeout exec, allowlista poleceń, konfiguracja gateway oraz klucze API z 3 źródeł.6
Archiwizowane do ręcznego przeglądu: zadania cron, pluginy, hooki/webhooki, backend pamięci (QMD), konfiguracja rejestru skills, UI/tożsamość, logowanie, konfiguracja multi-agent, powiązania kanałów, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6
Rozwiązywanie kluczy API sprawdza trzy źródła w kolejności priorytetu: wartości config → ~/.openclaw/.env → auth-profiles.json.6
Rozwiązywanie problemów
“API key not set”
Proszę uruchomić hermes model, aby skonfigurować dostawcę interaktywnie, lub hermes config set OPENROUTER_API_KEY your_key. Polecenie hermes doctor wskaże dokładnie, których kluczy brakuje.7
“Context limit: 2048 tokens” przy uruchomieniu (modele lokalne)
Hermes automatycznie wykrywa długość kontekstu z punktu końcowego /v1/models serwera, jednak wiele lokalnych serwerów raportuje niskie wartości domyślne. Można 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 pojawiają się jako tekst zamiast się wykonywać
Serwer nie ma włączonej obsługi wywołań narzędzi lub model nie obsługuje jej w implementacji serwera.2
| Serwer | Rozwiązanie |
|---|---|
| llama.cpp | Należy dodać --jinja do polecenia uruchomieniowego |
| vLLM | Należy dodać --enable-auto-tool-choice --tool-call-parser hermes |
| SGLang | Należy dodać --tool-call-parser qwen (lub odpowiedni parser) |
| Ollama | Wywołania narzędzi są domyślnie włączone — proszę sprawdzić, czy model je obsługuje za pomocą ollama show <model> |
| LM Studio | Należy zaktualizować do wersji 0.3.6+ i użyć modelu z natywnym wsparciem narzędzi |
Odpowiedzi są ucinane w połowie zdania
Dwie możliwe przyczyny:2
- Niski limit wyjściowy (
max_tokens) na serwerze — SGLang domyślnie ustawia 128 tokenów na odpowiedź. Należy ustawić--default-max-tokensna serwerze lub skonfigurowaćmodel.max_tokenswconfig.yaml. - Wyczerpanie kontekstu — Model zapełnił okno kontekstowe. Proszę zwiększyć
model.context_lengthlub włączyć kompresję kontekstu w Hermesie.
“Connection refused” z WSL2 do serwera modelu hostowanego w Windows
WSL2 używa wirtualnego adaptera sieciowego z własną podsiecią — localhost wewnątrz WSL2 odnosi się do maszyny wirtualnej Linux, a nie do hosta Windows. Dwie opcje:2
Sieć lustrzana (Windows 11 22H2+): należy edytować %USERPROFILE%\.wslconfig:
[wsl2]
networkingMode=mirrored
Następnie wsl --shutdown i ponowne uruchomienie. localhost działa teraz dwukierunkowo.
Adres IP hosta jako rozwiązanie zapasowe (starsze wersje Windows): należy uzyskać adres IP hosta Windows z wnętrza WSL2 i użyć go zamiast localhost:
ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host
Konieczne jest również, aby serwer modelu nasłuchiwał na 0.0.0.0, a nie na 127.0.0.1 — należy ustawić OLLAMA_HOST=0.0.0.0 dla Ollamy, dodać --host 0.0.0.0 dla llama-server/SGLang lub włączyć “Serve on Network” w LM Studio.2
Gdzie wszystko się znajduje?
hermes status i hermes dump to przyjaciele w tej sytuacji. hermes logs list pokazuje wszystkie pliki logów wraz z rozmiarami. hermes config path wyświetla lokalizację pliku konfiguracyjnego. hermes config env-path wyświetla lokalizację pliku .env.6
FAQ
Jaka jest różnica między Hermes Agent a Claude Code?
Claude Code jest oficjalnym CLI firmy Anthropic, ograniczonym do modeli Anthropic. Hermes Agent to otwartoźródłowy framework agentowy od 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łasny, samodzielnie hostowany punkt końcowy.12 Hermes oferuje również bramę komunikacyjną dla Telegram/Discord/Slack/WhatsApp/Signal, której Claude Code nie posiada.
Czy mogę używać Hermesa z kluczem API od Anthropic?
Tak. Trzy sposoby:2
- Ustawić
ANTHROPIC_API_KEYw~/.hermes/.envi uruchomićhermes chat --provider anthropic --model claude-sonnet-4-6 - Uruchomić
hermes modeli wybrać Anthropic — Hermes wykorzysta magazyn poświadczeń Claude Code, jeśli będzie dostępny - Ustawić ręczny
ANTHROPIC_TOKEN(setup-token lub token OAuth) jako rozwiązanie zapasowe
Opcja 2 jest preferowana, jeśli Claude Code jest już używany na tej samej maszynie — zachowuje odświeżalne poświadczenia Claude jako odświeżalne.
Jak przełączyć dostawców bez utraty konwersacji?
Należy użyć /model provider:model wewnątrz sesji. Historia konwersacji, pamięć i umiejętności zostają zachowane:9
/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5
Skonfigurowałem Anthropic, ale wizja/web/kompresja nie działają
Następuje wtedy odwołanie do pomocniczego modelu zapasowego. Wizja, podsumowywanie stron, kompresja i inne zadania pomocnicze wykorzystują oddzielny pomocniczy LLM — domyślnie Gemini Flash poprzez automatyczne wykrywanie (OpenRouter → Nous → Codex). Jeśli żaden z nich nie jest skonfigurowany, a skonfigurowany jest tylko Anthropic, te funkcje cicho ulegają degradacji.4
Rozwiązanie: można dodać OPENROUTER_API_KEY dla zadań pomocniczych albo przekonfigurować sloty pomocnicze, aby używały głównego dostawcy. Warto zauważyć, że kompresja kontekstu znajduje się we własnym bloku najwyższego poziomu compression: i przyjmuje summary_provider, a nie auxiliary.compression.provider — slot auxiliary.compression udostępnia jedynie timeout. Pełne rozwiązanie:
auxiliary:
vision: { provider: "main" }
web_extract: { provider: "main" }
compression:
summary_provider: "main"
Jaka jest różnica między SOUL.md a AGENTS.md?
SOUL.md to tożsamość agenta — ton, styl, domyślne ustawienia komunikacji. Znajduje się w ~/.hermes/SOUL.md i podąża za użytkownikiem wszędzie. AGENTS.md jest specyficzny dla projektu — architektura, konwencje, polecenia, ścieżki — i znajduje się w katalogu projektu.13 Jeśli coś ma podążać za użytkownikiem wszędzie, należy użyć SOUL.md. Jeśli należy do projektu, należy użyć AGENTS.md.
Jak uruchomić wiele instancji Hermesa równolegle?
Profile. Każdy profil otrzymuje własny HERMES_HOME, konfigurację, pamięć, sesje i PID bramy: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, poprzez ścieżkę niestandardowego punktu końcowego. Hermes współpracuje z dowolnym serwerem zgodnym z OpenAI: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan lub własnym.2 Patrz Custom & Self-Hosted Endpoints, aby uzyskać konfigurację dla poszczególnych serwerów.
Dlaczego baner startowy pokazuje mniej narzędzi, niż przewodnik podaje, że Hermes posiada?
Przewodnik wymienia 47 narzędzi / 20 toolsetów z rejestru architektury źródłowej — to pełna liczba narzędzi, dla których Hermes dostarcza kod źródłowy we wszystkich toolsetach. Działająca instalacja pokazuje mniejszą liczbę w banerze (referencyjna instalacja użyta dla tego przewodnika raportuje 28 narzędzi), ponieważ Hermes włącza tylko domyślny zestaw toolsetów przy uruchomieniu. Wiele toolsetów jest opcjonalnych: adaptery bramy komunikacyjnej, automatyzacja przeglądarki, cięższe stosy do scrapingu oraz kilka wyspecjalizowanych integracji muszą być jawnie wymienione w toolsets: w ~/.hermes/config.yaml, zanim się załadują. Suma w rejestrze = “co jest dostępne, jeśli to włączysz”. Suma w banerze = “co Twój bieżący profil faktycznie załadował”. Należy użyć hermes tools --list, aby zobaczyć, które toolsety są aktywne, a które są dostępne, ale wyłączone. Pojedyncze toolsety można przełączać w czasie działania za pomocą /tools enable <name> oraz /tools disable <name> (wyłączenie powoduje reset sesji, aby agent przebudował manifest narzędzi z nowym kształtem).
Jak Hermes obsługuje awarię modelu, gdy mój podstawowy dostawca zawodzi?
Należy skonfigurować blok fallback_model w config.yaml:2
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
Gdy podstawowy dostawca zawiedzie (limit zapytań, błąd serwera, awaria uwierzytelniania), Hermes przełącza się na zapasowy w trakcie sesji bez utraty historii konwersacji. Uruchamia się co najwyżej raz na sesję.
Czy agent może z czasem ulepszać własne umiejętności?
Tak — to właśnie część “samodoskonaląca się” w Hermes Agent. Agent może tworzyć, aktualizować i usuwać umiejętności za pomocą narzędzia skill_manage. Gdy odkryje nietrywialny przepływ pracy, zapisuje to podejście jako umiejętność do późniejszego ponownego użycia.11 Agent tworzy umiejętności po złożonych zadaniach (5+ wywołań narzędzi), gdy napotka błędy i znajdzie działającą ścieżkę, gdy użytkownik skoryguje jego podejście lub gdy odkryje nietrywialny przepływ pracy.
Czy istnieje 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-05-21 | Przewodnik v1.6: dodano v0.14.0 (16 maja 2026) — wydanie Foundation. Najważniejsze: lżejsza podstawa instalacji i środowiska uruchomieniowego oraz szersze powierzchnie dostawców, gateway, multimediów i weryfikacji. Dodano SuperGrok OAuth z kontekstem 1M w grok-4.3, zgodny z OpenAI hermes proxy dla dostawców OAuth, pełnoprawne x_search, pip install hermes-agent, leniwe instalowanie zależności, uruchamianie szybsze o ok. 19 s, 180 razy szybsze wywołania CDP przeglądarki, LINE + SimpleX Chat dla 22 platform komunikacyjnych, pełną obsługę Microsoft Teams, /handoff, /subgoal, natywne przyciski doprecyzowania w Telegram/Discord, uzupełnianie historii Discord, surowopikselowe vision_analyze, stopkę weryfikatora mutacji plików dla każdej tury, diagnostykę semantyczną LSP przy każdym zapisie, ujednolicone video_generate, computer_use przez cua-driver dla dostawców innych niż Anthropic, klikalne URL-e OSC8, obsługę Zed ACP Registry, router OpenRouter Pareto Code, NovitaAI, środowisko uruchomieniowe serwera aplikacji Codex, zaufany tap huggingface/skills, 9 opcjonalnych skills, plugin ctx.llm / tool_override, wyszukiwanie webowe Brave/DDGS, zmianę nazwy Qwen Cloud, natywną wersję beta dla Windows oraz zamknięcie 12 P0 / 50 P1. |
19 |
| 2026-05-07 | Przewodnik v1.5: dodano v0.13.0 (7 maja 2026) — wydanie Tenacity. Najważniejsze: trwała tablica Kanban dla wielu agentów (heartbeat, reclaim, wykrywanie zombie, bramka halucynacji, max_retries dla zadań, tablice wielu projektów), która zmienia roje w pełnoprawny prymityw zamiast wzorca delegowania. Polecenie /goal przywiązuje agenta do celu między turami (wzorzec pętli Ralph jako polecenie slash). Nowe narzędzie video_analyze, najpierw dla Gemini, z rozszerzalną obsługą zgodnych modeli. Dostawca xAI Custom Voices TTS z klonowaniem głosu. i18n w 7 językach (zh-Hans, ja, de, es, fr, uk, tr) dla komunikatów CLI i gateway; dokumentacja tylko zh-Hans. Google Chat jako 20. platforma komunikacyjna przez wzorzec podłączanego adaptera; IRC + Microsoft Teams przeniesione na ten sam wzorzec. ProviderProfile ABC + plugins/model-providers/ dla podłączanych dostawców zewnętrznych bez zmian w rdzeniu. Automatyczne wznawianie sesji po restarcie gateway, /update i ponownym wczytaniu pliku źródłowego. Przepisane Checkpoints v2 z projektem pojedynczego magazynu, rzeczywistym przycinaniem i zabezpieczeniami dysku. Osiem zamknięć bezpieczeństwa P0: domyślnie włączona redakcja sekretów, obejście DM między serwerami Discord (CVSS 8.1), odrzucanie nieznajomych WhatsApp + wyciszenie czatu z samym sobą, TOCTOU MCP OAuth, TOCTOU auth.json CLI, dolna granica SSRF przeglądarki, skanowanie prompt injection w cron, redakcja hermes debug share. Linting po zapisie dla Python/JSON/YAML/TOML, tryb cron no_agent tylko dla skryptów, allowlisty platform w Slack/Telegram/Mattermost/Matrix/DingTalk, ulepszenia MCP (transport SSE, przekazywanie OAuth, tagi image MEDIA). Statystyki od v0.12.0: 864 commity, 588 scalonych PR-ów, 829 zmienionych plików, 295 kontrybutorów społeczności, 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żniejsze: autonomiczny Curator działający w tle na tickerze cron gateway (domyślny cykl 7-dniowy), który ocenia bibliotekę skills według rubryki, usuwa martwe skills, konsoliduje powiązane skills i zapisuje raporty dla każdego uruchomienia — Hermes utrzymuje się sam między aktywnymi sesjami. Pętla samodoskonalenia została ulepszona o ocenianie na podstawie rubryki, preferencję aktywnych aktualizacji, prawidłowe dziedziczenie środowiska uruchomieniowego i ograniczone zakresowo toolsets z dostępem tylko do pamięci i skills. Czterech nowych dostawców inferencji: GMI Cloud, Azure AI Foundry, MiniMax OAuth i Tencent Tokenhub. LM Studio awansowało do pełnoprawnej obsługi. Manifesty zdalnych katalogów modeli aktualizują się teraz automatycznie bez wydań. Dwie nowe platformy komunikacyjne: Microsoft Teams (19., przez podłączaną architekturę gateway) i Tencent Yuanbao (18., natywnie tekst + multimedia). Natywne Spotify przez PKCE OAuth z dołączonym skill; plugin Google Meet do połączeń i transkrypcji; dostawca Piper local TTS. ComfyUI v5 + TouchDesigner-MCP przeniesione z opcjonalnych do domyślnie dołączanych. Nowe skills: Humanizer, claude-design, design-md, airtable. Dodatki CLI: jednorazowy tryb hermes -z, preflight hermes update --check, polecenie slash /reload-skills, podłączane style wskaźnika zajętości. Widoczny zimny start TUI skrócony o ok. 57% dzięki leniwej inicjalizacji agenta i leniwym importom. Bezpieczeństwo: redakcja sekretów domyślnie wyłączona, aby zapobiec uszkodzeniu payloadu; twarda blocklista dla poleceń niemożliwych do odzyskania. Statystyki: 1 096 commitów, 550 scalonych PR-ów, 213 kontrybutorów społeczności. |
17 |
| 2026-04-25 | Przewodnik v1.3: dodano v0.11.0 (23 kwietnia 2026) — wydanie Interface. Pełne przepisanie interaktywnego TUI w React/Ink z backendem Python JSON-RPC (tui_gateway); przyklejony composer, streaming na żywo z obsługą schowka OSC-52, stabilne klawisze wyboru, pasek stanu ze stoperem dla tury i gałęzią git, potwierdzenie /clear, preset jasnego motywu, nakładka obserwowalności uruchamiania subagentów. Podłączana architektura transportu — konwersja formatów i transport HTTP wyodrębnione do agent/transports/ dla czystszego łączenia dostawców. Natywne AWS Bedrock przez Converse API. Pięć nowych ścieżek inferencji: NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth oraz 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 skan QR i streamingiem. Rozszerzenie powierzchni pluginów: polecenia slash, dispatch narzędzi, blokowanie wykonania, transformacja wyników. /steer <prompt> — wskazówki dla agenta w trakcie działania, które wstrzykują notatkę widoczną dla działającego agenta po jego następnym wywołaniu narzędzia, bez przerywania tury ani psucia cache promptu. Hooki powłoki podpinają skrypty jako hooki cyklu życia bez pluginów Python. Tryb bezpośredniego dostarczania webhooków przekazuje payloady prosto do czatu platformy, z pominięciem agenta przy fan-out. Inteligentniejsze delegowanie z rolami orkiestratora, konfigurowalną głębokością spawn i koordynacją plików. Dashboard otrzymuje system pluginów, przełączanie motywu na żywo, i18n i responsywność mobilną. Statystyki od v0.9.0: 1 556 commitów, 761 scalonych PR-ów, 1 314 zmienionych plików, 224 174 wstawienia, 29 kontrybutorów społeczności. |
20 |
| 2026-04-16 | Przewodnik v1.2: dodano v0.10.0 — Nous Tool Gateway. Płatni subskrybenci Nous Portal mają teraz dostęp do zarządzanych narzędzi (wyszukiwanie webowe Firecrawl, generowanie obrazów FAL / FLUX 2 Pro, OpenAI TTS, automatyzacja przeglądarki Browser Use) bez dodatkowych kluczy API. Włączenie osobno dla każdego narzędzia przez nowe pole konfiguracji use_gateway. Gdy skonfigurowane są oba warianty, środowisko uruchomieniowe preferuje gateway zamiast bezpośrednich kluczy API. Usunięto zmienną środowiskową HERMES_ENABLE_NOUS_MANAGED_TOOLS. Hermes Agent CLI pozostaje na licencji MIT i jest w pełni darmowy. |
21 |
| 2026-04-13 | Przewodnik v1.1: dodano funkcje v0.8.0 i v0.9.0. Lokalny dashboard webowy, tryb /fast, platformy iMessage + WeChat (łącznie 16), monitorowanie procesów w tle (watch_patterns), podłączany context engine, hermes backup/hermes import, Termux/Android, dostawcy xAI + MiMo + Google AI Studio + Qwen, polecenie /debug, kompleksowe wzmocnienie bezpieczeństwa. |
15 16 |
| 2026-04-10 | Przewodnik v1.0: pierwsze wydanie obejmujące Hermes Agent v0.7.0. Uwierzytelnianie dostawców, konfiguracja, CLI, polecenia slash, narzędzia, skills, pamięć, gateway, cron, MCP, kompresja, architektura, migracja OpenClaw, rozwiązywanie problemów, FAQ. |
Źródła
-
Nous Research, README projektu “Hermes Agent” w GitHub. Podstawowe źródło opisu produktu (samodoskonalący się agent, wielu dostawców, messaging gateway, terminal backends, ewolucja skill, harmonogram cron, delegowanie) oraz jednowierszowej instrukcji “Quick Install”. ↩↩↩
-
Nous Research, “AI Providers” w dokumentacji Hermes Agent. Podstawowe ź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 GitHub Copilot, trzy metody uwierzytelniania Anthropic, chińscy dostawcy AI, routing Hugging Face, niestandardowe punkty końcowe), trzech ścieżek uwierzytelniania (klucz API w
.env, OAuth przezhermes model, niestandardowy punkt końcowy wconfig.yaml), składni polecenia slash/model(w tymcustom:name:model), szablonów konfiguracji Ollama/vLLM/SGLang/llama.cpp/LM Studio, instrukcji sieciowych WSL2, łańcucha wykrywania długości kontekstu, konfiguracji modelu fallback, inteligentnego routingu modeli oraz nazwanych dostawców niestandardowych. Wszystkie nazwy zmiennych środowiskowych specyficzne dla dostawców, typy tokenów, nadpisania bazowych URL-i i identyfikatory modeli w tym wpisie pochodzą z tej strony. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Architecture” w przewodniku developerskim Hermes Agent. Podstawowe źródło diagramu ogólnego systemu, struktury katalogów, przepływu danych przez ścieżki sesji CLI i wiadomości gateway, trzech trybów API (
chat_completions,codex_responses,anthropic_messages), rozwiązywania dostawców przezruntime_provider.py, utrwalania sesji przez SQLite + FTS5, listy platform messaging gateway, źródeł wykrywania systemu pluginów, izolacji profili oraz sześciu zasad projektowych. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Configuration” w podręczniku użytkownika Hermes Agent. Podstawowe źródło struktury katalogu konfiguracji, reguły
config.yamlvs.env(„config.yamlwins for non-secret settings”), łańcucha pierwszeństwa konfiguracji (argumenty CLI → env → config.yaml → .env → wartości domyślne), ustawień kompresji kontekstu (blokcompression.*zthreshold,target_ratio,protect_last_n,summary_model,summary_provider,summary_base_url), progów presji budżetu (70% ostrożność, 90% ostrzeżenie), limitów czasu streamingu z automatycznym dostosowaniem dla dostawcy lokalnego oraz pełnego bloku konfiguracji modelu pomocniczego (auxiliary:ze slotamivision,web_extract,approval,compression,session_search,skills_hub,mcp,flush_memories). Ograniczenie dostawcy"main"do slotów pomocniczych/kompresji/fallback również pochodzi z tej strony. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Migrate from OpenClaw” w przewodnikach Hermes Agent. Źródło przepływu migracji OpenClaw → Hermes. ↩↩
-
Nous Research, “CLI Commands Reference” w dokumentacji referencyjnej Hermes Agent. Podstawowe źródło każdego polecenia CLI najwyższego poziomu udokumentowanego w tym wpisie, 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 updateihermes uninstall. Wszystkie flagi podpoleceń, opisy opcji, zachowanie puli poświadczeń, składnia filtrowania logów, flagi migracji OpenClaw, polecenia zarządzania profilami oraz polecenia instalacji usług w tym wpisie pochodzą z tej strony. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Installation” w przewodniku wprowadzającym Hermes Agent. Podstawowe źródło jednowierszowego polecenia instalatora, zachowania instalatora (wymagania wstępne, obsługa platform, automatyczne wykrywanie Termux, wymagania Windows/WSL2), tabeli opcjonalnych dodatków, ręcznych kroków instalacji oraz poleceń weryfikacyjnych. ↩↩↩↩↩↩↩
-
Nous Research, “CLI Commands Reference” — zob. w szczególności sekcję
hermes dump, która opisuje format wyjściowy polecenia (nagłówek, środowisko, tożsamość, model, terminal, klucze API, funkcje, usługi, obciążenie, nadpisania konfiguracji) oraz jego przeznaczenie do udostępniania diagnostyki. ↩ -
Nous Research, “Slash Commands Reference” w dokumentacji referencyjnej Hermes Agent. Podstawowe źródło każdego polecenia slash wymienionego w tym wpisie, architektury
COMMAND_REGISTRY, podziału CLI vs messaging, dynamicznych poleceń slash skill, szybkich poleceń wconfig.yaml, zachowania dopasowania prefiksów oraz poleceń wyłącznie dla messaging (/status,/sethome,/approve,/deny,/update,/commands). ↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Tools & Toolsets” w podręczniku użytkownika Hermes Agent. Podstawowe źródło przeglądu kategorii narzędzi, poleceń użycia toolset, sześciu terminal backends (local, docker, ssh, singularity, modal, daytona), konfiguracji kontenerów (cpu, pamięć, dysk, trwałość), wzmacniania bezpieczeństwa kontenerów, API zarządzania procesami w tle oraz obsługi sudo. ↩↩↩↩↩↩↩↩↩↩
-
Nous Research, “Skills System” w podręczniku użytkownika Hermes Agent. Podstawowe źródło progressive disclosure, formatu
SKILL.md, skill specyficznych dla platform, aktywacji warunkowej (fallback_for_toolsets,requires_toolsets,fallback_for_tools,requires_tools), skill zarządzanych przez agenta za pomocąskill_manage, poleceń skill hub i listy źródeł (official,skills-sh,well-known,github,clawhub,claude-marketplace,lobehub), skanowania bezpieczeństwa i poziomów zaufania oraz zewnętrznych katalogów skill. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Persistent Memory” w podręczniku użytkownika Hermes Agent. Podstawowe źródło limitów znaków
MEMORY.md/USER.md, wzorca zamrożonej migawki, działań narzędzia pamięci (add,replace,remove), informacji, które warto zapisywać lub pomijać, porównania pamięci i wyszukiwania sesji oraz listy ośmiu zewnętrznych dostawców pamięci (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). ↩↩↩↩↩↩↩↩ -
Nous Research, “Personality & SOUL.md” w podręczniku użytkownika Hermes Agent. Podstawowe źródło zachowania
SOUL.md(znajduje się wHERMES_HOME, nigdy nie jest nadpisywany, slot #1 w system prompt, skanowany pod kątem bezpieczeństwa przed dołączeniem), rozróżnienia SOUL.md vs AGENTS.md, wbudowanej listy osobowości (14 osobowości odhelpfuldohype), niestandardowych osobowości wconfig.yaml, wzorca nakładki/personalityoraz pełnej kolejności składania stosu promptów. ↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Use MCP with Hermes” oraz MCP Config Reference w przewodnikach i dokumentacji referencyjnej Hermes Agent. Źródło formatu konfiguracji
mcp_servers:wconfig.yamlz polamicommand,args,env. ↩ -
Hermes Agent v0.8.0 Release Notes. 8 kwietnia 2026. Automatyczne powiadomienia procesów w tle, bezpłatny MiMo v2 Pro w Nous Portal, przełączanie
/modelna żywo między platformami, natywny dostawca Google AI Studio, Qwen OAuth, limity czasu oparte na braku aktywności, przyciski zatwierdzania w Slack/Telegram, MCP OAuth 2.1 PKCE, scentralizowane logowanie, rozszerzenie systemu pluginów. ↩↩↩↩↩ -
Hermes Agent v0.9.0 Release Notes. 13 kwietnia 2026. Lokalny web dashboard, Fast Mode (
/fast), iMessage przez BlueBubbles, WeChat + WeCom, Termux/Android, monitorowanie procesów w tle (watch_patterns), natywni dostawcy xAI + Xiaomi MiMo, wymienny context engine, zunifikowana obsługa proxy, wzmocnienia bezpieczeństwa (poprawki path traversal, shell injection, SSRF, RCE),hermes backup/hermes import,/debug+hermes debug share, 16 obsługiwanych platform. 487 commitów, 269 scalonych PR-ów, 24 współtwórców. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.12.0 Release Notes. 30 kwietnia 2026. „The Curator release”. Autonomiczny działający w tle Curator, który ocenia, przycina i konsoliduje bibliotekę skill w domyślnym cyklu 7-dniowym uruchamianym przez licznik cron gateway. Ulepszona pętla samodoskonalenia: ocenianie oparte na rubrykach, bias aktywnej aktualizacji, prawidłowe dziedziczenie runtime, zakresowe toolset ograniczone do pamięci i skill. Czterech nowych dostawców inference: GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio awansowane do pierwszej klasy obsługi. Zdalne manifesty katalogu modeli aktualizują się automatycznie bez wydań. Dwie nowe platformy messaging: Microsoft Teams (19., przez wymienną architekturę gateway) oraz Tencent Yuanbao (18., natywne tekst + multimedia). Natywny Spotify przez PKCE OAuth z dołączonym skill; plugin Google Meet do połączeń i transkrypcji; lokalny dostawca TTS Piper. ComfyUI v5 + TouchDesigner-MCP dołączone domyślnie. Nowe skill: Humanizer, claude-design, design-md, airtable. CLI: tryb jednorazowy
hermes -z, preflighthermes update --check, polecenie slash/reload-skills, wymienne style wskaźnika zajętości. Zimny start TUI skrócony o ~57% dzięki leniwej inicjalizacji. Bezpieczeństwo: redakcja sekretów domyślnie wyłączona; twarda blocklist dla nieodwracalnych poleceń. Statystyki od v0.11.0: 1 096 commitów, 550 scalonych PR-ów, 213 współtwórców społeczności. Zob. też: tag wydania v2026.4.30. ↩↩↩ -
Hermes Agent v0.13.0 Release Notes. 7 maja 2026. „The Tenacity release”. Wieloagentowa tablica Kanban z heartbeat, reclaim, wykrywaniem zombie, bramką halucynacji,
max_retriesdla każdego zadania, tablicami wieloprojektowymi. Polecenie slash/goaldo blokowania celu między turami (prymityw pętli Ralph) z konfigurowalnym budżetem tur. Narzędzievideo_analyze, Gemini-first z kompatybilną rozszerzalnością multimodalną. Dostawca TTS xAI Custom Voices z klonowaniem głosu. i18n w 7 językach: zh-Hans, ja, de, es, fr, uk, tr (CLI + wiadomości gateway; dokumentacja tylko zh-Hans). Google Chat jako 20. platforma messaging przez wzorzec wymiennego adaptera z ogólnymi hookami pluginówenv_enablement_fn/cron_deliver_env_var; IRC i Microsoft Teams przeniesione na ten sam wzorzec.ProviderProfileABC +plugins/model-providers/dla wymiennych dostawców zewnętrznych. Automatyczne wznawianie sesji po restarcie gateway,/updatei przeładowaniach plików źródłowych. Checkpoints v2 przepisane na pojedynczy magazyn z prawdziwym przycinaniem, zabezpieczeniami dysku, bez osieroconych shadow repos. Osiem zamknięć P0 security: domyślnie włączona redakcja sekretów, obejście DM między guildami Discord (CVSS 8.1, allowlist ról ograniczone do guild), WhatsApp domyślnie odrzuca nieznajomych + nigdy nie odpowiada na czacie z samym sobą, TOCTOU zapisu poświadczeń MCP OAuth, TOCTOUauth.jsonCLI w writerach poświadczeń, próg SSRF metadanych chmury przeglądarki w routingu hybrydowym, skanowanie złożonego promptu cron (w tym treści skill) pod kątem prompt injection, redakcja treści logówhermes debug sharew czasie przesyłania. Inne istotne elementy: linting po zapisie dla Python/JSON/YAML/TOML, tryb watchdog cronno_agenttylko dla skryptów, allowlist platform dla Slack/Telegram/Mattermost/Matrix/DingTalk, ulepszenia MCP (transport SSE, przekazywanie OAuth, wyniki obrazów jako tagi MEDIA). Statystyki od v0.12.0: 864 commity, 588 scalonych PR-ów, 829 zmienionych plików, 295 współtwórców społeczności, 282 zamknięte issue (13 P0, 36 P1). ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.14.0 Release Notes. 16 maja 2026. „The Foundation release”. Od v0.13.0: 808 commitów, 633 scalone PR-y, 1 393 zmienione pliki, 165 061 wstawień, 545 zamkniętych issue (12 P0, 50 P1) oraz 215 współtwórców społeczności. Dodaje SuperGrok OAuth z kontekstem grok-4.3 1M,
hermes proxy,x_search, pakietowanie PyPI, leniwe zależności, między sesjami 1h cache promptów Claude, ~19 s szybsze uruchamianie, 180x szybsze wywołania CDP przeglądarki, LINE i SimpleX Chat dla 22 platform messaging,/handoff, natywne przyciski doprecyzowania, uzupełnianie historii Discord, surowopikselowevision_analyze, stopkę weryfikatora mutacji plików dla każdej tury, diagnostykę semantyczną LSP, zunifikowanevideo_generate,computer_usez cua-driver, linki OSC8, obsługę Zed ACP Registry, router OpenRouter Pareto Code, NovitaAI, runtime serwera aplikacji Codex,huggingface/skills, pluginctx.llm,tool_override, wyszukiwanie Brave/DDGS, wzmocnienie niebezpiecznych poleceń,/subgoal, zmianę nazwy Qwen Cloud, natywną betę Windows, łącznie 16 locale oraz szerokie aktualizacje dokumentacji/testów. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.11.0 Release Notes. 23 kwietnia 2026. „The Interface release” — pełne przepisanie interaktywnego CLI w React/Ink z backendem Python JSON-RPC (
tui_gateway); wymienna architektura transportu (agent/transports/); natywny AWS Bedrock przez Converse API; pięć nowych ścieżek inference (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 przez Codex OAuth; QQBot jako 17. platforma messaging z konfiguracją przez skan QR; rozszerzona powierzchnia pluginów (polecenia slash, dispatch narzędzi, blokowanie wykonania, transformacja wyników);/steer <prompt>do korygowania agenta w trakcie działania, wstrzykujące kontekst po następnym wywołaniu narzędzia bez naruszania cache promptu; shell hooks dla zdarzeń cyklu życia bez pluginów Python; tryb bezpośredniego dostarczania webhook, który przekazuje payloady prosto do czatu platformy; inteligentniejsze delegowanie z rolami orchestrator + konfigurowalną głębokością spawn + koordynacją plików; system pluginów dashboardu, przełączanie motywu na żywo, i18n, responsywność mobilna. Statystyki od v0.9.0: 1 556 commitów · 761 scalonych PR-ów · 1 314 zmienionych plików · 224 174 wstawienia · 29 współtwórców społeczności. Zob. też: tag wydania Hermes Agent v0.11.0 GitHub. ↩↩↩ -
Hermes Agent v0.10.0 Release Notes. 16 kwietnia 2026. „The Tool Gateway Release”. Integracja Nous Tool Gateway dla płacących subskrybentów Nous Portal — zarządzany dostęp do wyszukiwania web Firecrawl, generowania obrazów FAL / FLUX 2 Pro, OpenAI TTS oraz automatyzacji przeglądarki Browser Use bez dodatkowych kluczy API. Zgoda dla każdego narzędzia osobno przez nowe pole konfiguracji
use_gateway. Runtime preferuje gateway zamiast bezpośrednich kluczy API, gdy skonfigurowano oba. Pełna integracja zhermes toolsihermes status. Zastępuje przestarzałą zmienną envHERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementacja: @jquesnelle (emozilla). Hermes Agent CLI pozostaje na licencji MIT i w pełni open source; gateway jest integracją z istniejącym produktem subskrypcyjnym Portal, a nie paywallem dla CLI. Zob. też: Nous Portal w sprawie cen subskrypcji i rejestracji. ↩↩↩