DifyでSlackBotを使って社内情報共有のためのAIエージェントを作ってみよう

Dify

Difyとは?

Difyは、プログラミングの知識がなくても直感的にAIアプリを開発できる画期的なプラットフォームです。ノーコードやローコードで、チャットボットや社内情報検索、レポート作成、ブログ記事支援など、多彩なアプリケーションが簡単に作れます。また、OpenAIなど複数のAIモデルや外部サービスとの連携も可能なため、業務効率化や新たなサービス創出に大きな可能性を提供します。

Dify.AI · 先進的なAIアプリケーションのためのイノベーションエンジン
先進的なAIアプリケーションのためのイノベーションエンジン

なぜSlackBotを作成するのか?

Difyは、AIチャットボットやエージェントを簡単に作成できるプラットフォームです。特に、Slackとの連携が非常に強力で、業務効率化や自動化に大きく貢献します。今回は、Difyを使って、Slack上で動く社内情報検索ボットを構築する方法をご紹介します。

  • Difyで実現する、スマートな情報検索ボットとは?
    • このボットは、Difyにあらかじめ情報統合された情報を入力しておき、それを元にSlack上でユーザーが質問を入力すると、社内のさまざまな情報源(例えば、Wiki、ドキュメント、FAQなど)から関連情報を検索し、要約して提供してくれます。​例えば、「〇〇に関する資料を探して」と質問すると、ボットはこれらの情報源を参照し、関連する情報を抽出して、簡潔にまとめた回答を返します。

Difyの特徴

  • 高度な自然言語理解(NLU)
    • Difyは大規模言語モデル(LLM)を活用し、ユーザーの入力を解析して適切な応答を生成します。
  • 知識ベースとの連携
    • 既存のナレッジベースをDifyに接続することで、外部の知識ベースとの連携が可能です。
  • 応答の最適化
    • Difyは、ユーザーの質問に対して関連性の高い情報を提供するため、ナレッジベースの関連付けとリコールモードの設定が可能です。

実際にDifyでSlackbotを使ってみよう

まずはDifyのページを開きます。

Dify.AI · 先進的なAIアプリケーションのためのイノベーションエンジン
先進的なAIアプリケーションのためのイノベーションエンジン

始めるボタンを押してGithubアカウントかGoogleアカウントを使ってログインします。

APIの設定

  • まずはDifyを使うためのAPI設定を行います。「最初から作成」を選択し、「チャットボット」を選択し、名前をつけてアプリを作成します。
  • 右上のLLMモデルをクリックし、プラグインからOpenAIやGeminiのプラグインをインストールしておきます。
  • 表示されるモデルのいずれかのLLMモデルをクリックし、モデルプロバイダー設定を選択すると、LLMモデルのAPI設定ができる画面に移行しますので、そこでOpenAIやGeminiのAPI設定を行います。今回はGeminiモデルが無料で使えるのでGeminiモデルのAPIを設定してみます。
  • GeminiのAPIはGoogle AI Studioから取得できます。
  • LLMモデルのAPI設定ができたら、公開するボタンを押してアプリを更新しておきます。

Slack botプラグインのインストール

次はプラグインからSlack botをインストールします。

プラグインボタンを押してプラグインをインストールする→マーケットプレイスを選びます。

Slackを検索すると、「Slack」と「Slack Bot」が出てきますが、今回は「Slack Bot」しか使いませんので「Slack Bot」のみをインストールしておきます。

Slack Botの詳細ページをクリックすると以下のページにアクセスしますのでその手順に沿って進めていきましょう。

Slack Bot - Dify Marketplace
Dify Marketplace

今回はSlackアプリをインストールしているという前提で話を進めていきますので、Slackアプリをインストールしていない方は下記からSlackアプリをインストールして、ご自分のSlackワークスペースを作ってみてください。

AI による業務管理とプロダクティビティツール
その仕事、Slack で。人、プロジェクト、ツール、AI を一元化した、世界で最も愛される、ビジネスの基本ソフトです。
  1. Slackアプリを作成する
  • まずはslack apiのページでSlackアプリを作成します。
Unlock your productivity potential with Slack Platform
Connect, simplify, and automate work.

「Get started」をクリックし「Go to Your Apps」→「Create New App」を選択します。

  • Slack Botの詳細には「From scratch」をクリックし、「App Name」を入力し、「Pick a workspace to develop your app in」でボットを使いたいSlackワークスペースを選び、「Create App」をクリックすると書かれていますが、これでうまく進めない場合は「From a manifest」を選択します。私はうまく進めませんでしたので、「From a manifest」から進んでいきます。
  • Slackワークスペースを選択し、「Next」をクリックし、「Create」でアプリを作成します。ここからアプリを作成すると「Demo App」というアプリ名が作成されますが、気にせず進んでいきましょう。

2. アプリ設定を構成する

  • 「Incoming Webhooks」を選択し、「Activate Incoming Webhooks」をOnにします。
  • 次は「Install App」を選択し、「Install to slackworkspace」をクリックします。Slackのワークスペースの投稿先チャンネルを設定します。
  • 「OAuth & Permissions」を選択し、「Install to slackworkspace」をクリックします。

3. Difyエンドポイントの設定

  • 次はDifyに戻り、またプラグインをクリックし、「Slack Bot」を選択するとエンドポイントを設定することができるので「+」ボタンを押して先ほど取得したBot User OAuthトークンをエンドポイントに設定します。
  • 「再試行を許可する」を false に設定します (重複メッセージを防ぐために推奨)
  • Dify チャットフロー/チャットボット/エージェントへのリンクと詳細に書いてあるのでこの3つにアクセスできるはずです。今回はチャットボットを使って試してみましょう。
  • 生成されたエンドポイントURLを保存してコピーします。

4. Slack アプリの設定を完了する

  • 次は「Event Subscriptions」をOnにして先ほどコピーしたエンドポイントURLを貼り付けます。
  • 「Event Subscriptions」を下へスクロールし、「Subscribe to bot events」と「Subscribe to events on behalf of users」に必要なOAuthスコープを追加し、一番下の「Save Changes」で保存すると「Success」が表示されます。
  • 「Event Subscriptions」から「OAuth & Permissions」に移動し、下にスクロールしたところに「Scopes」があるので必要なスコープを構成するための権限を入力します。

5. 最終ステップ

  • 変更を加えた場合は、「Install App」から「Reinstall to ワークスペース名」をクリックし、ワークスペースにアプリを再インストールします。再インストールが成功すると、先ほどのトークンとは別に「User OAuth Token」が生成されますが、これはエンドポイントに貼り直す必要はありません。
  • Slackワークスペースに移動し、投稿先チャンネルを選択し、一番上のチャンネル名をクリックし、「インテグレーション」を選択し、「アプリを追加」をクリックします。
  • (チャンネル名)アプリを追加する画面にアプリ名がない場合は以下のように「/invite @アプリ名」を入力すると以下の画像のようにアプリ名(Demo App)が追加されます。
  • チャットボットに@アプリ名(@Demo App)を指定して、話しかけてみると、応答がありました。これでSlac_botが無事出来上がりました。

次はDifyのナレッジを使って社内情報や議事録、論文などを埋め込んでSlack Botを使ってみましょう。

ナレッジを使ってみよう

ナレッジを使って社内データを埋め込んでみよう

ナレッジをクリックし、ナレッジベースを作成し、テキストファイルから社内データをアップロードします。「Notionから同期」したり「ウェブサイトからの同期」もできますが、今回は社内情報をSlackで共有するという設定で、テキストファイルから社内データをアップロードします。

社内情報データ(仮)

次にチャンク設定やインデックス方法、埋め込みモデル、検索設定などできますが、今回はデフォルトで試してみようと思います。

ナレッジベースが作成されると上記のような画面が表示されます。

ドキュメントに移行すると利用可能というステータスが表示されています。

SlackBotを使って社内データを共有してみよう

ナレッジの追加

それでは先ほどSlackBot設定時に作ったDifyのチャットボットに埋め込んだナレッジを追加してみます。 

チャットボットの左中段のコンテキスト行で追加をクリックし、埋め込んだファイルを選び追加します。

Dify側のチャットボットのプロンプト例

それでは先ほどのCSVデータに応じたプロンプトの例を入力します。

ここでのプロンプト作成のポイントは以下のとおりです。

  • 社内情報の構造をBotに伝える
    • CSVは構造化データなので、どの列をどのように参照すべきかを示すと精度が上がる
  • 出力形式を統一
    • Slackでは「1レス完結型」が望まれるため、簡潔さと見出しが重要
  • あいまいさの許容
    • Slackでの口語的な質問にも対応できるようにする必要がある
  • 出典情報の明記
    • 担当部署や更新日を出すことで、実務的な信頼性が担保される

プロンプト例:

あなたはAcme社の社内技術ナレッジに関するAIアシスタントです。  
Slack上の社員からの質問に対して、事前に提供された社内情報データ(CSVベース)から最も適切な情報を抜き出し、簡潔かつ正確に日本語で答えてください。

社内情報は以下のような形式で構成されています:
- カテゴリ(例: インフラ、DevOps、MLOpsなど)
- タイトル(例: APIドキュメントの場所、Secrets管理ルール)
- 内容(詳細な手順やURL、規約など)
- 担当部署と最終更新日

### 回答ルール:
- 回答は簡潔に3~6行程度でまとめてください
- 可能であれば「カテゴリ名」や「タイトル」を一行目に記載してください
- 重要なリンク(URL)がある場合は明示的に表示してください
- 担当部署や最終更新日も補足情報として最後に付けてください
- 回答が不明な場合やデータに存在しない場合は、正直に「確認できませんでした」と答えてください

### 応用
Slackユーザーは、あいまいな質問や口語体を使う可能性があります。  
そのため、質問の意図を柔軟に理解し、ベクトル検索で最も近い関連情報を選んでください。

文体を統一:「です・ます」調で丁寧に返答してください。

SlackへのURLリンクを目立つように表示してください(例:👉 https://〜)

回答が複数候補ある場合は、最も関連性の高いものを1つだけ提示してください。

Difyの左上の手順に上記のプロンプトを入力し、「公開する」をクリックし、更新します。

一度、社内データが実際に反映されているかを確認するために、Dify内でアプリを実行しておきます。

きちんと応答してくれていますね。これでDify側の準備は問題なく整いました。

SlackBotを使って社内データを共有しよう

ここまでお疲れ様でした。今回のメインテーマにようやく辿り着けました。それでは早速SlackBotに質問を投げかけてみましょう。

きちんと応答してくれています。これで会社内で社内データを共有することができます。新入社員の方は諸先輩方に迷惑をかけることなく安心できそうです。

応用方法

DifyのSlackBotの応用方法について紹介しておきます。

先ほどの社内情報検索ボット場合

  • Slack上から「APIのルールどこ?」「本番環境のデプロイ手順って?」「モデルの管理どうしてる?」など自然言語で問い合わせると、DifyがCSV/Markdown/Notion等の社内ドキュメントをRAG方式で検索し、適切な情報を要約・返答してくれます。

Difyでの実装理由と効果:

  • ニーズの汎用性
    • 技術チーム、バックオフィス、CS、全職種で「ドキュメントを探す手間」は共通の課題。
  • Difyの強み
    • ベクトル検索 × 生成(RAG)により、「質問の意図」をくみ取って精度高く応答可能。
  • 拡張性
    • 情報ソースをCSV・Markdown・Notion・PDFで段階的に追加できる。
  • 運用負荷低
    • 情報の更新はファイル差し替え or Notion連携だけ。運用が現実的。

DifyのSlackBotを使ってみて

Difyのようなツールはプログラミングを書く必要もなく、手軽に試せて使っていて便利だと思えるツールの一つではないでしょうか?

私は既に、早速社内のデータで共有しなければならないことのほとんどをDifyを使ったSlackBotで共有していて、社内ではそれなりに好評でした。

その他にもDifyを活用したSlackBotによって共有できる情報は多いので色々試してみようと思います。

例えば、論文や議事録、最新AIニュースなどは良い例として活用できそうです。科学の最先端で情報をキャッチしたい場合や社内で共有しなければならないデータがある場合などは随時、重宝できそうなツールです。

私は毎日最新AIが更新されているのを見ていると嬉しい反面、これらの情報を試すために割かなければならない時間に対して億劫な気持ちが彷彿としてくることがあります。また、社内で最新AI情報を知っている知らないの差が出てしまうこともあるので、業務に支障が出やすいこともあります。

DifyなどのAIエージェントツールはそんな気持ちを軽くしてくれる貴重なツールであり、知っているだけでコミュニケーションにおけるストレスなどはほとんど解決してくれそうです。

コメント

タイトルとURLをコピーしました