コンテンツにスキップ

AI 社員に専用の Telegram Bot と Google Chat アプリを持たせる

既定では、すべての AI 社員は会社の共用チャンネル(Telegram Bot 1 つ、Google Chat アプリ 1 つ)で話します。このガイドの設定をすると、特定の社員専用の Bot やアプリに話しかけられ、その社員が答えます。

場所:AI 社員 → 社員を開く → 連携 → 専用チャンネル。

Telegram Bot Google Chat アプリ
設定できる人 管理者のみ(担当者は状態を確認できます) 管理者のみ(担当者は状態を確認できます)
必要なもの @BotFather のトークン Google Cloud プロジェクト、Chat アプリ、サービスアカウントの JSON キー、Google から届く HTTPS アドレス
再起動 不要 不要
未設定のとき 共用 Telegram Bot 共用 Google Chat アプリ

1 つの Bot、1 つの Chat アプリは 1 人の社員専用です。ほかの社員が使っているものは保存時に拒否されます。

  1. Telegram で @BotFather を開き、/newbot を送って案内どおりに名前を付けます。
  2. 123456789:AAE… のようなトークンが届くので、全部コピーします。
  3. 専用チャンネル → Telegram に貼り付けて 接続 を押します。

保存前に Telegram へ Bot の情報を問い合わせます。Telegram が拒否したトークンは保存しません。その時点で Telegram に届かない場合は保存し、Bot が再試行を続けます。カードには 接続済み。Bot は @your_bot か、つながらない理由(BotFather でトークンを無効にした後は「Bot Token 無效」など。新しいトークンを貼り付けてください)が表示されます。

動作:

  • 個人チャットとグループの両方で使えます。グループではメンション(@your_bot)、返信、コマンドのときだけ答えます。グループごとにチャンネルの動作設定で変えられます。
  • この Bot へのメッセージはすべてこの社員が答えます。@ でほかの社員を呼ぶのは共用 Bot だけの機能です。
  • 同じ人がほかの社員の Bot とも話していても、会話履歴は社員ごとに分かれます。
  • 誰が話しかけられるかは Telegram チャンネルのアクセスルール(許可・ブロック、ペアリング)に従い、共用 Bot と同じです。
  • 「思考中…」の状態表示も共用 Bot と同じです。
  • 共用 Bot が同じトークンを使っている場合は社員の Bot が引き継ぎ、社員の Bot を削除すると共用設定に戻ります。

社員ごとに専用の Google Cloud プロジェクトと Chat アプリが必要です(Chat アプリは 1 プロジェクトに 1 つ)。

  1. 社員用に Google Cloud プロジェクトを作り、Google Chat API を有効にします。プロジェクト番号(数字。プロジェクト ID ではありません)を控えます。
  2. 同じプロジェクトでサービスアカウントを作り、JSON キーをダウンロードします。
  3. Chat API の構成ページでアプリを作成します。インタラクティブ機能、1 対 1 メッセージとスペースを有効にし、HTTP エンドポイント URL に社員のカードに表示されたアドレス https://<公開ホスト>/webhook/googlechat/agents/<社員 ID> を入力します。認証対象(Authentication Audience) はプロジェクト番号にします。
  4. 管理者がプロジェクト番号と JSON キー全体を 専用チャンネル → Google Chat に貼り付けて 接続 を押します。キーでアクセストークンを取得して確認し、カードに使用中のサービスアカウントが表示されます。
  5. Google Chat でアプリをスペースに追加するか、直接メッセージを送ります。

動作:

  • このアドレスへの Google からのリクエストは、内容を読む前にその社員のプロジェクト番号で検証します。ほかのアプリ向けの署名、認証対象の違い、トークンなし・偽造はすべて拒否します(HTTP 401)。アプリ未設定の社員や存在しない ID も同じ 401 を返すため、どの社員にアプリがあるかはアドレスからわかりません。1 つの送信元アドレスで拒否が毎分 120 回を超えると、妥当なトークンのないリクエストには HTTP 429 を返します。検証に通ったリクエストは数えません。
  • 返信(とこの社員が後でスペースへ転送するメッセージ)はこのアプリの資格情報で送るため、アプリがそのスペースのメンバーである必要があります。
  • プロジェクト番号だけを変える場合はキー欄を空のままにすると、保存済みのキーが残ります。
  • アプリを削除するとアドレスはすぐ閉じます。

後から届くメッセージの送信元

Section titled “後から届くメッセージの送信元”

その会話に後から送るメッセージは、会話が入ってきた Bot またはアプリから送ります。

  • この社員がほかの AI 社員に任せた仕事の回答
  • その会話で設定したリマインダーや、社員がその会話に送り返すメッセージ
  • その会話の承認依頼、/goal の進捗などの通知

Telegram では社員専用の Bot を使い、その間に Bot が削除されていた場合は送信を失敗させ、別の Bot には切り替えません。Google Chat では、そのスペースから最近メッセージを受け取ったアプリを使います。アプリがスペースを抜けていて Google に拒否された場合は記録から外し、次回はそのスペースで見かけた別のアプリを使います。

  • トークンとキーは社員の agent.toml に暗号化して保存します(bot_token_enc、service_account_json_enc)。端末の暗号鍵が使えないときは平文で保存せず、保存を拒否します。
  • 状態表示は Bot のユーザー名とサービスアカウントのメールだけで、トークンやキーは表示しません。
  • 設定と削除はセキュリティ監査ログに記録します(agent_channel_bound、agent_channel_removed)。
  • このリリース以前に作成したリマインダーは引き続き共用 Bot から送ります。
  • Google Chat アプリの認証対象は「プロジェクト番号」のみ対応です(「HTTP エンドポイント URL」は非対応)。
  • Discord と Slack の社員専用 Bot は、これまでどおり同じページの「チャンネルを追加」(管理者)で設定します。