宣言型エージェントにナレッジ ソースを追加する

コード インタープリターや画像ジェネレーター、ナレッジ ソースなどの機能を追加して、エージェントの知識を強化およびカスタマイズすることで、宣言型エージェントのユーザー エクスペリエンスを向上させることができます。 Microsoft 365 Copilot のマニフェスト リファレンスとナレッジ セクションの機能オブジェクトには、ユーザーの機能をロック解除するためのいくつかのオプションが用意されています。 この記事では、エージェントに追加できるナレッジ ソースについて説明します。

次の表に、Microsoft 365 Copilot または Microsoft 365 Agents Toolkit のエージェント ビルダーを使用して構成できる機能とナレッジ ソースを示し、ユーザーがその機能またはナレッジ ソースを持つエージェントにアクセスするために Microsoft 365 Copilot ライセンスまたは従量制課金の使用量が必要かどうかを示します。

能力またはナレッジ ソース エージェント ビルダー エージェント ツールキット ライセンスまたは従量制の使用量が必要ですか?
コード インタープリター ✅ ✅ 不要
画像ジェネレーター ✅ ✅ 不要
Copilot コネクタ ✅ ✅ はい
SharePoint ✅ ✅ はい
OneDrive ✅ ✅ はい
埋め込みファイル コンテンツ ✅ ❌ はい
Web 検索 ✅ ✅ 不要
範囲付き Web 検索 ✅ ✅ 不要
Dataverse ✅ ✅* はい
電子メール ✅ ✅* はい (ライセンスのみ)
連絡先 ✅ ✅ はい (ライセンスのみ)
OneNote ページ ✅ ❌ 不要
Teams のメッセージ ✅ ✅* はい (ライセンスのみ)
Teams 会議 ✅ ✅ はい (ライセンスのみ)

* 知識の範囲を指定するオプションが利用可能です。

Copilot コネクタ

Microsoft 365 Copilot コネクタを使用すると、根拠となる情報としてエージェントに組織データを追加できます。 Copilot コネクタを使用して基幹業務データを Microsoft Graph に取り込むと、Copilot がユーザー プロンプトに応答する基礎情報としてデータを推論できます。 詳細については、「Microsoft 365 Copilot コネクタの概要」を参照してください。

エージェント ツールキットで Copilot コネクタをナレッジとしてエージェント マニフェストに追加する方法の詳細については、「 Copilot コネクタ オブジェクト」を参照してください。

エージェント ビルダーでエージェントに Copilot コネクタを追加する方法の詳細については、「 Copilot コネクタ」を参照してください。

SharePoint および OneDrive

SharePoint と OneDrive のコンテンツをナレッジとして使用するようにエージェントを構成すると、Copilot は、ユーザーがアクセスできる SharePoint と OneDrive のファイル、フォルダー、またはサイトを検索して根拠となります。

Agents Toolkit で SharePoint と OneDrive の知識をエージェント マニフェストに追加する方法の詳細については、「 OneDrive と SharePoint オブジェクト」を参照してください。

Agent Builder で SharePoint と OneDrive の知識をエージェントに追加する方法、およびエージェントごとの制限とアクセス許可と秘密度ラベルの処理方法については、「 SharePoint と OneDrive のコンテンツ」を参照してください。

注:

SharePoint および OneDrive ナレッジ ソースでは、サインインしているユーザーがアクティブな Microsoft 365 Copilot ライセンスを持っている必要があります。 ユーザーにライセンスがない場合、要求は失敗し、「 申し訳ありませんが、応答できませんでした」というメッセージが表示されます。

Copilot ライセンスを持たない顧客デジタル エクスペリエンス (CDX) テナント アカウントは、エージェントを公開できますが、SharePoint ベースの取得は実行できません。 Microsoft 365 Copilot 開発者ライセンスは、非運用環境でシナリオをテストするために使用します。

Web 検索を使用すると、エージェントは Bing の検索インデックスを使用して、ユーザーのプロンプトに応答できます。 エージェントで Web 検索を有効にした場合、エージェントは応答で任意の Web データを返すことができます。 また、Web 検索の範囲を最大 4 つの公開 Web サイトに絞ることができます。

重要

組織管理者は、Copilot およびorganization内のすべてのエージェントの Web 検索を無効にできます。 管理者が Web 検索を無効にした場合、Web 検索を有効にしたエージェントはエラーを報告せず、知識に Web 検索を含めません。 開発者モード デバッグ カード は、エージェントが有効にした場合、管理者が無効にした場合でも、Web 検索が有効になっていることを示します。 詳細については、「Microsoft 365 管理センターで Microsoft 365 Copilot シナリオを管理する」を参照してください。

エージェントの作成に Agents Toolkit と Visual Studio Code を使用している場合は、マニフェスト ファイルの capabilities プロパティに WebSearch 値を追加して Web 検索を有効にします。 Web 検索の範囲を特定のサイトに限定するには、次の例に示すように、 sites プロパティを追加し、最大 4 つの URL を指定します。

注:

スコープ付き Web 検索をエージェントに追加するには、宣言型エージェント マニフェスト スキーマの バージョン 1.3 以降を使用します。

{
  "capabilities": [
    {
      "name": "WebSearch",
      "sites": [
        {
          "url": "cnn.com"
        }
      ]
    }
  ]
}

エージェント ビルダーを使用してエージェントを作成する場合は、[構成] タブの [ナレッジ] に、参照する Web サイトの URL を一覧表示します。

Web 検索の基礎と動的コンテンツ

宣言型エージェントのマニフェストが Web 検索の範囲を特定の Web サイトの URL に設定する場合、エージェントは、基になるデータ ソースへの直接アクセスではなく、Bing がそれらのサイトに対してインデックスを作成するコンテンツに基づいて応答します。

範囲指定 Web 検索は、構成された Web サイト用に Bing がインデックスを作成するコンテンツに依存します。 その結果、クライアント側のレンダリングや動的に生成されるデータに依存するコンテンツは、検索結果に完全に反映されない可能性があります。 場合によっては、動的に読み込まれたコンテンツが欠落していたり、ライブ サイトに表示される内容に比べて古くなっていたりすることがあります。

この動作により、一貫性のない結果が生じる可能性があります。 Web サイトに表示されるコンテンツは、エージェントが使用できるコンテンツとは異なる場合があり、エージェントは、動的に生成されるリストや頻繁に更新されるリストから最新の項目を確実に返さない場合があります。

この動作は、現在の宣言型エージェント アーキテクチャで想定されます。 宣言型エージェントは、動的に生成された Web ソースまたは OpenAPI 以外の Web ソースを対象としていないため、これらのシナリオでは、不完全または一貫性のないグラウンディングの結果が生じる可能性があります。

構造化され、頻繁に変更されるコンテンツに直接アクセスするには、範囲を絞った Web 検索ではなく、OpenAPI 仕様に裏打ちされた API プラグインを使用します。 API プラグインを使用すると、エージェントは、インデックス付き Web コンテンツに依存するのではなく、基になるデータ ソースに直接クエリを実行し、並べ替えや結果制限などの API パラメーターを使用できます。 または、サポートされている OpenAPI ベースまたは静的ナレッジ ソースにコンテンツを移行します。 これらのアプローチのガイダンスについては、次を参照してください。

埋め込みファイル コンテンツ

エージェント ビルダーを使用してエージェントを構築している場合は、デバイスまたはクラウドからファイルを直接アップロードして、エージェントがナレッジとして使用するコンテンツを埋め込むことができます。 埋め込みファイルのコンテンツは SharePoint Embedded に保存されます。 これらのファイルは、テナント内の OneDrive および SharePoint の容量に対してカウントされます。

注:

  • ファイル アップロード機能は、使用量課金が有効になっているか、Microsoft 365 Copilot ライセンスを持つユーザーが使用できます。
  • 埋め込みファイル コンテンツは、Microsoft 365 Government Community Cloud (GCC) 環境ではサポートされていません。

埋め込みファイルの詳細については、「 埋め込みファイル コンテンツ」を参照してください。

重要

埋め込みファイルでは、Microsoft Purview 情報バリア (IB) はサポートされていません。 エージェントにアクセスできるユーザーは、埋め込みファイル コンテンツに基づいた応答を表示できます。

Dataverse

Dataverse の知識を使用すると、エージェントは CRM データまたは Microsoft Dataverse のテーブルからのデータに関するユーザーのクエリに自然言語で応答できます。 Dataverse インスタンスをナレッジ ソースとして追加し、シノニムと用語集を追加して、システムがテーブル内のカスタマイズされたデータを適切に解釈するのに役立ちます。 詳細については、 Dataverse ナレッジ ソースの追加 を参照してください。

Dataverse の知識を追加する

エージェント ビルダーを使用してエージェントを構築する場合は、[ナレッジ] セクションの [構成] タブで [Dynamics 365 と Power Apps] を選択します。 [ + ] を選択して、含めるアプリを見つけてアプリを選択するか、そのままにしてすべてのアプリを検索します。 エージェント ビルダーの Dataverse ナレッジには、管理者が最初に有効にする必要がある Work IQ のビジネス アプリケーションを通じてアクセスできます。

エージェントを作成するために Agents Toolkit と Visual Studio Code を使用している場合は、次の例に示すように、エージェント マニフェスト ファイルの capabilities プロパティに Dataverse 値を追加して、Dataverse のナレッジを有効にします。

注:

Dataverse知識を追加するには、宣言型エージェント マニフェスト スキーマのバージョン 1.3 以降を使用します。

{
  "capabilities": [
    {
      "name": "Dataverse",
      "knowledge_sources": [
        {
          "host_name": "YourOrgID.crm.dynamics.com",
          "skill": "DVCopilotSkillName",
          "tables": [
            {
              "table_name": "account"
            },
            {
              "table_name": "opportunity"
            }
          ]
        }
      ]
    }
  ]
}

このスキルを追加する前に、capabilities 配列の skill 値が Dataverse 環境に存在することを確認してください。 また、host_name値がorganization ID と一致していることを確認してください。

既存のスキル値を取得するか、新しいスキル値を作成します

Dataverse skill 値をフェッチまたは作成するには:

  1. Power Apps 作成者ポータル>設定>開発者リソースから organization ID を取得します。

  2. ベアラー トークンを取得して、Dataverse リソース を認証 および作成します。 ベアラー トークンを取得するには、Azure portal で新しいアプリ登録を作成してから、次の curl 要求を実行します。

    curl -X POST https://login.microsoftonline.com/<tenant_ID>/oauth2/v2.0/token \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "client_id=<client_ID>" \
      -d "scope=https://YourOrgID.crm.dynamics.com/.default" \
      -d "client_secret=<client_secret>" \
      -d "grant_type=client_credentials"
    
  3. 次の curl 要求を使用して、 skill 値が既に存在するかどうかを判断します。 skill値が既に存在する場合、応答には Dataverse 環境内の既存の DVTableSearch スキルの一覧が含まれます。

    AUTH="Bearer {TOKEN}"
    ORG="https://YourOrgID.crm.dynamics.com"
    API="$ORG/api/data/v9.1"
    
    curl -s -X GET "$API/dvtablesearchs?\$select=dvtablesearchid,name,searchtype" \
    -H "Authorization: $AUTH" \
    -H "Accept: application/json"
    

    Response

    {
     "@odata.context": "https://YourOrgID.crm.dynamics.com/api/data/v9.1/$metadata#dvtablesearchs(dvtablesearchid,name,se…),
     "value": [
       {
         "@odata.etag": "W/\"4277...\"",
         "dvtablesearchid": "15369...",
         "name": "User_Account_jSd6V...",
         "searchtype": 0
       }
    ]
    }
    

    skill値が既に存在する場合は、エージェント マニフェスト ファイルでその値を使用します。 skill値が存在しない場合、応答には空の配列が含まれます。

    Response

    {
      "@odata.context":"https://YourOrgID.crm.dynamics.com/api/data/v9.1/$metadata#dvtablesearchs(dvtablesearchid,name,searchtype)",
      "value":[]
    }
    
  4. skillが存在しない場合は、DVTableSearchスキルを作成し、それに割り当てた名前を使用します。

    要求

    AUTH="Bearer {TOKEN}"
    ORG="https://YourOrgID.crm.dynamics.com"
    API="$ORG/api/data/v9.1"
    
    curl -i -X POST "$API/dvtablesearchs" \
    -H "Authorization: $AUTH" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Account_SystemUser_Skill",
      "searchtype": 0,
      "DVTableSearch_DVTableSearch_DVTableSearch": [
        {
          "name": "Account",
          "entitylogicalname": "account"
        }
      ]
    }'
    

    Response

    この要求から 204 No Content が返され、 DVTableSearch スキルが正常に作成されたことが示されます。

    HTTP/1.1 204 No Content
    
  5. 手順 3 の curl 要求を再度実行して、既存のDVTableSearchスキルをチェックします。 応答には、新しく作成されたskillのdvtablesearchidが含まれます。 この値またはエージェント マニフェスト ファイルの skill プロパティで name 値を使用できます。

電子メール

Email knowledge を使用すると、エージェントを個人または共有メールボックス、およびオプションで特定のメールボックス フォルダーに限定できます。

電子メールのナレッジ ソースを追加する

エージェント ビルダーを使用してエージェントを作成する場合は、[ナレッジ] セクションの [構成] タブで [マイ メール] を選択します。

注:

現時点では、エージェント ビルダーを使用する場合、メールを特定のフォルダーまたは共有メールボックスに限定することはできません。

エージェント ツールキットと Visual Studio Code を使用してエージェントを作成している場合は、電子メールの知識を追加するには、次の例に示すように、エージェント マニフェスト ファイルの capabilities プロパティにEmail値を追加します。 複数のメールボックス フォルダーと 1 つの共有フォルダーのみを参照できます。

注:

Email ナレッジを追加するには、宣言型エージェント マニフェスト スキーマのバージョン 1.3 以降を使用している必要があります。

{
  "capabilities": [
    {
      "name": "Email",
      "shared_mailbox": "sample@service.microsoft.com",
      "folders": [
        {
          "folder_id": "inbox"
        }
      ]
    }
  ]
}

[ folder_id ] フィールドでは、既知のフォルダー名またはフォルダー ID のいずれかを参照できます。 よく知られているフォルダー名の一覧については、「 mailFolder リソースの種類」を参照してください。 フォルダー ID の一覧を取得するには、Graph エクスプローラーで次のクエリを使用します。

https://graph.microsoft.com/v1.0/me/mailFolders

[ shared_mailbox ] フィールドで、共有メールボックスの SMTP アドレスを使用します。

[ group_mailboxes ] フィールドで、エージェントを対象にする共有メールボックスまたは Microsoft 365 グループの SMTP アドレスを含む文字列の array (最大 25 個) を指定します。

共有メールボックスとフォルダーの両方を参照している場合、エージェントは応答のスコープを共有メールボックス内のフォルダーに設定します。 フォルダーのみを参照する場合、エージェントは、個人用メールボックス内のフォルダーの内容に応答の範囲を設定します。

共有メールボックスまたはフォルダーを参照しない場合、エージェント検索はどのフォルダーまたはメールボックスにも範囲設定されず、ユーザーのクエリに基づいてすべてのメール コンテンツから結果が返されます。

連絡先

エージェントを People データに根付かせて、よりパーソナライズされたコンテキスト認識された応答を提供します。 People Data は、名前、役職、スキル、組織関係などの個人に関する公開情報と、ユーザーのつながり、コラボレーター、関連する洞察の個人的なビューを組み合わせます。 このナレッジ ソースにより、エージェントは次のことが可能になります。

  • レポート構造や連絡先の詳細など、ユーザーと同僚のプロファイルを検索します。
  • ドメイン エキスパートと主要なコラボレーター organization を特定します。
  • ユーザーの関係、過去のやり取り、好みに基づいて応答をパーソナライズします。
  • 特定のチームまたは個人に合わせた推奨事項とコミュニケーションのヒントを提供します。

ユーザーナレッジ ソースの追加

Copilot Studio を使用してエージェントを作成する場合、Microsoft 365 Copilot ライセンスを持つユーザーに対して People ナレッジ ソースは既定で有効になっています。

Agents Toolkit と Visual Studio Code を使用してエージェントを作成する場合は、次の例に示すように、エージェント マニフェスト ファイルの capabilities プロパティに People 値を追加して、ユーザーの知識を有効にします。 基本People機能のみを宣言すると、エージェントはプロファイルカードで使用できるデータなどの基本的なorganizationデータのみを推論できます。 エージェント ユーザーとorganization内の参照先ユーザーとの間の関連するチーム メッセージ、電子メール、ファイルなどのコンテンツを含めるには、バージョン 1.6 を参照して include_related_content プロパティを使用します。

注:

People ナレッジ ソース (関連コンテンツなし) を追加するには、宣言型エージェント マニフェスト スキーマのバージョン 1.3 以降を使用します。 include_related_content プロパティを使用するには、バージョン 1.6 以降を使用します。

{
  "capabilities": [
    {
      "name":"People"
    }
  ]
}

エージェントが、関連するチームのメッセージ、電子メール、ファイルなど、関連するコンテンツ (エージェント ユーザーと参照先ユーザーの間の) を推論する必要がある場合は、 include_related_content プロパティを活用します。 既定値は false です。

{
  "capabilities": [
    {
      "name":"People",
      "include_related_content": true
    }
  ]
}

OneNote ページ

Microsoft 365 Copilot を使用してエージェントを構築するときは、ファイル ピッカーから特定の OneNote ページを選択してナレッジとしてアップロードできます。 個々の OneNote ページのみを選択できます。 OneNote ノートブック全体を選択するオプションは使用できません。

ファイル ピッカーを使用して OneNote ページを追加します。 エージェント ビルダーは、OneNote ページ URL の入力をサポートしていません。

Teams のメッセージ

Teams チャネル、会議チャット、グループ チャット、1:1 チャットをナレッジ ソースとして使用するようにエージェントを構成できます。 Copilot 検索の範囲を指定するために、チャネル、グループ、1 対 1、または会議チャットへのリンクを最大 5 つ指定することも、チャネル、会議、個人チャットやグループ チャットなどのユーザーの Teams コンテンツをエージェントが使用できるようにすることもできます。

エージェントは、Teams メッセージで共有されているファイルへのリンクを返すことができますが、Teams チャネルに保存されているファイルへのリンクを返すことはできません (エージェントも有効にしていない限り OneDriveAndSharePoint )。 Copilot 用に SharePoint コンテンツを最適化する方法の詳細については、「 コンテンツ取得の最適化」を参照してください。

Teams メッセージナレッジ ソースを追加する

エージェント ビルダーを使用してエージェントを作成する場合は、[構成] タブの [ナレッジ] セクションで、検索バーを選択し、[My Teams のチャットと会議] を選択します。 エージェントを特定のチャネル、会議、またはグループ チャットに限定するには、[ チャット] タブで、ナレッジとして追加するチャットを選択します。

エージェント ツールキットと Visual Studio Code を使用してエージェントを作成している場合は、Teams メッセージの知識を有効にするために、マニフェスト参照の capabilities プロパティにTeamsMessage値を追加します。 Teams の知識を最大 5 つの Teams リソースに限定する場合は、次の例に示すように、 URL プロパティにリンクを追加します。

注:

TeamsMessageナレッジ ソースを追加するには、宣言型エージェント マニフェスト スキーマのバージョン 1.3 以降を使用している必要があります。

{
  "capabilities": [
    {
      "name": "TeamsMessages",
      "urls": []
    }
  ]
}

チャネルまたは会議の URL を取得する

Teams チャネルの URL を取得するには、チャネル名の横にある 3 つの点 (...) を選択し、[ チャネルへのリンクを取得] を選択します。

Teams 会議の URL を取得するには、会議を開き、[ 参加] の横にある矢印を選択して、[ 参加リンクのコピー] を選択します。

グループまたは 1 対 1 チャットの URL を取得する

グループまたは 1 対 1 のチャットの URL を取得するには、 chatId を含むディープ リンクが必要です。 ディープ リンクの形式は https://teams.microsoft.com/l/chat/<chatId>/conversations です。 chatId の値はチャットごとに異なります。

グループまたは 1 対 1 のチャットの chatId 値を取得するには:

  1. Microsoft Teams で、チャット内の任意のメッセージに移動します。
  2. メッセージにカーソルを合わせて、3 つの点 (...) を選択します。
  3. [リンクのコピー] を選択します。
  4. メモ帳または同様のアプリケーションにリンクを貼り付けます。 リンクは次の URL のようになります: https://teams.microsoft.com/l/chat/19:12ab3c4d-a123-12a3-a123-123ab12c12de_12a3bcd4-1234-1234-123a-1b2345c678d9@unq.gbl.spaces//1743033793614?context=%7B%22contextType%22%3A%22chat%22%7D。
  5. chat/ と次の/の間にある URL のセグメントをコピーします。 セグメントは通常、 19:で始まります。 これが chatId です。 前の例では、 chatId は 19:12ab3c4d-a123-12a3-a123-123ab12c12de_12a3bcd4-1234-1234-123a-1b2345c678d9@unq.gbl.spacesです。
  6. ディープ リンクに chatId を追加します。 例: https://teams.microsoft.com/l/chat/19:12ab3c4d-a123-12a3-a123-123ab12c12de_12a3bcd4-1234-1234-123a-1b2345c678d9@unq.gbl.spaces/conversations。

詳細については、「 Teams チャットへのディープ リンク」を参照してください。

Teams 会議

Teams 会議の知識を使用することで、単一の会議や定期的な会議を含む会議に関する質問に回答するようにエージェントの範囲を設定できます。 たとえば、エージェントは、「昨日の会議を要約してアクション アイテムを一覧表示してください」または「自分の会議で Project X について何が言われましたか?」などのクエリに応答できます。 必要に応じて、このナレッジ ソースの範囲を最大 5 つの特定の会議に限定できます。 このナレッジ ソースにより、エージェントは会議メタデータ (件名、開催者、出席者、タイトル)、トランスクリプト コンテンツ、会議チャットにアクセスできます。

注:

会議系列の参照は、その系列の最後の 4 つのインスタンスに制限されます。

会議ナレッジ ソースの追加

エージェント ビルダーを使用してエージェントを作成する場合は、[構成] タブの [ナレッジ] セクションで、検索バーを選択し、[My Teams のチャットと会議] を選択します。 Agent Builder で、ミーティングにスコープを絞る機能は間もなく追加されます。

エージェント ツールキットと Visual Studio Code を使用してエージェントを作成している場合は、会議のナレッジを有効にするために、次の例に示すように、エージェント マニフェスト ファイルの capabilities プロパティに Meetings 値を追加します。 エージェントを特定のミーティングに限定する場合は、ミーティングのUIDを items_by_id プロパティに追加します。 会議の ID を見つける手順については、「 会議の ID を取得する」を参照してください。

注:

Meetingsナレッジ ソースを追加するには、宣言型エージェント マニフェスト スキーマのバージョン 1.6 以降を使用している必要があります。

{
  "capabilities": [
    {
      "name":"Meetings",
      "items_by_id": [
        {
          "id": "010000002300A00045B6C7890D12E0030000000040056F7GH890IJ01000000000000000020000000J3L45M6A7NO8PQ9R0S12TUV340XY5Z00",
          "is_series": true
        }
      ]
    }
  ]
}