
はじめに
Slackで日々やり取りされる膨大なメッセージ、AIに要約してもらえると便利ですよね。また同僚に質問されたとき、「このキーワード、ちょっとWebで調べないと答えられないな…」と思った経験はありませんか?
今回紹介するのは、@メンションするだけでAIがSlackのメッセージを要約してくれて、Web検索要否を判断し、必要に応じて自動検索&回答までしてくれるチャットボットです。
@AIM_san(私が作ったBotの名前)をメンションしてお願いすると会話を要約してくれます。

最新の情報が必要なときなどはWeb検索が必要かAIが判断して最新の情報を取得します。

このシステムは、
- Slack での会話をトリガーに
- Google Apps Script (GAS) でメッセージを取得
- Dify で質問内容を解析し
- GPT-5-Nano がWeb検索要否を判定
- 必要に応じて Perplexity API で情報を取得し、回答を生成
という流れで動作します。
記事では、本ワークフローの全体から詳細まで解説しています。
実践的なSlack連携フローの構築に興味がある方は、ぜひ参考にしてください。

著者プロフィール
経営コンサルタントの国家資格:中小企業診断士かつ現役技術者の小林隼人です。生成AIを活用して創業や中小企業経営の支援をしております。
詳しいプロフィールはこちら
全体の構成
基本的な構成は「Samurai Biz」さんの記事「【相性バツグン◎】GASとDifyで作るSlackBot」に基づいて構成されています。基本的なGAS、Dify、Slackの連携方法はそちらの記事をご覧ください。
元々のSamurai Bizさんの記事ではSlackから「@Slackbot」のようにメンションすることで生成AIを呼び出してチャット内のメッセージの要約や、質問ができるようになっています。ただし回答に使用する情報はSlackのメッセージ、もしくはモデル自身が学習している内容で最新の情報には回答できません。
本記事ではユーザーが入力した要求に対して、
- 「Web検索が必要か」をAIに判断させ、
- 検索するキーワードをAIに考えさせて
- Perplexity(検索機能が強いAI)で検索して
- 検索結果を使って回答する
という機能を実現します。使用するAIは記事を執筆している2025年8月10日現在、最新のOpenAI「GPT-5」を使用します。
以下に全体のフローチャートを示します。

Slackからの呼び出し
前述のように、この部分は「Samurai Biz」さんの記事「【相性バツグン◎】GASとDifyで作るSlackBot」をご覧ください。とてもわかりやすく書かれている良記事です。
Difyフローの設計
Difyフローの全体像
フローはこのような感じです。順に説明していきます。

なおこのフローのDSLファイルはこちらです。
手取り早く手元で再現したい方はダウンロードして使ってください。
Web検索が必要か判定する
開始では入力として
- inputText : Slackでのメッセージの内容
- instruction : Slackで@メンションされた時の指示(例:このメッセージを要約して)
の2つを受け取ります。

この後、「質問分類器」を使って、Web検索が必要かどうか判断します。ただし、「質問分類器」は2つの入力を受け取れない仕様なので、事前に「コード実行」ブロックでpythonを使ってinputTextとinstructionを結合しておきます。できればpythonを使わない方がわかりやすいと思ったのですが、Difyでうまく実現する方法がわからなかったので、pythonで解決しました。
コード自体はAIで生成させたものです。2つの文章をくっつけて一つにします。

質問分類器では、入力で受け取った文章から「Web検索」が必要かどうかを判定します。判定はAIに行わせます。今回は最新の生成AIであるgpt-5-nanoを選びました。GPT-5はこのようなAIエージェントシステムへの組み込みを想定して調整されており最適です。

GPT-5は入力文を読んで、「ウェブ検索が不要」か「ウェブ検索が必要」かどちらか一方を回答します。
この情報を元にこの後の処理が分岐します。
Web検索が不要な場合
Web検索が不要な場合は、そのままLLMブロックで処理します。

中身はSamurai Bizさんの記事と同じです。

Web検索が必要な場合
Web検索が必要な場合は分岐して下側のフローに流れます。
Perplexityを使ってWeb検索してその結果を使って回答を生成しますが、その前に検索キーワード(クエリ)を作るプロセスが必要になります。

gpt-5-nanoで検索クエリを作る
検索クエリの生成はLLMブロックでgpt-5-nanoに作ってもらいます。いわゆる”よしなに”やってもらうところです。このあたり、生成AIが出てきて本当に便利になった部分ですね。
ユーザーの要求に応えるためにPerplexityで検索をするので、検索のキーワード(クエリ)を作って、とお願いしています。そのままお願いすると複数の案を出力してしまい、検索しづらいので「最も有効と思われるクエリ一つだけ」を出力してと指示しています。
この指示に対する応答性の高さはGPT-5シリーズが優れるところです。余計なことはやらずに、言った通りのことをやる特性があります。
クエリを考えるための材料として、元々Slackから受け取った「inputText」、「instruction」を渡して、これを使って考えてね、とお願いしてます。

Perplexityで検索
検索はPerplexityで行います。Perplexityは生成AIを活用した強力な検索エンジンです。Difyのワークフローに組み込むことで、さらに強力な効果を発揮します。Difyに組み込むだけでなく普通に使ってもとても便利ですので、まだ使ったことない人はぜひ試してみてください。リンク[Perplexity]
Query(クエリ)に、直前のLLMブロックでgpt-5-nanoが生成した結果を入れてあげます。色々な設定項目がありますが、今回は全てデフォルト設定で使いました。
