メイドのアイコンに釣られてHermes Agentを触ってみたら、沼にハマった話(要約編)
きっかけ
家ではGemini、エンタメ用途ではGrok、会社ではCopilot、複雑な仕事はClaude。気づけば用途ごとにAIを使い分ける生活になっていた。
でもふと思う。この「どのAIをどう使うか」を判断して橋渡ししているのは結局自分(人間)で、それこそが一番のボトルネックなのではないか。だったら、その繋ぎ役ごと自己改善型のAIエージェントに任せてしまうのが本来の姿なのでは——。
そんな折にSNSで話題になっていた「OpenClaw」を覗いてみたものの、正直難しくてよく分からなかった。代わりに目に留まったのが、同じ自律型AIエージェントである「Hermes Agent」のメイドのアイコンだった。
深い理由はない。「これは俺でもいけるのでは」と、なんとなくそう思っただけだ。個人的にも仕事柄も、AIを単体でAPI経由で使う必要は特にない。それでも、APIを介して外部サービスを横断的につなぐ今の潮流を、一度自分の手で experience しておきたいという気持ちもあった。
そういうわけで、旧型ノートPC(Panasonic CF-LX6)にUbuntu Serverを入れ、Hermes AgentをDiscord Bot経由で動かす、という個人プロジェクトが始まった。
つまずいたポイント
環境構築自体はスムーズだった。しかし本番、Discordで@HermesBot2にメンションを送っても一切反応がないという壁にぶつかった。厄介だったのは、/helpや/statusのようなスラッシュコマンドは正常に動いていたこと。「疎通はしているのに、会話だけ無視される」という一番混乱するタイプの不具合だった。
疑って、潰していった項目は以下の通り。
-
Discord Developer PortalのIntent設定(Message Content・Server Members)
-
チャンネルのBotロール権限(View Channel / Read Message History / Add Reactions)
-
サーバーのDNS疎通
-
Discord Gatewayのセッションキャッシュ(
stop→startしても内部的にセッションが使い回されていた)
これらは全部「シロ」だった。ゲートウェイは正常に稼働し、DMを送ると普通に反応する。つまり原因はサーバー側でも権限側でもなく、Discordクライアント上でのメンションの打ち方そのものにあった。
真因:メンションは「クリックして確定」しないと本物にならない
@HermesBot2とキーボードで打っても、その後に出てくるオートコンプリートの候補をクリックやTab/Enterで確定しない限り、それは見た目こそメンションでも、実体は「ただの文字列」でしかない。Hermes Agentは本物のメンショントークンが含まれるメッセージにしか反応しない仕様だったため、ずっと「メンションしたつもり」で空振りしていた、というのがオチだった。
メンバー一覧からBot名を右クリックして「メンション」を選ぶ、という方法で送ったところ、一発で反応した。
もう一つ気づいたこと:メンション=タスク投入
無事に会話できるようになった後、動作確認のつもりで送った短い一言(「テスト」的な内容)が、Hermesにとっては「実行すべきタスク」として解釈されることが分かった。Hermesは1会話ターンあたり最大90回(既定値)まで思考・ツール呼び出しを繰り返せる仕様で、内容が曖昧な場合は待機状態になるだけで済んだが、これがもし有料のAPIプロバイダーだったら、テストのつもりの一言で地味にコストが発生しかねない。無料枠(OpenRouterのfreeモデル)だったので実害はなかったが、覚えておく価値のある注意点だと思う。
日本語で喋らせる
最後に、応答を日本語化する設定も試した。~/.hermes/config.yamlのdisplay.languageはCLIの定型メッセージしか翻訳せず、エージェント自身の応答は対象外。代わりにSOUL.md(エージェントの人格設定ファイル)に「常に日本語で応答すること」と一文書き足すことで、狙い通り日本語での会話ができるようになった。無料枠モデルゆえか、一度だけ文脈と無関係な文字列が混ざる出力があったが、単発のブレで、再送信したら自然な日本語に戻った。
まとめ
Hermes AgentのDiscord連携でハマったら、まず疑うべき順番はこうだ。
-
Discord Developer PortalのIntent設定
-
チャンネルの権限
-
メンションを本当に「本物」として確定させているか(見落としがち)
-
それでもダメならDNS・セッションキャッシュ・ゲートウェイの稼働状況
そして無事に会話できるようになったら、有料プロバイダーへの切り替え時は「メンション=タスク投入」というコスト面のリスクも頭の片隅に置いておくといい。
Written with StackEdit.
0 件のコメント:
コメントを投稿