mcpField
C
cs-chatbot-design

cs-chatbot-design

github.com/asgard-ai-platform開発24340 回インストール21 週間前に更新
リポジトリ

cs-chatbot-design について

チャットボットの設計を支援し、インテント分類、スロット抽出、対話管理、応答生成を扱うスキルです。対話パターンや評価指標に加え、フォールバックと人間への引き継ぎも整理します。

主な機能

  1. 01インテント分類とスロット抽出の計画
  2. 02対話管理フローの設計
  3. 03単一・複数ターン対話の構築
  4. 04応答設計原則の策定
  5. 05インテントと解決指標の追跡

活用シーン

  1. 01予約情報を集める対話の設計
  2. 02注文管理インテントの計画
  3. 03人間への引き継ぎフローの作成
  4. 04チャットボット対話の評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/asgard-ai-platform/skills --skill cs-chatbot-design

インストール後、Claude Code で/cs-chatbot-designを入力して読み込まれたか確認します。

同梱ファイルexamples/sample_scenario.mdreferences/nlu-training.md

詳細

チャットボットの設計

フレームワーク

IRON LAW: Intent First, Response Second

A chatbot must UNDERSTAND what the user wants (intent) before crafting
a response. Building response templates without intent classification
produces a keyword-matching FAQ, not a chatbot.

Flow: User message → Intent classification → Slot extraction → Response
コア NLU パイプライン
ステージ内容例
インテント分類ユーザーが何をしたいのかを特定します「何時に閉店しますか?」→ インテント:check_hours
エンティティ/スロット抽出メッセージから重要な情報を抽出します「金曜日に4人でテーブルを予約して」→ スロット:{party_size: 4, date: Friday}
対話管理次のアクション(不足情報の確認、確認、実行)を決定しますスロット time が不足 → 「何時をご希望ですか?」と尋ねます
応答生成返信を作成します「金曜日の午後7時に4人でテーブルを予約しました。それでは当日お待ちしています!」
インテントの設計
  • ユーザーからの問い合わせの80%をカバーする10~15個の主要なインテントから始めます
  • 各インテントには10~20個のトレーニング例(さまざまな言い回し)が必要です
  • 認識できない入力に対応する fallback インテントを含めます
  • 関連するインテントをグループ化します。「注文管理」の下に order_status、order_cancel、order_modify をまとめます
対話フローのパターン
パターン使用する場面例
単一ターンコンテキストを必要としない簡単なQ&A「営業時間は何時ですか?」→ すぐに回答
複数ターン(スロットフィリング)複数の情報が必要な場合「テーブルを予約して」→ 人数を尋ねる → 日付を尋ねる → 時刻を尋ねる → 確認
分岐ユーザーの回答に応じて異なる経路を進む場合「アカウントをお持ちですか?」→ はい:ログインフロー/いいえ:登録フロー
確認アクションを実行する前「注文 #12345 をキャンセルします。よろしいですか?」
引き継ぎボットでリクエストに対応できない場合「担当者におつなぎします」
応答設計の原則
  1. まず受け止める:「承知しました。注文状況を確認したいのですね。」
  2. 簡潔にする:質問に答えたら、そこで止めます。不要な情報を付け加えないでください。
  3. 次のステップを提案する:「ほかにお手伝いできることはありますか?」と尋ねたり、関連するアクションを提案したりします。
  4. クイック返信/ボタンを使う:入力の手間を減らし、会話を誘導します。
  5. 個性を持たせる:一貫したトーン(親しみやすい、プロフェッショナル、カジュアルなど)を決め、それを守ります。
指標
指標定義目標
インテント精度正しく分類されたインテントの割合> 85%
自己解決率人への引き継ぎなしで解決した割合> 60-70%
CSAT顧客満足度スコア> 4.0/5
フォールバック率フォールバック/不明なインテントが発生した割合< 15%
解決時間解決までにかかる平均時間< 2 minutes

出力形式

# Chatbot Design: {Use Case}

## Intent Catalog
| Intent | Description | Example Utterances | Priority |
|--------|-----------|-------------------|---------|
| {intent} | {what it means} | "{example 1}", "{example 2}" | H/M/L |

## Dialogue Flows
### {Flow Name}
1. User: {trigger utterance}
2. Bot: {response + slot question if needed}
3. User: {provides info}
4. Bot: {confirmation or action}

## Fallback Strategy
- After 1 miss: rephrase + suggest options
- After 2 misses: offer human handoff

## Metrics Targets
| Metric | Target |
|--------|--------|
| Intent accuracy | > {X%} |
| Containment | > {X%} |

注意点

  • ユーザーはフローどおりに進みません:予想外の言い回しを入力したり、会話の途中で話題を変えたり、情報を不完全なまま伝えたりします。理想的な経路だけでなく、さまざまな状況に対応できるよう設計してください。
  • フォールバックは最も重要なインテントです:「すみません、理解できませんでした。X、Y、Zのどれを意味していますか?」のような適切なフォールバックは、誤った推測よりも優れています。
  • LLM を活用したボットにもガードレールが必要です:応答生成に GPT/Claude を使っていますか?最初のレイヤーとしてインテント分類を追加し、経路を振り分けて制約することで、ハルシネーションや話題から外れた応答を防ぎます。
  • チームメンバーではなく実際のユーザーでテストします:チームはボットの仕組みを知っており、「正しい」言い回しで質問しますが、実際のユーザーはそうとは限りません。リリース前に10人以上の実際のユーザーでテストしてください。
  • 会話ログは貴重な情報源です:毎週、会話ログを確認してください。うまくいかなかった会話から、不足しているインテント、分かりにくいフロー、トレーニングデータの不足が見つかります。

参考資料

  • NLU トレーニングデータのベストプラクティスについては、references/nlu-training.md を参照してください
  • LINE/Messenger プラットフォームとの連携については、ecom-conversational スキルを参照してください

コメント