Slack
TriggerfishエージェントをSlackに接続して、エージェントがワークスペースの会話に参加 できるようにします。アダプターはSocket ModeでBoltフレームワークを使用します。 パブリックURLやWebhookエンドポイントは不要です。
デフォルト分類
SlackはデフォルトでPublic分類です。Slackワークスペースには外部ゲスト、Slack Connect ユーザー、共有チャンネルが含まれることが多いという現実を反映しています。ワークスペースが 厳密に内部向けであればINTERNALまたはそれ以上に上げることができます。
セットアップ
ステップ1:Slackアプリを作成する
- api.slack.com/appsにアクセス
- Create New Appをクリック
- From scratchを選択
- アプリの名前(例:「Triggerfish」)とワークスペースを選択
- Create Appをクリック
ステップ2:ボットトークンスコープを設定する
サイドバーのOAuth & Permissionsに移動し、以下のボットトークンスコープを追加します:
| スコープ | 目的 |
|---|---|
chat:write | メッセージを送信 |
channels:history | パブリックチャンネルのメッセージを読む |
groups:history | プライベートチャンネルのメッセージを読む |
im:history | ダイレクトメッセージを読む |
mpim:history | グループダイレクトメッセージを読む |
channels:read | パブリックチャンネルをリスト表示 |
groups:read | プライベートチャンネルをリスト表示 |
im:read | ダイレクトメッセージ会話をリスト表示 |
users:read | ユーザー情報を検索 |
ステップ3:ソケットモードを有効にする
- サイドバーのSocket Modeに移動
- Enable Socket Modeをオンに切り替え
- アプリレベルトークンを作成するよう求められます — 名前をつけ(例:「triggerfish-socket」)
connections:writeスコープを追加 - 生成されたアプリトークンをコピー(
xapp-で始まる)
ステップ4:イベントを有効にする
- サイドバーのEvent Subscriptionsに移動
- Enable Eventsをオンに切り替え
- Subscribe to bot eventsで以下を追加:
message.channelsmessage.groupsmessage.immessage.mpim
ステップ5:認証情報を取得する
3つの値が必要です:
- ボットトークン — OAuth & Permissionsに移動し、Install to Workspaceを クリックし、Bot User OAuth Tokenをコピー(
xoxb-で始まる) - アプリトークン — ステップ3で作成したトークン(
xapp-で始まる) - 署名シークレット — Basic Informationに移動し、App Credentialsまでスクロールし、 Signing Secretをコピー
ステップ6:SlackユーザーIDを取得する
オーナーアイデンティティを設定するには:
- Slackを開く
- 右上のプロフィール画像をクリック
- Profileをクリック
- 3点メニューをクリックしてCopy member IDを選択
ステップ7:Triggerfishを設定する
Slackチャンネルをtriggerfish.yamlに追加します:
yaml
channels:
slack:
# botToken、appToken、signingSecretはOSキーチェーンに保存
ownerId: "U01234ABC"シークレット(ボットトークン、アプリトークン、署名シークレット)は triggerfish config add-channel slack中に入力され、OSキーチェーンに保存されます。
| オプション | タイプ | 必須 | 説明 |
|---|---|---|---|
ownerId | string | 推奨 | オーナー確認のためのSlackメンバーID |
classification | string | いいえ | 分類レベル(デフォルト:PUBLIC) |
シークレットを安全に保存する トークンやシークレットをソースコントロールに
コミットしないでください。環境変数またはOSキーチェーンを使用してください。詳細については シークレット管理をご覧ください。 :::
ステップ8:ボットを招待する
ボットがチャンネルでメッセージを読んだり送ったりする前に、招待する必要があります:
- ボットを追加したいSlackチャンネルを開く
/invite @Triggerfish(またはアプリの名前)と入力
ボットはチャンネルに招待されなくてもダイレクトメッセージを受け取れます。
ステップ9:Triggerfishを起動する
bash
triggerfish stop && triggerfish startボットが存在するチャンネルでメッセージを送信するか、直接DMして接続を確認します。
オーナーアイデンティティ
Triggerfishはオーナー確認にSlack OAuthフローを使用します。メッセージが到着すると、 アダプターは送信者のSlackユーザーIDを設定されたownerIdと比較します:
- 一致 — オーナーコマンド
- 不一致 —
PUBLICtaintの外部入力
ワークスペースメンバーシップ
受信者分類のために、SlackワークスペースのメンバーシップがユーザーがINTERNALか EXTERNALかを決定します:
- 通常のワークスペースメンバーは
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有効なレベル:PUBLIC、INTERNAL、CONFIDENTIAL、RESTRICTED。
