Hermes AgentをDocker + Telegramを利用して無料のAPI枠でまずは使ってみた
Hermes AgentをDocker + Telegramで安全寄りに立ち上げ、無料枠で使い始めるまで
AIエージェントを日常で使うとき、最初に悩むのは「どこに置くか」と「どこまで安全にできるか」だと思う。
今回は、Hermes Agent を Docker 上で動かし、Telegram Bot として常駐させ、できるだけ外部公開を避けながら、まずは OpenRouter の無料ルーターで使い始める構成を試した。
結論から言うと、この構成はかなり良かった。
ローカルPCで閉じたまま常駐でき、スマホから Telegram 経由で自然に話しかけられる。しかも最初の検証段階なら、無料枠でも十分に雰囲気を掴める。
この記事でやったこと
- Hermes Agent を Docker で起動
- Telegram Bot として常駐
- 外部公開なしで利用
- 永続データをホスト側に保存
- OpenRouter を推論プロバイダに設定
- できるだけ無料運用寄りになるように調整
なぜこの構成にしたのか
Hermes Agent はローカルCLIとしても使えるし、各種 messaging platform に常駐させることもできる。
ただ、セキュリティを考えると、普段使いのマシンにそのまま入れるより、まずは Docker コンテナの中に閉じ込めて動かす方が扱いやすい。
加えて、Dashboard や API server を開けると便利になる一方で、公開面も増える。そこで今回は、最初の構成としてはかなり保守的に、
- Docker の中で Hermes を動かす
- Telegram とは外向き通信だけで接続する
- ローカルポートは公開しない
という形を採用した。
この構成なら、自宅PCを常時起動しておけば、VPS を立てなくてもスマホから Hermes を使える。
構成の全体像
役割を分けるとシンプルだ。
- Hermes Agent: 会話や処理を行う本体
- Docker: Hermes を入れる隔離環境
- Telegram Bot: ユーザーインターフェース
- OpenRouter: LLM 呼び出し先
- ホスト側の永続ディレクトリ: 設定、記憶、セッションの保存先
つまり、普段の操作は Telegram から行い、Hermes 本体は Docker の中で静かに動き続ける。
セキュリティ面で決めたこと
今回は「完璧な安全」ではなく、「個人用途としてかなり事故りにくい構成」を目指した。
やったことは以下の通り。
- 秘密情報はプロジェクト配下ではなく ~/.hermes/.env に保存
- Docker イメージは latest ではなく固定タグ + digest を使用
- Dashboard と API server は使わない
- ポート公開をしない
- Telegram で許可するユーザーを自分の user ID のみに限定
このあたりは派手ではないが、長く使うならかなり重要だと思う。
特に API キーや Bot token を作業ディレクトリに置かないこと、外からアクセスできるポートを雑に開けないことは、最初に決めておいた方がいい。
実際にハマったポイント
セットアップ自体は思ったより素直だったが、いくつかつまずきどころがあった。
1. macOS の Documents 配下権限
ランチャースクリプトを Documents 配下に置いていたところ、macOS の保護に引っかかって Operation not permitted になった。
これは Hermes の問題というより、macOS 側の権限設計によるものだった。最終的には、ランチャー一式をホーム配下の別ディレクトリへ移して回避した。
2. Docker の権限を絞りすぎた
最初は安全寄りにしようとして Linux capability をかなり削ったが、Hermes 公式イメージは起動時にユーザー権限を切り替える前提になっており、結果としてコンテナが立ち上がらなかった。
ここは「一般論として安全そうな設定」と「そのイメージが実際に必要とする権限」が必ずしも一致しない、という良い例だった。
最終的には、公式の起動前提に近い最小構成へ寄せることで安定した。
記事の続きは下記のSubstackに全文書いてます!
Hermes AgentをDocker + Telegramを利用して無料のAPI枠でまずは使ってみた