TypeSpec for Microsoft 365 Copilotには、宣言型エージェントが Microsoft 365 サービスと外部リソースにアクセスできるようにする組み込みの機能が用意されています。 使用できる機能には、CodeInterpreter、CopilotConnectors、Dataverse、Email、GraphicArt、Meetings、OneDriveAndSharePoint、People、ScenarioModels、TeamsMessages、WebSearch などがあります。 各機能は、スコープを制御するための特定のパラメーターで構成できます。
| 機能 | 説明 |
|---|---|
| CodeInterpreter | Python コードを生成して実行して、数学の問題を解決し、データを分析し、視覚化を作成します。 |
| CopilotConnectors | 選択したMicrosoft 365 Copilot コネクタを検索して、接地情報を検索します。 |
| Dataverse | Microsoft Dataverse 環境とテーブルで情報を検索します。 |
| 電子メール | アクセス可能なメールボックス内の電子メール メッセージを検索します。 |
| GraphicArt | テキスト入力に基づいて画像とアートを作成します。 |
| 会議 | 会議コンテンツを検索します。 |
| OneDriveAndSharePoint | SharePoint サイトと OneDrive で接地情報を検索します。 |
| People | organization内のユーザーに関する情報を検索します。 |
| ScenarioModels | 特殊なシナリオにタスク固有のモデルを使用します。 |
| TeamsMessages | Teams チャネル、会議、チャットを検索します。 |
| WebSearch | Web で接地情報を検索します。 |
AgentCapabilities.CodeInterpreter
宣言型エージェントが Python コードを生成して実行して、複雑な数学の問題を解決したり、データを分析したり、視覚化を生成したりできることを示します。
op codeInterpreter is AgentCapabilities.CodeInterpreter;
例
op codeInterpreter is AgentCapabilities.CodeInterpreter;
AgentCapabilities.CopilotConnectors
宣言型エージェントが、選択した Copilot コネクタを検索して接地情報を検索できることを示します。
op copilotConnectors is AgentCapabilities.CopilotConnectors;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
Connections |
接続の配列 | 省略可能。 宣言型エージェントで使用できる Copilot コネクタを識別するオブジェクトの配列。 このプロパティを省略すると、organization内のすべての Copilot コネクタを宣言型エージェントで使用できます。 |
モデル
Connection
Copilot コネクタを識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
connectionId |
string | 必須です。 Copilot コネクタの一意識別子。 |
additionalSearchTerms |
string | 省略可能。 接続のスキーマ内のフィールドに基づいて項目をフィルター処理するためのキーワード照会言語 (KQL) クエリ。 |
itemsByContainerName |
ContainerNameItem の配列 | 省略可能。 コンテナー名 (項目の containerName セマンティック ラベル) でエージェントで使用できる項目をフィルター処理します。 |
itemsByContainerUrl |
ContainerUrlItem の配列 | 省略可能。 コンテナー URL (アイテムの containerUrl セマンティック ラベル) でエージェントで使用できる項目をフィルター処理します。 |
itemsByExternalId |
ExternalIdItem の配列 | 省略可能。 エージェントで使用できる Copilot コネクタの ID で特定の項目を指定します。 |
itemsByExternalUrl |
ExternalUrlItem の配列 | 省略可能。 エージェントで使用できる Copilot コネクタの外部 URL で項目を指定します。 |
itemsByPath |
PathItem の配列 | 省略可能。 エージェントで使用できる項目を項目パス (項目の itemPath セマンティック ラベル) でフィルター処理します。 |
ContainerNameItem
コンテナーを名前で識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
containerName |
string | 必須です。 外部アイテムのコンテナーの名前 (セマンティック ラベル値containerName )。 |
ContainerUrlItem
コンテナーを URL で識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
containerUrl |
string | 必須です。 外部アイテムのコンテナーの URL (セマンティック ラベル値containerUrl )。 |
ExternalIdItem
外部アイテムを ID で識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
externalId |
string | 必須です。 外部アイテムの一意識別子。 |
ExternalUrlItem
URL で外部アイテムを識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
url |
string | 必須です。 外部アイテムの URL。 |
PathItem
外部アイテムをパスで識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
path |
string | 必須です。 外部項目のパス (セマンティック ラベル値itemPath )。 |
例
// Basic Copilot connectors with no restrictions
op copilotConnectors is AgentCapabilities.CopilotConnectors;
// Specific connectors
op copilotConnectors is AgentCapabilities.CopilotConnectors<Connections = [
{
connectionId: "ticketsconnector123";
},
{
connectionId: "wikiconnector123";
}
]>;
// Specific connector with KQL filtering
op copilotConnectors is AgentCapabilities.CopilotConnectors<Connections = [
{
connectionId: "ticketsconnector123";
additionalSearchTerms: "CreatedDate>=2024-01-01 AND Priority:High";
}
]>;
// Multiple connectors with different filtering approaches
op copilotConnectors is AgentCapabilities.CopilotConnectors<Connections = [
{
connectionId: "ticketsconnector456";
itemsByPath: [
{ path: "/projects/customer-portal" },
{ path: "/projects/mobile-app" }
];
itemsByContainerName: [
{ containerName: "Engineering Projects" },
{ containerName: "Product Backlog" }
];
},
{
connectionId: "wikiconnector789";
additionalSearchTerms: "space:ENGINEERING AND lastModified>now()-30d";
itemsByContainerUrl: [
{ containerUrl: "https://wiki.contoso.com/ENGINEERING" },
{ containerUrl: "https://wiki.contoso.com/PRODUCT" }
];
},
{
connectionId: "databaseconnector012";
itemsByExternalId: [
{ externalId: "customer001" },
{ externalId: "customer002" },
{ externalId: "customer007" }
];
}
]>;
AgentCapabilities.Dataverse
宣言型エージェントが Microsoft Dataverse で情報を検索できることを示します。
op dataverse is AgentCapabilities.Dataverse;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
KnowledgeSources |
DataverseKnowledgeSource の配列 | 省略可能。 宣言型エージェントで使用できる Dataverse ナレッジ ソースを識別するオブジェクトの配列。 このプロパティを省略すると、アクセス可能なすべての Dataverse 環境を宣言型エージェントで使用できます。 |
モデル
DataverseKnowledgeSource
Dataverse ナレッジ ソースを表します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
hostName |
string | 必須です。 Dataverse 環境のホスト名。 |
skill |
string | 省略可能。 ナレッジ ソースのスキル識別子。 |
tables |
DataverseTable の配列 | 省略可能。 宣言型エージェントがアクセスできるテーブルの配列。 このプロパティを省略すると、環境内のすべてのアクセス可能なテーブルを宣言型エージェントで使用できます。 |
DataverseTable
Dataverse テーブルを表します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
tableName |
string | 必須です。 テーブルの論理名。 |
例
// Basic Dataverse with no restrictions
op dataverse is AgentCapabilities.Dataverse;
// Dataverse with specific environment
op dataverse is AgentCapabilities.Dataverse<KnowledgeSources = [
{
hostName: "contoso.crm.dynamics.com";
}
]>;
// Dataverse with specific tables
op dataverse is AgentCapabilities.Dataverse<KnowledgeSources = [
{
hostName: "contoso.crm.dynamics.com";
tables: [
{ tableName: "account" },
{ tableName: "contact" },
{ tableName: "opportunity" }
];
}
]>;
// Dataverse with skill and tables
op dataverse is AgentCapabilities.Dataverse<KnowledgeSources = [
{
hostName: "contoso.crm.dynamics.com";
skill: "sales-assistant";
tables: [
{ tableName: "account" },
{ tableName: "lead" }
];
}
]>;
AgentCapabilities.Email
宣言型エージェントが、ユーザーがアクセスできるメールボックス内の電子メール メッセージを検索できることを示します。
op email is AgentCapabilities.Email;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
Folders |
フォルダーの配列 | 省略可能。 フォルダー オブジェクトの配列。 |
SharedMailbox |
string | 省略可能。 共有メールボックスの SMTP アドレス。 |
モデル
フォルダー
プロパティ
| Name | 型 | 説明 |
|---|---|---|
folderId |
string | 必須です。 参照するフォルダーの既知のフォルダー名またはフォルダー ID。 |
例
// Basic email search with no restrictions
op email is AgentCapabilities.Email;
// Email search with specific well-known folders
op email is AgentCapabilities.Email<
Folders = [
{ folderId: "Inbox" },
{ folderId: "SentItems" },
{ folderId: "Archive" }
]
>;
// Email search with shared mailbox access
op email is AgentCapabilities.Email<
SharedMailbox = "support@contoso.com"
>;
// Email search with custom folders and shared mailbox
op email is AgentCapabilities.Email<
Folders = [
{ folderId: "Inbox" }
],
SharedMailbox = "legal@contoso.com"
>;
AgentCapabilities.GraphicArt
宣言型エージェントが、ユーザーからのテキスト入力に基づいて画像とアートを作成できることを示します。
op graphicArt is AgentCapabilities.GraphicArt;
例
op graphicArt is AgentCapabilities.GraphicArt;
AgentCapabilities.Meetings
宣言型エージェントが会議コンテンツを検索できることを示します。
op meetings is AgentCapabilities.Meetings;
例
op meetings is AgentCapabilities.Meetings;
AgentCapabilities.OneDriveAndSharePoint
宣言型エージェントがユーザーの SharePoint と OneDrive で接地情報を検索できることを示します。
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
ItemsBySharePointIds |
SharePointIds の配列 | 省略可能。 ID を使用して SharePoint または OneDrive ソースを識別するオブジェクトの配列。
ItemsBySharePointIdsパラメーターとItemsByUrl パラメーターの両方を省略すると、organization内のすべての OneDrive および SharePoint ソースを宣言型エージェントで使用できます。 |
ItemsByUrl |
SharePointUrl の配列 | 省略可能。 SharePoint または OneDrive ソースを URL で識別するオブジェクトの配列。
ItemsBySharePointIdsパラメーターとItemsByUrl パラメーターの両方を省略すると、organization内のすべての OneDrive および SharePoint ソースを宣言型エージェントで使用できます。 |
モデル
SharePointIds
SharePoint または OneDrive リソースを識別する 1 つ以上のオブジェクト識別子が含まれます。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
itemId |
string | 省略可能。 listId プロパティで指定されたドキュメント ライブラリ内のフォルダーまたはファイルのスコープを設定するために使用される一意の GUID 識別子。 |
listId |
string | 省略可能。 SharePoint サイト内のドキュメント ライブラリの一意の GUID 識別子。 |
siteId |
string | 省略可能。 SharePoint サイトまたは OneDrive サイトの一意の GUID 識別子。 |
webId |
string | 省略可能。 SharePoint または OneDrive サイト内の特定の Web の一意の GUID 識別子。 |
SharePointUrl
SharePoint または OneDrive リソースの URL を表します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
url |
string | 必須です。 SharePoint または OneDrive リソースへの絶対 URL。 |
例
// Basic OneDrive and SharePoint with no restrictions
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint;
// URL-based filtering for specific sites
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint<
ItemsBySharePointIds = [],
ItemsByUrl = [
{ url: "https://contoso.sharepoint.com/sites/Engineering" },
{ url: "https://contoso.sharepoint.com/sites/ProductManagement" },
{ url: "https://contoso-my.sharepoint.com/personal/john_contoso_com" }
]
>;
// ID-based filtering with comprehensive site and document library scoping
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint<
ItemsBySharePointIds = [
{
siteId: "12345678-1234-1234-1234-123456789012";
searchAssociatedSites: true;
},
{
siteId: "87654321-4321-4321-4321-210987654321";
webId: "11111111-2222-3333-4444-555555555555";
listId: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
},
{
siteId: "99999999-8888-7777-6666-555555555555";
webId: "ffffffff-dddd-cccc-3333-cccccccccccc";
listId: "ffffffff-eeee-dddd-cccc-bbbbbbbbbbbb";
itemId: "12121212-3434-5656-7878-909090909090";
}
],
ItemsByUrl = [
{ url: "https://contoso.sharepoint.com/sites/Engineering" }
]
>;
AgentCapabilities.People
宣言型エージェントがorganization内のユーザーに関する情報を検索できることを示します。
op people is AgentCapabilities.People;
例
op people is AgentCapabilities.People;
AgentCapabilities.ScenarioModels
宣言型エージェントがタスク固有のモデルを使用できることを示します。
op scenarioModels is AgentCapabilities.ScenarioModels<Models = [
{ id: "model-id" }
]>;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
Models |
ScenarioModel の配列 | 必須です。 宣言型エージェントで使用できるタスク固有のモデルを識別するオブジェクトの配列。 |
モデル
ScenarioModel
タスク固有のモデルを識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
id |
string | 必須です。 モデルの一意識別子。 |
例
// Single specialized model for analytics
op scenarioModels is AgentCapabilities.ScenarioModels<Models = [
{ id: "financial-forecasting-model-v3" }
]>;
// Multiple models for different business scenarios
op scenarioModels is AgentCapabilities.ScenarioModels<Models = [
{ id: "sentiment-analysis-model" },
{ id: "document-classification-model" },
{ id: "risk-assessment-model" }
]>;
AgentCapabilities.TeamsMessages
宣言型エージェントが Teams チャネル、チーム、会議、1:1 チャット、グループ チャットを検索できることを示します。
op teamsMessages is AgentCapabilities.TeamsMessages;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
TeamsMessagesByUrl |
TeamsMessagesUrl の配列 | 省略可能。 宣言型エージェントが使用できる Teams チャネル、会議チャット、グループ チャット、または 1:1 チャットの URL を識別するオブジェクトの配列。 このプロパティを省略すると、すべてのチャネル、会議、1:1 チャット、グループ チャットを対象に、スコープなしの検索が可能になります。 |
モデル
TeamsMessagesUrl
Teams チャネル、チーム、または会議チャットを識別します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
url |
string | 必須です。 Teams チャネル、会議チャット、グループ チャット、または 1:1 チャットのいずれかにリンクする適切な形式の Teams URL。 |
例
// Basic Teams messages with no restrictions
op teamsMessages is AgentCapabilities.TeamsMessages;
// Teams messages limited to specific channels and chats
op teamsMessages is AgentCapabilities.TeamsMessages<TeamsMessagesByUrl = [
{ url: "https://teams.microsoft.com/l/channel/19%3a123abc...%40thread.skype/General?groupId=12345&tenantId=67890" },
{ url: "https://teams.microsoft.com/l/chat/19%3ameeting_abc123...%40thread.v2/0?context=%7b%22Tid%22%3a%22...%22%7d" },
{ url: "https://teams.microsoft.com/l/channel/19%3a456def...%40thread.tacv2/Engineering?groupId=54321&tenantId=09876" }
]>;
// Teams messages for project-specific channels
op teamsMessages is AgentCapabilities.TeamsMessages<TeamsMessagesByUrl = [
{ url: "https://teams.microsoft.com/l/channel/19%3aprojectA...%40thread.tacv2/Development?groupId=11111&tenantId=22222" },
{ url: "https://teams.microsoft.com/l/channel/19%3aprojectA...%40thread.tacv2/Testing?groupId=11111&tenantId=22222" },
{ url: "https://teams.microsoft.com/l/chat/19%3astandup_daily...%40thread.v2/0?context=%7b%22Tid%22%3a%22...%22%7d" }
]>;
AgentCapabilities.WebSearch
宣言型エージェントが Web で接地情報を検索できることを示します。
op webSearch is AgentCapabilities.WebSearch;
パラメーター
| 名前 | 型 | 説明 |
|---|---|---|
Sites |
SiteUrl の配列 | 省略可能。 エージェントが検索できるサイトを識別するオブジェクトの配列。 このプロパティを省略すると、すべてのエージェントですべてのサイトを検索できます。 |
モデル
SiteUrl
宣言型エージェントがコンテンツを検索できるサイトを示します。
プロパティ
| Name | 型 | 説明 |
|---|---|---|
url |
string | 必須です。 コンテンツを検索するサイトの絶対 URL。 |
例
// Basic web search with no restrictions
op webSearch is AgentCapabilities.WebSearch;
// Web search limited to specific documentation sites
op webSearch is AgentCapabilities.WebSearch<Sites = [
{
url: "https://learn.microsoft.com";
},
{
url: "https://docs.microsoft.com";
},
{
url: "https://techcommunity.microsoft.com";
}
]>;
// Web search for company-specific resources
op webSearch is AgentCapabilities.WebSearch<Sites = [
{
url: "https://company.com/knowledge-base";
},
{
url: "https://support.company.com";
}
]>;