🤖HermesBlog
Hermes Official Tutorials · パート 78/9/2026

チュートリアル 7: 設定ファイル

Tutorial 7: Configuration Files — easy-to-understand guide based on official docs

Hermes tutorial

チュートリアル 7: 設定ファイル

おかえりなさい、エージェント使いの皆さん!今回のチュートリアルでは、Hermes の核心部分である設定ファイルに深く潜り込みます。YAML や環境変数の海で迷子になった経験がある方も、ご安心ください。できるだけ苦痛なく進めていきます。

Hermes のホームベース

すべては ~/.hermes/ に格納されています。エージェントの住まいだと思ってください。中身はこんな感じです:

~/.hermes/
├── config.yaml     # 設定(モデル、ターミナル、TTS、圧縮など)
├── .env            # API キーとシークレット
├── auth.json       # OAuth プロバイダーの認証情報(Nous Portal など)
├── SOUL.md         # プライマリエージェントのアイデンティティ(システムプロンプトのスロット #1)
├── memories/       # 永続メモリ(MEMORY.md、USER.md)
├── skills/         # エージェントが作成したスキル(skill_manage ツールで管理)
├── cron/           # スケジュールされたジョブ
├── sessions/       # ゲートウェイセッション
└── logs/           # ログ(errors.log、gateway.log — シークレットは自動的に伏せ字化)

最も簡単な道:ワンコマンドセットアップ

細かい話に入る前に、プロの技をひとつ:hermes setup --portal を実行してください。OAuth を1回行うだけで、モデルプロバイダーと Tool Gateway の4つのツールすべてが手に入ります。YAML ファイルに一切触れる必要はありません。Portal サブスクライバーは、トークン課金のプロバイダーも10%オフになります。手っ取り早く始めたい人にはうってつけで、私たちも大好きです。

設定の管理

Hermes には、設定を管理するための完全なツールキットが用意されています。毎日使うコマンドはこちら:

hermes config              # 現在の設定を表示
hermes config edit         # エディタで config.yaml を開く
hermes config get KEY      # 解決済みの値を表示
hermes config set KEY VAL  # 特定の値を設定
hermes config unset KEY    # ユーザー設定値を削除
hermes config check        # 不足しているオプションを確認(アップデート後)
hermes config migrate      # 不足しているオプションを対話的に追加

実際の使用例をいくつか紹介します:

hermes config get model
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config unset terminal.backend
hermes config set OPENROUTER_API_KEY sk-or-...  # .env に保存されます

ここがミソ: hermes config set は値を自動的に適切なファイルへ振り分けます。API キーは .env へ、それ以外は config.yaml へ。もう迷う必要はありません!

競合したら何が優先される?

Hermes は次の順序で設定を解決します(優先度が高い順):

  1. CLI 引数hermes chat --model anthropic/claude-sonnet-4 など
  2. ~/.hermes/config.yaml — プライマリ設定ファイル
  3. ~/.hermes/.env — シークレット用(API キー、トークン、パスワード)
  4. 組み込みのデフォルト値 — 安全なハードコード値

経験則: シークレットは .env へ。それ以外はすべて config.yaml へ。両方が設定されている場合、非シークレット設定では config.yaml が優先されます。

環境変数の置換

config.yaml 内で ${VAR_NAME} 構文を使って環境変数を参照できます:

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

delegation:
  api_key: ${DELEGATION_KEY}

複数の参照も可能です:url: "${HOST}:${PORT}"。変数が設定されていない場合、プレースホルダーはそのまま残り、警告がログに記録されます。Cursor スタイルの ${env:VAR_NAME} 構文も動作するので、Cursor や Claude の設定からスニペットをそのままコピーできます。

プロバイダーのタイムアウト

プロバイダー単位、モデル単位でタイムアウトを設定できます:

providers:
  some-provider:
    request_timeout_seconds: 600
    models:
      some-model:
        timeout_seconds: 300

また、ストリーミングではない呼び出しの失効を検出するための stale_timeout_seconds もあります。これらの設定は、従来の HERMES_API_TIMEOUT および HERMES_API_CALL_STALE_TIMEOUT 環境変数を上書きします。

実行時制限

長時間実行するサーバー面(ゲートウェイ、hermes serve --isolated)では、ファイルディスクリプタの制限を設定できます:

runtime:
  nofile_soft_limit: 4096

デフォルトは 4096 です。0false、または null に設定すると、調整が無効になります。

アップデート動作

アップデート設定は config.yamlupdates 配下にあります:

updates:
  pre_update_backup: quick

まとめ

設定ツアーは以上です!覚えておいてください:簡単な道は hermes setup --portal、素早い変更は hermes config set、そしてシークレットは .env に。あなたのエージェントが感謝することでしょう。

次回は、AI プロバイダーとお気に入りのモデルを接続する方法を探っていきます。お楽しみに!

📖 公式ドキュメント

この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/configuration