御覧いただきありがとうございます。
ガジェットスキーです。
2023年11月に一条工務店で家を建てました。
妻、子供2人、義両親の6人で暮らしています。
家での生活を便利にするために奮闘中です。
もしよろしければご覧ください
前回の続きです。
ローカルAI開発環境構築記① | PCなしじゃ生きられない人のブログ
ローカルAI開発環境構築記② | PCなしじゃ生きられない人のブログ
ローカルAI開発環境構築記③ | PCなしじゃ生きられない人のブログ
自宅でローカルでAI環境を作りたくなってきたので作った時の内容をまとめています。
【Hermes Agent × LiteLLM × Lemonade】環境構築編④
1. はじめに
前回はLiteLLMの環境構築について紹介しました。
今回はHermesAgentの環境構築について解説します。
2. 構成のおさらい
前回のおさらいですが、今回構築する環境は次のようになります。
Hermes Agent 【Docker】
│
▼
LiteLLM 【Docker】
│
▼
Lemonade 【Windows】
│
▼
llama.cpp (Vulkan)【Windows】
│
▼
Qwen3-Coder-30B-A3B【Windows】
まとめると以下になります。
| 項目 | 動作先 |
|---|---|
| Hermes Agent | Docker |
| LiteLLM | Docker |
| Lemonade llama.cpp (Vulkan) Qwen3-Coder-30B-A3B |
Windows |
というように少し変則的です。
前回お話ししたようにLemonadeはDocker DesktopだとAMD系のGPUを認識しないため、Windows環境です。
ではHermes Agentの環境構築の内容に入っていきます。
3. Hermes Agent環境構築
3.1 Hermes Agentの機能のおさらい
Hermes AgentはCLI型のAIエージェントです。
一般的なCLIツールと異なり、
- コードを書く
- ファイルを読む
- ディレクトリを探索する
- コマンドを実行する
これらをAIが自律的に行います。
そのため環境に常駐し、cronによる自動起動や、slack等の外部メッセージからの指示で動作することが可能です。
似たようなツールにOpenClawがありますが、OpenClawが既存のスキルを保持しているのに対し、
Hermes agentは自己改善ループにより、自分自身でスキルを自動生成していくというところに特徴があります。
Hermes agentは使うことで育てていくとコンセプトになります。
3.2 Docker環境のフォルダ構成
というわけで今回のLiteLLMの構成です。
今回LiteLLMはDockerで起動するため、Docker composeファイルを作成します。
まずフォルダ構成です。今後の説明は以下の構成を前提としてお話します。
{任意のフォルダ}
└─ Infrastructure
├─ Docker
│ ├─ docker-compose.yml
│ ├─ .env ←APIキー配置用
│ └─ litellm ←Dockerで永続させるボリューム
│ └─ config.yam ←Dockerで永続させる設定
└─ Hermes
└─ config ←Dockerで永続させるボリューム
3.2 Hermes AgentのDocker環境構築
今回Hermes AgentはDockerで起動するため、Docker composeファイルを作成します。
各設定についてはコメントで記載しています。
-------------------------------------------------------------
services:
{前回のLiteLLMの設定}
hermes-agent:
#今回使用するHermes Agentの公式イメージです
image: nousresearch/hermes-agent:latest
#コンテナ名です。自由に名前を付けても大丈夫です
container_name: hermes-agent
#終了ステータスに関わらず、このコンテナが終了した場合は再起動するようにします
restart: unless-stopped
#この後設定するLiteLLMの後に起動するようにする設定です
#Hermes AgentがLiteLLMにアクセスするため、LiteLLMの後に起動する必要があります
depends_on:
- litellm
#Dockerの8642ポートをWindows側の8642ポートからアクセスできるようにする設定です
#Hermes AgentにWindows側からアクセスするために開けておきます
ports:
- "8642:8642"
#Linux環境などでコンテナ内からホスト側のサービスにアクセスするための設定です
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
#Hermes Agentからみた使用するモデル名です。前回のLiteLLMで設定したモデル名と同じにします。
HERMES_MODEL: {モデル名}
#OpenAI互換のURLです。今回はHermes AgentはLiteLLMに接続するためLiteLLMのURLです。
OPENAI_BASE_URL: http://litellm:4000/v1
#OpenAI互換キーです。今回はローカルのLLMにするため、キーの名前はDon’t Careです。
OPENAI_API_KEY: local
#OpenAIのモデルです。configで設定するため不要かもしれません。
#前回のLiteLLMで設定したモデル名と同じにします。
OPENAI_MODEL: {モデル名}
#OpenAIのモデルです。configで設定するため不要かもしれません。
OPENAI_PROVIDER: openai
#Hermes Agentが編集権限が保持するrootフォルダです。
#この配下のみHermes agentがアクセスできるようになります。
HERMES_WRITE_SAFE_ROOT: {docker上フォルダ}
#Hermes Agent側から見えるWindows側ののフォルダの設定です。
volumes:
- {Windows上のHermes Agentに見せたいフォルダ}:{Docker上のパス}
#Hermes Agentの作業フォルダです。ここがHermes Agentからみたホームディレクトリになります。
working_dir: {Docker上のフォルダ}
#標準入力(stdin)を開いたままにする設定です。
#Hermes Agentは対話型なので、Hermesからの問い合わせに対し、CLIで入力できるように有効にしておきます。
stdin_open: true
#コンテナに仮想端末を割り当てる設定です。
#Hermes Agentは対話型で正常に動作するためのおまじないみたいなものです。
tty: true
#コンテナ内でHermes gatewayを起動するための設定です。
command: gateway run
-------------------------------------------------------------
ここまで設定したらdocker-composeファイルがあるパスで、
docker-compose up -d
を実行することでHermes AgentがDockerで起動できるようになります。
3.3 Hermes AgentのConfig設定
Hermes Agentの対話側の設定が可能です。
今回はDockerのコンテナの中に入って直接設定します。
Dockerが起動している状態で
docker exec -it hermes-agent bash
を実行することでコンテナ内に入ります。
そこで
hermes setup
を実行すると対話側の設定が開始されます。
まずはモデルのProvierの設定です。
ここまでの設定がうまくいっていれば、下記のようにLiteLLMが見えるようになっているはずです。
ここを選ぶとLiteLLMからアクセス可能なモデルが選択されます。
下記の図では今回別途フォールバック先も含まれていますが、LiteLLMで設定したモデルが見えていればよいです。
次にHermes Agentが実行するterminal環境です。
今回はDocker上で動いているのでDocker上のローカルで動作させるため、Localを選択します。
次は外部からの指示を出すための通信手段の設定です。
ここは任意で設定すればよいですが、私は今回は何も設定しません。
次にHermes Agentが使えるツールの設定を行います。
各設定できるようになることを以下にしめします。
| Tool | できるようになること | 具体例 |
|---|---|---|
| 🔍 Web Search & Scraping | インターネット上の情報を検索・取得できる | 公式ドキュメントを検索する GitHubの情報を調査する Webページの内容を取得する ライブラリの最新仕様を調べる |
| 🌐 Browser Automation | WebブラウザをAI自身が操作できる | Webページを開く リンクをクリックする フォームへ文字を入力する ページをスクロールする Webサイト上の操作を自動化する |
| 💻 Terminal & Processes | OSのターミナルやプロセスを操作できる | PowerShell / Bashなどのコマンドを実行する Gitを操作する Dockerを操作する Unity関連のコマンドを実行する プログラムを起動する プロセスを確認・管理する |
| 📁 File Operations | ファイルやディレクトリを読み書き・編集・検索できる | ファイルを読む 新しいファイルを作る 既存ファイルを編集する パッチを適用する ファイルを検索する コードを修正する |
| ⚡ Code Execution | コードを実際に実行して結果を確認できる | Pythonなどのコードを実行する 計算する アルゴリズムを検証する コードの動作を確認する データを加工する |
| 👁️ Vision / Image Analysis | 画像をAIに解析させることができる | スクリーンショットを解析する UI画像を確認する 画像内の文字や構造を確認する Unityの画面を解析する 画像に写っている問題を調査する |
| 🎬 Video Analysis | 動画をAIに解析させることができる | 動画の内容を確認する 動画内の動きを解析する 動画の問題点を調査する ゲームプレイ動画を分析する |
| 🎨 Image Generation | AIに画像を生成させることができる | ゲーム用画像を生成する コンセプトアートを作る UI素材を作る アイコンや背景素材を作る |
| 🎬 Video Generation | AIに動画を生成させることができる | テキストから動画を生成する 画像から動画を生成する 参照画像を利用して動画を生成する |
| 🐦 X (Twitter) Search | X(Twitter)の情報を検索できる | X上の最新情報を検索する 特定の技術についてX上の反応を調べる 開発者の投稿を検索する |
| 🔊 Text-to-Speech | テキストを音声に変換できる | 文章を読み上げる 音声データを生成する 音声による通知などを作る |
| 📚 Skills | Hermes AgentのSkillsを利用・確認・管理できる | 利用可能なSkillを一覧表示する Skillの内容を確認する Skillを管理する 特定の作業用Skillを利用する |
| 📋 Task Planning | 複数の作業をタスクとして整理・管理できる | 開発作業をタスク分解する TODOを作成する 作業の進捗を管理する 複雑な作業を順番に実行する |
| 💾 Memory | セッションをまたいで情報を記憶・利用できる | 過去に決めた設定を記憶する プロジェクトの方針を記憶する ユーザーの好みを記憶する 以前の作業内容を次回のセッションで利用する |
| 🧩 Context Engine | アクティブなContext Engineから実行時に提供されるToolを利用できる | Context Engineが提供する追加機能を利用する 実行時のコンテキストに応じたToolを利用する |
| 🔎 Session Search | 過去のHermes Agentセッションを検索できる | 以前の会話を検索する 過去に行った設定を探す 以前のエラー解決方法を探す 過去の開発作業を参照する |
| ❓ Clarifying Questions | AIが作業に必要な情報をユーザーへ質問できる | 要件が曖昧な場合に質問する 不足している設定を確認する 複数の選択肢からユーザーに選択してもらう |
| 👥 Task Delegation | 作業を別のAgentへ委任できる | 大きなタスクを分割する 調査を別Agentに任せる 実装と調査などを分担する 複数のAgentで作業する |
| ⏰ Cron Jobs | 指定した時間・スケジュールでタスクを実行できる | 定期的な処理を登録する 定期的にスクリプトを実行する 定期的なチェックを自動化する 登録したJobを停止・再開する |
| 🏠 Home Assistant | Home Assistant経由でスマートホーム機器を操作できる | 照明を操作する スマート家電を操作する センサー情報を取得する スマートホームの状態を確認する |
| 🎵 Spotify | SpotifyをAIから操作できる | 音楽を検索する 音楽を再生する プレイリストを操作する ライブラリを検索する |
| 🤖 Yuanbao | Yuanbao関連の情報・機能を操作できる | グループ情報を取得する メンバー情報を取得する DMなどの操作を行う |
| 🖱️ Computer Use | AIがPCのデスクトップを直接操作できる | アプリケーションを操作する マウス操作を行う キーボード入力を行う Windows/macOS/LinuxのGUIを操作する 画面を見ながらGUI操作を自動化する |
基本必要なら有効にすればよいですが、その分コンテキストが大きくなるのでVRAMに応じた設定が必要です。
3.4 Hermes Agentの起動
ここまで設定できていればコンテナ内で
hermes
を実行するとHermesが起動します。
ここで対話をした際に応答が返ってくれば設定成功です。








