ブログ

Hermes AgentをTelegramに接続し、スマートフォンからタスクを管理する方法

Markdown

ステップごとの設定方法:BotFatherでボットを作成し、Hermes Agentにトークンとアクセスリストを追加して、ゲートウェイを起動します。音声メッセージ、スケジュール済みタスク、スマートフォンからの操作。

記事の全文を読む

パソコンから離れているときも、スマートフォンのTelegramからHermes Agentにメッセージを送ったり、タスクを音声入力したりできます。結果は同じチャットで受け取れます。スケジュール済みタスクの結果は、一度指定したホームチャットに届きます。

まだHermesを使っていない場合は、このエージェントとは何か、インストール方法のガイドから始めて、その後Telegramとの接続に戻ってきてください。

詳しい手順はAilootのドキュメントにもあります。

Hermes AgentをTelegramに接続するには何が必要ですか?

重要なポイント

モデルを接続したHermes AgentとTelegramアカウントが必要です。Telegramでのボット作成は無料で、Hermesはオープンソースプロジェクトです。モデル、クラウド音声認識、ボットを24時間稼働させる場合のサーバーには、別途費用がかかることがあります。

hermes doctorコマンドで、Hermesのインストールとモデル接続を確認できます。Telegramアプリでボットを作成し、ターミナルでコマンドを実行するためにパソコンを使います。

BotFatherでボットを作成するには?

重要なポイント

Telegramで@BotFatherを開き、/newbotを送信し、表示名と末尾がbotの一意なユーザー名を選びます。BotFatherから123456789:ABCdef...形式のトークンが返されます。これはボットのキーです。保存し、誰にも見せないでください。

Telegramの各ボットには、ボットを操作するための秘密鍵であるトークンがあります。これはTelegram公式のボット、@BotFatherが発行します。

  1. @BotFatherを開く

    Telegramで@BotFatherを検索するか、t.me/BotFatherを開きます。本物のBotFatherには青い認証済みチェックマークが付いています。「Start」をタップして会話を始めます。

  2. /newbotコマンドを送る

    BotFatherから2つの名前を尋ねられます。1つ目は表示名で、たとえば「My Agent」のように自由に付けられます。2つ目はユーザー名です。一意である必要があり、末尾をbotにします。例:moy_agent_bot。

  3. トークンを取得する

    BotFatherからお祝いのメッセージと、123456789:ABCdefGHIjklMNOpqrSTUvwxYZ形式の長い文字列が届きます。これがボットトークンです。文字列全体をコピーしてください。

注意

トークンがあればボットを完全に操作できます。トークンを知っている人は誰でもボットを操作できます。トークンが漏れた場合は、BotFatherとの会話で/revokeコマンドをすぐに実行して無効化し、新しいトークンを取得してください。

BotFatherと手動でやり取りせずに済む簡単な方法もあります。Hermesのウェブダッシュボード(hermes dashboard)とデスクトップアプリの「Messaging → Telegram」ページにある「Create with QR」ボタンを使います。スマートフォンでコードをスキャンすると、Hermesがボットを作成し、あなたのIDを検出して、設定にトークンを保存し、ゲートウェイを再起動します。以下は手動で設定する方法です。QRを使った場合は、接続確認に進んでください。

Telegram IDはどこで確認できますか?なぜ必要ですか?

重要なポイント

あなたの数字のTelegram IDを確認します。アクセスリストには@付きのユーザー名を使えません。HermesはアクセスリストにこのIDを使います。個人の許可リストに加え、グループ全体の認可設定も確認します。個人リストの有無だけで、すべてのチャットの認可は判断できません。

Telegramアカウントには、@付きの公開ユーザー名と、内部で使う数字のIDという2種類の識別子があります。Hermesが使うのは数字のIDです。

IDの確認は簡単です。Telegramの「Create with QR」方法を使うと、あなたのIDが自動的に検出されます。トークンの横に書き留めてください。

Hermes Agentにトークンを渡してゲートウェイを起動するには?

重要なポイント

hermes gateway setupでセットアップウィザードを実行してTelegramを選びます。トークンとIDを入力すると、すべて保存されます。手動で設定する場合は、~/.hermes/.envファイルに2行追加します。その後、hermes gatewayでゲートウェイを起動すれば、数秒でボットが使えるようになります。

セットアップウィザード手動
実行するものhermes gateway setup~/.hermes/.envファイルを編集するエディター
入力するものウィザードの質問に対するトークンとID2つの変数を手動で入力
保存場所ウィザードが設定に保存設定を.envに直接入力
対象すべての人。推奨方法設定ファイルの編集やスクリプトでの設定に慣れている人
  1. セットアップウィザードを実行する

    hermes gateway setup
    

    Hermesがインストールされているマシンでコマンドを実行します。ウィザードにメッセージングアプリの一覧が表示されます。

  2. Telegramを選び、情報を入力する

    ウィザードでボットトークンと許可するID(複数の場合はコンマ区切り)を入力すると、設定に保存されます。

  3. ゲートウェイを起動する

    hermes gateway
    

    ゲートウェイが起動し、Telegramに接続します。数秒後にアプリからボットにメッセージを送ってください。Hermesから返信があれば、接続は完了です。

ウィザードを使わずに手動で設定する場合は、~/.hermes/.envファイルを開き、BotFatherから取得したトークンと数字のIDを入れて、次の2行を追加します。

TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789

2行目は個人チャットとグループで、その人を許可する設定です。別のグループ単位の認可でアクセスを与えることもあります。複数の場合はコンマで区切ります。ファイルを保存したら、同じhermes gatewayコマンドでゲートウェイを起動します。

プライベートチャットでもボットが無反応の場合は、同じターミナルでゲートウェイのログを確認し、まずトークンとアクセスリスト内のIDが正しいか確認してください。その他のエラーについては、記事末尾の表を参照してください。

Telegramボットをスマートフォンで使って何ができますか?

重要なポイント

Telegramボットはテキストや音声メッセージを読み取り、ファイルや画像を受け取り、危険なコマンドの前にはチャット内で許可を求めます。また、モデルの選択肢をボタンで表示します。デフォルトでは、最終回答、確認要求、コマンドの確認時のみ通知音が鳴ります。

スマートフォンで特によく使う機能は5つあります。

テキストと音声メッセージ。文章でタスクを書いたり、音声メッセージを録音して送ったりできます。音声認識を設定しておけば、Hermesが文字起こしして内容を理解します。ローカルプロバイダーならキーは不要です。エージェントが動作するマシン上ですべて処理されます。

ファイルと画像。文書、スプレッドシート、スクリーンショットをボットに転送すると、エージェントは添付ファイルとして受け取ります。生成したファイルを送り返すこともできます。たとえばレポートを依頼すると、チャットにファイルとして届きます。

危険な操作の確認。ファイル削除など、エージェントが危険な操作を実行しようとすると、まずチャットで確認します。「yes」または「y」と返信すると実行し、「no」または「n」と返信するとキャンセルします。

文字入力の代わりにボタンを使う。エージェントが確認を必要とすると、インラインの選択ボタン付きで質問を送ります。選択肢をタップすると、エージェントは作業を続けます。引数なしで/modelコマンドを実行すると、同じ種類のボタンが並ぶモデル選択メニューが表示されます。

通知音を抑える。デフォルトでは、最終回答、確認要求、コマンド確認の場合のみスマートフォンの通知音が鳴ります。「calling a tool」や「compressing context」などのサービス通知は無音で届くため、作業のたびにスマートフォンが鳴ることはありません。毎回音で通知してほしい場合は、設定でモードを切り替えてください。

バックグラウンドタスクの結果をチャットで受け取るには?

重要なポイント

スケジュール済みタスクの結果はホームチャットに送られます。ボットとの会話を開き、/sethomeコマンドを送ってください。トピックから開始したバックグラウンドタスクは、同じトピックに戻ってきます。ゲートウェイを起動し続けることが重要です。起動していないと、パソコンの電源が切れている間、ボットは無反応になります。

スケジュール済みタスク用のホームチャット。Hermesはスケジュール済みタスクに対応しています。「毎朝7:43に要約を作成して」といったタスクです。結果はホームチャットに送られます。ボットとの会話で/sethomeコマンドを直接送ると、一度だけ指定できます。ゲートウェイが起動していれば、要約が自動的に届きます。

バックグラウンドタスク。時間のかかるタスクをバックグラウンドで実行するよう送り、その間に別のことをできます。準備ができると、ボットからメッセージが届きます。トピックから開始したタスクの回答は同じトピックに戻るため、見失うことはありません。

重要な制限があります。ボットが返信するのは、ゲートウェイが起動している間だけです。Hermesを実行しているパソコンの電源を切るかスリープ状態にすると、マシンが再び起動するまでボットは返信しません。ボットを常時オンラインにするには、エージェントをサーバーに移してください。Hermes Agentを24時間稼働させる方法については、別のガイドがあります。デフォルトでは、ゲートウェイはTelegramに新しいメッセージがないかポーリングします。受信トラフィックがないとスリープするクラウドプラットフォーム向けに、ドキュメントにはWebhookモードもあります。このモードでは接続方向が逆になり、Telegram自身がボットにリクエストを送ります。

ボットに見知らぬ人がアクセスできないようにするには?

重要なポイント

TELEGRAM_ALLOWED_USERSは、個人チャットとグループで記載した送信者IDを許可します。グループには別の認可もあり、TELEGRAM_GROUP_ALLOWED_CHATSへ入れたチャットでは全メンバーを許可します。トークンは秘密にしてください。メンションのフィルターは返信のタイミングを制御するもので、誰がアクセスできるかではありません。

ボットはユーザー名でTelegram検索に表示されることがあるため、保護にはアクセスリストとトークンの秘密保持の2つが重要です。

まずTELEGRAM_ALLOWED_USERSで送信者を設定します。グループではTELEGRAM_GROUP_ALLOWED_CHATSも確認してください。ここへ記載したチャットは、個人リストにIDがなくても全メンバーが使えます。そのため、個人リストが空なだけでは全グループが閉じている証明にはなりません。

2つ目はトークンです。スクリーンショット、転送メッセージ、リポジトリに含めてはいけません。トークンが漏れた場合は、BotFatherで/revokeコマンドを実行して無効化してください。その後、新しいトークンを設定に入力して、ゲートウェイを再起動します。

グループの補足です。送信者とチャットの認可は別です。TELEGRAM_GROUP_ALLOWED_CHATSで許可したグループでは、TELEGRAM_ALLOWED_USERSにIDがなくても利用できます。個人単位に限定したいならグループ全体を許可せず、導入版の送信者制限を設定して検証してください。呼びかけられたときだけグループで返信させたい場合は、telegram.require_mention設定を使います。この設定を有効にすると、@メンション、ボットのメッセージへの返信、/command@yourbotのようなコマンド、telegram.mention_patternsに設定したパターンへの一致に反応し、通常のグループメッセージは無視します。

グループでボットが無反応なのはなぜですか?どうすれば直せますか?

重要なポイント

原因はTelegramのプライバシーモードです。デフォルトでは、グループ内のボットにはコマンドと自身のメッセージへの返信しか見えません。@BotFatherで「/mybots → Bot Settings → Group Privacy → Turn off」と操作して無効にします。その後、ボットをグループから削除して、もう一度追加する必要があります。Telegramが以前の設定を記憶しているためです。別の方法として、プライバシーモードを無効にせずにボットをグループ管理者にします。

新しいTelegramボットでは、デフォルトでプライバシーモードが有効になっています。Hermesのドキュメントでは、ボットがグループで使えないときに最も混乱を招く原因として説明されています。このモードでは、ボットが受け取るのは/で始まるコマンド、自身のメッセージへの返信、サービス通知のみです。通常のグループメッセージは受け取りません。Telegramがボットに送信しないため、エージェントの設定で解決することはできません。

解決方法:

  1. @BotFatherを開いて/mybotsを送ります。
  2. ボットを選びます。
  3. 「Bot Settings」→「Group Privacy」→「Turn off」を開きます。
  4. ボットをグループから削除し、もう一度追加します。

4つ目の手順を見落としやすく、その場合はボットが「まだ無反応」のままです。Telegramはボットがグループに参加した時点のプライバシー設定を記憶し、ボットをいったんグループから削除して再追加するまで更新しません。

プライバシー設定を全体的に無効にしたくない場合は、もう1つの方法があります。ボットをグループ管理者にしてください。管理者ボットは、どのプライバシーモードでもすべてのメッセージを受け取ります。

よくある接続エラーと対処方法

重要なポイント

まず、ゲートウェイが起動しているか、トークンとアクセスリスト内のIDが正しいかを確認してください。グループで使う場合はプライバシーモードを、音声認識ではSTTプロバイダーを、Edge TTSで音声返信する場合はffmpegを確認します。

症状原因対処方法
ボットがまったく返信しないトークンが間違っている、またはゲートウェイが起動していない.envのトークンを確認し、hermes gatewayを再起動して、同じターミナルでログを確認します
ボットが「unauthorized」と返信するIDがアクセスリストにないIDを確認し、TELEGRAM_ALLOWED_USERSに追加して、ゲートウェイを再起動します
プライベートチャットでは返信するが、グループでは無反応プライバシーモードBotFatherで「Turn off」を選び、ボットをグループから削除して再追加するか、管理者にします
音声メッセージが文字起こしされない音声認識が設定されていないローカル認識にはfaster-whisperパッケージがインストールされます。クラウド認識には各サービスのキーが必要です
Edge TTSによる音声返信が、通常の音声メッセージではなくファイルで届くffmpegがないffmpegをインストールします。Edge TTSでは、Telegramの音声メッセージ形式への変換に必要です
トークンが使えなくなったトークンが無効化されたBotFatherで/revokeと/newbot(または/token)を使って新しいトークンを取得し、.envの値を置き換えて、ゲートウェイを再起動します

Telegram上のHermes Agentについてよくある質問

重要なポイント

サーバーは必須ではありませんが、ボットが動作するのはゲートウェイの稼働中だけです。接続は無料で、費用がかかるのはモデルのみです。IDリストを使って複数の人が接続できます。ボットはプライベートチャットを見ることはできません。20 MBを超えるファイルには追加設定が必要です。

よくある質問

ボットを動かすのにサーバーは必要ですか?

いいえ。使い始めるには、Hermesをインストールしたパソコンがあれば十分です。ただし、ボットが動作するのはゲートウェイの稼働中だけです。パソコンの電源を切るかスリープさせると、マシンが再び起動するまでボットは無反応になります。24時間稼働させたい場合は、エージェントをサーバーに移してください。その方法については別のガイドがあります。

ボットの接続費用はいくらですか?

接続は無料です。Telegramはボットに料金を請求せず、Hermes Agentはオープンソースプロジェクトです。エージェントに接続するモデルや、24時間稼働させるためのサーバーには別途費用がかかることがあります。

妻やチームのメンバーをボットに接続できますか?

はい。TELEGRAM_ALLOWED_USERSリストではIDをコンマで区切ります。リストにある人は誰でも、ボットにプライベートメッセージを送れます。また、TELEGRAM_GROUP_ALLOWED_CHATSでチャット自体を許可すると、そのグループのメンバー全員がボットを利用できます。ドキュメントによると、これが許可チャットリストの仕組みです。

ボットは私のプライベートな会話を見ることができますか?

いいえ。Bot APIでボットが受け取るのは、プライベートチャットでボット宛てに送られたメッセージのみです。グループでは、このセクションで説明したようにTelegramのプライバシーモードが適用されます。ボットは他の人との会話にアクセスできません。

大きな音声メッセージをボットが受け付けなかったのはなぜですか?

公開Bot APIでは、ダウンロードできるファイルの上限は20 MBです。それより大きいファイルは拒否されます。Hermesのドキュメントには、上限を2 GBに引き上げるローカルBot APIサーバーを使った回避策が記載されています。20 MBを超えるファイルを受け付ける場合にのみ必要です。ドキュメントへのリンクは記事末尾の「出典」にあります。

ボットに機能を追加できますか?

はい。Hermesには、エージェント向けのすぐに使える機能であるスキルとプラグインがあります。この種のAIエージェントボットにプラグインをインストールする方法は、別の記事で説明しています。「TelegramのAIエージェントボットにプラグインをインストールする方法」をご覧ください。

出典

準備ができたら、Ailootについてご覧ください。

詳細を見る

Hermes AgentをTelegramに接続し、スマートフォンからタスクを管理する方法:よくある質問

個人の許可リストで、許可グループ内の未登録者も拒否できますか?

TELEGRAM_GROUP_ALLOWED_CHATSでチャット全体を許可した場合はできません。そのグループの全員が認可されます。TELEGRAM_ALLOWED_USERSは個別の送信者を許可する設定なので、グループへ開く前に両方を確認してください。

@メンション必須なら、グループ内でも一部の人だけが使えますか?

いいえ。メンションやパターンは反応するメッセージを決める設定です。許可チャットの全員に与えた認可を取り消すものではありません。

すべての記事