Hermes Agent:実践者向けリファレンス(2026年版)
# v0.13 Tenacityでは、ハートビートとゾンビ検出を備えたマルチエージェントKanban、/goal Ralphループのロック機構、video_analyze、xAI Custom Voices TTS、7言語のi18n、20番目のプラットフォームとなるGoogle Chat、ProviderProfileによるプラガブルプロバイダー、セッションの自動再開、Checkpoints v2、8件のP0セキュリティ修正が追加されました。
TL;DR: Hermes Agent は、Nous Research が開発するオープンソースの自己改善型 AI エージェントです。CLI として、またマルチプラットフォーム対応のメッセージングゲートウェイとして動作し、永続的なアイデンティティと記憶をディスクに保存し、使うほど成長するスキルを集約します。OpenAI 互換のあらゆる LLM プロバイダー(Nous Portal、OpenRouter、Anthropic、GitHub Copilot、z.ai、Kimi、MiniMax、DeepSeek、Alibaba、Hugging Face、Google、または自前のセルフホストエンドポイント)と連携できます。12 多くの新規ユーザーが最初につまずくのはプロバイダー認証です。Hermes は約 19 の主要プロバイダーとカスタムエンドポイントをサポートしており、認証経路は 3 種類あります(
.env内の API キー、hermes modelによる OAuth、またはconfig.yamlでのカスタムエンドポイント設定)。まず学ぶべきはこの認証モデルです。どのプロバイダーが解決されるかによって、その他すべての挙動が決まります。
Hermes Agent は、チャットのラッパーではなく、本格的なエージェントランタイムとして動作します。ファイルシステムを読み取り、サンドボックス化されたバックエンドでコマンドを実行し、Web をスクレイピングし、サブエージェントを起動し、スケジュールされた cron ジョブを実行し、Telegram/Discord/Slack/WhatsApp/Signal/Email と単一のゲートウェイプロセスから対話し、経験から自身のスキルを生み出します。1 CLI は run_agent.py の会話ループ上に構築されたターミナル UI であり、ゲートウェイはメッセージングプラットフォームからのメッセージを同じ会話ループにルーティングする長時間稼働プロセスです。3
カジュアルな利用とエキスパートの利用を分けるのは、5 つのシステムへの習熟度です。 これらを使いこなせば、Hermes は強力な戦力倍増装置となります。
- プロバイダー解決:認証フローが API 呼び出しにどうマッピングされるか
- 設定の階層:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - ツール + ツールセットシステム:エージェントができること、およびプラットフォームごとのゲーティング
- スキルシステム:エージェントが作成・進化させる手続き的記憶
- ゲートウェイ + cron + プロファイル:Hermes をいる場所だけでなく、生活の中心で動かす
重要なポイント
- プロバイダー認証は 1 つではなく 3 つの経路があります。
.env内の API キー、hermes model/hermes auth経由の OAuth、またはconfig.yamlでのカスタムエンドポイント。慣れた経路ではなく、プロバイダーに合った経路を選びましょう。 - プロバイダーの切り替えはコマンド 1 つで完結します。
hermes modelは OAuth ログインを含むサポート対象のすべてのプロバイダーをインタラクティブにガイドし、/model provider:modelでセッション中に履歴を失うことなくモデルを切り替えられます。2 - ユーザーが編集する設定面は 2 つのファイルです。
~/.hermes/config.yamlに各種設定、~/.hermes/.envにシークレットを保存します。auth.json、SOUL.md、MEMORY.md、skills/は Hermes が直接管理します。SOUL.mdは手動で編集できますが、その他はエージェント自身が触れるファイルです。4 - Hermes は OpenClaw の後継です。 移行する場合は、
hermes claw migrateで 30 以上のカテゴリの状態を自動的にインポートできます。5 - サービス品質は補助モデルに依存します。 ビジョン、Web 要約、圧縮、メモリフラッシュはすべて独立した補助 LLM を使用します。デフォルトでは自動検出により Gemini Flash が選ばれます(OpenRouter → Nous → Codex の順)。これらが何も設定されていない場合、補助スロットをメインプロバイダーに向けるまで、これらの機能はサイレントに劣化します。4
以下のすべてのセクションは、hermes-agent.nousresearch.com/docs のアップストリームドキュメント、および github.com/NousResearch/hermes-agent のソースツリーに基づいています。すべての事実に関する記述には、参照元のアップストリームページを示す脚注が付いています。
自分に合った経路を選ぶ
| 必要なこと | 参照先 |
|---|---|
| Hermes をインストール | Installation — ワンラインインストーラーまたは手動手順 |
| プロバイダーにサインイン | Authentication & Providers — このガイドの中心セクション |
| セッション中にモデルを切り替え | The hermes auth Command および /model 構文については Custom & Self-Hosted Endpoints |
| ローカル LLM を実行 | Custom & Self-Hosted Endpoints — Ollama、vLLM、SGLang、llama.cpp、LM Studio |
| メッセージングプラットフォームと接続 | Messaging Gateway — Telegram、Discord、Slack、WhatsApp、Signal、Google Chat(合計 20 プラットフォーム) |
| スキルの作成またはインストール | Skills System — プログレッシブディスクロージャー + スキルハブ |
| すべての CLI コマンドの詳細リファレンス | このまま読み進めるか、CLI Commands に直接ジャンプ |
Hermesの仕組み:メンタルモデル
Hermesは、あらゆるエントリーポイントから呼び出せる単一の会話ループを中心に構築されています。エントリーポイントには、CLI(cli.py)、メッセージングgateway(gateway/run.py)、エディター統合用のACPアダプター、バッチランナー、そしてAPIサーバーがあります。3 これらはすべて最終的にrun_agent.py内のAIAgent.run_conversation()を呼び出し、以下の処理を実行します:
prompt_builder.pyを通じて、SOUL.md、MEMORY.md、USER.md、skills、コンテキストファイル、ツールガイダンスからシステムプロンプトを構築3runtime_provider.pyでランタイムプロバイダーを解決 — このステップで認証、ベースURL、APIモードが決定されます3- 3つのAPIモード(
chat_completions、codex_responses、anthropic_messages)のいずれかでプロバイダーを呼び出し3 - 返されたツールコールを
model_tools.pyと中央ツールレジストリ(tools/registry.py)を通じてディスパッチ3 - モデルが最終レスポンスを生成するまでループし、セッションをFTS5付きのSQLiteに永続化3
このループを理解することが重要なのは、パーソナリティ、メモリ、skills、圧縮、フォールバックといったすべての機能が、これらのステージのいずれかに接続されているからです。設定キーが何をするのか疑問に思ったとき、答えはたいてい「上記ループのステージ1、2、3、または4のノブである」ということになります。
プラットフォーム非依存のコア。 1つのAIAgentクラスがCLI、gateway、ACP、バッチ、APIサーバーのすべてに対応します。プラットフォームごとの違いはエントリーポイントに存在し、エージェント自体には含まれません。3 ターミナルでもTelegramでも同じスラッシュコマンドが動作するのは、hermes_cli/commands.py内の共有COMMAND_REGISTRYからディスパッチされているためです。6
ディレクトリ構造がシステムそのものです。 Hermesはすべてを~/.hermes/(デフォルト以外のprofileの場合は$HERMES_HOME)に格納します: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)
上記のファイルにはそれぞれ明確な役割があり、重複はありません。「HermesはXをどこに保存するのか」という疑問の答えは、必ずこの中のいずれかです。
インストール
ワンラインインストーラーが95%のユーザーに推奨される方法です。Python、uv、Node.js、ripgrep、ffmpegのインストール、リポジトリのクローン、仮想環境の作成、グローバルhermesコマンドの設定まですべて自動で処理されます。7
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Linux、macOS、WSL2、Android/Termuxで動作します(インストーラーがTermuxを自動検出し、テスト済みのAndroidバンドルに切り替えます)。7 ネイティブWindowsはサポートされていません — WSL2をインストールし、そこから上記コマンドを実行してください。7
インストール完了後:
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
前提条件はgitのみです。インストーラーがuv経由でPython 3.11(sudo不要)、Node.js v22(ブラウザ自動化とWhatsAppブリッジ用)、ripgrep、ffmpegを自動プロビジョニングします。7
インストールの確認
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は不足しているものとその修正方法を正確に教えてくれます。7 hermes dumpは、GitHubのissueやDiscordスレッドでヘルプを求める際に貼り付けるための診断コマンドで、シークレットが自動削除されたセットアップ全体のプレーンテキストサマリーを出力します。8
手動インストール
完全な制御が必要な場合 — カスタムPythonバージョン、特定のextras、Nix/NixOS統合など — 手動フローはアップストリームのインストールガイドにステップバイステップで記載されています。7 uv pip install -e ".[<extras>]"で組み合わせ可能な主要オプションextras:
| Extra | 追加される機能 |
|---|---|
all |
以下すべて |
messaging |
TelegramおよびDiscord gateway |
cron |
Cron式パーサー |
cli |
セットアップウィザード用ターミナルメニューUI |
modal |
Modalクラウド実行バックエンド |
voice |
CLIマイク入力+オーディオ再生 |
tts-premium |
ElevenLabsプレミアムボイス |
honcho |
AIネイティブメモリ(Honcho統合) |
mcp |
Model Context Protocolサポート |
homeassistant |
Home Assistant統合 |
acp |
ACPエディター統合サポート |
slack |
Slackメッセージング |
pty |
PTYターミナルサポート(インタラクティブCLIツール) |
dev |
pytestおよびテストユーティリティ |
termux |
テスト済みAndroidバンドル(cron、cli、pty、mcp、honcho、acpを含む) |
Termuxのインストールコマンドは異なります — uv pipではなく、constraintsファイル付きのpipを使用します:
python -m pip install -e ".[termux]" -c constraints-termux.txt
これは、Android上で.[all]を実行するとvoice extra経由でfaster-whisperが取り込まれ、Android向けに公開されていないctranslate2ホイールに依存するためです。7
認証とプロバイダー
Hermesは約19のファーストクラスプロバイダーとカスタムエンドポイントをサポートし、3つの異なる認証パスを提供します。ここでは認証の全体像をパスごとに整理し、お持ちの認証情報に合うものを見つけられるようにしています。
3つの認証パス
Hermesのすべてのプロバイダーは、次の3つの認証パターンのいずれかに分類されます。
Path 1 — .env内のAPIキー。 ~/.hermes/.envにキーを記載すれば、Hermesが起動時に読み込みます。OpenRouter、AI Gateway、z.ai/GLM、Kimi/Moonshot、MiniMax(およびMiniMax China)、Alibaba Cloud/DashScope、Kilo Code、OpenCode Zen、OpenCode Go、DeepSeek、Hugging Face、Google/Gemini、その他ほとんどのサードパーティプロバイダーで使用されます。2
Path 2 — hermes modelまたはhermes authを介したOAuth。 デバイスコードフローを起動してブラウザを開き、認証情報を~/.hermes/auth.jsonに保存します(Claude CodeやCodex CLIなどのツールから既存の認証情報をインポートすることも可能です)。Nous Portal、OpenAI Codex(ChatGPTアカウント)、GitHub Copilot、Anthropic(Claude Pro/Max)で使用されます。2
Path 3 — config.yaml内のカスタムエンドポイント。 OpenAI互換のAPIであれば何でも対応します — Ollama、vLLM、SGLang、llama.cpp、LM Studio、LiteLLMプロキシ、Together AI、Groq、Azure OpenAI、または独自にセルフホストしたサーバーなど。hermes model → Custom endpointから一度設定すれば、config.yamlに永続化されます。2
プロバイダーの全マトリクス
ファーストクラスプロバイダーの完全な一覧と、それぞれの正確なセットアップフローは次のとおりです。2
| プロバイダー | 認証パス | セットアップ |
|---|---|---|
| Nous Portal | OAuth | hermes model(OAuthログイン、サブスクリプションベース) |
| OpenAI Codex | OAuth | hermes model(ChatGPTデバイスコード、Codexモデルを使用) |
| GitHub Copilot | OAuthまたはトークン | hermes model(OAuthデバイスコード)、またはCOPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token |
| GitHub Copilot ACP | ローカルサブプロセス | hermes model(PATHにcopilot CLI + copilot loginが必要) |
| Anthropic | OAuthまたはAPIキー | hermes model(Claude Codeの認証情報を優先)、またはANTHROPIC_API_KEY、またはANTHROPIC_TOKENセットアップトークン |
| OpenRouter | APIキー | ~/.hermes/.env内のOPENROUTER_API_KEY |
| AI Gateway (Vercel) | APIキー | ~/.hermes/.env内のAI_GATEWAY_API_KEY(プロバイダー: ai-gateway) |
| z.ai / GLM (ZhipuAI) | APIキー | ~/.hermes/.env内のGLM_API_KEY(プロバイダー: zai) |
| Kimi / Moonshot | APIキー | ~/.hermes/.env内のKIMI_API_KEY(プロバイダー: kimi-coding) |
| MiniMax (グローバル) | APIキー | ~/.hermes/.env内のMINIMAX_API_KEY(プロバイダー: minimax) |
| MiniMax China | APIキー | ~/.hermes/.env内のMINIMAX_CN_API_KEY(プロバイダー: minimax-cn) |
| Alibaba Cloud (Qwen) | APIキー | ~/.hermes/.env内のDASHSCOPE_API_KEY(プロバイダー: alibaba、エイリアス: dashscope、qwen) |
| Kilo Code | APIキー | ~/.hermes/.env内のKILOCODE_API_KEY(プロバイダー: kilocode) |
| OpenCode Zen | APIキー | ~/.hermes/.env内のOPENCODE_ZEN_API_KEY(プロバイダー: opencode-zen) |
| OpenCode Go | APIキー | ~/.hermes/.env内のOPENCODE_GO_API_KEY(プロバイダー: opencode-go) |
| DeepSeek | APIキー | ~/.hermes/.env内のDEEPSEEK_API_KEY(プロバイダー: deepseek) |
| Hugging Face | APIキー | ~/.hermes/.env内のHF_TOKEN(プロバイダー: huggingface、エイリアス: hf) |
| Google / Gemini | APIキー | ~/.hermes/.env内のGOOGLE_API_KEYまたはGEMINI_API_KEY(プロバイダー: gemini) |
| xAI (Grok) | ネイティブプロバイダー | 直接APIアクセスとモデルカタログを備えたファーストクラスプロバイダー(v0.9.0以降)。x-grok-conv-idヘッダー経由でプロンプトキャッシュを自動有効化します。216 |
| xAI Custom Voices | APIキー | 音声クローン機能付きTTSプロバイダー。v0.13.0で新規追加。config.yamlのtts:配下で設定し、xAIキーを.envに記載してください。18 |
| Xiaomi MiMo | ネイティブプロバイダー | セットアップウィザードとモデルカタログを備えたファーストクラスプロバイダー。Nous Portalで補助タスク用にMiMo v2 Proが無料利用可能(v0.9.0以降)。1615 |
| Google AI Studio | APIキー | ~/.hermes/.env内のGOOGLE_API_KEYまたはGEMINI_API_KEY。models.devレジストリ経由でコンテキスト長を自動検出する直接Geminiアクセス(v0.8.0以降)。15 |
| Qwen | OAuth | ポータルリクエストサポート付きのOAuthプロバイダー(v0.8.0以降)。15 |
| カスタムエンドポイント | config.yaml | hermes model → “Custom endpoint”(config.yamlに保存) |
Anthropic: 3つの認証方法
Anthropicには独自のセクションを設けています。HermesはClaudeへの3つの異なるパスをサポートしており、適切なものを選ぶことが重要だからです。アップストリームのドキュメントから引用します。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
hermes modelを介してAnthropic OAuthを選択すると、Hermesはトークンを~/.hermes/.envにコピーするのではなく、Claude Code自身の認証情報ストアを優先的に使用します。これによりリフレッシュ可能なClaude認証情報をそのままリフレッシュ可能な状態で保持できます。2 同じマシンですでにClaude Codeを使用している場合は、これが最もクリーンなパスとなります。
config.yamlでAnthropicを恒久的に固定するには次のように記述します。
model:
provider: "anthropic"
default: "claude-sonnet-4-6"
--provider claudeおよび--provider claude-codeも--provider anthropicの省略形として機能します。2
GitHub Copilot: 2つのモード
Copilotは2つのモードでサポートされています。直接Copilot API(推奨)と、ローカルのCopilot CLIをサブプロセスとして起動するCopilot ACPです。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
認証はアップストリームのドキュメントに従い、次の順序でチェックされます。2
1. COPILOT_GITHUB_TOKEN環境変数
2. GH_TOKEN環境変数
3. GITHUB_TOKEN環境変数
4. gh auth token CLIフォールバック
5. hermes modelを介したOAuthデバイスコードログイン
トークンの種類が重要です。 Copilot APIはクラシックなPersonal Access Token(ghp_*)をサポートしていません。サポートされているのはOAuthトークン(gho_*)、ファイングレインドPAT(Copilot Requests権限付きのgithub_pat_*)、GitHub Appトークン(ghu_*)です。gh auth tokenがghp_*トークンを返す場合は、代わりにhermes modelを使用してOAuth経由で認証してください。2
中国系AIプロバイダー(ファーストクラスサポート)
Hermesはz.ai/GLM、Kimi/Moonshot、MiniMax(グローバル + China エンドポイント)、Alibaba Cloudを専用のプロバイダーIDで組み込みサポートしています。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
ベースURLはGLM_BASE_URL、KIMI_BASE_URL、MINIMAX_BASE_URL、MINIMAX_CN_BASE_URL、DASHSCOPE_BASE_URLの各環境変数で上書きできます。2
Z.AIはエンドポイントを自動検出します。 z.ai/GLMプロバイダーを使用すると、Hermesは複数のエンドポイント(グローバル、China、コーディング系バリアント)を試行し、お使いのAPIキーを受け付けるものを見つけます。動作するエンドポイントは自動的にキャッシュされるため、ほとんどのユーザーはGLM_BASE_URLを設定する必要はありません。2
xAI (Grok)はプロンプトキャッシュを自動的に有効化します。 ベースURLにx.aiが含まれる場合、Hermesはリクエストごとにx-grok-conv-idヘッダーを送信し、会話セッション内で同じサーバーにルーティングされるようにすることで、システムプロンプトと履歴のキャッシュを再利用します。2 自動で動作するため、設定は不要です。
hermes authコマンド
hermes authは、プールと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
認証情報プールは、同じプロバイダーに対して複数のAPIキーやOAuthトークンをローテーションさせるための仕組みです — コードを変更することなく、複数のキーにレートリミットを分散させたいときに有用です。6 旧来のhermes login / hermes logoutコマンドは削除されました。代わりにhermes authを使用してください。6
カスタム & セルフホストエンドポイント
HermesはOpenAI互換のAPIエンドポイントであれば何でも動作します。サーバーが/v1/chat/completionsを実装していれば、Hermesをそこに向けることができます。2
インタラクティブセットアップ(推奨):
hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name
手動のconfig.yaml:
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
どちらのアプローチもconfig.yamlに永続化され、メインモデル、プロバイダー、ベースURLの単一の真実の情報源(single source of truth)となります。2 旧来の環境変数OPENAI_BASE_URLとLLM_MODELはメインモデルの設定にはもう読み込まれません — hermes modelを使用するか、config.yamlを直接編集してください。2(OPENAI_BASE_URL + OPENAI_API_KEYは、補助的なprovider: "main"ルーティングパスのフォールバックとしては引き続き有効ですので、そこで使用している場合は安易に削除しないでください。)4
セッション中のカスタムエンドポイントの切り替え:
/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(モデル名なし)は、エンドポイントの/v1/models APIを照会し、ロードされているモデルが厳密に1つだけであれば自動選択します — 単一モデルを動かしているローカルサーバーで便利です。2
ローカルLLMサーバー(セットアップテンプレート)
アップストリームのドキュメントには、Ollama、vLLM、SGLang、llama.cpp、LM Studioの完全なセットアップガイドが用意されています。ここでは実際に実行する主要なコマンドを示します。それぞれHermesが向け先にできる動作するエンドポイントを構築できるよう設計されています。2
Ollama — 最も簡単なローカルパス、設定不要:
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
Ollamaの重要な落とし穴: Ollamaのコンテキスト長はデフォルトで非常に低く(24GB VRAM未満では4,096トークン)設定されています。OLLAMA_CONTEXT_LENGTHまたはModelfileで引き上げる必要があります — OpenAI互換のAPIはクライアントからのコンテキスト長を受け付けないため、Hermes側で設定することはできません。2 エージェント用途では少なくとも16k〜32kに設定してください。
vLLM — 高性能な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
ツール呼び出しには--enable-auto-tool-choiceと--tool-call-parser <name>が必要です。サポートされているパーサーはhermes(Qwen 2.5、Hermes 2/3)、llama3_json、mistral、deepseek_v3、deepseek_v31、xlam、pythonicです。これらのフラグがない場合、ツール呼び出しはプレーンテキストとして返されてしまいます。2
SGLang — RadixAttentionによる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
SGLangの落とし穴: デフォルトのmax_tokensは128です。応答が途中で切れる場合は、サーバー側で--default-max-tokensを設定するか、config.yamlでmodel.max_tokensを設定してください。2
llama.cpp / llama-server — CPUおよび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が必須です。 これがないと、llama-serverはtoolsパラメータを完全に無視し、モデルは応答テキストにJSONを書き込むことでツールを呼び出そうとします — Hermesはこれを実際のツール呼び出しとして解析できません。2
LM Studio — GUI付きのデスクトップアプリ:
LM Studioアプリからサーバーを起動するか(Developerタブ → Start Server)、CLI経由で起動できます: lms server start(ポート1234で起動)とlms load qwen2.5-coder --context-length 32768。2 その後、hermes modelをhttp://localhost:1234/v1に向けてください。
LM Studioの重要な落とし穴: LM Studioはモデルメタデータからコンテキスト長を読み取りますが、多くのGGUFモデルはデフォルトとして2048または4096を報告します。LM Studioのモデル設定で必ずコンテキスト長を明示的に設定してください — モデルピッカーの隣の歯車アイコンをクリックし、「Context Length」を少なくとも16384(できれば32768)に設定してから、モデルをリロードします。2
名前付きカスタムプロバイダー
複数のカスタムエンドポイントを扱う場合(例えばローカル開発サーバーとリモートのGPUサーバー)、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
そして3項構文を使ってセッション中に切り替えます。
/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4
インタラクティブなhermes modelメニューから名前付きカスタムプロバイダーを選択することもできます。2
プラガブルプロバイダーアーキテクチャ(v0.13.0以降)
v0.13.0はProviderProfile ABCとplugins/model-providers/ディレクトリを提供し、サードパーティの推論プロバイダーがコアの修正なしに組み込めるようになっています。18 プロバイダーがOpenAI、Anthropic、Codex互換のAPIモードを話せるなら、認証パス、ベースURL、モデルカタログ、キャッシュヘッダーを宣言するProviderProfileサブクラスを実装できます。Hermesは組み込みプロバイダーと同じruntime_provider.pyパスでこれを解決します。これがv0.13.0のプロバイダー拡張の背景にあるアーキテクチャ変更です。プロバイダーを追加するためにコアコードを編集するのではなく、プラグインを出荷する仕組みになりました。
コンテキスト長の検出
アップストリームのドキュメントによれば、2つの設定が頻繁に混同されます。2
context_length— コンテキストウィンドウ全体(入力 + 出力トークン予算の合計、例えばClaude Opus 4.7では1,000,000、Sonnet 4.6では200,000)。Hermesは履歴をいつ圧縮するかを判断するために使用します。model.max_tokens— 出力の上限(モデルが1回の応答で生成できる最大トークン数)。履歴の長さとは無関係です。
自動検出がウィンドウサイズを誤った場合は、context_lengthを設定してください。
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
Hermesは複数のソースを使った解決チェーンでコンテキストウィンドウを検出します: 設定オーバーライド → カスタムプロバイダーのモデル単位設定 → 永続キャッシュ → エンドポイントの/models → Anthropic /v1/models → OpenRouter API → Nous Portal → models.dev(3800以上のモデルをカバーするコミュニティ管理のレジストリ) → フォールバックデフォルト(128K)。2 このシステムはプロバイダーを意識しているため、誰がサービングするかによって同じモデルが異なるコンテキスト上限を持ちうります(例: claude-opus-4.6はAnthropic直接では1Mですが、GitHub Copilotでは128K)。2
プロバイダーローテーション & フォールバック
認証情報プール。 同じプロバイダーに対して複数のAPIキーがある場合、hermes authを介してローテーション戦略を設定します。これが複数のキーにレートリミットを分散させる方法です。6
フォールバックモデル。 プライマリモデルが失敗した場合(レートリミット、サーバーエラー、認証失敗)に、Hermesが自動的に切り替えるバックアップprovider:modelを設定します。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
フォールバックは会話を失うことなく、セッション中にモデルとプロバイダーを入れ替えます。1セッションにつき最大1回しか発動しません。2 フォールバックでサポートされるプロバイダーは次のとおりです: 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
補助モデル
Hermesは「補助」モデルとして軽量なモデルを使い、サイドタスクを処理します: 画像解析、Webページの要約、ブラウザのスクリーンショット解析、危険コマンドの承認分類、コンテキスト圧縮、セッション検索の要約、スキルマッチング、MCPツールのディスパッチ、メモリフラッシュなどです。4 デフォルトでは自動検出(OpenRouter → Nous → Codex)でGemini Flashを使用します。
補助タスクごとに使用するモデルとプロバイダーを設定できます。 すべての補助スロットは同じ3つのつまみを使います: 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 }
"main"プロバイダーオプションは「メインエージェントが使うプロバイダーをそのまま使う」という意味です — auxiliary:、compression:、fallback_model:の設定内でのみ有効です。トップレベルのmodel.provider設定では有効ではありません。カスタムOpenAI互換エンドポイントをメインモデルとして使用する場合は、model:セクションでprovider: customを設定してください。4
なぜこれが重要なのか: Anthropic OAuthのみを設定している(OpenRouterキーがない)場合、デフォルトの補助フォールバックチェーンが最初にOpenRouterを試すため、ビジョン、Web要約、圧縮が劣化または失敗します。補助タスク用にOPENROUTER_API_KEYを追加するか、各補助スロットをメインプロバイダーを使うように再設定してください。
auxiliary:
vision:
provider: "main"
web_extract:
provider: "main"
これは新規のHermesユーザーが遭遇する「機能がサイレントに動かない」最大の落とし穴です。
設定システム
Hermesにはレイヤー構造の設定システムがあります。優先順位を理解することが重要です。上位のレイヤーが下位のレイヤーをオーバーライドするためで、そのレイヤーの1つはconfig.yamlでは見えないグローバルプロバイダーレジストリとなっています。
設定ファイルのレイアウト
公式ドキュメントによると、Hermesの設定を構成するファイルは以下のとおりです。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と.env — 両方に設定がある場合、機密以外の設定はconfig.yamlが優先されます。4 ルールは次のとおりです。
- シークレット(APIキー、ボットトークン、パスワード)→ .env
- それ以外すべて(モデル、ターミナルバックエンド、圧縮設定、メモリ制限、toolset)→ config.yaml
シークレットはconfig.yamlからシェルスタイルの補間を使って参照できます。4
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
設定の管理
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
例: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とhermes config migrateは、hermes updateを実行するたびに走らせるべきコマンドです。アップデートで新たに追加され、まだ自分のファイルに含まれていない設定オプションを検出してくれます。6
設定の優先順位
Hermesは複数のソースから設定を読み込みます。同じ値が複数のソースで設定されている場合、優先度の高いソースが優先されます。4
- CLI引数 —
hermes chat --model anthropic/claude-sonnet-4(呼び出しごとのオーバーライド) - 環境変数 — プロセス起動時に適用
config.yaml— 主要な設定ファイル.env— シークレット専用- 組み込みのデフォルト値 — 他に何も設定がない場合に適用
CLIフラグは、その単一の呼び出しに対しては常に勝ちます。config.yamlは長期的な信頼できる設定ソースです。
ローカライゼーション(v0.13.0+)
v0.13.0では、CLIとgatewayメッセージに7つのロケールが追加されました。中国語(簡体字)、日本語、ドイツ語、スペイン語、フランス語、ウクライナ語、トルコ語です。18 ドキュメントは現在zh-Hansのみローカライズされています。ロケールはLC_ALL / LANG環境変数、またはconfig.yaml内の明示的なlocale:キーから解決されます。英語は引き続きデフォルトであり、翻訳がまだカバーしていない文字列のソース・オブ・トゥルースとなります。
profile — 複数の隔離されたHermesインスタンス
profileを使えば、複数の隔離されたHermesインスタンスを持てます。それぞれが独自のconfig、セッション、skill、メモリ、gateway PIDを持ちます。「仕事用Hermes」と「個人用Hermes」を、互いの状態を見せることなく並行して動かす方法です。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
各profileは独自のHERMES_HOME(デフォルトは~/.hermes-<name>/)を持つため、複数のprofileが互いに干渉することなく同時にgatewayを実行できます。63
CLI コマンド
このセクションでは、トップレベルの CLI コマンドについて実践的なリファレンスを提供します。コードに基づく正式なリファレンスについては、上流のCLI Commands Referenceを参照してください。6
グローバルオプション
hermes [global-options] <command> [subcommand/options]
| オプション | 説明 |
|---|---|
--version, -V |
バージョンを表示して終了 |
--profile <name>, -p <name> |
使用する Hermes profile を選択 |
--resume <session>, -r <session> |
セッションIDまたはタイトルでセッションを再開 |
--continue [name], -c [name] |
最新のセッションを再開(またはタイトルで一致) |
--worktree, -w |
隔離されたgit worktreeで開始 |
--yolo |
危険なコマンドの承認プロンプトをバイパス |
--pass-session-id |
セッションIDをエージェントのシステムプロンプトに含める |
トップレベルコマンド
| コマンド | 用途 |
|---|---|
hermes chat |
インタラクティブまたはワンショットのチャット |
hermes model |
デフォルトのプロバイダーとモデルをインタラクティブに選択 |
hermes gateway |
メッセージング gateway の実行・管理 |
hermes setup |
インタラクティブなセットアップウィザード |
hermes auth |
認証情報の管理 — 追加、一覧、削除、リセット、戦略の設定 |
hermes status |
エージェント、認証、プラットフォームのステータスを表示 |
hermes cron |
cron スケジューラーの確認とティック実行 |
hermes webhook |
動的な webhook サブスクリプションの管理 |
hermes doctor |
設定と依存関係の問題を診断 |
hermes dump |
サポート/デバッグ用のコピペ可能なセットアップ概要 |
hermes logs |
エージェント/gateway/エラーログの表示、追跡、フィルタリング |
hermes config |
設定の表示、編集、移行、クエリ |
hermes pairing |
メッセージングペアリングコードの承認・取り消し |
hermes skills |
skill の閲覧、インストール、公開、監査 |
hermes honcho |
Honcho クロスセッションメモリの管理 |
hermes memory |
外部メモリプロバイダーの設定 |
hermes acp |
Hermes を ACP サーバーとして実行(エディタ統合) |
hermes mcp |
MCP サーバー設定の管理、Hermes を MCP サーバーとして実行 |
hermes plugins |
プラグインの管理 |
hermes tools |
プラットフォームごとに有効なツールを設定 |
hermes sessions |
セッションの閲覧、エクスポート、整理、削除 |
hermes insights |
トークン/コスト/アクティビティの分析を表示 |
hermes claw |
OpenClaw 移行ヘルパー |
hermes profile |
profile の管理(複数の隔離インスタンス) |
hermes completion |
シェル補完スクリプトの出力(bash/zsh) |
hermes whatsapp |
WhatsApp ブリッジの設定とペアリング |
hermes version |
バージョン情報の表示 |
hermes update |
最新コードの取得と依存関係の再インストール |
hermes uninstall |
システムから Hermes を削除(--full で設定/データも削除) |
hermes backup |
設定、セッション、skill、メモリの完全バックアップ(v0.9.0+)16 |
hermes import |
バックアップアーカイブからの復元 — マシン間の移行やロールバックに対応(v0.9.0+)16 |
hermes dashboard |
ブラウザベースのエージェント管理用ローカルWebダッシュボードを起動(v0.9.0+)16 |
hermes debug share |
トラブルシューティング用のデバッグレポートをペーストビンにアップロード(v0.9.0+)16 |
hermes chat — メインエントリーポイント
引数なしの hermes でインタラクティブチャットが起動します。hermes chat はオプション付きの明示的な形式です。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"
主なオプション:
| オプション | 説明 |
|---|---|
-q, --query "..." |
ワンショット、非インタラクティブプロンプト |
-m, --model <model> |
この実行でモデルを上書き |
-t, --toolsets <csv> |
カンマ区切りの toolset を有効化 |
--provider <provider> |
プロバイダーを強制指定(全一覧を参照) |
-s, --skills <name> |
このセッションに1つ以上の skill をプリロード |
-v, --verbose |
詳細出力 |
-Q, --quiet |
プログラマティックモード(バナー、スピナー、プレビューなし) |
--resume <session> |
chat から直接セッションを再開 |
--worktree |
隔離されたgit worktreeを作成 |
--checkpoints |
破壊的変更の前にファイルシステム checkpoint を有効化 |
--yolo |
承認プロンプトをスキップ |
--source <tag> |
セッションのソースタグ(デフォルト: cli、統合時は tool を使用) |
--max-turns <N> |
ターンごとのツール呼び出し最大反復回数(デフォルト: 90) |
hermes setup — フルウィザード
フルセットアップウィザードを実行するか、特定のセクションに直接ジャンプできます。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 — 構造化ログクエリ
hermes logs は単なる tail -f よりも強力です。レベル、セッションID、時間範囲によるフィルタリングを同時に実行できます。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
ログファイルは ~/.hermes/logs/ に格納されます。6
- agent.log — すべてのエージェントアクティビティ(API 呼び出し、ツールディスパッチ、セッションライフサイクル、INFO以上)
- errors.log — 警告とエラーのみ(agent.logのフィルタリングされたサブセット)
- gateway.log — メッセージング gateway のアクティビティ(プラットフォーム接続、ディスパッチ、webhook)
ローテーションは Python の RotatingFileHandler により自動的に行われます — agent.log.1、agent.log.2 などを確認してください。6
hermes doctor — 診断
hermes doctor [--fix] は問題が発生した際に最初に実行すべきコマンドです。設定の妥当性、依存関係の存在、API キーの利用可能性、サービスのステータスを確認し、--fix で自動修復を試みることもできます。6
診断結果を他者と共有するには、hermes dump を使用してください。API キーがマスクされたコンパクトなプレーンテキストの概要が生成され、GitHub の issue や Discord スレッドにそのまま貼り付けられます。6
スラッシュコマンド
スラッシュコマンドは、アクティブなチャットセッション(CLI またはメッセージングプラットフォーム)内で実行されます。これらは hermes_cli/commands.py 内の共有 COMMAND_REGISTRY からディスパッチされており、そのため、ほとんどのコマンドはどの環境でも同じように動作します。9
セッション制御
| コマンド | 説明 |
|---|---|
/new(エイリアス /reset) |
新しいセッションを開始 |
/clear |
画面をクリアして新しいセッションを開始 |
/history |
会話履歴を表示 |
/save |
現在の会話を保存 |
/retry |
直前のメッセージを再試行 |
/undo |
直前のユーザー/アシスタントのやり取りを削除 |
/title <name> |
現在のセッションにタイトルを設定 |
/compress |
会話コンテキストを手動で圧縮 |
/rollback [number] |
ファイルシステムのcheckpointを一覧表示または復元 |
/stop |
実行中のすべてのバックグラウンドプロセスを終了 |
/queue <prompt> |
次のターンに向けてプロンプトをキューに追加。注意点: /q は /queue と /quit の両方が要求しているため、最後に登録された方が優先され、実際には /q は /quit に解決されます。常に /queue と明示的に入力してください。9 |
/resume [name] |
名前を付けた以前のセッションを再開 |
/statusbar(エイリアス /sb) |
コンテキスト/モデルのステータスバーを切り替え |
/background <prompt>(エイリアス /bg) |
プロンプトを別のバックグラウンドセッションで実行 |
/btw <question> |
一時的なサイド質問(ツールなし、永続化されない) |
/plan [request] |
同梱の plan skill を読み込み、実行する代わりにプランを記述 |
/branch [name](エイリアス /fork) |
現在のセッションを分岐 |
/goal <target> |
エージェントを目標にロックし、ターンをまたいでもタスクから外れないようにします。Ralph-loop パターンをファーストクラスのプリミティブとして提供。ターン予算を設定可能。v0.13.0 で新規追加。18 |
設定とモデル
| コマンド | 説明 |
|---|---|
/config |
現在の設定を表示 |
/model [model-name] |
現在のモデルを表示または変更 |
/provider |
利用可能なプロバイダーと現在のプロバイダーを表示 |
/personality [name] |
パーソナリティオーバーレイを設定 |
/verbose |
ツールの進捗表示を切り替え |
/reasoning |
推論の負荷と表示を管理 |
/skin |
表示スキン/テーマを表示または変更 |
/voice [on\|off\|tts\|status] |
CLI 音声モードを切り替え |
/yolo |
YOLO モードを切り替え(承認プロンプトをスキップ) |
/fast |
Fast Mode を切り替え — OpenAI および Anthropic モデル向けの優先処理(v0.9.0以降)16 |
/debug |
すべてのプラットフォームでクイック診断を実行(v0.9.0以降)16 |
/model コマンドは、セッション中のプロバイダー切り替えの主役です。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
ツール、Skills、情報
| コマンド | 説明 |
|---|---|
/tools [list\|disable\|enable] [name...] |
現在のセッションのツールを管理 |
/toolsets |
利用可能な toolset を一覧表示 |
/browser [connect\|disconnect\|status] |
ローカル Chrome CDP 接続を管理 |
/skills |
skill の検索、インストール、確認、管理 |
/cron |
cron タスクを管理 |
/reload-mcp |
config.yaml から MCP サーバーをリロード |
/plugins |
インストール済みプラグインを一覧表示 |
/help |
すべてのコマンドを表示 |
/usage |
トークン使用量、コスト、期間を表示 |
/insights |
使用状況の分析を表示(過去30日間) |
/platforms |
メッセージングプラットフォームのステータスを表示 |
/profile |
アクティブな profile 名とホームを表示 |
動的なスキルスラッシュコマンド
インストールされたすべての skill は、自動的にスラッシュコマンドとして公開されます。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
また、config.yaml 内で クイックコマンド を定義し、短い名前を長いプロンプトのエイリアスにすることもできます。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"
その後、CLI で /review、/deploy、/morning と入力するだけで実行できます。
プレフィックスマッチング
コマンドはプレフィックスマッチングをサポートしています。/h と入力すれば /help に解決され、/mod は /model に解決されます。プレフィックスが曖昧な場合は、レジストリ順で最初に登録されたものが優先されます。完全なコマンド名と登録済みのエイリアスは、常にプレフィックスマッチよりも優先されます。9
メッセージング専用コマンド
一部のコマンドはメッセージングプラットフォーム(Telegram、Discord、Slack、WhatsApp、Signal、Email、Home Assistant)でのみ動作します。9
/status— セッション情報を表示/sethome(エイリアス/set-home) — 現在のチャットをプラットフォームのホームとしてマーク/approve [session|always]— 保留中の危険なコマンドを承認/deny— 保留中の危険なコマンドを拒否/update— Hermes Agent を最新版に更新/commands [page]— すべてのコマンドと skill をブラウズ(ページネーション付き)
そして一部は CLI 専用です:/skin、/tools、/toolsets、/browser、/config、/cron、/skills、/platforms、/paste、/statusbar、/plugins。9
ツール&ツールセット
Hermesには、Web検索、ブラウザ自動化、ターミナル実行、ファイル編集、メモリ、委任、RLトレーニング、メッセージ配信、Home Assistant連携などをカバーする幅広い組み込みツールレジストリが標準搭載されています。10 ツールは論理的なツールセットにまとめられており、プラットフォームごとに有効・無効を切り替えられます。
主要カテゴリー
| カテゴリー | 例 | 説明 |
|---|---|---|
| Web | web_search、web_extract |
Web検索とページコンテンツの抽出 |
| ターミナル&ファイル | terminal、process、read_file、patch |
コマンドの実行とファイル操作 |
| ブラウザ | browser_navigate、browser_snapshot、browser_vision |
テキストとビジョンによるインタラクティブなブラウザ自動化 |
| メディア | vision_analyze、video_analyze、image_generate、text_to_speech |
マルチモーダル分析と生成。video_analyze はGeminiを最優先としつつ、互換性のあるマルチモーダルプロバイダーへの拡張サポートを備えています(v0.13.0以降)。18 |
| エージェントオーケストレーション | todo、clarify、execute_code、delegate_task |
プランニング、明確化、コード実行、サブエージェント委任 |
| メモリ&リコール | memory、session_search |
永続メモリ+セッション検索 |
| 自動化&配信 | cronjob、send_message |
スケジュールタスク、アウトバウンドメッセージング |
| 統合 | ha_*、MCP tools、rl_* |
Home Assistant、MCP、RLトレーニング |
代表的なツールセット名には web、terminal、file、browser、vision、image_gen、moa、skills、tts、todo、memory、session_search、cronjob、code_execution、delegation、clarify、homeassistant、rl などがあります。10
ツールの管理
hermes chat --toolsets "web,terminal" # Use specific toolsets
hermes tools # Interactive per-platform tool config
hermes tools --summary # Print enabled-tools summary
ツールはセッション中でも /tools disable <name> および /tools enable <name> で切り替えられます。これによりセッションがリセットされ、新しいツール構成が反映されます。9
ターミナルバックエンド
ターミナルツールは6種類の異なる環境でコマンドを実行できます。10
| バックエンド | ユースケース |
|---|---|
local |
自分のマシンで実行(デフォルト)— 開発、信頼できるタスク |
docker |
隔離されたコンテナ — セキュリティ、再現性 |
ssh |
リモートサーバー — サンドボックス、エージェントを自身のコードから遠ざける |
singularity |
HPCコンテナ — クラスタコンピューティング、rootlessで実行可能 |
modal |
サーバーレスのクラウド実行 |
daytona |
クラウドサンドボックスワークスペース — 永続的なリモート開発環境 |
バックエンドの切り替えは hermes config set terminal.backend <name> または config.yaml で行います。
terminal:
backend: docker # or: local, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
SSHバックエンド(セキュリティ上推奨 — エージェントが自身のコードを変更できなくなります):10
terminal:
backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Dockerバックエンド:
terminal:
backend: docker
docker_image: python:3.11-slim
コンテナリソース(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
container_persistent: true を指定すると、インストールしたパッケージ、ファイル、設定がセッションをまたいで保持されます。10
すべてのコンテナバックエンドはセキュリティを強化した状態で動作します。読み取り専用のルートファイルシステム(Docker)、DAC_OVERRIDE、CHOWN、FOWNER を除くすべてのLinuxケーパビリティを削除、特権昇格なし、PID制限(256プロセス)、フルネームスペース分離、ボリュームによる永続ワークスペースを備えています。10
バックグラウンドプロセス
ターミナルツールは、明示的なプロセス管理を伴うバックグラウンド実行をサポートしています。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
PTYモード(pty=true)を使うと、CodexやClaude CodeのようなインタラクティブなCLIツールを利用できます。10
Sudo
コマンドにsudoが必要な場合、Hermesがパスワードを要求します(セッション中はキャッシュされます)。または ~/.hermes/.env に SUDO_PASSWORD を設定することもできます。10
マルチエージェントKanban(v0.13.0以降)
v0.13.0では、マルチエージェントコラボレーションがファーストクラスのプリミティブに昇格しました。エージェント間および再起動をまたいで、タスク・ステータス・ワーカーIDを追跡する永続的なKanbanボードが提供されます。18 このボードこそが、Hermesワーカーのswarmが死んだハンドオフで停滞することなく、実際に作業を完遂できる仕組みなのです。
| 仕組み | 役割 |
|---|---|
| Heartbeats | 各ワーカーはタスクを保有している間、パルスを送信し続けます。ハートビートが途切れると、そのワーカーは「疑わしい」とマークされ、タスクが再取得可能になります。 |
| Reclaim | 別のワーカーが、放棄されたタスクを引き継げます。タスクの状態と部分出力がそのまま引き継がれます。 |
| ゾンビ検出 | タスクを完了とマークせずに終了したワーカーは、新規タスクの取得を自動でブロックされ、swarmが死んだIDを溜め込まないようにします。 |
| ハルシネーションゲート | ゲートを通過しなかった出力は、完了とマークされる代わりに、理由付きでボードに差し戻されます。 |
タスク単位の max_retries |
壊れやすいと分かっているタスクに対して、デフォルトのリトライ予算を上書きできます。 |
| マルチプロジェクトボード | 1つのHermesホームで、独立した複数のボードをホストできます。 |
Kanbanボードは、ターゲット側では /goal(ロックターゲットのRalphループ)と、スポーンの意味付けでは既存の delegate_task ツールと自然に組み合わさります。その結果、すべてのエージェントが「次に何をすべきか」「誰がやっているか」「何が詰まっているか」について単一の真実の源を共有するswarmパターンが実現します。
スキルシステム
スキルは、エージェントが必要なときに読み込めるオンデマンドの知識ドキュメントです。トークン使用量を最小化するため段階的開示パターンに従っており、agentskills.io のオープン標準と互換性があります。11
すべてのスキルは ~/.hermes/skills/ に格納されます — ここがプライマリディレクトリであり、信頼できる情報源(source of truth)です。新規インストール時には、バンドルされたスキルがリポジトリからコピーされます。Hubからインストールしたスキルやエージェントが作成したスキルもここに置かれます。11
段階的開示
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)
エージェントは、本当に必要になったときにのみスキルの全文を読み込みます。11
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
## 検証
動作を確認する方法。
条件付きアクティベーション
スキルは、利用可能なツールに応じて自身を表示または非表示にできます。これは特にフォールバックスキル——プレミアムツールが利用できないときにのみ表示されるべき無料またはローカルの代替手段——で有用です。11
| フィールド | 動作 |
|---|---|
fallback_for_toolsets |
リストされたtoolsetが利用可能なときスキルを非表示 |
fallback_for_tools |
同上、ただし個別のツールをチェック |
requires_toolsets |
リストされたtoolsetが利用不可なときスキルを非表示 |
requires_tools |
同上、ただし個別のツールをチェック |
例: 組み込みのduckduckgo-searchスキルはfallback_for_toolsets: [web]を使用しています。FIRECRAWL_API_KEYが設定されている場合、webのtoolsetが利用可能となり、エージェントはweb_searchを使用します——DuckDuckGoスキルは非表示のままです。APIキーがない場合、DuckDuckGoスキルが自動的にフォールバックとして表示されます。11
エージェント管理スキル
エージェントはskill_manageツールを介して、自身のスキルを作成、更新、削除できます。これはエージェントの手続き記憶です——非自明なワークフローを把握したとき、そのアプローチを将来の再利用のためにスキルとして保存します。11
エージェントがスキルを作成するタイミング:11 - 複雑なタスク(5回以上のツール呼び出し)を成功裏に完了した後 - エラーや行き詰まりに遭遇し、機能する経路を見つけたとき - ユーザーがそのアプローチを修正したとき - 非自明なワークフローを発見したとき
アクション:11
| アクション | 用途 |
|---|---|
create |
ゼロからの新しいスキル |
patch |
的を絞った修正(推奨——最もトークン効率が良い) |
edit |
大規模な構造的書き換え |
delete |
スキルを完全に削除 |
write_file |
サポートファイルの追加/更新 |
remove_file |
サポートファイルの削除 |
Skill Hub
オンラインレジストリからスキルを閲覧、検索、インストール、管理できます。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
統合されたhubソース:11
| ソース | 例 | 注記 |
|---|---|---|
official |
official/security/1password |
Hermesに付属するオプションのスキル(builtin trust) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Vercelの公開スキルディレクトリ |
well-known |
well-known:https://mintlify.com/docs/.well-known/skills/mintlify |
/.well-known/skills/index.jsonを公開しているサイトからのURLベースの発見 |
github |
openai/skills/k8s |
GitHubリポジトリ/パスからの直接インストール |
clawhub |
— | サードパーティのスキルマーケットプレイス |
claude-marketplace |
— | Claude互換のplugin/marketplaceマニフェスト |
lobehub |
— | LobeHubエージェントカタログの変換 |
デフォルトのGitHub tap(セットアップなしで閲覧可能): openai/skills、anthropics/skills、VoltAgent/awesome-agent-skills、garrytan/gstack。11
セキュリティスキャン
hubからインストールされたすべてのスキルは、データ流出、プロンプトインジェクション、破壊的コマンド、サプライチェーンシグナル、その他の脅威をチェックするセキュリティスキャナを通過します。11
信頼レベル:11
| レベル | ソース | ポリシー |
|---|---|---|
builtin |
Hermesに同梱 | 常に信頼される |
official |
リポジトリ内のoptional-skills/ |
builtin trust、サードパーティ警告なし |
trusted |
信頼されたレジストリ(openai/skills、anthropics/skills) |
より寛容なポリシー |
community |
それ以外すべて | 危険でない検出は--forceで上書き可能。dangerousの判定はブロックされたまま |
--forceはcommunityスキルの危険でないポリシーブロックを上書きできます。dangerousのスキャン判定は上書きされません。11
外部スキルディレクトリ
ローカルのものと並行してスキャンされる追加のスキルディレクトリをHermesに指定できます。11
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
パスは~の展開と${VAR}環境変数の置換をサポートします。外部ディレクトリは読み取り専用です——エージェントがスキルを作成または編集するとき、常に~/.hermes/skills/に書き込みます。両方の場所に同じ名前のスキルが存在する場合、ローカルが優先されます。11
永続記憶
Hermesにはセッションをまたいで持続する、有界かつキュレーションされた記憶があります。エージェントの記憶を構成する2つのファイルは、いずれも~/.hermes/memories/に保存されています。12
| ファイル | 目的 | 文字数制限 |
|---|---|---|
MEMORY.md |
エージェントの個人的なメモ——環境的事実、慣習、学んだこと | 2,200文字(約800トークン) |
USER.md |
ユーザープロファイル——好み、コミュニケーションスタイル、期待 | 1,375文字(約500トークン) |
両者はセッション開始時の凍結スナップショットとしてシステムプロンプトに注入されます。エージェントはmemoryツール——add、replace、remove——を介して自身の記憶を管理します。12
凍結スナップショットパターン: システムプロンプトへの注入はセッション開始時に一度だけ取得され、セッション中に変化することはありません。これは意図的な設計です——LLMのプレフィックスキャッシュをパフォーマンスのために維持するためです。セッション中に行われた変更はすぐにディスクに永続化されますが、システムプロンプトには次のセッションまで反映されません。12
何を保存するか
これらは保存します(エージェントが能動的に行います):12
- ユーザーの好み: 「JavaScriptよりTypeScriptを好む」→ user
- 環境的事実: 「このサーバーはDebian 12でPostgreSQL 16を実行」→ memory
- 修正: 「Dockerコマンドにsudoを使用しない、ユーザーはdockerグループに属している」→ memory
- 慣習: 「プロジェクトはタブ、120文字の行幅、Googleスタイルのdocstringを使用」→ memory
- 完了した作業: 「2026-01-15にデータベースをMySQLからPostgreSQLに移行」→ memory
これらはスキップします:12 - 些細な/明白な情報 - 簡単に再発見できる事実 - 生のデータダンプ(記憶には大きすぎる) - セッション固有の一過性のもの - すでにコンテキストファイルに含まれている情報
セッション検索
MEMORY.mdとUSER.mdに加えて、エージェントはsession_searchツールを使用して過去の会話を検索できます。すべてのCLIとメッセージングのセッションはSQLite(~/.hermes/state.db)にFTS5全文検索とともに保存されています。クエリはGemini Flashによる要約付きで関連する過去の会話を返します。12
| 機能 | 永続記憶 | セッション検索 |
|---|---|---|
| 容量 | 合計約1,300トークン | 無制限(すべてのセッション) |
| 速度 | 即座(システムプロンプト内) | 検索 + LLM要約が必要 |
| 用途 | 常に利用可能な重要な事実 | 特定の過去の会話を見つける |
| 管理 | エージェントによる手動キュレーション | 自動——すべてのセッションを保存 |
| トークンコスト | セッションごとに固定(約1,300トークン) | オンデマンド |
外部メモリプロバイダ
MEMORY.mdとUSER.mdを超えるより深い永続記憶のために、Hermesには8つの外部メモリプロバイダプラグインが同梱されています:Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover、Supermemory。12
外部プロバイダは組み込み記憶と並行して動作し(置き換えではない)、知識グラフ、セマンティック検索、自動的な事実抽出、セッションをまたいだユーザーモデリングなどの機能を追加します。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)
一度にアクティブにできる外部プロバイダは1つだけです。組み込み記憶は常にアクティブです。6
セッション自動再開(v0.13.0+)
v0.13.0は、エージェントの中断を生存可能にします。gatewayは再起動後に中断されたセッションを自動的に再開します。/updateによる再起動はアップグレードを通してセッション状態を保持します。開発中のソースファイルのリロードは、新しいセッションを強制する代わりにアクティブなセッションを生かしたまま保ちます。18 実用的な効果: 長時間動作するgatewayの作業やcron駆動のジョブが、プロセスの再起動時にコンテキストウィンドウをリセットしなくなります。
Checkpoints v2(v0.13.0+)
状態の永続化はv0.13.0で真の枝刈り、ディスクのガードレール、孤立したシャドウリポジトリの排除を備えた単一ストア設計として書き直されました。18 以前のcheckpointシステムは長時間動作するprofileをまたいでディスクに状態を蓄積していました。v2ストアはローカルcheckpointストレージに厳格な上限を設け、その増大を引き起こしていた重複した記録を排除します。ユーザー側の設定変更は不要です。次のcheckpoint書き込みでv2のパスが使用されます。
パーソナリティとSOUL.md
SOUL.mdはHermesインスタンスの主要なアイデンティティです。システムプロンプトのスロット#1を占め、ハードコードされたデフォルトのアイデンティティを置き換えます。13
Hermesは~/.hermes/SOUL.md(カスタムプロファイルの場合は$HERMES_HOME/SOUL.md)にデフォルトのSOUL.mdを自動的にシードします。既存のユーザーファイルは決して上書きされません。HermesはHERMES_HOMEからのみSOUL.mdを読み込み、現在の作業ディレクトリは参照しません。これにより、プロジェクト間でパーソナリティが予測可能になります。13
SOUL.mdに含めるべきもの
恒久的な声とパーソナリティのガイダンスに使用してください。13 - トーン - コミュニケーションスタイル - 率直さのレベル - デフォルトのインタラクションスタイル - スタイル上避けるべきこと - Hermesが不確実性、意見の相違、曖昧さをどう扱うか
あまり使わないもの:13 - 一回限りのプロジェクト指示 - ファイルパス - リポジトリの規約 - 一時的なワークフローの詳細
これらはSOUL.mdではなくAGENTS.mdに属します。
SOUL.md vs AGENTS.md
これはHermesのアイデンティティ管理において最も重要な区別です。13
SOUL.md — アイデンティティ、トーン、スタイル、コミュニケーションのデフォルト、パーソナリティレベルの振る舞い。
AGENTS.md — プロジェクトのアーキテクチャ、コーディング規約、ツールの好み、リポジトリ固有のワークフロー、コマンド、ポート、パス、デプロイメントノート。
便利なルール:どこへでも付いてくるべきものはSOUL.mdに、プロジェクトに属するものはAGENTS.mdに。13
組み込みパーソナリティ
Hermesには/personalityで切り替えられる組み込みパーソナリティが付属しています。13
| 名前 | 説明 |
|---|---|
helpful |
フレンドリーで汎用的なアシスタント |
concise |
簡潔で要点を押さえた応答 |
technical |
詳細で正確な技術エキスパート |
creative |
革新的で枠にとらわれない発想 |
teacher |
わかりやすい例を用いる忍耐強い教育者 |
kawaii |
かわいい表現、キラキラ、熱意 |
catgirl |
猫っぽい表現の猫ちゃん |
pirate |
技術に精通した海賊船長Hermes |
shakespeare |
劇的な趣のある吟遊詩人風の散文 |
surfer |
チルなブロのバイブス |
noir |
ハードボイルドな探偵のナレーション |
uwu |
uwu語による最大級のかわいさ |
philosopher |
あらゆる問いへの深い熟考 |
hype |
最大限のエネルギー |
カスタムパーソナリティは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.
その後、/personality codereviewerで切り替えます。
SOUL.md vs /personality
SOUL.mdはベースラインの声です。/personalityはセッションレベルのオーバーレイです。13 実用的なデフォルトのSOUL.mdを維持しつつ、チュータリング会話には/personality teacher、ブレインストーミングには/personality creativeを使用しましょう。
Nous Tool Gateway(v0.10.0以降)
Hermes Agent v0.10.0(2026-04-16)以降、有料のNous Portalサブスクライバーは、既存のPortal認証情報を通じて、厳選されたツール群へのマネージドアクセスが得られます。追加で管理するAPIキーは不要です。20 Hermes CLI自体はMITライセンスのままで、完全にオープンソースです。変更されたのは、Portal認証によってモデル推論以上のものがアンロックされる点です。
ゲートウェイに含まれるもの
| ツール | プロバイダ | ユースケース |
|---|---|---|
| Web検索 | Firecrawl | 最新情報を必要とするエージェント向けの取得 |
| 画像生成 | FAL / FLUX 2 Pro | FALキーを設定せずにインラインで画像を生成 |
| Text-to-speech | OpenAI TTS | メッセージングゲートウェイでの音声出力 |
| ブラウザ自動化 | Browser Use | ヘッドレスナビゲーションとスクレイピング |
仕組み
ゲートウェイは新しいuse_gateway設定フィールドを通じてツールごとにオプトインします。hermes authにPortal認証情報があり、かつそのツールでゲートウェイを有効にしている場合、そのツールの呼び出しはPortal経由でルーティングされます。それ以外の場合は、(存在すれば)直接のAPIキーが使用されます。
# 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
ランタイム優先順位: ゲートウェイが利用可能で、かつツールがuse_gateway: trueの場合、直接のAPIキーも設定されていてもHermesはゲートウェイを優先します。これは課金面で重要です。ゲートウェイ呼び出しはPortalサブスクリプションから引き落とされ、直接のAPIキーの残高からは引かれません。
ゲートウェイの有効化
hermes model # select Nous Portal (OAuth flow)
hermes tools # per-platform tool picker integrates gateway tools
hermes status # confirms gateway/subscription detection
別途のhermes subscribeやhermes login --portalコマンドはありません。サブスクリプションは、すでにhermes authに保存されているPortal OAuth認証情報から自動的に検出されます。
価格とアクセス
価格とティア名はNous Portalの価格ページ(https://portal.nousresearch.com/pricing)に掲載されています。本ガイドではティアを列挙しません。これらはHermes CLIではなくPortal製品の責任範囲であり、Hermesのリリースとは独立して変更されるためです。https://portal.nousresearch.com/からサインアップし、現在のティアは価格ページでご確認ください。
廃止のお知らせ
HERMES_ENABLE_NOUS_MANAGED_TOOLS環境変数はv0.10.0で削除されました。マネージドツールは、ツールごとのuse_gateway設定フィールドで有効化され、Portalサブスクリプション状態に応じてゲートされるようになりました。20
位置づけ:このリリースがそうではないこと
Hermes Agent CLIはサブスクリプションの背後にゲートされていません。プロジェクトは引き続きMITライセンスで、コア機能すべて(CLI、skills、メモリ、メッセージングゲートウェイ、cron、MCP、ローカルダッシュボード、すべてのプロバイダに対するBYOK)は誰にも支払うことなくエンドツーエンドで動作します。v0.10.0は、すでにNous Portalに支払っているユーザー向けの利便性のあるパスを追加するものであり、無料パスから何かを取り除くものではありません。
メッセージングゲートウェイ
Hermesは、単一のゲートウェイプロセスから20のメッセージングプラットフォームに接続する長時間稼働のゲートウェイプロセスとして実行できます: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、そして汎用のWebhookアダプタです。3191718 v0.9.0ではBlueBubbles経由のiMessage(自動webhook登録、セットアップウィザード、クラッシュ耐性)と、エンタープライズアプリ向けWeCom callbackモードを備えたiLink Bot APIによるネイティブWeChatサポートが追加されました。16 v0.11.0ではQQBotが追加されました。19 v0.12.0ではMicrosoft TeamsとTencent Yuanbaoが追加されました。17 v0.13.0では20番目のプラットフォームとしてGoogle Chatが追加され、同じプラガブルアダプタアーキテクチャの上に乗っています。IRCとMicrosoft Teamsも、汎用のenv_enablement_fn / cron_deliver_env_varプラグインフックを備えた新しいアダプタパターンに移行されました。18
セットアップ
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)
インタラクティブなセットアップは、各プラットフォームの接続を案内します:APIトークン、ボットID、チャンネルマッピング、許可リスト。6
メッセージの流れ
アップストリームのアーキテクチャドキュメントより: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
すべてのメッセージングプラットフォームは、CLIと同じAIAgent会話ループを通じて動作します。 これがスラッシュコマンドが両方の場所で同一に機能する理由であり、Telegramでスケジュールされたcronジョブがその出力をDiscordに配信できる理由です。プラットフォームの違いはエッジ部分にあるだけです。3
ユーザー認証とペアリング
hermes pairing list # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending
ペアリングコードは、見知らぬ人がゲートウェイに話しかけるのを防ぎます。ユーザーがメッセージングプラットフォームからペアリングコードを送信し、hermes pairing approveで承認すると、それ以降は認証された状態になります。6
スケジュールタスク(Cron)
Hermesは、ジョブがシェルコマンドではなくエージェントタスクであるファーストクラスのcronシステムを備えています。スケジュールされた各ジョブは、設定されたプロンプト、オプションでアタッチされたskillsを伴う新しいAIAgentを通じて実行され、結果を任意のプラットフォームに配信します: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
または、メッセージングチャット内で会話的に作成することもできます:
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
エージェントは、自身のツールを介してcronジョブをセットアップします。ジョブはJSONに永続化され、再起動後も維持されます。3
MCP Integration
Hermesは、Model Context Protocolをクライアントとサーバーの両方として利用できます。6
クライアントとして — Hermesを外部のMCPサーバーに接続し、ツール群を拡張できます。
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
または、config.yamlで手動設定することもできます。14
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
サーバーとして — Hermesの会話を他のエージェントに公開できます。
hermes mcp serve
hermes mcp serve -v # Verbose
コンテキスト圧縮
Hermesは長い会話を自動的に圧縮し、モデルのコンテキストウィンドウ内に収まるようにします。圧縮用のサマライザーは独立したLLM呼び出しであり、任意のプロバイダーやエンドポイントを指定できます。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
プロバイダーオプション4
summary_provider |
summary_base_url |
結果 |
|---|---|---|
auto(デフォルト) |
未設定 | 利用可能な最適のプロバイダーを自動検出 |
nous / openrouterなど |
未設定 | 指定プロバイダーを強制使用し、その認証情報を利用 |
| 任意 | 設定済み | カスタムエンドポイントを直接利用(プロバイダー指定は無視) |
summary_modelは、メインモデルと同等以上のコンテキスト長をサポートする必要があります。圧縮対象として会話の中間部分全体を受け取るためです。4
バジェット圧迫の警告
エージェントが多数のツール呼び出しを伴う複雑なタスクを処理する際、自覚のないままイテレーション予算(デフォルト:90ターン)を使い切ってしまうことがあります。バジェット圧迫機能は、モデルに対して自動的に警告を発します。4
| しきい値 | レベル | モデルが受け取る内容 |
|---|---|---|
| 70% | 注意 | [BUDGET: 63/90. 27 iterations left. Start consolidating.] |
| 90% | 警告 | [BUDGET WARNING: 81/90. Only 9 left. Respond NOW.] |
ストリームタイムアウト
LLMのストリーミング接続には2つのタイムアウト層があり、ローカルプロバイダー(localhost、LAN IP)に対しては自動調整されます。4
| タイムアウト | デフォルト | ローカルプロバイダー | 環境変数 |
|---|---|---|---|
| ソケット読み取りタイムアウト | 120秒 | 1800秒に自動引き上げ | HERMES_STREAM_READ_TIMEOUT |
| ストリーム停滞検出 | 180秒 | 自動無効化 | HERMES_STREAM_STALE_TIMEOUT |
| API呼び出し(非ストリーミング) | 1800秒 | 変更なし | HERMES_API_TIMEOUT |
ローカルエンドポイントに対してソケット読み取りタイムアウトが30分まで引き上げられているのは、ローカルのLLMが大きなコンテキストのprefillで最初のトークン生成までに数分かかる場合があるためです。4
ローカルWebダッシュボード(v0.9.0+)
Hermes Agentをローカルで管理するためのブラウザベースのダッシュボードです。設定ファイルやターミナルに触れることなく、設定の変更、セッションのモニタリング、skillの閲覧、gatewayの管理などができます。16 hermes dashboardで起動します。GUIを好む新規ユーザーにとって、最も導入しやすい選択肢となるでしょう。
バックグラウンドプロセスのモニタリング(v0.9.0+)
watch_patternsでは、バックグラウンドプロセスの出力を監視するパターンを設定し、マッチしたタイミングでリアルタイム通知を受け取れます。16 エラーの監視、特定イベント(「listening on port」など)の待機、ビルドログの監視などを、ポーリングなしで実現できます。v0.8.0で追加されたnotify_on_complete(バックグラウンドタスク完了時に通知)と組み合わせれば、Hermesは完全なバックグラウンドプロセス可観測性レイヤーを備えることになります。15
プラガブルなcontext engine(v0.9.0+)
コンテキスト管理はhermes pluginsを介したプラガブルなスロットになりました。各ターンでエージェントが参照する内容を制御するカスタムcontext engine(フィルタリング、要約、ドメイン特化のコンテキスト注入など)を差し替えできます。16 これにより、コンテキスト戦略がコアのエージェントループから切り離され、プロジェクトごと、ドメインごとのコンテキストカスタマイズが可能になります。
バックアップとリストア(v0.9.0+)
hermes backupは、設定、セッション、skill、メモリの完全なアーカイブを作成します。hermes importはバックアップアーカイブからの復元を行います。16 マシン間の移行、大きな変更前のスナップショット作成、動作確認済みの設定をチームメンバーと共有する際などに活用できます。
Termux / Androidサポート(v0.9.0+)
HermesはTermux経由でAndroid上でネイティブ動作します。インストールパスの調整、モバイル画面向けのTUI最適化、音声バックエンドのサポート、そして/imageコマンドがデバイス上で利用できます。16
セキュリティ強化(v0.13.0+)
v0.13.0では、8件のP0セキュリティ問題が解消され、ユーザーにとって有利な方向にデフォルトが1つ変更されました。18
| 修正内容 | 変更点 |
|---|---|
| シークレット秘匿化のデフォルトON | 従来はオプトインでした。ログとhermes debug shareのアップロードでは、明示的に無効化されない限りシークレットが秘匿化されます。v0.12.0ではペイロード破損の報告を受けてデフォルトで秘匿化が無効化されていましたが、v0.13.0では安全寄りのベースラインとして再度有効化されています。 |
| Discordクロスギルド DMバイパス(CVSS 8.1) | Discordのロール許可リストがギルド単位のスコープになりました。これにより、あるギルドでのユーザーロールが全ギルドにわたるDMを許可してしまう経路が塞がれました。 |
| WhatsAppデフォルト制限 | WhatsAppアダプターはデフォルトで見知らぬ相手を拒否し、セルフチャットでは応答しません。 |
| MCP OAuthのTOCTOUウィンドウ | MCP OAuthフローでの認証情報保存中に存在した競合状態を解消しました。 |
CLI auth.jsonのTOCTOU |
CLI認証ストアの認証情報書き込み処理における同種のTOCTOUウィンドウを解消しました。 |
| ブラウザSSRFフロア | ハイブリッドルーティングは、169.254.169.254およびそれに準ずるアドレスへ到達しようとするリクエストに対してクラウドメタデータSSRFフロアを適用します。 |
| Cronプロンプトインジェクションスキャン | 組み立てられたプロンプト(読み込まれたskillコンテンツを含む)は、cronジョブ実行前にプロンプトインジェクションのスキャンを受けます。 |
hermes debug shareの秘匿化 |
デバッグ共有のアップロードでは、書き込み時だけでなくアップロード時にもログ内容が秘匿化されます。 |
Hermesのデプロイメントを運用している場合、v0.13.0は単なる機能追加リリースではなく、セキュリティ関連のアップグレードとして扱うべきです。Discordのクロスギルドバイパスと2つのTOCTOUウィンドウは、以前のバージョンでは悪用可能なものです。
実務者向けアーキテクチャ
このセクションは、内部で何が起きているかを理解し、デバッグや拡張、パフォーマンスに関する判断ができるようになりたい方を対象としています。upstream のアーキテクチャドキュメントを統合した内容です。3
エントリポイント → AIAgent
Hermes のすべてのエントリポイントは、最終的に 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 │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────────────┘
図は upstream のアーキテクチャドキュメントを基に作成しました。3
バナーに表示される「47 tools / 20 toolsets」と「28 tools」の違いについて。 「47 tools」というのは、upstream リポジトリにあるツールレジストリの総数です。つまり、Hermes がソースコードを同梱しているすべての toolset にわたるすべてのツールの総数となります。実際に動いている CLI の起動バナーには、これより小さい数字が表示されます(このガイドの検証に使用したインストール環境では 28 tools / 89 skills と表示されました)。これはバグではありません。多くの toolset はオプトイン方式で、config.yaml の toolsets: 配下で明示的に有効化する必要があります。たとえばメッセージングプラットフォームのアダプター、ブラウザ自動化、重めのスクレイピングツールなどが該当します。レジストリの合計値は「利用可能なもの」、バナーの数字は「現在のプロファイルで有効化されているもの」を表しているのです。アクティブな toolset は hermes tools --list で確認でき、個別の toolset の有効化/無効化は ~/.hermes/config.yaml の toolsets: ブロックで行います(実行中のセッション内であれば /tools list / /tools enable <name> / /tools disable <name> も使えます。ツールを削除するとセッションリセットがトリガーされ、エージェントがツールマニフェストを再構築します)。
3 つの API モード
Hermes はプロバイダーごとの差異を 3 つの API モードに抽象化しており、ランタイムで自動選択されます。3
| API mode | 利用するプロバイダー |
|---|---|
chat_completions |
OpenRouter、z.ai、Kimi、MiniMax、DeepSeek、Alibaba、ほとんどのカスタムエンドポイント、OpenAI 互換サーバー全般 |
codex_responses |
OpenAI Codex(ChatGPT OAuth 経由) |
anthropic_messages |
Anthropic API(ネイティブ)、Anthropic OAuth、Anthropic 互換プロキシ |
runtime_provider.py のリゾルバは、(provider, model) タプルを (api_mode, api_key, base_url) にマッピングし、18 以上のプロバイダーに対応します。OAuth フロー、認証情報プール、エイリアス解決にも対応しています。3
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
upstream のアーキテクチャページより引用しました。3
プロンプト構築の順序
プロンプトスタックは次の要素で構成されます。13
SOUL.md(エージェントのアイデンティティ — 利用できない場合はビルトインのフォールバックを使用)- ツール対応の挙動ガイダンス
- メモリ/ユーザーコンテキスト(
MEMORY.md、USER.md) - skill ガイダンス
- コンテキストファイル(
AGENTS.md、.cursorrules) - タイムスタンプ
- プラットフォーム固有のフォーマットヒント
/personalityなどのオプションのシステムプロンプトオーバーレイ
SOUL.md が土台となり、その他はすべてその上に積み重なります。13
セッションストレージ
FTS5 全文検索を備えた SQLite ベースのセッションストレージです。セッションには系統トラッキング(圧縮をまたいだ親子関係)、プラットフォームごとの分離、競合処理を伴うアトミック書き込みが備わっています。3
プラグインシステム
ディスカバリーソースは 3 つあります。~/.hermes/plugins/(ユーザー)、.hermes/plugins/(プロジェクト)、そして pip のエントリーポイントです。プラグインはコンテキスト API を介して、ツール、フック、CLI コマンドを登録します。メモリプロバイダーは 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
設計原則
upstream のアーキテクチャページから引用します。3
| 原則 | 実務における意味 |
|---|---|
| プロンプトの安定性 | システムプロンプトは会話の途中で変わりません。明示的なユーザーアクション(/model)以外、キャッシュを破壊するような変更は発生しません |
| 観測可能な実行 | すべてのツール呼び出しはコールバックを介してユーザーから見えます。CLI ではスピナー、ゲートウェイではチャットメッセージで進捗が更新されます |
| 割り込み可能 | API 呼び出しやツール実行は、ユーザー入力やシグナルによって実行中にキャンセルできます |
| プラットフォーム非依存のコア | 1 つの AIAgent クラスが CLI、ゲートウェイ、ACP、バッチ、API サーバーすべてに対応します。プラットフォーム固有の差異はエントリポイントに閉じ込められています |
| 疎結合 | オプショナルなサブシステム(MCP、プラグイン、メモリプロバイダー、RL 環境)はレジストリパターンと check_fn ゲーティングを利用しており、ハードな依存関係にはなっていません |
| プロファイル分離 | 各プロファイルは独自の HERMES_HOME、config、メモリ、セッション、ゲートウェイ PID を持ちます。複数プロファイルの同時実行が可能です |
OpenClaw からの移行
Hermes Agent は OpenClaw の後継です。既存の 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 はデフォルトで ~/.openclaw から読み取り(レガシーの ~/.clawdbot および ~/.moldbot ディレクトリも自動検出)、~/.hermes に書き込みます。6
直接インポートされるもの(30 以上のカテゴリー): SOUL.md、MEMORY.md、USER.md、AGENTS.md、4 つのソースディレクトリの skill、デフォルトモデル、カスタムプロバイダー、MCP サーバー、メッセージングプラットフォームのトークンと許可リスト(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、エージェントのデフォルト設定(推論努力、圧縮、human delay、タイムゾーン、サンドボックス)、セッションリセットポリシー、承認ルール、TTS 設定、ブラウザ設定、ツール設定、exec タイムアウト、コマンド許可リスト、ゲートウェイ設定、3 つのソースから取得された API キー。6
手動レビュー用にアーカイブされるもの: cron ジョブ、プラグイン、hooks/webhooks、メモリバックエンド(QMD)、skill レジストリ設定、UI/identity、ロギング、マルチエージェント構成、チャネルバインディング、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOTSTRAP.md。6
API キーの解決は、優先順に 3 つのソースをチェックします。config の値 → ~/.openclaw/.env → auth-profiles.json の順です。6
トラブルシューティング
“API key not set”
hermes model を実行してプロバイダーをインタラクティブに設定するか、hermes config set OPENROUTER_API_KEY your_key を実行してください。hermes doctor コマンドで、どのキーが不足しているのかを正確に確認できます。7
起動時に「Context limit: 2048 tokens」(ローカルモデル)
Hermes はサーバーの /v1/models エンドポイントからコンテキスト長を自動検出しますが、多くのローカルサーバーは低めのデフォルト値を返します。config.yaml で明示的に設定してください。2
model:
default: your-model
provider: custom
base_url: http://localhost:11434/v1
context_length: 32768
ツール呼び出しが実行されずテキストとして表示される
サーバー側でツール呼び出しが有効化されていないか、サーバーの実装ではモデルがツール呼び出しに対応していません。2
| サーバー | 修正方法 |
|---|---|
| llama.cpp | 起動コマンドに --jinja を追加 |
| vLLM | --enable-auto-tool-choice --tool-call-parser hermes を追加 |
| SGLang | --tool-call-parser qwen(または適切なパーサー)を追加 |
| Ollama | ツール呼び出しはデフォルトで有効。ollama show <model> でモデルが対応しているか確認してください |
| LM Studio | 0.3.6 以降にアップデートし、ネイティブのツールサポートを持つモデルを使用してください |
応答が文の途中で途切れる
考えられる原因は 2 つあります。2
- サーバー側の出力上限が低い(
max_tokens)— SGLang のデフォルトは応答あたり 128 トークンです。サーバー側で--default-max-tokensを指定するか、config.yamlでmodel.max_tokensを設定してください。 - コンテキストの枯渇 — モデルがコンテキストウィンドウを使い切った状態です。
model.context_lengthを増やすか、Hermes のコンテキスト圧縮を有効にしてください。
WSL2 から Windows 上のモデルサーバーへの接続で「Connection refused」
WSL2 は独自のサブネットを持つ仮想ネットワークアダプターを使用しているため、WSL2 内の localhost は Linux VM を指し、Windows ホストではありません。選択肢は 2 つあります。2
ミラーリングネットワーク(Windows 11 22H2 以降):%USERPROFILE%\.wslconfig を編集します。
[wsl2]
networkingMode=mirrored
その後 wsl --shutdown してから再起動してください。これで localhost が双方向で機能します。
ホスト IP のフォールバック(古い Windows 環境):WSL2 内から Windows ホストの IP を取得し、localhost の代わりに使用します。
ip route show | grep -i default | awk '{ print $3 }'
# その IP を base_url のホストとして使用
加えて、モデルサーバーは 127.0.0.1 ではなく 0.0.0.0 にバインドする必要があります。Ollama では OLLAMA_HOST=0.0.0.0 を設定し、llama-server や SGLang では --host 0.0.0.0 を追加し、LM Studio では「Serve on Network」を有効化してください。2
すべてはどこにあるのか?
ここで頼りになるのが hermes status と hermes dump です。hermes logs list ですべてのログファイルとそのサイズが表示されます。hermes config path は config ファイルの場所を、hermes config env-path は .env の場所を表示します。6
FAQ
Hermes Agent と Claude Code の違いは?
Claude Code は Anthropic 公式の CLI で、Anthropic のモデルに固定されています。一方、Hermes Agent は Nous Research が開発したオープンソースのエージェントフレームワークで、OpenAI 互換のあらゆるプロバイダー — Nous Portal、OpenRouter、Anthropic、GitHub Copilot、z.ai、Kimi、MiniMax、DeepSeek、Hugging Face、Google、あるいは自前のセルフホストエンドポイント — で動作します。12 さらに Hermes には Telegram/Discord/Slack/WhatsApp/Signal 向けのメッセージングゲートウェイも同梱されており、これは Claude Code にはない機能です。
Anthropic の API key で Hermes を使えますか?
はい、3 つの方法があります。2
~/.hermes/.envにANTHROPIC_API_KEYを設定し、hermes chat --provider anthropic --model claude-sonnet-4-6を実行hermes modelを実行して Anthropic を選択 — 利用可能であれば Hermes が Claude Code の認証情報ストアを使用します- フォールバックとして手動で
ANTHROPIC_TOKEN(setup-token または OAuth token)を設定
同じマシンですでに Claude Code を使用している場合は、選択肢 2 が推奨されます。リフレッシュ可能な Claude 認証情報をリフレッシュ可能な状態のまま保てるためです。
会話を失わずにプロバイダーを切り替えるには?
セッション内で /model provider:model を使用してください。会話履歴、メモリ、スキルはすべて引き継がれます。9
/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5
Anthropic を設定したが vision/web/compression が動作しない
補助モデルのフォールバックに引っかかっています。Vision、Web 要約、圧縮、その他のサイドタスクは別の補助 LLM を使用しており、デフォルトでは自動検出(OpenRouter → Nous → Codex)経由で Gemini Flash になります。これらが何も設定されておらず、Anthropic のみセットアップされている場合、これらの機能は静かに劣化します。4
修正方法:補助タスク用に OPENROUTER_API_KEY を追加するか、補助スロットをメインプロバイダーに使うよう再設定してください。なお、コンテキスト圧縮は独自のトップレベル compression: ブロックに置かれ、auxiliary.compression.provider ではなく summary_provider を受け取ります — auxiliary.compression スロットは timeout のみを公開します。完全な修正例:
auxiliary:
vision: { provider: "main" }
web_extract: { provider: "main" }
compression:
summary_provider: "main"
SOUL.md と AGENTS.md の違いは?
SOUL.md はエージェントのアイデンティティ — トーン、スタイル、コミュニケーションのデフォルト — を表します。~/.hermes/SOUL.md に置かれ、どこへ行ってもあなたについてきます。AGENTS.md はプロジェクト固有のもの — アーキテクチャ、規約、コマンド、パス — で、プロジェクトディレクトリに置かれます。13 どこにでもついてくるべきものなら SOUL.md、プロジェクトに属するものなら AGENTS.md です。
複数の Hermes インスタンスを並行して動かすには?
profile を使います。各 profile は独自の HERMES_HOME、config、メモリ、セッション、ゲートウェイ PID を持ちます。6
hermes profile create work --clone
hermes profile use work # 固定デフォルト
hermes -p work chat -q "..." # 切り替えずに単発実行
hermes profile alias work --name h-work # ラッパースクリプト
Hermes はローカル LLM に対応していますか?
はい、custom エンドポイント経由で対応しています。Hermes は OpenAI 互換のあらゆるサーバーで動作します:Ollama、vLLM、SGLang、llama.cpp/llama-server、LM Studio、LocalAI、Jan、あるいは自前のサーバー。2 サーバー別のセットアップは Custom & Self-Hosted Endpoints を参照してください。
起動バナーに表示されるツール数がガイド記載の数より少ないのはなぜ?
ガイドではアップストリームのアーキテクチャレジストリを基に 47 ツール / 20 toolset と記載しています — これは Hermes が全 toolset 分のソースコードとして同梱しているツールの総数です。実行中のインストールでバナーに表示される数(このガイドの参照インストールでは 28 ツール)はそれより少なくなりますが、これは Hermes が起動時にデフォルトの toolset セットのみを有効化するためです。多くの toolset はオプトインで、メッセージングゲートウェイのアダプター、ブラウザ自動化、重めのスクレイピングスタック、いくつかの特殊な統合は、~/.hermes/config.yaml の toolsets: 配下に明示的に列挙して初めてロードされます。レジストリの合計=「有効化すれば利用可能なもの」、バナーの合計=「現在の profile が実際にロードしているもの」です。hermes tools --list で、どの toolset が有効で、どれが利用可能だが無効化されているかを確認できます。個別の toolset は実行時に /tools enable <name> と /tools disable <name> で切り替えられます(無効化するとセッションリセットがトリガーされ、新しい構成でエージェントがツールマニフェストを再構築します)。
プライマリプロバイダーが失敗したとき、Hermes はどうモデルフォールバックを処理しますか?
config.yaml に fallback_model ブロックを設定してください。2
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
プライマリが失敗した場合(レート制限、サーバーエラー、認証失敗)、Hermes は会話履歴を失うことなくセッションの途中でフォールバックに切り替えます。発動はセッションあたり最大 1 回までです。
エージェントは時間とともに自分のスキルを改善できますか?
はい — それが Hermes Agent の「self-improving(自己改善)」たる所以です。エージェントは skill_manage ツールを通じてスキルを作成、更新、削除できます。エージェントが自明でないワークフローを見つけ出すと、そのアプローチをスキルとして保存し、将来の再利用に備えます。11 エージェントは複雑なタスク(ツール呼び出し 5 回以上)を終えたあと、エラーに直面して動作する経路を見つけたとき、あなたがアプローチを修正したとき、または自明でないワークフローを発見したときにスキルを作成します。
IDE 統合はありますか?
はい — Hermes は VS Code、Zed、JetBrains 向けの ACP(Agent Client Protocol)サーバーとして動作します。6
pip install -e '.[acp]'
hermes acp
変更履歴
| 日付 | 変更内容 | 出典 |
|---|---|---|
| 2026-05-07 | Guide v1.5: v0.13.0(2026年5月7日)— Tenacityリリースを追加。目玉は、永続的なマルチエージェントKanbanボード(heartbeat、reclaim、ゾンビ検出、ハルシネーションゲート、タスクごとのmax_retries、マルチプロジェクトボード)で、スウォームを委譲パターンではなくファーストクラスのプリミティブへと昇格させます。/goalコマンドは、ターンをまたいでエージェントをターゲットにロックします(Ralphループパターンをスラッシュコマンド化)。新しいvideo_analyzeツールは、Gemini優先で互換モデルにも拡張可能です。xAI Custom Voices TTSプロバイダーは音声クローニングに対応。CLIとgatewayメッセージ向けの7言語i18n(zh-Hans、ja、de、es、fr、uk、tr)に対応(ドキュメントはzh-Hansのみ)。Google Chatが20番目のメッセージングプラットフォームとしてpluggableアダプターパターン経由で追加され、IRCとMicrosoft Teamsも同パターンへ移行。ProviderProfile ABC + plugins/model-providers/ により、コア変更なしでサードパーティプロバイダーをpluggableに追加可能に。gateway再起動、/update、ソースファイルのリロードをまたぐセッション自動再開。単一ストア設計、実プルーニング、ディスクガードレールを備えたCheckpoints v2への書き直し。8件のP0セキュリティ修正:シークレット編集のデフォルト有効化、Discordクロスギルド DMバイパス(CVSS 8.1)、WhatsAppのstranger-reject + self-chat-mute、MCP OAuth TOCTOU、CLI auth.json TOCTOU、ブラウザSSRFフロア、cronのプロンプトインジェクションスキャン、hermes debug shareの編集処理。Python/JSON/YAML/TOML向けの書き込み後lint、cronのno_agentスクリプト専用モード、Slack/Telegram/Mattermost/Matrix/DingTalkにわたるプラットフォームallowlist、MCPの機能強化(SSEトランスポート、OAuthフォワーディング、画像MEDIAタグ)。v0.12.0以降の統計:864コミット、マージ済みPR 588件、変更ファイル829件、コミュニティコントリビューター295名、クローズ済みissue 282件(P0が13件、P1が36件)。 |
18 |
| 2026-05-06 | Guide v1.4: v0.12.0(2026年4月30日)— Curatorリリースを追加。目玉は、gatewayのcron tickerで動作する自律的バックグラウンドCurator(デフォルト7日サイクル)で、ルーブリックに基づいてスキルライブラリを採点し、不要なスキルをプルーニングし、関連スキルを統合し、実行ごとのレポートを書き出します。Hermesはアクティブセッションの合間に自身をメンテナンスするのです。自己改善ループはルーブリックベースの採点、アクティブ更新バイアス、適切なランタイム継承、メモリとスキルに限定したスコープ付きtoolsetへとアップグレード。4つの新しい推論プロバイダー:GMI Cloud、Azure AI Foundry、MiniMax OAuth、Tencent Tokenhub。LM Studioがファーストクラスへ昇格。リモートモデルカタログのマニフェストはリリースなしで自動更新されるようになりました。2つの新メッセージングプラットフォーム:Microsoft Teams(19番目、pluggable gatewayアーキテクチャ経由)とTencent Yuanbao(18番目、ネイティブテキスト + メディア)。バンドルスキル付きのPKCE OAuth経由のネイティブSpotify、通話と文字起こし向けのGoogle Meetプラグイン、Piperローカル TTSプロバイダー。ComfyUI v5 + TouchDesigner-MCPがオプションからデフォルトバンドルへ移行。新スキル:Humanizer、claude-design、design-md、airtable。CLIの追加:hermes -zワンショットモード、hermes update --checkプリフライト、/reload-skillsスラッシュコマンド、pluggableなビジーインジケーターのスタイル。遅延エージェント初期化と遅延importにより、TUIのコールドスタート体感は約57%短縮。セキュリティ:ペイロード破損を防ぐためシークレット編集はデフォルトで無効化、復旧不能コマンドへのhardline blocklist。統計:1,096コミット、マージ済みPR 550件、コミュニティコントリビューター213名。 |
17 |
| 2026-04-25 | Guide v1.3: v0.11.0(2026年4月23日)— Interfaceリリースを追加。Python JSON-RPCバックエンド(tui_gateway)を伴うインタラクティブTUIのReact/Ink完全リライト:固定コンポーザー、OSC-52クリップボード対応のライブストリーミング、安定したピッカーキー、ターンごとのストップウォッチとgitブランチ表示のステータスバー、/clear確認、ライトテーマプリセット、サブエージェントspawn観測オーバーレイ。Pluggableトランスポートアーキテクチャ:フォーマット変換とHTTPトランスポートをagent/transports/へ抽出し、プロバイダー配管をクリーンに。Converse API経由のネイティブAWS Bedrock。5つの新しい推論パス:NVIDIA NIM、Arcee AI、Step Plan、Google Gemini CLI OAuth、Vercel ai-gateway。Codex OAuth経由のGPT-5.5:OpenAIの新フラッグシップが、別途APIキーなしでChatGPT Codex OAuthから到達可能に。QQBot(17番目のメッセージングプラットフォーム):QRスキャンセットアップとストリーミング対応。プラグイン領域の拡張:スラッシュコマンド、ツールディスパッチ、実行ブロック、結果変換。/steer <prompt>:実行中のターンを中断したりプロンプトキャッシュを壊したりせずに、次のツールコール後に実行中のエージェントが目にするノートを差し込む、実行途中のエージェントnudge。Shell hooks:Pythonプラグインなしでスクリプトをライフサイクルフックとして接続。Webhook直接配信モード:エージェントをバイパスしてペイロードを直接プラットフォームチャットへフォワードしfan-outを実現。より賢い委譲:オーケストレーターロール、設定可能なspawn深度、ファイル協調。Dashboard:プラグインシステム、ライブテーマ切り替え、i18n、モバイル対応を追加。v0.9.0以降の統計:1,556コミット、マージ済みPR 761件、変更ファイル1,314件、追加行224,174、コミュニティコントリビューター29名。 |
19 |
| 2026-04-16 | Guide v1.2: v0.10.0 — Nous Tool Gatewayを追加。有償のNous Portalサブスクライバーは、追加のAPIキーなしでマネージドツール(Firecrawlウェブ検索、FAL / FLUX 2 Pro画像生成、OpenAI TTS、Browser Useブラウザ自動化)にアクセス可能になりました。新しいuse_gateway設定フィールドでツールごとにオプトイン。両方が設定されている場合、ランタイムは直接のAPIキーよりgatewayを優先します。HERMES_ENABLE_NOUS_MANAGED_TOOLS env varは削除。Hermes Agent CLIはMITライセンスのまま、完全無料です。 |
20 |
| 2026-04-13 | Guide v1.1: v0.8.0およびv0.9.0の機能を追加。ローカルウェブダッシュボード、/fastモード、iMessage + WeChatプラットフォーム(合計16)、バックグラウンドプロセス監視(watch_patterns)、pluggable context engine、hermes backup/hermes import、Termux/Android、xAI + MiMo + Google AI Studio + Qwenプロバイダー、/debugコマンド、包括的なセキュリティ強化。 |
15 16 |
| 2026-04-10 | Guide v1.0: Hermes Agent v0.7.0をカバーする初版リリース。プロバイダー認証、config、CLI、スラッシュコマンド、ツール、スキル、メモリ、gateway、cron、MCP、圧縮、アーキテクチャ、OpenClawマイグレーション、トラブルシューティング、FAQ。 |
参考文献
-
Nous Research、“Hermes Agent”プロジェクトのGitHub上のREADME。プロダクト説明(自己改善型エージェント、マルチプロバイダー、メッセージングゲートウェイ、ターミナルバックエンド、スキル進化、cronスケジューラー、委譲)と“Quick Install”ワンライナーの主要ソース。 ↩↩↩
-
Nous Research、Hermes Agentドキュメント内の“AI Providers”。プロバイダー一覧、各プロバイダーごとの認証方式(Nous Portal OAuth、Codexデバイスコード、GitHub Copilotトークン種別、Anthropic 3方式認証、中国系AIプロバイダー、Hugging Faceルーティング、カスタムエンドポイント)、3つの認証パス(
.env内のAPIキー、hermes model経由のOAuth、config.yaml内のカスタムエンドポイント)、/modelスラッシュコマンド構文(custom:name:modelを含む)、Ollama/vLLM/SGLang/llama.cpp/LM Studioのセットアップテンプレート、WSL2ネットワーク設定、コンテキスト長検出チェーン、フォールバックモデル設定、スマートモデルルーティング、名前付きカスタムプロバイダーの主要ソース。本記事に登場するプロバイダー固有の環境変数名、トークン種別、ベースURLオーバーライド、モデル識別子はすべてこのページに由来します。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agent開発者ガイド内の“Architecture”。システム概観図、ディレクトリ構造、CLIセッションおよびゲートウェイメッセージパスを通るデータフロー、3つのAPIモード(
chat_completions、codex_responses、anthropic_messages)、runtime_provider.pyによるプロバイダー解決、SQLite + FTS5によるセッション永続化、メッセージングゲートウェイのプラットフォーム一覧、プラグインシステムの検出ソース、プロファイル分離、6つの設計原則の主要ソース。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agentユーザーガイド内の“Configuration”。設定ディレクトリ構造、
config.yamlと.envのルール(「非シークレット設定ではconfig.yamlが優先」)、設定の優先順位チェーン(CLI引数 → env → config.yaml → .env → デフォルト)、コンテキスト圧縮設定(compression.*ブロックのthreshold、target_ratio、protect_last_n、summary_model、summary_provider、summary_base_url)、予算プレッシャー閾値(70%警戒、90%警告)、ローカルプロバイダー自動調整付きストリーミングタイムアウト、補助モデル設定ブロック全体(auxiliary:配下のvision、web_extract、approval、compression、session_search、skills_hub、mcp、flush_memoriesスロット)の主要ソース。"main"プロバイダーが補助/圧縮/フォールバックスロットに限定される制約もこのページに由来します。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agentガイド内の“Migrate from OpenClaw”。OpenClaw → Hermes移行フローのソース。 ↩↩
-
Nous Research、Hermes Agentリファレンスドキュメント内の“CLI Commands Reference”。本記事に記載したすべてのトップレベルCLIコマンド(
hermes chat、hermes model、hermes gateway、hermes setup、hermes auth、hermes status、hermes cron、hermes webhook、hermes doctor、hermes dump、hermes logs、hermes config、hermes pairing、hermes skills、hermes honcho、hermes memory、hermes acp、hermes mcp、hermes plugins、hermes tools、hermes sessions、hermes insights、hermes claw、hermes profile、hermes completion、hermes update、hermes uninstall)の主要ソース。本記事内のサブコマンドフラグ、オプション説明、認証情報プールの挙動、ログフィルタ構文、OpenClaw移行フラグ、プロファイル管理コマンド、サービスインストールコマンドはすべてこのページに由来します。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agent入門ガイド内の“Installation”。ワンラインインストーラーコマンド、インストーラーの挙動(前提条件、プラットフォームサポート、Termux自動検出、Windows/WSL2要件)、オプション拡張表、手動インストール手順、検証コマンドの主要ソース。 ↩↩↩↩↩↩↩↩
-
Nous Research、“CLI Commands Reference” — 特に
hermes dumpセクションを参照。コマンドの出力形式(ヘッダー、環境、識別情報、モデル、ターミナル、APIキー、機能、サービス、ワークロード、設定オーバーライド)と診断情報共有用途について記述。 ↩ -
Nous Research、Hermes Agentリファレンスドキュメント内の“Slash Commands Reference”。本記事に記載したすべてのスラッシュコマンド、
COMMAND_REGISTRYアーキテクチャ、CLIとメッセージングの分割、動的スキルスラッシュコマンド、config.yaml内のクイックコマンド、プレフィックスマッチングの挙動、メッセージング専用コマンド(/status、/sethome、/approve、/deny、/update、/commands)の主要ソース。 ↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agentユーザーガイド内の“Tools & Toolsets”。ツールカテゴリの概観、toolset使用コマンド、6つのターミナルバックエンド(local、docker、ssh、singularity、modal、daytona)、コンテナ設定(cpu、memory、disk、persistent)、コンテナのセキュリティハードニング、バックグラウンドプロセス管理API、sudoサポートの主要ソース。 ↩↩↩↩↩↩↩↩↩↩
-
Nous Research、Hermes Agentユーザーガイド内の“Skills System”。プログレッシブディスクロージャー、
SKILL.md形式、プラットフォーム固有skill、条件付きアクティベーション(fallback_for_toolsets、requires_toolsets、fallback_for_tools、requires_tools)、skill_manageによるエージェント管理skill、skillハブコマンドとソース一覧(official、skills-sh、well-known、github、clawhub、claude-marketplace、lobehub)、セキュリティスキャンと信頼レベル、外部skillディレクトリの主要ソース。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agentユーザーガイド内の“Persistent Memory”。
MEMORY.md/USER.mdの文字数上限、フローズンスナップショットパターン、メモリツールアクション(add、replace、remove)、保存すべき内容と省略すべき内容、メモリとセッション検索の比較、8つの外部メモリプロバイダー一覧(Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover、Supermemory)の主要ソース。 ↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agentユーザーガイド内の“Personality & SOUL.md”。
SOUL.mdの挙動(HERMES_HOMEに置かれる、上書きされない、システムプロンプト内のスロット#1、組み込み前にセキュリティスキャン)、SOUL.mdとAGENTS.mdの違い、組み込みパーソナリティ一覧(helpfulからhypeまで14種類)、config.yaml内のカスタムパーソナリティ、/personalityオーバーレイパターン、プロンプトスタック全体の組み立て順序の主要ソース。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research、Hermes Agentガイドおよびリファレンス内の“Use MCP with Hermes”およびMCP Config Reference。
config.yaml内のmcp_servers:設定形式(command、args、envフィールド付き)のソース。 ↩ -
Hermes Agent v0.8.0リリースノート。2026年4月8日。バックグラウンドプロセス自動通知、Nous Portalで無料のMiMo v2 Pro、プラットフォーム横断のライブ
/model切替、Google AI Studioネイティブプロバイダー、Qwen OAuth、非アクティビティベースのタイムアウト、Slack/Telegramでの承認ボタン、MCP OAuth 2.1 PKCE、集中ロギング、プラグインシステム拡張。 ↩↩↩↩↩ -
Hermes Agent v0.9.0リリースノート。2026年4月13日。ローカルWebダッシュボード、Fast Mode(
/fast)、BlueBubbles経由のiMessage、WeChat + WeCom、Termux/Android、バックグラウンドプロセス監視(watch_patterns)、xAI + Xiaomi MiMoネイティブプロバイダー、プラガブルcontext engine、統一プロキシサポート、セキュリティハードニング(パストラバーサル、シェルインジェクション、SSRF、RCE修正)、hermes backup/hermes import、/debug+hermes debug share、サポートプラットフォーム16種。487コミット、269マージPR、24コントリビューター。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.12.0リリースノート。2026年4月30日。「The Curatorリリース」。skillライブラリを評価・剪定・統合する自律バックグラウンドCuratorが、ゲートウェイのcronティッカー上で7日サイクル(デフォルト)で動作。自己改善ループのアップグレード:ルーブリックベースの評価、能動的更新バイアス、適切なランタイム継承、メモリとskillに制限されたスコープ付きtoolset。新規推論プロバイダー4種:GMI Cloud、Azure AI Foundry、MiniMax OAuth、Tencent Tokenhub。LM Studioがファーストクラスに昇格。リモートモデルカタログマニフェストがリリースなしで自動更新。新規メッセージングプラットフォーム2種:Microsoft Teams(19番目、プラガブルゲートウェイアーキテクチャ経由)とTencent Yuanbao(18番目、ネイティブテキスト+メディア)。バンドルskill付きPKCE OAuthによるネイティブSpotify、通話と文字起こしのためのGoogle Meetプラグイン、PiperローカルMCPプロバイダー。デフォルトでComfyUI v5 + TouchDesigner-MCP同梱。新skill:Humanizer、claude-design、design-md、airtable。CLI:
hermes -zワンショットモード、hermes update --checkプリフライト、/reload-skillsスラッシュコマンド、プラガブルなビジーインジケータースタイル。TUIコールドスタートを遅延初期化により約57%短縮。セキュリティ:シークレットリダクションをデフォルト無効化;回復不能コマンドのハードラインブロックリスト。v0.11.0以降の統計:1,096コミット、550マージPR、213コミュニティコントリビューター。関連:v2026.4.30リリースタグ。 ↩↩↩ -
Hermes Agent v0.13.0リリースノート。2026年5月7日。「The Tenacityリリース」。ハートビート、再取得、ゾンビ検出、ハルシネーションゲート、タスクごとの
max_retries、マルチプロジェクトボード機能を備えたマルチエージェントKanbanボード。ターン予算が設定可能なクロスターン目標ロック用/goalスラッシュコマンド(Ralpループのプリミティブ)。video_analyzeツール、Gemini優先で互換マルチモーダル拡張可能。ボイスクローン機能付きxAI Custom Voices MCPプロバイダー。7言語i18n:zh-Hans、ja、de、es、fr、uk、tr(CLI + ゲートウェイメッセージ;ドキュメントはzh-Hansのみ)。プラガブルアダプターパターンを介した20番目のメッセージングプラットフォームとしてGoogle Chat、汎用env_enablement_fn/cron_deliver_env_varプラグインフック付き;IRCとMicrosoft Teamsを同パターンに移行。プラガブルサードパーティプロバイダー用のProviderProfileABC +plugins/model-providers/。ゲートウェイ再起動、/update、ソースファイル再読込をまたぐセッション自動再開。実プルーニング、ディスクガードレール、孤立シャドウリポジトリなしを備えたCheckpoints v2の単一ストア書き直し。8つのP0セキュリティクロージャー:シークレットリダクションのデフォルト有効化、Discordクロスギルド DMバイパス(CVSS 8.1、ロール許可リストをギルドスコープに)、WhatsAppがデフォルトで見知らぬ相手を拒否+セルフチャットでは応答しない、MCP OAuth認証情報保存のTOCTOU、CLIauth.json認証情報書き込み時のTOCTOU、ハイブリッドルーティングにおけるブラウザのクラウドメタデータSSRFフロア、cron組み立て済みプロンプトのプロンプトインジェクションスキャン(skillコンテンツを含む)、hermes debug shareログコンテンツのアップロード時リダクション。その他の注目項目:Python/JSON/YAML/TOMLの書き込み後リンティング、cronのno_agentスクリプト専用ウォッチドッグモード、Slack/Telegram/Mattermost/Matrix/DingTalk全体のプラットフォーム許可リスト、MCP強化(SSEトランスポート、OAuthフォワーディング、画像結果のMEDIAタグ化)。v0.12.0以降の統計:864コミット、588マージPR、829ファイル変更、295コミュニティコントリビューター、282イシュークローズ(P0が13、P1が36)。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.11.0リリースノート。2026年4月23日。「The Interfaceリリース」 — Python JSON-RPCバックエンド(
tui_gateway)を備えたインタラクティブCLIのReact/Inkによる完全書き直し;プラガブルトランスポートアーキテクチャ(agent/transports/);Converse API経由のネイティブAWS Bedrock;新規推論パス5種(NVIDIA NIM、Arcee AI、Step Plan、Google Gemini CLI OAuth、Vercel ai-gateway);Codex OAuth経由のGPT-5.5;QRスキャンセットアップ付き17番目のメッセージングプラットフォームとしてのQQBot;プラグイン面の拡張(スラッシュコマンド、ツールディスパッチ、実行ブロック、結果変換);プロンプトキャッシュを壊さずに次のツールコール後にコンテキストを注入する実行中エージェントのナッジ用/steer <prompt>;Pythonプラグインなしでライフサイクルイベントを扱うシェルフック;ペイロードをプラットフォームチャットに直接転送するwebhook直接配信モード;オーケストレーターロール+設定可能なスポーン深度+ファイル協調を備えたよりスマートな委譲;ダッシュボードプラグインシステム、ライブテーマ切替、i18n、モバイルレスポンシブ。v0.9.0以降の統計:1,556コミット・761マージPR・1,314ファイル変更・224,174挿入・29コミュニティコントリビューター。関連:Hermes Agent v0.11.0 GitHubリリースタグ。 ↩↩↩ -
Hermes Agent v0.10.0リリースノート。2026年4月16日。「The Tool Gatewayリリース」。Nous Portal有料サブスクライバー向けのNous Tool Gateway統合 — Firecrawl Web検索、FAL/FLUX 2 Pro画像生成、OpenAI MCP、Browser Useブラウザ自動化への管理アクセスを追加APIキーなしで提供。新しい
use_gateway設定フィールドによるツールごとのオプトイン。両方が設定されている場合、ランタイムは直接APIキーよりもゲートウェイを優先。hermes toolsおよびhermes statusとの完全統合。非推奨のHERMES_ENABLE_NOUS_MANAGED_TOOLSenv変数を置き換え。実装:@jquesnelle(emozilla)。Hermes Agent CLIはMITライセンスのまま完全オープンソース;ゲートウェイは既存のPortalサブスクリプション製品との統合であり、CLIへのペイウォールではない。関連:Nous Portal(サブスクリプション価格とサインアップ)。 ↩↩↩