次の方法で共有


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

この記事では、宣言型エージェント マニフェストを確立する仕様について説明します。 マニフェストは、マシンで読み取り可能なドキュメントであり、ユーザーの問題の選択セットへの対処に特化するために必要な指示、知識、アクションを大きな言語モデル (LLM) に提供します。

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

JSON スキーマ

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

規則

URL 内の相対参照

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

文字列の長さ

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

認識されないプロパティ

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

文字列のローカライズ

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

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

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

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

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

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

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

{
  "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 プロパティ内のオブジェクトの基本型です。 使用可能なオブジェクト型は次のとおりです。

機能の例

{
  "capabilities": [
    {
      "name": "WebSearch"
    },
    {
      "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"
        }
      ]
    }
  ]
}

Web 検索オブジェクト

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

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

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

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

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

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

プロパティ 説明
name String 必須。 OneDriveAndSharePoint に設定する必要があります。
items_by_sharepoint_ids SharePoint ID オブジェクトによる項目の配列 省略可能。 ID を使用して SharePoint または OneDrive ソースを識別するオブジェクトの配列。
items_by_url URL オブジェクトによる Items の配列 省略可能。 SharePoint または OneDrive ソースを URL で識別するオブジェクトの配列。
SharePoint ID オブジェクト別の項目

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

プロパティ 説明
site_id String 省略可能。 SharePoint サイトまたは OneDrive サイトの一意の GUID 識別子。
web_id String 省略可能。 SharePoint または OneDrive サイト内の特定の Web の一意の GUID 識別子。
list_id String 省略可能。 SharePoint または OneDrive サイト内のリストの一意の GUID 識別子。
unique_id String 省略可能。 特定のエンティティまたはリソースを表すために使用される一意の GUID 識別子。

ヒント

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

URL オブジェクト別の項目

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

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

Microsoft Graph コネクタ オブジェクト

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

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

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

Microsoft Graph コネクタを識別します。

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

プロパティ 説明
connection_id String 必須です。 Microsoft Graph コネクタの一意識別子。

ヒント

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

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"
    }
  ]
}

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

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

{
    "$schema": "https://aka.ms/json-schemas/copilot-extensions/v1.0/declarative-copilot.schema.json",
    "name": "Teams Toolkit declarative copilot",
    "description": "Declarative copilot created with Teams Toolkit",
    "instructions": "You are a repairs expert copilot. 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"
        }
    ],

    "capabilities": [
        {
            "name": "WebSearch"
        },
        {
            "name": "OneDriveAndSharePoint",
            "items_by_url": [
                {
                    "url": "https://contoso.sharepoint.com/sites/ProductSupport"
                }
            ]
        },
        {
            "name": "GraphConnectors",
            "connections": [
                {
                    "connection_id": "foodStore"
                }
            ]
        }
    ]
}