宣言型エージェントを構築するためのベスト プラクティス

宣言型エージェントは、カスタム命令、ナレッジ ソース、アクションを使用して、特定のビジネス シナリオのMicrosoft 365 Copilotをカスタマイズする AI アシスタントです。 この記事では、独自のビジネス ニーズに合わせて調整された宣言型エージェントを構築するためのベスト プラクティスについて説明します。

宣言型エージェント コンポーネント

宣言型エージェントは、いくつかのコンポーネントで構成されます。 エージェントの各コンポーネントの設計にベスト プラクティスを適用することが重要です。 次の表に、各エージェント コンポーネントに推奨されるベスト プラクティスを示します。

コンポーネント 説明 ベスト プラクティス
Name エージェントの表示名。 表示名に、エージェント ストアでのユーザー検出の目的が示されていることを確認します。 名前は、開発ツールに基づいて文字制限を満たす必要があります。
  • Microsoft 365 Copilot - 30 文字
  • Microsoft 365 Agents Toolkit - 100 文字
アプリ名の要件については、「 Teams ストアの検証要件」を参照してください。
説明 エージェントの動作の簡単な概要。 エージェントの目的とドメインを明確に示します。 たとえば、「Microsoft 365 Copilotのプロジェクト エージェントを使用して、プロジェクト ドキュメントを検索して要約する」などです。エージェントがMicrosoft 365 Copilotで動作することを説明します。 簡潔に保ち (数文、≤ 1,000 文字)、指示をエージェントが実行すべきでない操作に制限します。
手順 エージェントの主要な動作ガイドライン。 指示は、エージェントの応答を操作するキー プロンプトです。 エージェントの動作方法、実行できるタスク、従う必要があるルールまたはスタイルに関する詳細なガイダンスの最大 8,000 文字を提供します。 詳細については、「 効果的な手順を記述する」を参照してください。
ナレッジ ソース エージェントが回答の根拠として使用できるエンタープライズ コンテンツまたは外部データ。 Microsoft 365 Copilotまたはマニフェストの [ナレッジ] セクションで構成されます。 エージェントに必要な関連する知識のみを追加します。 SharePoint サイト、フォルダー、またはファイルを追加できます。特定の Teams チャット。Outlook の電子メール。ソースとしてのパブリック Web URL。

ファイルを追加する場合、より小さい方が多くなります。Copilot は、ドキュメントが適切なサイズでフォーカスされている場合に最適なパフォーマンスを発揮します。 また、エージェントは応答でナレッジ ソースのコンテンツを使用するため、コンテンツが最新かつ正確であることを確認します。
機能 オプションの組み込み AI 機能 ( コード インタープリターイメージ ジェネレーターなど)。 機能により、Python コードの実行やプロンプトからのイメージの生成など、エージェントに余分なスキルが提供されます。 エージェントの目標に合った機能のみを追加します。 たとえば、コード インタープリターは、データ分析エージェントに最適な場合があります。
アクション (API/プラグイン) エージェント マニフェストで定義されている API プラグイン (Copilot コネクタ、カスタム Web API、Power Platform コネクタ) を介してエージェントが実行できる外部アクション。 エージェントが外部システムに対してクエリを実行する必要がある場合、またはトランザクションを実行する必要がある場合は、API ベースのプラグインを統合できます。 各アクションは API 操作に対応します。

アクションを慎重に設計する: OpenAPI ドキュメントに明確な操作の説明を提供し、それらのアクションをエージェント マニフェストに追加します。

各アクションについて、それが結果的かどうか (つまり、外部データの書き込みまたは変更) に注意してください。 作成/更新/削除の種類のアクションには、 isConsequential: trueが必要です。 読み取り専用クエリは、非連続としてマークできます。
会話スターター (サンプル プロンプト) ユーザーがエージェントに問い合わせることができるクエリの例は、提案やヘルプ ヒントとして表示されます。 エージェントのコア機能を反映する少なくとも 3 つのサンプル プロンプトを含めます。 これらは、ユーザーがエージェントの使用方法を理解するのに役立ちます。 例:
  • 件名に関するメールを に下書き します
  • ファイルとファイルの提案を比較して対比します
  • 過去 6 か月間の売上傾向を表示する線グラフを作成します。

エージェントの指示に関するベスト プラクティス

提供する手順によって、エージェントの動作が決まります。また、エージェントが正確で役立つ応答を提供するのに役立ちます。 不適切に作成された命令は、あいまいさ、一貫性のない出力、または意図しないアクションにつながる可能性があります。 一般に、「エージェントを開発するときに 宣言型エージェントの効果的な手順を記述する 」の記事で定義されているベスト プラクティスを適用します。

次の表に、エージェントの動作を強化するために計画、テスト、反復する方法について説明します。

フォーカス領域 ガイダンス 用途
命令戦略 エージェントの役割と目標を明確に定義します。 一般的なシナリオとエッジケースのシナリオを計画します。 エージェントが行動するのに十分な柔軟性を与えるが、動作をガイドするための境界を設定する エージェントがさまざまな状況で適切かつ一貫して対応するのに役立ちます。
コンテキスト インテリジェンス Word、Teams、Outlook など、エージェントの使用場所と使用方法に基づいて手順を調整します。 ユーザー ロールと時間に依存するニーズを考慮してください。 手順が使用されているアプリで関連性が高く、効果的であることを確認します。
共同作業のイテレーション 製品マネージャー、ライター、エンジニアなどの機能を持つチームメイトと協力して、指示を確認して改善します。 さまざまなアプリでの命令の動作をテストし、変更の記録を保持します。 チームワークを通じて命令の品質を向上させ、時間の経過と同時に一貫性を維持するのに役立ちます。
命令診断 手順の実行方法を理解するには、ログやユーザー フィードバックなどのツールを使用します。 エージェントの応答が役に立たないパターンを探し、指示を修正して応答を改善します。 実際の使用状況とユーザー エクスペリエンスに基づいて手順を改善するのに役立ちます。
命令アーキテクチャ 命令をより小さな再利用可能な部分に分割します。 タグとテンプレートを使用して整理を維持し、エージェント間で一貫したパターンを適用します。 手順を管理し、複数のエージェントやシナリオで再利用しやすくします。

エージェントの手順を作成するための詳細と具体的なガイダンスについては、「 宣言型エージェントの効果的な命令を記述する」を参照してください。

適切なナレッジ ソースを選択する

宣言型エージェントは、SharePoint コンテンツ、メールやチャットなどのユーザー データ、パブリック Web サイトなど、パブリックおよび組織の知識に根付くことができます。

エージェントの ナレッジ ソース を選択する場合は、次の重要な考慮事項に留意してください。

  • 数量に対する関連性: 追加するナレッジを選択的に選択します。 ソースが、エージェントがユーザーが質問する質問の種類に答えるのに役立つかどうかを検討します。

  • 構造化データには SharePoint とコネクタを使用します。 静的または構造化された知識を得る場合は、SharePoint が理想的です。 PDF または Office ドキュメントにサポート情報がある場合は、SharePoint サイトでホストし、そのサイトをソースとして追加します。 他のシステム (データベース レコードや CRM データなど) が必要な場合は、Copilot コネクタが存在するかどうかを確認するか、API プラグインを追加します。

  • ライセンスとアクセスに関する考慮事項: 一部のナレッジ機能では、ユーザーが Microsoft 365 copilot ライセンスを持っている必要があります。 エージェントを共有する予定がある場合は、この点に注意してください。 Copilot ライセンスを持たないユーザーが使用しようとすると、それらの個人的な知識ソースは機能しません。 また、アクセス許可は重要です。エージェントは、ユーザーがアクセスできるコンテンツのみを取得できます。

  • データの鮮度とメンテナンス: エージェントの追加されたソースに関する知識は、時間の経過と同時に更新されます。 ナレッジ ソースを定期的に確認して更新します。

  • スコープ チーム チャット: チームの会話を追加する場合は、すべてのチームチャット/会議、または特定の会話の 2 つのオプションがあります。 一般に、特定のチャット スレッドを追加すると、よりターゲットを絞った結果が得られ、ノイズが少なくなります。 たとえば、特定のプロジェクト チャネルの履歴にエージェントを取り付け、これまでに行ったすべてのチャットを調べるのではなく、プロジェクト固有の質問に対してより正確に回答するのに役立ちます。

  • 構造化データには SharePoint とコネクタを使用します。 静的または構造化された知識を得る場合は、SharePoint が理想的です。 PDF または Office ドキュメントにサポート情報がある場合は、SharePoint サイトでホストし、そのサイトをソースとして追加します。 データベース レコードや CRM データなどの他のシステムが必要な場合は、Copilot コネクタが存在するかどうかを確認するか、API プラグインを追加します。

  • 知識の有無にかかわらず、応答をテストします。 ナレッジ ソースを追加する前と追加後にいくつかのクエリをテストします。 たとえば、特定のドキュメントから回答する必要がある質問をします。 ドキュメントがないと、エージェントは誤った情報を生成したり苦労したりしますか? ドキュメントを追加した後、エージェントは回答を見つけますか? エージェントがまだ情報を使用していないことに気付いた場合は、手順の調整が必要になる場合があります。 または、エージェントがナレッジ ソースを過度に使用している場合は、そのソースを削除するか、コンテキストでのみ使用するように命令を調整することを検討してください。

テストと反復

すべての設計のベスト プラクティスとガイドラインに従った後でも、エージェントを徹底的にテストして、意図したとおりに動作することを確認してください。 エージェントをテストして反復処理するには、次のベスト プラクティスを適用します。

  • 組み込みのテスト チャットを使用します。Microsoft 365 Copilotのエージェント ビルダーの右側のウィンドウで、エージェントのビルド中にエージェントのライブ プレビューとチャットできます。 これを頻繁に行います。 すべての会話スターターとサンプル プロンプトを試してください。 また、エッジの質問、長い質問、無関係な質問などをテストして、エージェントがどのように応答するかを確認します。 奇妙なことが起こった場合は、指示や知識ソースを絞り込み、もう一度テストしてください。

  • 複数のアプリでテストする:Word、Excel、Teams、Outlook などの Microsoft 365 アプリのMicrosoft 365 Copilot エクスペリエンスにアクセスできる場合は、各場所にエージェントを追加して、作成環境の外部でどのように動作するかを確認します。 たとえば、Wordでは、提案されたアクションなどの特定の応答が Teams とは異なる動作をします。 これらの不一致を早い段階でキャッチしてください。 エージェントは、すべての Microsoft 365 アプリで機能している必要があります。

  • 確認フローを確認します。 エージェントが確認を必要とする実用的な関数を使用している場合は、それらのループを完全にテストします。 たとえば、アクションをトリガーするクエリを入力し、確認プロンプトのテキストがクリアされていることを確認し、[許可] (またはボタンに表示される内容) を選択し、結果をチェックします。 また、[ キャンセル/拒否 ] を選択して、エージェントの反応を確認するテストを行います。

  • ロード テスト (可能な場合): 開発者は、負荷の高いシミュレーションを簡単に行えない場合があります。ただし、エージェントに複数の質問が迅速に行われる場合や、複数のユーザーがすべて同時に使用する場合はどうなるかを検討してください。 API コンポーネントがある場合は、プロファイルまたはログを使用して、エージェントが遅延なく応答するようにします。

  • ピアテストまたはユーザー テスト: できる場合は、同僚にエージェントをテストしてもらう。 彼らはあなたが期待していなかったことを尋ね、指示や知識にギャップを見つけるかもしれません。 新しいユーザーは、エージェントが応答しない別の単語も使用する可能性があります。 また、使いやすさの問題をキャッチする良い方法でもあります。 たとえば、テスト担当者がエージェントに質問する内容がわからない場合は、会話スターターをさらに追加する必要がある場合があります。

  • 出力の精度を検証します。宣言型エージェントはナレッジ ソースに基づいて回答することが多いため、ソース 資料に対して提供される回答をスポットチェックします。 エージェントがドキュメントを要約する場合は、概要が正しいことを確認します。 ポリシーが引用されている場合は、正しい詳細が引用されていることを確認します。 事実に基づくクエリの場合は、エージェントが提供されたナレッジ ソースを優先していることを確認します。