Skip to content

Slack

TriggerfishエージェントをSlackに接続して、エージェントがワークスペースの会話に参加 できるようにします。アダプターはSocket ModeでBoltフレームワークを使用します。 パブリックURLやWebhookエンドポイントは不要です。

デフォルト分類

SlackはデフォルトでPublic分類です。Slackワークスペースには外部ゲスト、Slack Connect ユーザー、共有チャンネルが含まれることが多いという現実を反映しています。ワークスペースが 厳密に内部向けであればINTERNALまたはそれ以上に上げることができます。

セットアップ

ステップ1:Slackアプリを作成する

  1. api.slack.com/appsにアクセス
  2. Create New Appをクリック
  3. From scratchを選択
  4. アプリの名前(例:「Triggerfish」)とワークスペースを選択
  5. Create Appをクリック

ステップ2:ボットトークンスコープを設定する

サイドバーのOAuth & Permissionsに移動し、以下のボットトークンスコープを追加します:

スコープ目的
chat:writeメッセージを送信
channels:historyパブリックチャンネルのメッセージを読む
groups:historyプライベートチャンネルのメッセージを読む
im:historyダイレクトメッセージを読む
mpim:historyグループダイレクトメッセージを読む
channels:readパブリックチャンネルをリスト表示
groups:readプライベートチャンネルをリスト表示
im:readダイレクトメッセージ会話をリスト表示
users:readユーザー情報を検索

ステップ3:ソケットモードを有効にする

  1. サイドバーのSocket Modeに移動
  2. Enable Socket Modeをオンに切り替え
  3. アプリレベルトークンを作成するよう求められます — 名前をつけ(例:「triggerfish-socket」) connections:writeスコープを追加
  4. 生成されたアプリトークンをコピー(xapp-で始まる)

ステップ4:イベントを有効にする

  1. サイドバーのEvent Subscriptionsに移動
  2. Enable Eventsをオンに切り替え
  3. Subscribe to bot eventsで以下を追加:
    • message.channels
    • message.groups
    • message.im
    • message.mpim

ステップ5:認証情報を取得する

3つの値が必要です:

  • ボットトークンOAuth & Permissionsに移動し、Install to Workspaceを クリックし、Bot User OAuth Tokenをコピー(xoxb-で始まる)
  • アプリトークン — ステップ3で作成したトークン(xapp-で始まる)
  • 署名シークレットBasic Informationに移動し、App Credentialsまでスクロールし、 Signing Secretをコピー

ステップ6:SlackユーザーIDを取得する

オーナーアイデンティティを設定するには:

  1. Slackを開く
  2. 右上のプロフィール画像をクリック
  3. Profileをクリック
  4. 3点メニューをクリックしてCopy member IDを選択

ステップ7:Triggerfishを設定する

Slackチャンネルをtriggerfish.yamlに追加します:

yaml
channels:
  slack:
    # botToken、appToken、signingSecretはOSキーチェーンに保存
    ownerId: "U01234ABC"

シークレット(ボットトークン、アプリトークン、署名シークレット)は triggerfish config add-channel slack中に入力され、OSキーチェーンに保存されます。

オプションタイプ必須説明
ownerIdstring推奨オーナー確認のためのSlackメンバーID
classificationstringいいえ分類レベル(デフォルト:PUBLIC

シークレットを安全に保存する トークンやシークレットをソースコントロールに

コミットしないでください。環境変数またはOSキーチェーンを使用してください。詳細については シークレット管理をご覧ください。 :::

ステップ8:ボットを招待する

ボットがチャンネルでメッセージを読んだり送ったりする前に、招待する必要があります:

  1. ボットを追加したいSlackチャンネルを開く
  2. /invite @Triggerfish(またはアプリの名前)と入力

ボットはチャンネルに招待されなくてもダイレクトメッセージを受け取れます。

ステップ9:Triggerfishを起動する

bash
triggerfish stop && triggerfish start

ボットが存在するチャンネルでメッセージを送信するか、直接DMして接続を確認します。

オーナーアイデンティティ

Triggerfishはオーナー確認にSlack OAuthフローを使用します。メッセージが到着すると、 アダプターは送信者のSlackユーザーIDを設定されたownerIdと比較します:

  • 一致 — オーナーコマンド
  • 不一致PUBLIC taintの外部入力

ワークスペースメンバーシップ

受信者分類のために、SlackワークスペースのメンバーシップがユーザーがINTERNALEXTERNALかを決定します:

  • 通常のワークスペースメンバーはINTERNAL
  • Slack Connect外部ユーザーはEXTERNAL
  • ゲストユーザーはEXTERNAL

メッセージ制限

Slackは最大40,000文字のメッセージをサポートします。この制限を超えるメッセージは 切り捨てられます。ほとんどのエージェントレスポンスでは、この制限に達することはありません。

タイピングインジケーター

Triggerfishはエージェントがリクエストを処理しているときにSlackにタイピングインジケーターを 送信します。SlackはボットへのインカミングタイピングイベントをAPIとして提供していないため、 これは送信のみです。

グループチャット

ボットはグループチャンネルに参加できます。triggerfish.yamlでグループ動作を設定します:

yaml
groups:
  default_behavior: "mentioned-only"
  overrides:
    - channel: slack
      channel_name: "#ai-assistant"
      behavior: "always"
動作説明
mentioned-onlyボットが@メンションされた時のみ応答
alwaysチャンネルのすべてのメッセージに応答

分類の変更

yaml
channels:
  slack:
    classification: INTERNAL

有効なレベル:PUBLICINTERNALCONFIDENTIALRESTRICTED