メインコンテンツまでスキップ

Slack

Slack を Squid に接続して、AI を活用したメッセージを送信する

Slack コネクターの機能

Slack コネクターは以下をサポートします:

  • チャンネル、グループ、個々のユーザーへのメッセージ送信
  • SlackBot 経由で Slack 内から Squid AI エージェントと直接やり取り
  • ナレッジベースに会話を読み込み、インテリジェント検索と要約を実現

Slack コネクターの設定

Squid は Slack application に接続して、Slack ワークスペース内のメッセージを送信および読み取りします。

Slack application の作成

  1. Slack applications のランディングページに移動します。
  2. Create New App をクリックし、わかりやすい App Name と対応する Slack ワークスペースを指定します。

Squid application に Slack コネクターを追加する

  1. Squid Console に移動し、Connectors タブを選択します。

  2. Available Connectors タブに切り替え、Slack コネクターを追加します。

  3. 設定の詳細は、先ほど作成した Slack application の設定ページで確認できます:

    Connector ID: コード内でコネクターを一意に識別するための、意味のある文字列。

    App ID: Slack application の ID。Slack app 設定の Basic Information タブで確認できます。

    Client ID: Slack application の Client ID。こちらも Basic Information タブで確認できます。

    Verification Token: Slack app の Verification Token。Basic Information タブで確認できます。

    Client Secret: Slack app の Client Secret。Basic Information タブで確認できます。

    Signing Secret: Slack app の Signing Secret。Basic Information タブで確認できます。

    Squid Console API overview

    Bot User OAuth Token: Slack application の Bot User OAuth token。OAuth & Permissions タブで確認できます。このトークンは、Slack API へのリクエストを認証するために使用します。

    Squid Console API overview

    Index Channels: Squid が(ボットが追加されているチャンネルの)すべてのメッセージを読み取り、インテリジェント検索と要約を提供するかどうか。

    Message History Limit: Slack 経由で Squid にメッセージを送る際、ユーザーに最適に回答できるだけのコンテキストを得るために、Squid が読み取る直前のメッセージ数。

  4. OAuth & Permissions タブに移動し、以下の Bot Token Scopes が追加されていることを確認します:

    • app_mentions:read
    • channels:history
    • channels:join
    • channels:read
    • chat:write
    • chat:write.public
    • files:read
    • files:write
    • groups:history
    • groups:read
    • im:history
    • im:read
    • im:write
    • mpim:history
    • mpim:read
    • mpim:write
    • users:read
    • users:read.email

application で Slack コネクターを利用する

application で Slack コネクターを利用する方法は 3 つあります:

  1. Agent Studio を使用する: Agent Studio で Add Abilities > Slack から Slack コネクターを追加します。abilities について詳しくはこちら。その後、Test Agent タブでメッセージ送信をテストできます。メッセージ検索については、Squid が Slack メッセージをインデックスするまで数時間待ってください。メッセージ例:

    • Send a slack message saying "Hello!" to James - ここで "James" は Slack ユーザーです
    • Post "The deployment was successful!" to the #devops channel
    • Search Slack for conversations about the product launch
    • Show me all discussions in the Engineering team about API design
    • Find messages in the Finance channel about budget planning
  2. Squid SDK を使用する: Squid SDK を使用して AI エージェントを作成している場合、squid.ai().agent('AGENT_ID').ask() 関数でエージェントとチャットできます。詳しくはこちらask() 関数の connectedIntegrations オプションに追加して Slack コネクターを使用します。

// エージェントが Slack コネクターを認識できるようにするための設定。
const config = {
connectedIntegrations: [{
integrationId: 'SLACK_CONNECTOR_ID',
integrationType: 'slack',
description: 'Call this connector whenever a user asks to send or search Slack messages',
}]
};

// メッセージを送信。
await this.squid.ai().agent('AGENT_ID').ask('Send a slack message saying "Hello!" to the general channel', config);

// 検索に関連するメッセージを検索。
await this.squid.ai().agent('AGENT_ID').ask('Find messages in the Finance channel about budget planning.', config);
  1. NPM package を使用する: @squidcloud/slack-client を使用する場合は、次のことができます:
// クライアントを初期化。
const slackClient = SquidSlackClient(this.squid, 'SLACK_CONNECTOR_ID');

// メッセージを送信。
await slackClient.sendMessage({
recipient: 'general',
recipientType: 'channel',
message: 'Hello!'
});

// 検索に関連するメッセージを検索。
await slackClient.searchMessages({
channelNames: 'general,random',
prompt: 'need help'
});

SlackBot 経由で AI Agents とやり取りする

Slack 内で AI agents と直接やり取りするには、Slack application で次のように SlackBot 機能を設定します:

  1. Slack application の設定で Event Subscriptions タブに移動します。
  2. Enable Events を ON に切り替えます
  3. Request URL に、Slack 通知用 Webhook URL を入力します。URL は次の形式です:

https://[APP_ID]-[ENV_ID]-[DEVELOPER_ID].[REGION].squid.cloud/webhooks/slackNotification?agentId=[AGENT_ID]

Note

[DEVELOPER-ID] は、バックエンドをローカルで実行している場合にのみ必要です。squid にデプロイする場合は省略されます。例:

https://9kxp2nvqtcfflwazoe-dev.us-east-1.aws.squid.cloud/webhooks/slackNotification?agentId=quote-agent
Squid Console API overview
  1. Subscribe to Bot Events の下に、次のイベントを追加します:
    • message.im - ボットに送信されたダイレクトメッセージを受信するため
    • app_mention - チャンネル内でボットがメンションされたメッセージを受信するため

以上です。ユーザーが SlackBot にメッセージを送ると、Squid はプロンプトを指定されたエージェントに転送し、Slack 内で直接返信します。