AI Agentが回答に困った時にSlackで人間に助言を求められるMCPを検証した

こんにちは
AIチームの戸田です

今回は、AI Agentが自身で解決できない問題に直面した際に、Slackを通じて人間に助言を求めることができるMCP(Model Context Protocol)、AskOnSlackMCPをつくったので、架空のカスタマーサポートのデモを交えて紹介したいと思います。

https://github.com/trtd56/AskOnSlackMCP

Human-in-the-loop

近年、AI Agentの能力が向上し、コーディングや業務効率化など多くの領域で活躍が増えていますが、まだ人間の判断や専門知識が必要な場面は多く存在します。例えばカスタマーサポートのような、複雑な問題解決や感情的な配慮が必要な領域では、AIと人間の協働(Human-in-the-loop)が重要になります。

実現するためのツール

これをAI Agentで実現する方法として、一つはLangGraphのHuman-in-the-loop機能HumanLayerといったHuman-in-the-loop用のライブラリをつかってAgentのコードに直接処理を追加する方法があります。これらは柔軟に制御を行うことができますが、実装の複雑性が高いという課題もあります。

もう一つはMCPで実現する、といった方法があります。例えば以下のようなものがありあます。

通信チャンネルが限定されるなど制約はありますが、MCPの設定を行うだけで簡単に利用することができます。私は業務でSlackをよく使うのですが、Slackに対応したHuman-in-the-loopのMCPがなかったので自分で作ってみた、というのが今回の取り組みの背景となります。

AskOnSlack MCP

動作イメージ

作ったMCPサーバーは、AI AgentとSlackの間の橋渡し役として機能します。AI Agentが人間の助けが必要と判断した場合、MCPを通じてSlackの指定チャンネルに質問を投稿し、人間からの回答を待ちます。人間の回答はスレッド形式で人間からの回答を受け取り、それを参考に最終的な回答を生成します。

npmでの直接実行に対応しているのでローカルインストール不要でCursorやClaude Desktop統合できます。SlackのBot TokenやApp Tokenなどの設定が必要なのですが、READMEにまとめていますので、こちらを参考にしていただければと思います。

カスタマーサポートなどのリアルタイムな判断が必要な業務において、AIの自律性と人間の専門性を効果的に組み合わせられるツールだと考えています。

カスタマーサポートボットでの検証

検証のため架空のカスタマーサポートのチャットボットを作りました。

https://github.com/trtd56/SimpleCSBot

パスワードリセット、支払い方法、返金、解約に関する4つのFAQが登録されており、表層ベースでマッチングしてGPT-4o-miniで回答を生成する非常にシンプルなRAGを用いたチャットボットです。

このチャットボットに今回開発したMCPを設定し、事前登録されていない、例えば「営業時間を教えて」のような質問をチャットボットに投げた際に、ちゃんとMCPを使って人間に助けを求められるかを確認します。

参考までにMCPを設定する前に「営業時間を教えて」と聞くと以下のような回答が得られます。

FAQに該当する内容がないので妥当な回答だと思います。

MCPを設定して検証を行った際の録画が以下になります。画面左側がSlack、右側がチャットボットの画面です

検証の流れは以下です。

  1. AIによる自動応答
    「返金はできますか?」というFAQに登録済みの質問には、AIエージェントが即座に自動で回答。
  2. AIが回答できない質問と人間へのエスカレーション
    次に顧客が「営業時間は?」というFAQにない質問をすると、この問い合わせは自動的にSlackの担当者チャンネルに通知(エスカレーション)する。
  3. 人間による対応とAIからの返信
    Slackで通知を受け取ったオペレーターが「10時〜19時です」と返信すると、その内容を考慮した回答が顧客とのチャット画面にAIからの回答として表示される。
  4. 再びAIによる対応
    「ありがとう」といった定型的な挨拶には、再びAIが自動で応答。

特に "3. 人間による対応とAIからの返信" がHuman in the loop MCPを使うメリットだと考えています。これまでもチャットボットが答えられない質問を人間のオペレーターにエスカレーションする仕組みはありましたが、「AIとの対話」から「人間との対話」への切り替えが明確に分断されており、顧客体験のスムーズさを損なうという課題がありました。今回のMCPを使えば顧客はAIと会話している感覚のまま、よりシームレスに的確な答えを得ることができるのではないでしょうか。

まとめ

今回は、AI Agentが自身で解決できない問題に直面した際に、Slackを通じて人間に助言を求めることができるMCP、AskOnSlackMCPを架空のカスタマーサポートのデモを交えて紹介しました。

ちなみにMCPにはElicitationという構想があり、こういった人間とのインタラクションも標準化しようとしています。ElicitationはまだDraft段階ですが、今後こういった機能が増えてくることが予測されます。引き続きキャッチアップを続け、また興味深い内容があれば共有したいと思います。

最後までお読みいただきありがとうございました!

PICK UP

TAG