Copilot Studioのエージェントを導入するには、統合、チャネル、ツール、トピック設計、スロット埋めの動作に細心の注意を払い、エージェントが大規模に安定してパフォーマンスを発揮できるようにします。 このセクションでは、実装の選択を検証するための実践的な質問とベストプラクティスのガイダンスを提供します。
導入準備状況を検証してください
以下のチェックリストを使って、エージェントが技術的に堅牢で、パフォーマンスが安定し、制作準備が整っているか確認してください。
AIの機能と機能計画
| チェック |
Task |
| ✓ |
シナリオに必要なAI機能(生成オーケストレーション、生成回答、生成ビルダー、AIプロンプト、コンピュータ利用、承認)を特定しましたか? |
| ✓ |
選ばれた各能力の目的、範囲、制約を定義しましたか? |
| ✓ |
高権限機能(例:アクション、接続エージェント、コンピュータ利用)のリスクやガバナンス要件を評価しましたか? |
| ✓ |
知識源が正確で、よく構成されていて、基礎をつける準備ができていることを検証しましたか? |
| ✓ |
AI生成コンテンツのレビュー、検証、または必要に応じて上書きする方法を確認しましたか? |
生成オーケストレーション設計
| チェック |
Task |
| ✓ |
エージェントのツール、トピック、アクション、そして意味のある名前や説明を持つ子エージェントや関連エージェントを明確に定義しましたか? |
| ✓ |
AIが自律的に行動できる範囲と、確認や人間の承認が必要な場合の決定境界を明確にしましたか? |
| ✓ |
トピックやアクションの入力・出力を設計して、オーケストレーターが自然にプロンプトや連鎖ステップを行えるようにしましたか? |
| ✓ |
ツールが決定論的に振る舞い、重要なパラメータの検証を含めていることを確認しましたか? |
| ✓ |
知識をいつ使い、いつツールを使い、いつ多段階計画を行うかについて、オーケストレーター向けの指針を定義しましたか? |
検索拡張生成
| チェック |
Task |
| ✓ |
検索拡張生成(RAG)に使用されるすべての知識ソースが正確で最新かつ承認された内容を含んでいること、そして古いデータや禁止されたデータが削除されていることを検証しましたか? |
| ✓ |
ドキュメントのフォーマット、ファイルサイズ、インデックスルール(SharePoint、Dataverse、カスタムデータ、Azure AI Search、アップロードファイル)が各RAGプロバイダーの制限や動作に適合しているか確認しましたか? |
| ✓ |
新しいコンテンツの追加、更新、または知識ソースからの廃止方法についてガバナンスを確立し、RAGが検証済みのエンタープライズデータのみを取得するようにしましたか? |
Integrations
| チェック |
Task |
| ✓ |
エージェントがどのシステムと統合すべきかを特定し、適切な統合パターン(コネクター、HTTP、ワークフロー、API、モデルコンテキストプロトコル)を選びましたか? |
| ✓ |
各統合ごとに認証要件を確認し、ユーザー認証情報とメーカー認証情報のどちらを選びましたか? |
| ✓ |
エージェントが呼び出すすべてのサービスのAPI制限、パフォーマンス制約、期待ボリュームを評価しましたか? |
| ✓ |
各統合経路に対して適切なエラー処理動作を設計しましたか? |
| チェック |
Task |
| ✓ |
ツール、ワークフロー、MCPサーバー、またはプロンプトを使って実装すべきかを評価しましたか? |
| ✓ |
各ツールに明確な名前、説明、入力、出力が記載されているか確認しましたか?そうすればオーケストレーターが確実に選択できます。 |
| ✓ |
高度なモデルや設定でオーケストレーターではなくAIプロンプトを使う必要があるか確認しましたか? |
| ✓ |
ペイロード、スキーマ、エラー処理、パフォーマンス特性の検証のためにツールを独立してテストしましたか? |
| ✓ |
シナリオがツールではなく、子供エージェントかコネクテッドエージェントかを評価しましたか? |
チャネル、クライアント、そしてハンドオフ
| チェック |
Task |
| ✓ |
オーディエンスに適したチャネルを選び、各チャネルがサポートするメッセージ形式(Markdown、Adaptive Cards、画像など)を確認しましたか? |
| ✓ |
クライアントの行動を検証し、Teams、Webチャット、モバイル、カスタムアプリでユーザー一貫した体験を保証しましたか? |
| ✓ |
実装にライブエージェントのハンドオフが必要かどうかを確認し、適切なパターン、Bot-as-an-AgentかBot-in-the-Loopのいずれかを選択しましたか? |
| ✓ |
クレジット、レイテンシ、エージェントの引き継ぎ動作があなたの選んだ引き継ぎモデルで許容されることを確認しましたか? |
トピック、トリガーフレーズ、スロットの埋め込み
| チェック |
Task |
| ✓ |
トピックごとに明確な目的を持ち、責任の重複を避けるように構成しましたか? |
| ✓ |
同義語、バリエーション、ドメイン語彙をサポートする効果的なトリガーフレーズを設計しましたか? |
| ✓ |
エージェントが必要な情報を効率的に収集できるように、エンティティやスロット埋めるルールを定義しましたか? |
| ✓ |
NLUの混乱を避けるためにクローズドリストやRegExのようなカスタムエンティティが必要かどうかを評価しましたか? |
| ✓ |
フォールバックの動作を検証し、エージェントが欠落情報や不明瞭な情報を丁寧に解決できるようにしましたか? |
ベストプラクティスのコールアウト
- コンポーネント名を明確かつ意図的に決める:ツール、トピック、接続されたエージェントに対して、アクション志向で人間が読みやすい名前を使い、オーケストレーターが一貫して適切なコンポーネントを選べるようにしましょう。
-
目的を持って入力と出力を設計しましょう:簡潔で人間に優しい入力名と構造化された出力を使い、オーケストレーターが自然に自動プロンプトを出し、確実にステップを連鎖させられるようにしましょう。
-
能力はモジュール化され再利用可能に保つ:トピック、ツール、接続エージェントを構成要素として扱う。 フローやコンポーネント間でロジックの重複を避けること。
-
安全の境界を早期に優先する:AIが自律的に実行できる動作、確認が必要な動作、そして意図しない行動を防ぐために人間の承認が必要な行動を定義する。
-
高品質な知識源をキュレーションする:知識ベースは小さく、しかし正確に保つ。 古くなったり騒がしいコンテンツを削除して、グラウンドの質を高め、誤った情報を減らすことができます。
-
まずは最もシンプルな統合パターンを選びましょう:カスタムAPIやMCPサーバーが明確に必要でない限り、組み込みのコネクタやワークフローを好む。 シンプルなパスはメンテナンスやデバッグが簡単です。
-
ツールの挙動を明確かつ一貫して定義する:すべてのツールに意味のある名前、説明、入力セット、期待出力を付け、オーケストレーターが正しく選択し安定した計画を生成できるようにします。
-
認証を早期に検証する:シナリオがユーザー認証、メーカー認証、または管理されたアイデンティティを通じた安全なアクセスを必要とするかどうかを確認し、予期せぬ事態を避けましょう。
-
遅延とパフォーマンスを考慮した設計:APIクエリを効率化し、ペイロードサイズを削減し、遅い統合を連鎖させないようにすることでレスポンシブな会話体験を維持しましょう。
-
ツール、ワークフロー、プロンプトを個別にテストする:入力、出力、エラー状態を個別に検証し、その後トピックやオーケストレーターに割り当てます。
-
チャネルの行動を意図的に計画する:どのチャンネルがMarkdown、Adaptive Cards、写真、カスタムレイアウトに対応しているかを理解し、それに応じてメッセージをデザインしましょう。
-
明確さと保守性のためにトピック構成:トピックを集中させ、重複を避け、各トピックが明確に定義された単一のタスクを解決するようにしましょう。
-
実際のユーザー言語に合ったトリガーフレーズを作成する:バリエーション、同義語、一般的なフレージングパターンを含め、意図認識を改善し、フォールバック頻度を減らす。
-
エンティティを使って不要な質問を減らす:組み込みおよびカスタムエンティティを活用して、ユーザーの初期メッセージから情報を抽出し、摩擦を減らし、フローを加速させる。
-
スロット埋めのエッジケースを徹底的にテストする:ユーザーが複数の値、不完全な情報、曖昧な入力を提供した際のエージェントの挙動を検証し、混乱を減らすためにエンティティを洗練させましょう。