この記事では、宣言型エージェント マニフェストで使用される 1.2 スキーマについて説明します。 マニフェストは、マシンで読み取り可能なドキュメントであり、ユーザーの問題の選択セットへの対処に特化するために必要な指示、知識、アクションを大きな言語モデル (LLM) に提供します。 Microsoft 365 アプリ マニフェストは、 アプリ パッケージ内の宣言型エージェント マニフェストを参照します。 詳細については、 Microsoft 365 アプリ マニフェスト リファレンスを参照してください。
重要
宣言型エージェント マニフェスト スキーマの最新バージョンは バージョン 1.6 です。 新しいエージェントでは、最新のスキーマ バージョンを使用することをお勧めします。
宣言型エージェントは、人間のようなテキストを理解して生成する上で重要であり、質問の書き込みや回答などのタスクに対して汎用性が高くなっています。 この仕様では、特定のユーザーが必要とする機能を特化および強化するための構造化フレームワークとして機能する宣言型エージェント マニフェストに焦点を当てます。
以前のバージョンからの変更
このスキーマ バージョンでは、 バージョン 1.0 から次の変更が導入されています。
-
sitesプロパティが Web 検索オブジェクトに追加されます。 このプロパティを使用すると、Web 検索機能を許可されたサイトに制限できます。 - グラフィック アート機能が追加されました。 この機能により、宣言型エージェントはユーザー入力に基づいて画像とアートを生成できます。
- コード インタープリター機能が追加されました。 この機能により、宣言型エージェントは Python コードを生成して実行できます。
JSON スキーマ
このドキュメントで説明されているスキーマについては、 JSON スキーマ 形式 を参照してください。
規則
URL 内の相対参照
特に指定しない限り、URL であるすべてのプロパティを相対参照にすることができます。 マニフェスト ドキュメント内の相対参照は、マニフェスト ドキュメントの場所に対する相対参照です。
文字列の長さ
特に指定しない限り、すべての文字列プロパティを 4,000 文字に制限します。 この文字列の長さは、ドキュメント内のすべての文字列プロパティに許容されるサイズを設定するものではありません。 実装では、マニフェストの長さに独自の実用的な制限を設定できます。
認識されないプロパティ
このドキュメントで定義されている JSON オブジェクトでは、説明されているプロパティのみがサポートされています。 JSON オブジェクト内の認識されないプロパティまたは不要なプロパティによって、ドキュメント全体が無効になります。
文字列のローカライズ
ローカライズ可能な文字列では、リテラル値の代わりにローカライズ キーを使用できます。 構文は [[key_name]]で、 key_name はローカライズ ファイルの localizationKeys プロパティのキー名です。 ローカライズの詳細については、「 エージェントをローカライズする」を参照してください。
宣言型エージェント マニフェスト オブジェクト
マニフェスト ドキュメントのルートは、必要なフィールド、機能、会話スターター、アクションをカバーする JSON オブジェクトです。
宣言型エージェント マニフェスト オブジェクトには、次のプロパティが含まれています。
| プロパティ | 型 | 説明 |
|---|---|---|
version |
String | 必須。 スキーマのバージョン。
v1.2 に設定します。 |
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 プラグイン を識別するオブジェクトの一覧。 |
宣言型エージェント マニフェスト オブジェクトの例
次のコードは、宣言型エージェント マニフェストの必須フィールドの例を示しています。
{
"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 検索オブジェクト
- OneDrive オブジェクトと SharePoint オブジェクト
- Copilot コネクタ オブジェクト
- グラフィック アート オブジェクト
- コード インタープリター オブジェクト
注:
ユーザーは、テナントが従量制課金の使用を許可している場合、またはMicrosoft 365 Copilotライセンスを持っている場合にのみ、Web 検索以外の機能を持つ宣言型エージェントにアクセスできます。
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"
}
]
}
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 は無効です)。 検索結果には、追加のパス セグメントからのデータが含まれます。ただし、2 つ以上のパス セグメントへのスコーピング検索はサポートされていません。 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 サイト内のドキュメント ライブラリの一意の GUID 識別子。 |
unique_id |
String | 省略可能。
list_id プロパティで指定されたドキュメント ライブラリ内のフォルダーまたはファイルのスコープを設定するために使用される一意の 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 コネクタの一意識別子。 |
ヒント
Copilot コネクタの一意の識別子を取得する手順については、「 宣言型エージェント マニフェストの機能 ID の取得」を参照してください。
グラフィック アート オブジェクト
宣言型エージェントが、ユーザーからのテキスト入力に基づいて画像とアートを作成できることを示します。 詳細については、「 イメージ ジェネレーター」を参照してください。
グラフィック アート オブジェクトには、次のプロパティが含まれています。
| プロパティ | 型 | 説明 |
|---|---|---|
name |
String | 必須です。
GraphicArt に設定します。 |
コード インタープリター オブジェクト
宣言型エージェントが Python コードを生成して実行して、複雑な数学の問題を解決したり、データを分析したり、視覚化を生成したりできることを示します。 詳細については、「 コード インタープリター」を参照してください。
コード インタープリター オブジェクトには、次のプロパティが含まれています。
| プロパティ | 型 | 説明 |
|---|---|---|
name |
String | 必須です。
CodeInterpreter に設定します。 |
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 オブジェクトの例
宣言型エージェント マニフェストの例
次の例は、この記事で説明するマニフェスト プロパティの大部分を使用する宣言型エージェント マニフェスト ファイルを示しています。
{
"$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.2/schema.json",
"version": "v1.2",
"name": "Microsoft 365 Agents Toolkit declarative copilot",
"description": "Declarative copilot created with Agents 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 Agents Toolkit?"
},
{
"title": "Getting Help",
"text": "How can I get help with Agents Toolkit?"
}
],
"actions": [
{
"id": "repairsPlugin",
"file": "repairs-hub-api-plugin.json"
}
],
"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"
}
]
}