次の方法で共有


Microsoft 365 Copilotの宣言型エージェント スキーマ 1.5

この記事では、宣言型エージェント マニフェストで使用される 1.5 スキーマについて説明します。 マニフェストは、マシンで読み取り可能なドキュメントであり、ユーザーの問題の選択セットへの対処に特化するために必要な指示、知識、アクションを大きな言語モデル (LLM) に提供します。 宣言型エージェント マニフェストは、 アプリ パッケージ内の Microsoft 365 アプリ マニフェストによって参照されます。 詳細については、 Microsoft 365 アプリ マニフェスト リファレンスを参照してください

宣言型エージェントは、人間のようなテキストを理解して生成する上で重要であり、質問の書き込みや回答などのタスクに対して汎用性が高くなっています。 この仕様では、特定のユーザーが必要とする機能を特化および強化するための構造化フレームワークとして機能する宣言型エージェント マニフェストに重点を置いています。

以前のバージョンからの変更

このスキーマ バージョンでは、 バージョン 1.4 から次の変更が導入されています。

  • capabilitiesの一覧に会議機能を追加しました。これにより、エージェントはorganizationで会議を検索できます。

JSON スキーマ

このドキュメントで説明されているスキーマは、 JSON スキーマ 形式 でこちらで確認できます。

規則

URL 内の相対参照

特に指定しない限り、URL であるプロパティはすべて相対参照になる場合があります。 マニフェスト ドキュメント内の相対参照は、マニフェスト ドキュメントの場所を基準とします。

文字列の長さ

特に指定しない限り、すべての文字列プロパティを 4K 文字に制限する必要があります。 この文字列の長さは、ドキュメント全体に許容されるサイズを与えるわけではありません。 実装は、マニフェストの長さに独自の実用的な制限を自由に課すことができます。

認識されないプロパティ

このドキュメントで定義されている JSON オブジェクトでは、説明されているプロパティのみがサポートされています。 JSON オブジェクトの認識されないプロパティまたは余分なプロパティは、ドキュメント全体を無効にする必要があります。

文字列のローカライズ

ローカライズ可能な文字列では、リテラル値の代わりにローカライズ キーを使用できます。 構文は [[key_name]]で、 key_name はローカライズ ファイルの localizationKeys プロパティのキー名です。 ローカライズの詳細については、「 エージェントをローカライズする」を参照してください。

宣言型エージェント マニフェスト オブジェクト

マニフェスト ドキュメントのルートは、必要なフィールド、機能、会話スターター、アクションをカバーする JSON オブジェクトです。

宣言型エージェント マニフェスト オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
version String 必須。 スキーマのバージョン。 v1.5 に設定する必要があります。
id String 省略可能。
name String 必須です。 ローカライズ。 宣言型エージェントの名前。 空白以外の文字が少なくとも 1 つ含まれており、100 文字以下である必要があります。
description String 必須です。 ローカライズ。 宣言型エージェントの説明。 空白以外の文字が少なくとも 1 つ含まれており、1,000 文字以下である必要があります。
instructions String 必須です。 宣言型エージェントの動作方法、その関数、および回避する動作に関する詳細な手順またはガイドライン。 空白以外の文字が少なくとも 1 つ含まれており、8,000 文字以下である必要があります。
capabilities Capabilities オブジェクトの配列 省略可能。 宣言型エージェントの機能を定義するオブジェクトの配列を格納します。 配列には、各派生型の Capabilities オブジェクト が複数存在してはなりません。
conversation_starters Conversation スターター オブジェクトの配列 省略可能。 タイトルとテキストはローカライズ可能です。 宣言型エージェントが回答できる質問の例の一覧。 配列には 12 個を超えるオブジェクトを含めてはいけません。
actions Action オブジェクトの配列 省略可能。 宣言型エージェントからアクセスできるアクション を提供する API プラグイン を識別するオブジェクトの一覧。
behavior_overrides 動作によってオブジェクトがオーバーライドされる 省略可能。 エージェントの動作を変更する構成設定が含まれます。
disclaimer 免責事項オブジェクト 省略可能。 会話の開始時にユーザーに表示される免責事項テキスト。

宣言型エージェント マニフェスト オブジェクトの例

次のコードは、宣言型エージェント マニフェスト内の必須フィールドの例です。

{
  "name" : "Repairs agent",
  "description": "This declarative agent is meant to help track any tickets and repairs",
  "instructions": "This declarative agent needs to look at my Service Now and Jira tickets/instances to help me keep track of open items"
}

Capabilities オブジェクト

capabilities オブジェクトは、宣言型エージェント マニフェスト オブジェクトの capabilities プロパティ内のオブジェクトの基本型です。 使用可能なオブジェクト型は次のとおりです。

注:

Web 検索以外の機能を持つ宣言型エージェントは、従量制課金の使用を許可するテナントまたはMicrosoft 365 Copilot ライセンスを持つテナントのユーザーのみが使用できます。

Capabilities オブジェクトの例

{
  "capabilities": [
    {
      "name": "WebSearch",
      "sites": [
        {
          "url": "https://contoso.com"
        }
      ]
    },
    {
      "name": "OneDriveAndSharePoint",
      "items_by_sharepoint_ids": [
        {
          "site_id": "bc54a8cc-8c2e-4e62-99cf-660b3594bbfd",
          "web_id": "a5377427-f041-49b5-a2e9-0d58f4343939",
          "list_id": "78A4158C-D2E0-4708-A07D-EE751111E462",
          "unique_id": "304fcfdf-8842-434d-a56f-44a1e54fbed2"
        }
      ],
      "items_by_url": [
        {
          "url": "https://contoso.sharepoint.com/teams/admins/Documents/Folders1"
        }
      ]
    },
    {
      "name": "GraphConnectors",
      "connections": [
        {
          "connection_id": "jiraTickets"
        }
      ]
    },
    {
      "name": "GraphicArt"
    },
    {
      "name": "CodeInterpreter"
    },
    {
      "name": "Dataverse",
      "knowledge_sources": [
        {
          "host_name": "organization.crm.dynamics.com",
          "skill": "DVCopilotSkillName",
          "tables": [
            {
              "table_name": "account"
            },
            {
              "table_name": "opportunity"
            }
          ]
        }
      ]
    },
    {
      "name": "TeamsMessages",
      "urls": [
        {
          "url": "https://teams.microsoft.com/l/channel/19%3ApO0102YGEBRSH6RziXCxEgB4mtb7-5hIlDzAjtxs_dg1%40thread.tacv2/G%C3%A9n%C3%A9ral?groupId=2670cf94-acf5-48f4-96d4-c58dd8937afc&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47"
        }
      ]
    },
    {
      "name": "People"
    },
    {
      "name": "ScenarioModels",
      "models": [
        {
          "id": "model_id"
        }
      ]
    },
    {
      "name": "Meetings"
    }
  ]
}

Web 検索オブジェクト

宣言型エージェントが Web で接地情報を検索できることを示します。

Web 検索オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 WebSearch に設定する必要があります。
sites Site オブジェクトの配列 省略可能。 エージェントが検索できるサイトを識別するオブジェクトの配列。 このプロパティを省略すると、すべてのエージェントですべてのサイトを検索できます。 配列に 4 つ以上の項目を含めてはいけません。

注:

Microsoft 365 Copilot ChatとMicrosoft 365 Copilotでの Web 検索のデータ、プライバシー、セキュリティの詳細については、「Web 検索のデータ、プライバシー、セキュリティ」を参照してください。

Site オブジェクト

宣言型エージェントがコンテンツを検索できるサイトを示します。

サイト オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
url String 必須です。 コンテンツを検索するサイトの絶対 URL。 URL には 2 つ以上のパス セグメントを含めることはできません (たとえば、 https://contoso.com/projects/mark-8 は有効ですが、 https://contoso.com/projects/mark-8/beta-program は無効です)。 URL にはクエリ パラメーターを含めてはいけません。

OneDrive オブジェクトと SharePoint オブジェクト

宣言型エージェントがユーザーの SharePoint と OneDrive で接地情報を検索できることを示します。

OneDrive オブジェクトと SharePoint オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 OneDriveAndSharePoint に設定する必要があります。
items_by_sharepoint_ids SharePoint ID オブジェクトによる項目の配列 省略可能。 ID を使用して SharePoint または OneDrive ソースを識別するオブジェクトの配列。 items_by_sharepoint_idsプロパティとitems_by_urlプロパティの両方を省略すると、organization内のすべての OneDrive および Sharepoint ソースを宣言型エージェントで使用できます。
items_by_url URL オブジェクトによる Items の配列 省略可能。 SharePoint または OneDrive ソースを URL で識別するオブジェクトの配列。 items_by_sharepoint_idsプロパティとitems_by_urlプロパティの両方を省略すると、organization内のすべての OneDrive および Sharepoint ソースを宣言型エージェントで使用できます。

Copilot の SharePoint コンテンツを最適化する方法については、「 SharePoint コンテンツ取得の最適化」を参照してください。

SharePoint ID オブジェクト別の項目

SharePoint ID オブジェクトごとのアイテムには、次のプロパティが含まれています。

プロパティ 説明
site_id String 省略可能。 SharePoint サイトまたは OneDrive サイトの一意の GUID 識別子。
web_id String 省略可能。 SharePoint または OneDrive サイト内の特定の Web の一意の GUID 識別子。
list_id String 省略可能。 SharePoint または OneDrive サイト内のリストの一意の GUID 識別子。
unique_id String 省略可能。 特定のエンティティまたはリソースを表すために使用される一意の GUID 識別子。
search_associated_sites ブール値 省略可能。 関連付けられているサイトの検索を有効にするかどうかを示します。 この値は、 site_id 値が SharePoint HubSite を参照している場合にのみ適用されます。
part_type String 省略可能。 参照するパーツの種類 part_id 示します。 この値は、 part_id 値が存在する場合にのみ適用されます。 使用可能な値は、 OneNotePartです。
part_id String 省略可能。 OneNote ページなどの SharePoint アイテムの一部を表すために使用される一意の GUID 識別子。

ヒント

SharePoint または OneDrive リソースの一意の識別子を取得する方法については、「 宣言型エージェント マニフェストの機能 ID の取得」を参照してください。

URL オブジェクト別の項目

URL オブジェクトごとの項目には、次のプロパティが含まれています。

プロパティ 説明
url String 省略可能。 SharePoint または OneDrive リソースへの絶対 URL。

Copilot コネクタ オブジェクト

宣言型エージェントが、選択した Copilot コネクタを検索して接地情報を検索できることを示します。

Copilot コネクタ オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 GraphConnectors に設定する必要があります。
connections Connection オブジェクトの配列 省略可能。 宣言型エージェントで使用できる Copilot コネクタを識別するオブジェクトの配列。 このプロパティを省略すると、organization内のすべての Copilot コネクタを宣言型エージェントで使用できます。
Connection オブジェクト

Copilot コネクタを識別します。

接続オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
connection_id String 必須です。 Copilot コネクタの一意識別子。
additional_search_terms String 省略可能。 接続のスキーマ内のフィールドに基づいて項目をフィルター処理するキーワード クエリ言語 (KQL) クエリ。
items_by_external_id Item 識別子オブジェクトの配列 省略可能。 エージェントで使用できる Copilot コネクタの ID で特定の項目を指定します。
items_by_path Path オブジェクトの配列 省略可能。 エージェントで使用できる項目を項目パス (項目の itemPathsemantic ラベル ) でフィルター処理します。
items_by_container_name コンテナー名オブジェクトの配列 省略可能。 コンテナー名 (項目の containerName セマンティック ラベル) でエージェントで使用できる項目をフィルター処理します。
items_by_container_url コンテナー URL オブジェクトの配列 省略可能。 コンテナー URL (アイテムの containerUrl セマンティック ラベル) でエージェントで使用できる項目をフィルター処理します。

ヒント

Copilot コネクタの一意の識別子を取得する手順については、「 宣言型エージェント マニフェストの機能 ID の取得」を参照してください。

項目識別子オブジェクト

外部アイテムを ID で識別します。

アイテム識別子オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
item_id String 必須です。 外部アイテムの一意識別子。
Path オブジェクト

パスによって外部項目を識別します。

path オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
path String 必須です。 外部項目のパス (セマンティック ラベル値itemPath )。
コンテナー名オブジェクト

コンテナーを名前で識別します。

コンテナー名オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
container_name String 必須です。 外部アイテムのコンテナーの名前 (セマンティック ラベル値containerName )。
コンテナー URL オブジェクト

コンテナーを URL で識別します。

コンテナー URL オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
container_url String 必須です。 外部アイテムのコンテナーの URL (セマンティック ラベル値containerUrl )。

グラフィック アート オブジェクト

宣言型エージェントが、ユーザーからのテキスト入力に基づいて画像とアートを作成できることを示します。 詳細については、「 イメージ ジェネレーター」を参照してください。

グラフィック アート オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 GraphicArt に設定する必要があります。

コード インタープリター オブジェクト

宣言型エージェントが Python コードを生成して実行して、複雑な数学の問題を解決したり、データを分析したり、視覚化を生成したりできることを示します。 詳細については、「 コード インタープリター」を参照してください。

コード インタープリター オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 CodeInterpreter に設定する必要があります。

Dataverse オブジェクト

宣言型エージェントが Microsoft Dataverse のテーブルからデータを検索できることを示します。

Dataverse オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 Dataverse に設定する必要があります。
knowledge_sources ナレッジ ソースの配列 省略可能。 Dataverse インスタンスがナレッジとして含める識別子、スキル、テーブル名を含むオブジェクトの配列。
ナレッジ ソース オブジェクト

ナレッジとして含める Dataverse インスタンスに関する情報が含まれます。

ナレッジ ソース オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
host_name String 必須です。 Dataverse のホストの一意識別子。
skill 文字列 エージェントが Dataverse ナレッジと対話する方法の構成を定義する一意の識別子。
tables テーブルの配列 エージェントの知識をスコープとするテーブルの配列。
Tables オブジェクト

エージェントのナレッジのスコープを設定するテーブルが含まれます。

tables オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
table String 必須です。 テーブルの一意識別子。

Teams メッセージ オブジェクト

宣言型エージェントが Teams チャネル、チーム、会議、1:1 チャット、グループ チャットを検索できることを示します。

Teams メッセージ オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 TeamsMessages に設定する必要があります。
urls Teams URL の配列 省略可能。 宣言型エージェントが使用できる Teams チャネル、会議チャット、グループ チャット、または 1:1 チャットの URL を識別するオブジェクトの配列。 配列には 5 つ以上のオブジェクトを含めてはいけません。 このプロパティを省略すると、すべてのチャネル、会議、1:1 チャット、グループ チャットを対象に、スコープなしの検索が可能になります。
Teams URL オブジェクト

Teams チャネル、チーム、または会議チャットを識別します。

Teams URL オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
url String 必須です。 Teams チャネル、会議チャット、グループ チャット、または 1:1 チャットのいずれかにリンクする適切な形式の Teams URL。

Email オブジェクト

宣言型エージェントが、ユーザーがアクセスできるメールボックス内の電子メール メッセージを検索できることを示します。

電子メール オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 に設定する必要があります。
shared_mailbox String 省略可能。 共有メールボックスの SMTP アドレス。
folders String 省略可能。 folder_id オブジェクトの配列。
Folders オブジェクト

エージェントのナレッジのスコープを設定するフォルダーが含まれます。

folders オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
folder_id String 必須です。 参照するフォルダーの既知のフォルダー名またはフォルダー ID。

People オブジェクト

宣言型エージェントがorganization内のユーザーに関する情報を検索できることを示します。

people オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 People に設定する必要があります。

シナリオ モデル オブジェクト

宣言型エージェントがタスク固有のモデルを使用できることを示します。

シナリオ モデル オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 ScenarioModels に設定する必要があります。
models Model オブジェクトの配列 必須です。 宣言型エージェントで使用できるタスク固有のモデルを識別するオブジェクトの配列。
Model オブジェクト

タスク固有のモデルを識別します。

model オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
id String 必須です。 モデルの一意識別子。

Meetings オブジェクト

宣言型エージェントが、organization内の会議に関する情報を検索できることを示します。

meetings オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
name String 必須。 Meetings に設定する必要があります。

Conversation starters オブジェクト

マニフェストでは、conversation starters オブジェクトは省略可能です。 これには、宣言型エージェントの使用を開始する方法を示すためにユーザーに表示されるヒントが含まれています。

会話スターター オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
text String 必須です。 ローカライズ。 宣言型エージェントから目的の結果を取得するためにユーザーが使用できる提案。 空白以外の文字が少なくとも 1 つ含まれている必要があります。
title String 省略可能。 ローカライズ。 会話スターターの一意のタイトル。 空白以外の文字が少なくとも 1 つ含まれている必要があります。

Conversation starters オブジェクトの例

{
  "conversation_starters": [
    {
      "title": "My Open Repairs",
      "text": "What open repairs are assigned to me?"
    }
  ]
}

Actions オブジェクト

アクションは、マニフェスト内の省略可能な JSON オブジェクトです。 これは開発者の入力として機能し、プラグインと見なすことができます。

アクション オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
id String 必須です。 アクションの一意識別子。 GUID である可能性があります。
file String 必須です。 このアクションの API プラグイン マニフェストへのパス。

Actions オブジェクトの例

{
  "actions": [
    {
      "id": "repairsPlugin",
      "file": "plugin.json"
    }
  ]
}

動作によってオブジェクトがオーバーライドされる

エージェントの動作をオーバーライドする構成設定を含む省略可能な JSON オブジェクト。

動作オーバーライド オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
suggestions Suggestions オブジェクト 省略可能。 提案機能の構成設定が含まれています。
special_instructions 特殊な命令オブジェクト 省略可能。 プロンプトに特別な命令を挿入するための設定が含まれています。

Suggestions オブジェクト

提案機能の構成設定を含む省略可能な JSON オブジェクト。

suggestions オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
disabled Boolean 必須です。 trueに設定すると、提案機能は無効になります。 既定値は false です。

特殊な命令オブジェクト

プロンプトに特別な指示を挿入するための設定を含む省略可能な JSON オブジェクト。

特殊な命令オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
discourage_model_knowledge Boolean 必須です。 trueに設定されている場合、エージェントは応答を生成するときにモデルナレッジを使用しないことをお勧めします。 既定値は false です。

免責事項オブジェクト

免責事項は、会話の開始時にユーザーに表示される免責事項テキストを指定する、マニフェスト内の省略可能な JSON オブジェクトです。

免責事項オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
text String 必須です。 免責事項のテキスト。 値には、空白以外の文字が少なくとも 1 つ含まれている必要があり、500 文字を超えないようにする必要があります。

宣言型エージェント マニフェストの例

次の例は、この記事で説明するマニフェスト プロパティの大部分を使用する宣言型エージェント マニフェスト ファイルを示しています。

{
  "$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.5/schema.json",
  "version": "v1.5",
  "name": "Teams Toolkit declarative agent",
  "description": "Declarative agent created with Teams Toolkit",
  "instructions": "You are a repairs expert agent. With the response from the listRepairs function, you **must** create a poem out of the repairs listed and always include their title and the assigned person. The poem **must** not use the quote markdown and use regular text. If the user is asking to create a new repair, use the createRepair function and do not add poems.",
  "conversation_starters": [
    {
      "title": "Getting Started",
      "text": "How can I get started with Teams Toolkit?"
    },
    {
      "title": "Getting Help",
      "text": "How can I get help with Teams Toolkit?"
    }
  ],
  "actions": [
    {
      "id": "repairsPlugin",
      "file": "repairs-hub-api-plugin.json"
    }
  ],
  "behavior_overrides": {
    "suggestions": {
      "disabled": true
    },
    "special_instructions": {
      "discourage_model_knowledge": true
    }
  },
  "disclaimer": {
    "text": "This declarative agent is a fictional example. You should not take it seriously."
  },
  "capabilities": [
    {
      "name": "WebSearch",
      "sites": [
        {
          "url": "https://contoso.com/projects/mark-8"
        }
      ]
    },
    {
      "name": "OneDriveAndSharePoint",
      "items_by_url": [
        {
          "url": "https://contoso.sharepoint.com/sites/ProductSupport"
        }
      ]
    },
    {
      "name": "GraphConnectors",
      "connections": [
        {
          "connection_id": "foodStore"
        }
      ]
    },
    {
      "name": "GraphicArt"
    },
    {
      "name": "CodeInterpreter"
    },
    {
      "name": "Dataverse",
      "knowledge_sources": [
        {
          "host_name": "organization.crm.dynamics.com",
          "skill": "DVCopilotSkillName",
          "tables": [
            {
              "table_name": "account"
            },
            {
              "table_name": "opportunity"
            }
          ]
        }
      ]
    },
    {
      "name": "TeamsMessages",
      "urls": [
        {
          "url": "https://teams.microsoft.com/l/channel/19%3ApO0102YGEBRSH6RziXCxEgB4mtb7-5hIlDzAjtxs_dg1%40thread.tacv2/G%C3%A9n%C3%A9ral?groupId=2670cf94-acf5-48f4-96d4-c58dd8937afc&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47"
        }
      ]
    },
    {
      "name": "Email",
      "shared_mailbox": "sample@service.microsoft.com",
      "folders": [
        {
         "folder_id": "inbox"
        }
      ]
    },
    {
      "name": "People"
    },
    {
      "name": "ScenarioModels",
      "models": [
        {
          "id": "model_id"
        }
      ]
    },
    {
      "name": "Meetings"
    }
  ]
}