トピック作成のベスト プラクティスに従う

エージェントのトピックを効果的に整理することで、会話を管理しやすく、維持しやすくなります。

トピックのトリガーを理解する

Copilot Studio は、トピックの管理に柔軟性があります。 万能な方法というわけではありませんが、トピックが引き起こされるさまざまな要因を念頭に置いておくことは良い習慣です。

  • トピックは、ユーザーの発話と自然言語理解 (NLU) モデルに基づいてトリガーされます。

    これらのトピックを、入り口となるトピックと考えてください。

    トリガー フレーズが複数のトピックにまたがる場合は、スロット フィリングや確認の質問を通じて他のトピックへ誘導する「包括的なトピック」 (または曖昧さ解消トピック) を含めてください。

    エンティティ抽出機能のおかげで、ユーザーからの追加入力なしに、会話は確認のための質問を省略し、適切なトピックへと直接進むことができます。

  • リダイレクト アクションから呼び出された際にトピックがトリガーされます

    これらのトピックには会話ノードと論理ノードを含めることができ、複数のトピックから呼び出すことができ、入力変数と出力変数を持つことができます。 これらは理想的には再利用可能な非常に小さいトピックです

  • トピックは両方にすることもできます

    たとえば、トピックは、意図の認識や明示的なリダイレクトによってトリガーされる場合があります。

  • イベントはトピックをトリガーできます

    たとえば、カスタム イベント、非アクティブなどです。

詳細については、トピック トリガーの設定を参照してください。

ヒント

次の例では、2 つの主要トピックにトリガーフレーズを関連付け、そのロジックをさらに複数のトピックに細分化し、リダイレクト アクションを使用してそれらを呼び出します。

あるトピックは、他の複数のトピックから呼び出される場合があります。 たとえば、会話の締めくくりというトピックです。

スロット フィリングとエンティティ抽出のおかげで、ユーザーが「クレジットカードの利用制限を解除したい」と言った場合、Card トピックがトリガーされ、トリガーフレーズから CardTypeOperationType が推論されるため、Debit/CreditBlock/Unblock の質問はスキップされます。 その後、ユーザーによる追加の操作を必要とせずに、適切な Credit Card の子トピックが自動的に呼び出されます。

トリガーフレーズだけでなく、他のトピックによっても Copilot Studio のトピックがトリガーされる様子を示した図。

非常に小さいトピックを作成する

大きなトピックは、維持と更新が困難になる場合があります。 可能な限り、エージェントのロジックを細分化してください。特に、複数のトピックでエージェントの会話ロジックの一部が共通している場合はなおさらです。

トピックには、必ずしもすべてにトリガー フレーズが含まれている必要はありません。 トピックは他のトピックへリダイレクトしたり、変数情報をやり取りしたりすることができます。

ヒント

大きなトピックをいくつか作るよりも、小分けにしたトピックをたくさん作ったほうが、扱いやすくなります。 また、このアプローチにより、トリガーフレーズを、その分野に対応する具体的なトピックに明確に紐づけることで、トリガーの効果を高めることにもつながります。

トピックの数は、会話の基本設定によるものです。 大きなトピックをいくつか設定しても、小さなトピックをいくつか設定しても構いません。

ヒント

「リクエスト」や「問題」といった一般的な単語など、認識がより複雑な意図については、トピックの分割を検討してください。 これらの言葉にはさまざまな意味が考えられるため、適切なヒントとなるトリガー フレーズを含めてください。

再利用可能なトピックを作成する

複数のトピックで会話メッセージやロジック ノードが共通している場合は、内容を重複させるのではなく、それらを新しいトピックにまとめてください。 こうすることで、そのトピックへの 1 回の更新が、そのトピックにリダイレクトされているすべてのトピックに反映されます。

ヒント

複数の Copilot Studio トピックから、同じまたは類似したノードの順序を持つ同じ Power Automate クラウド フローを呼び出す場合は、これらのノードを専用のトピックとして設定してください。

トピックの重複を回避する

トピックの重複とは、複数のトピックが類似したトリガー フレーズや意図の意味を持つために発生し、どのトピックを起動すべきかについて混乱が生じる現象です。

トピック間のあいまいさを監視して除去する

NLU がトピックをトリガーする際は、重複の問題を避けるようにしてください。 複数のトピックが一致 システム トピック (別名「もしかして」) への頻繁な呼び出しにより、重複の問題がしばしば明らかになります。

異なるトピックのトリガー フレーズ間で、意図の意味が重複する部分を減らすことで、こうした問題を未然に防ぐことができます。

ヒント

トリガー フレーズによって引き起こされたトピックについては、次のことを行う必要があります:

  • トピック全体でトリガー フレーズを比較し、あいまいなペアを削除します。
  • 異なるトピックのトリガー フレーズで同じ単語を使用することは避けてください。
  • 「もしかして?」というトピックをトリガーするユーザーの発話を分析します。

曖昧性解消トピックを作成する

複数のトピックのトリガーフレーズが類似しすぎている場合、曖昧解消トピックを作成することで、トピックの重複を回避できます。

ヒント

たとえば、「クレジット カードの使用停止を解除する」や「デビット カードの使用停止を解除する」といったシナリオを考えてみましょう。ユーザーは単に「カードのロックを解除」と言うだけかもしれませんが、NLU モデルはどのトピックをトリガーすべきか判断できません。 一般的な Card という曖昧さ解消トピックを呼び出し、CardType についてエンティティのスロット フィリングの質問を使用し、それに応じて適切なトピックを開始することができます。

エンティティを使用してトピックの数を減らす

バリエーションを変数に格納できる場合は、ロジックの重複を避けるようにしてください。 たとえば、次のような同様のトピックを作成する代わりに:

  • ピザを注文する
  • ハンバーガーを注文する
  • ドリンクを注文する

作成:

  • Order の 1 つのトピック
  • PizzasBurgersDrinks を値として持つ FoodType の 1 つのエンティティ。