次の方法で共有


TypeSpec for Microsoft 365 Copilotの宣言型エージェント機能

TypeSpec for Microsoft 365 Copilotには、宣言型エージェントが Microsoft 365 サービスと外部リソースにアクセスできるようにする組み込みの機能が用意されています。 使用できる機能には、CodeInterpreterCopilotConnectorsDataverseEmailGraphicArtMeetingsOneDriveAndSharePointPeopleScenarioModelsTeamsMessagesWebSearch などがあります。 各機能は、スコープを制御するための特定のパラメーターで構成できます。

機能 説明
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";
  }
]>;