メインコンテンツへスキップ
  1. Posts/

OpenClawからHermesエージェントに乗り換えた話──ローカルLLMで動く永続パーソナルエージェントの構築記録

mamio
著者
mamio
まみおブログへようこそ。日々の気づきから、趣味の車中泊や少しマニアックな機材のレビューまで、好きなものを自由気ままに書き留めています。

前回の記事でOpenClaw + Qwen 3.5 9Bの自宅AIアシスタントが完成した。が、OpenClawには限界を感じていた。そんな時に知ったのが Hermes Agenthermes-agent.org)だ。「チャットボットでも、コパイロットでもない。毎日賢くなる永続エージェント」というコンセプトに惹かれ、移行を決めた。


この記事を書く前に、正直に書いておきたいことがある。

AIと一緒に作業するときの落とし穴
#

この構築、実はまっすぐゴールに辿り着いていない。Claude Code(AIアシスタント)と一緒に作業したのだが、途中でまったく違うものができあがったという失敗があった。

何が起きたか
#

「HermesエージェントにOpenClawを置き換えたい」と伝えてセッションを始めた。ところがClaudeはHermesエージェントについて知識がなく、推測で ghcr.io/nousresearch/hermes-agent:latest というDockerイメージを使う docker-compose.yml を作った。このイメージは存在しない。

当然起動できない。次のセッションで「動かない」と伝えたら、今度は原因を調べずに「じゃあシンプルなPythonボットを自作しましょう」と方向転換し、mamio-secretaryというオリジナルボットを作り上げた。

本来の目標はHermesエージェントの導入だったのに、気づいたら全然違うものができていた。

なぜこうなったか
#

責任は両側にある。

AIの問題: 知らないツールについて「知らない」と言わず、推測で作業を進めた。動かなかったとき、原因を深追いせずに別の解決策(自作)に逃げた。

自分の指示の問題: 「Hermesエージェントに変えたい」とだけ伝えて、公式サイトのURLを共有しなかった。AIが調べる手がかりが少なすぎた。

教訓
#

AIと一緒に自分が詳しくないツールを導入するときは、公式サイトやGitHubのURLを最初に渡すことが重要だと学んだ。URLがあればAIは正確な情報を読める。なければ推測で動き出す。

そして、AIが「できます」と言っても鵜呑みにしないこと。特にサードパーティツールのセットアップは、実際に動くまで信用しない。

今回はセッションの中でこの経緯を振り返り、「知らないものは知らないと言うべき」というルールをAI側に改めて設定した。そこからようやく正しい方向に進めた。

何日間も「Hermesが動いている」と思っていた
#

もう一つ、正直に書く。

この迷走の間、自分はHermesエージェントが動いていると信じて使い続けていた。実際はまったく別のもの(自作Pythonボット)が動いていたのに。

そして「なんか全然賢くない」「全く思った通りの動きをしてくれない」という違和感をずっと感じていた。でもその原因を「ローカルLLMがおバカだから」だと本気で思っていた。Hermesエージェントそのものがインストールされていないなんて、思いもしなかった。

これはAIと作業するうえで怖い話だと思う。AIが「できました」と言えば、人はそれを信じる。 動いているように見えれば、中身を確認しない。その結果、何日間も間違った環境を使い続けることになる。

「AIに任せたのに、なんかおかしい」と感じたら、まず環境の確認から疑うべきだった。

ローカルLLMの限界も見えてきた
#

正しくHermesエージェントを動かせるようになって、新たな課題も見えてきた。

qwen3.6:27bで動かしているが、重すぎる。1回の応答に1〜3分かかる。パーソナルエージェントとして日常的に使うには厳しい速度だ。

Mac mini M4 Pro 24GBでも、27Bクラスのモデルを64Kコンテキストで動かすとこうなる。個人の自宅環境でローカルLLMを動かす限界点が、ここにあると感じている。

もう少し使ってみて判断するが、ローカルLLMにこだわりすぎるより、用途によってクラウドAPIと使い分けることも選択肢として考え始めている。

現在の構成はMac mini M4 Pro 24GBだが、本格的にローカルLLMを運用するなら、NVIDIAが2025年に発表したDGX Spark(個人向けAIスーパーコンピュータ)という選択肢もある。128GBの統合メモリで70Bクラスのモデルも余裕で動く。価格は約50万円と高いが、クラウドAPIのランニングコストと比較すると趣味・事業の規模によっては合理的だ。

Apple Mac mini (M4 Pro / 24GBメモリ)

NVIDIA DGX Spark(個人向けAIスーパーコンピュータ)


OpenClawを止めた理由
#

移行作業中、ある事実に気づいた。OpenClawが数週間、401エラーを出しながらDiscordへの再接続を5分おきに繰り返していた

以前、MamioBotとの二重返信を解決するためにDiscordのBot Tokenをリセットしたのだが、OpenClaw側のトークンが更新されないまま放置されていた。コンテナはずっと稼働中で、ひたすら無駄なリクエストを打ち続けていた。

[discord] Failed (401): Unauthorized
[discord] auto-restart attempt 7/10 in 300s
[discord] Failed (401): Unauthorized
...(無限に続く)

サーバーの温度が高かった原因はこれだった。 N150の省電力CPUに、無駄な5分おき無限リトライは地味に堪える。OpenClawを削除したらロードアベレージが即座に下がり始めた。

Hermesエージェントとは
#

hermes-agent.org で公開されている、NousResearch製のオープンソースAIエージェント。

特徴は「永続性」だ。通常のチャットボットはセッションを閉じると記憶がリセットされるが、Hermesはプロジェクトを学習し続け、独自のスキルを構築していく。Telegram、Discord、Slack、WhatsApp、Signal など複数のメッセージプラットフォームに対応し、どこからでも同じエージェントに届く。

74種類の組み込みスキルも魅力で、Obsidian連携、GitHub連携、web検索、PDF解析など、自分のワークフローに合わせて使えるものが最初から揃っている。

インストール方法
#

上述の経緯でDockerイメージを試みたが存在しなかった。HermesはDockerではなく、公式のインストールスクリプトで入れるものだ。

正しいインストールコマンドはこれだけ:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

実行すると、Python 3.11の自動インストール、依存ライブラリ106パッケージのセットアップ、74種類のスキル同期、ブラウザエンジン(Playwright)のインストールまで全自動で進む。所要時間は5分程度。

✓ All dependencies installed
✓ Skills synced to ~/.hermes/skills/
✓ hermes command ready

完了後は ~/.local/bin/hermes にコマンドが入る。

Mac miniのOllamaに接続する
#

HermesはデフォルトでOpenRouterやAnthropicを使う設定になっているが、Ollama(ローカルLLM)にも対応している。~/.hermes/config.yaml の冒頭を変更する。

model:
  default: "qwen3.6:27b"
  provider: "ollama"
  base_url: "http://192.168.1.2:11434/v1"
  context_length: 65536

Hermesの設定ファイル

ポイントは3つ:

  • provider: "ollama" は内部的に "custom"(OpenAI互換エンドポイント)にマッピングされる
  • OllamaのOpenAI互換エンドポイントは /v1 を付ける(11434/v1
  • context_length はHermesが64K以上を要求する。32768 のままだと起動時にエラーになるので注意

モデルは qwen3.6:27b を選んだ。日本語の品質が高く、27Bクラスの推論力がある。ただし応答に1〜3分かかるのが難点で、これについては後述する。

Discordゲートウェイの設定
#

Hermesのゲートウェイ機能を使うとDiscordをインターフェースとして使える。

まず ~/.hermes/.env にDiscordのBot TokenとホームチャンネルIDを追加する。

DISCORD_BOT_TOKEN=(Discord Dev PortalのBotトークン)
DISCORD_HOME_CHANNEL=(チャンネルIDの数値)
GATEWAY_ALLOW_ALL_USERS=true

チャンネルIDはチャンネル名ではなく数値が必要。Discordの設定 → 詳細設定 → 開発者モードをオンにしてから、チャンネルを右クリック → 「チャンネルIDをコピー」で取得できる。チャンネル名(秘書 など)をそのまま入れると起動時にエラーになる。

設定後はゲートウェイをサービスとしてインストールする:

hermes gateway install

systemdのユーザーサービスとして登録され、ログアウト後も稼働し続ける(systemd-linger で実現)。

hermes gateway status
● hermes-gateway.service - Hermes Agent Gateway
     Active: active (running) since ...
✓ User gateway service is running
✓ Systemd linger is enabled (service survives logout)

HermesゲートウェイのDiscord接続確認

OpenClawとHermesの比較
#

項目 OpenClaw Hermes Agent
インストール Docker + 複雑なJSON設定 スクリプト1行
永続記憶 なし(セッション限り) あり(プロジェクト学習)
組み込みスキル なし 74種類
モデル切替 設定ファイル編集 + 再起動 hermes コマンドで対話変更
メッセージ連携 Discord のみ Discord / Telegram / Slack / WhatsApp 他
安定性 Token失効で無限リトライ 正常に終了・再接続

現在の構成
#

[スマホ/PC: Discord #秘書チャンネル]
[N150サーバー: Hermes Agent Gateway (systemd)]
[Mac mini M4 Pro: Ollama + qwen3.6:27b]

前回と同じシンプルな2層構成だが、エージェント側がOpenClawからHermesに替わった。永続記憶と74スキルが加わり、単なるチャットボットから「育てるエージェント」になった。

現在の構成図

この構成を試したいなら、ゲートウェイサーバー用のミニPCは省電力なN100・N150搭載機が最適だ。

GMKtec NucBox G9 ミニPC(Intel N150)


次はHermesのObsidianスキルを有効化して、ノートとの統合を試す予定。それも記事にする。

関連記事