AIP
Slack を接続する
Agent を Slack に追加して、チャンネルやダイレクトメッセージで質問したり、ファイルを扱ったり、チームで利用したりできます。
始める前に
AIP で Agent を作成して有効にします。接続先の Slack ワークスペースに App をインストールする権限が必要です。承認が必要な場合は、ワークスペース管理者に依頼してください。AIP と Slack App の設定画面を開いておきます。
Slack App ごとに設定できる Events Request URL は一つです。既存の App が別のチャネルで使われている場合は、新しい App を作成してください。詳しくは Slack の HTTP コールバック説明を参照してください。
Slack App を作成する
Slack Apps を開き、Create an App をクリックします。

From a manifest を選び、接続先のワークスペースを選択します。JSON に切り替え、以下の設定をすべて貼り付けます。アプリ情報を確認して作成を完了します。
Slack App Manifest(JSON 全文)
{
"display_information": {
"name": "HAST Agent",
"description": "Agent conversations, channel history, public search and files"
},
"features": {
"bot_user": {
"display_name": "hast-agent",
"always_online": false
},
"app_home": {
"home_tab_enabled": false,
"messages_tab_enabled": true,
"messages_tab_read_only_enabled": false
},
"agent_view": {
"agent_description": "Ask your HAST Agent for help with messages, history and files."
}
},
"oauth_config": {
"scopes": {
"bot": [
"app_mentions:read",
"assistant:write",
"channels:history",
"channels:read",
"chat:write",
"emoji:read",
"files:read",
"files:write",
"groups:history",
"groups:read",
"im:history",
"im:read",
"im:write",
"mpim:history",
"mpim:read",
"mpim:write",
"pins:read",
"pins:write",
"reactions:read",
"reactions:write",
"search:read.public",
"users:read"
]
}
},
"settings": {
"event_subscriptions": {
"request_url": "https://example.com/slack/events",
"bot_events": [
"app_mention",
"message.channels",
"message.groups",
"message.im",
"message.mpim"
]
},
"socket_mode_enabled": false,
"org_deploy_enabled": false,
"token_rotation_enabled": false
}
}
アプリ名と説明は変更できます。https://example.com/slack/events は仮の URL です。AIP のコールバックを取得したら置き換えてください。この URL ではワークスペースのメッセージを受信できません。
Socket Mode がオフになっていることを確認します。ダイレクトメッセージを使う場合は、App Home の Messages Tab を有効にし、App へのメッセージ送信を許可します。
ワークスペースにインストールする
OAuth & Permissions を開き、Bot Token Scopes に以下の 22 項目を追加して Install to Workspace をクリックします。
| 用途 | 権限 |
|---|---|
| メンションと Agent | app_mentions:read, assistant:write |
| チャンネルとメッセージ | channels:history, channels:read, groups:history, groups:read, chat:write |
| ダイレクトメッセージ | im:history, im:read, im:write |
| グループダイレクトメッセージ | mpim:history, mpim:read, mpim:write |
| 添付ファイル | files:read, files:write |
| 絵文字とリアクション | emoji:read, reactions:read, reactions:write |
| ピン留め | pins:read, pins:write |
| 公開検索とユーザー | search:read.public, users:read |
User Token Scopes は空のままにします。

Request to Workspace Install と表示された場合は申請を送り、管理者の承認後にインストールを続けます。

申請画面で必要に応じて Reason を入力し、Submit Request をクリックします。申請だけではインストールは完了しません。管理者の承認を待ってから続けてください。

この画面の Redirect URLs はメッセージのコールバックではありません。手順 4 の Event Subscriptions で設定してください。
続いてアプリのインストールページが開いた場合は、Add to Slack をクリックします。すでに認可画面が表示されている場合は、次の手順に進みます。

認可画面で接続先のワークスペースと権限を確認し、Allow をクリックします。scopes を変更した場合は、権限を反映するために再インストールが必要です。公開検索には管理者の承認が必要な場合があります。

OAuth & Permissions に戻り、xoxb- で始まる Bot User OAuth Token をコピーします。User OAuth Token も表示されている場合、そちらは AIP に入力しないでください。

AIP でチャネルを作成する
同じ Slack App の Basic Information を開き、App Credentials の Signing Secret 横にある Show をクリックして値をコピーします。同じページの Client Secret、Verification Token と区別してください。

AIP のチャネル画面から新しいチャネルを作成し、Slack を選択します。チャネル名、Bot User OAuth Token、Signing Secret を入力し、保存してコールバック設定に進みます。
作成後に表示されるメッセージコールバック URL を省略せずにコピーし、画面を開いたままにします。次の手順で Slack のコールバック設定を完了してから、画像内の続行ボタンをクリックしてください。

コールバックとイベントを設定する
- Slack App の設定に戻り、
Socket Modeがオフであることを確認します。 Event Subscriptionsを開き、Enable Eventsをオンにします。- AIP のコールバック URL 全体を
Request URLに貼り付け、Verifiedを待ちます。 Subscribe to bot eventsを開き、以下の五つのイベントを確認します。Save Changesをクリックします。再インストールを求められたら実行します。

| Bot event | 受信するメッセージ |
|---|---|
app_mention | Bot へのメンション |
message.channels | 公開チャンネルのメッセージ |
message.groups | プライベートチャンネルのメッセージ |
message.im | ダイレクトメッセージ |
message.mpim | グループダイレクトメッセージ |
Slack で Bot をテスト用チャンネルに招待します。参加後、そのチャンネルのメッセージイベントを受信し、権限に応じて履歴を読めるようになります。
Agent を選んでテストする
AIP に戻り、プラットフォーム設定の完了を確認して次に進みます。有効な Agent を選んで保存してください。後からチャネルメニューの編集画面で Agent を変更することもできます。

Bot が参加しているチャンネルで @Bot こんにちは。何ができますか? と送信します。@Bot は実際の App へのメンションに置き換えてください。元のチャンネルまたはスレッドに返信が届いたら、続けて質問します。
初期設定では、チャンネルとスレッドで質問するたびにメンションが必要です。ダイレクトメッセージでは不要です。Slack はワークスペースとチャンネルのメンバー権限を使うため、招待コードは必要ありません。
添付ファイルを扱う場合は、Agent のファイル操作権限を書き込み可能なワークスペースに設定し、利用可能な機能でコマンド実行とネットワークアクセスを有効にして保存します。個人情報を含まない小さなファイルを送り、Bot にメンションして読み取りを依頼します。続いてファイルの返信を依頼し、読み取りと送信をそれぞれ確認してください。
返信のトリガーを設定する
Slack の返信トリガー設定で、メンション不要のチャンネルと送信者を指定できます。チャンネルには Channel ID、送信者には Slack User ID または Bot ID を入力します。複数の場合は改行またはカンマで区切ります。
Bot が参加しているチャンネルでは、メンション、チャンネルの例外、送信者の例外のいずれかに一致すると返信します。自動アラートには通知用 Bot の ID を指定できます。Bot 自身のメッセージは無視されます。
Channel ID は、Slack のチャンネル名をクリックして About を開き、下部の Channel ID からコピーします。
よくある問題
Request URL を検証できない
Socket Mode がオフであること、URL が現在のチャネルの完全なコールバックであること、Signing Secret が同じ Slack App のものであることを確認します。URL はインターネットから HTTPS でアクセスできる必要があります。修正後に Retry をクリックし、Verified の表示を確認して保存します。
Verified なのに返信がない
Bot のチャンネル参加、五つのイベントの保存、権限変更後の再インストール、AIP で有効な Agent が選ばれていること、返信トリガーを順に確認します。まずチャンネルで Bot にメンションするか、直接メッセージを送ってください。
解決しない場合は、チャネル名と送信時刻を管理者に伝えてください。添付ファイルの問題は files:read、files:write と Agent のファイル操作権限・利用可能な機能も確認します。
新しい接続後、以前のチャネルに届かない
同じ Slack App を使い回し、Events Request URL を変更していないか確認します。以前のコールバックを復元し、新しいチャネルには別の App を作成してください。
会話できるが検索や履歴の取得に失敗する
履歴を読むには、Bot が参加しているチャンネルの Channel ID を Agent に伝えます。スレッドには Thread ID も指定します。公開・プライベートのどちらも Slack の権限に従います。
公開検索には search:read.public を使い、Bot が未参加の公開チャンネルが含まれる場合があります。プライベートチャンネル全体の検索はできません。インストール済み Token に権限と管理者の承認があるか確認してください。詳しくは Slack の公開検索権限を参照してください。

