宣言型エージェントは、カスタマイズされたバージョンのMicrosoft 365 Copilotであり、ユーザーは特定の指示、アクション、知識を宣言することで、パーソナライズされたエクスペリエンスを作成できます。 このガイドでは、 TypeSpec と Microsoft 365 Agents Toolkit を使用して宣言型エージェントを構築する方法について説明します。
注:
このチュートリアルでビルドするエージェントは、ライセンスMicrosoft 365 Copilotユーザーを対象とします。 また、制限された機能を使用して、Microsoft 365 Copilot Chat ユーザー用のエージェントを構築することもできます。 詳細については、「Microsoft 365 Copilot開発者ライセンス」を参照してください。
注:
Microsoft 365 Copilotに基づく宣言型エージェントが、WordとPowerPointでサポートされるようになりました。
前提条件
開始する前に、organizationでMicrosoft 365 Copilotを使用できることを確認してください。
開発環境では、次のオプションを使用できます。
- サンドボックス Microsoft 365 organization Copilot (TAP メンバーシップを通じて限定プレビューで利用できます)。
- Microsoft 365 Copilot ライセンスを持つ適格な Microsoft 365 またはOffice 365運用環境。
この記事で説明する手順を完了するには、次のリソースが必要です。
注:
このドキュメントの Microsoft 365 Agents Toolkit のユーザー インターフェイスのスクリーンショットと参照は、最新 のリリース バージョン 6.0 を使用して生成されました。 エージェント ツールキットのプレリリース バージョンは、このドキュメントのユーザー インターフェイスとは異なる場合があります。
Microsoft 365 Copilotの宣言型エージェントに関する次の標準とガイドラインに精通している必要があります。
- Teams ストアの検証ガイドラインに記載されているコンプライアンス、パフォーマンス、セキュリティ、およびユーザー エクスペリエンスの標準。
宣言型エージェントを作成する
まず、基本的な宣言型エージェントを作成します。
Visual Studio Code を開きます。
[ Microsoft 365 エージェント ツールキット] > [新しいエージェント/アプリの作成] を選択します。
[ 宣言型エージェント] を選択します。
基本的な宣言型エージェントを作成するには、Microsoft 365 Copilotの [TypeSpec で開始] を選択します。
[既定のフォルダー] を選択して、プロジェクトのルート フォルダーを既定の場所に格納します。
アプリケーション名として「
My Agent」と入力し、Enter キーを押します。開いた新しい Visual Studio Code ウィンドウで、[ Microsoft 365 Agents Toolkit] を選択します。 [ ライフサイクル ] ウィンドウで、[ プロビジョニング] を選択します。
エージェントをテストする
URL https://m365.cloud.microsoft/chatを使用して Copilot アプリケーションに移動します。
[ 新しいチャット ] ボタンの横にある会話ドロワー アイコンを選択します。
宣言型エージェント My Agent を選択します。
宣言型エージェントの動作を確認するための質問を入力します。
手順を追加する
手順では、エージェントの動作を変更します。
main.tspファイルを開き、@instructionsデコレーターを次のように置き換えます。@instructions(""" You are a declarative agent and were created with Team Toolkit. You are an expert at creating poems. Every time a user asks a question, you **must** turn the answer into a poem. The poem **must** not use the quote markdown and use regular text. """)
このデコレーターの内容は、プロビジョニング中にエージェントのマニフェストの instructions プロパティに挿入されます。 詳細については、「 宣言型エージェント マニフェスト オブジェクト」を参照してください。
- Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後、更新された手順を使用します。
会話スターターを追加する
会話スターターは、宣言型エージェントの使用を開始する方法を示すためにユーザーに表示されるヒントです。
main.tspファイルを開き、コメントされた@conversationStarterデコレーターを次の内容に置き換えます。@conversationStarter(#{ title: "Getting started", text: "How can I get started with Agents Toolkit?" }) @conversationStarter(#{ title: "Getting Help", text: "How can I get help with Agents Toolkit?" })
詳細については、「 Conversation starters オブジェクト」を参照してください。
- Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
更新された会話スターターは、ページを更新した後、宣言型エージェントで使用できるようになります。
Web コンテンツを追加する
Web 検索機能を使用すると、エージェントはBingの検索インデックスを使用してユーザー プロンプトに応答できます。
main.tspファイルを開き、次の内容を含むMyAgent名前空間にWebSearch機能を追加します。namespace MyAgent { op webSearch is AgentCapabilities.WebSearch<Sites = [ { url: "https://learn.microsoft.com", }, ]>; }詳細については、「 Web 検索オブジェクト」を参照してください。
注:
Sites配列を指定しないと、すべての Web コンテンツがエージェントで使用できるようになります。Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後、その回答を生成するために Web コンテンツにアクセスできます。
OneDrive と SharePoint コンテンツを追加する
SharePoint 機能を使用すると、エージェントは OneDrive と SharePoint のコンテンツをナレッジとして使用できます。
main.tspファイルを開き、MyAgent名前空間のOneDriveAndSharePoint機能を次の値に追加し、https://contoso.sharepoint.com/sites/ProductSupportを Microsoft 365 organizationの SharePoint サイト URL に置き換えます。namespace MyAgent { // Omitted for brevity op od_sp is AgentCapabilities.OneDriveAndSharePoint<ItemsByUrl = [ { url: "https://contoso.sharepoint.com/sites/ProductSupport" } ]>; // Omitted for brevity }詳細については、「 OneDrive と SharePoint オブジェクト」を参照してください。
注:
- URL は、SharePoint アイテム (サイト、ドキュメント ライブラリ、フォルダー、またはファイル) への完全なパスである必要があります。 SharePoint の [直接リンクのコピー] オプションを使用して、完全なパスまたはファイルとフォルダーを取得できます。 ファイルまたはフォルダーを右クリックし、[詳細] を選択 します。 [ パス ] に移動し、コピー アイコンを選択します。
-
ItemsByUrl配列 (または代替ItemsBySharePointIds配列) を指定しないと、Microsoft 365 organization内のすべての OneDrive および SharePoint コンテンツが、ログインしているユーザーがエージェントで使用できるようになります。
Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後に回答を生成するために、OneDrive および SharePoint コンテンツにアクセスできます。
Teams メッセージを追加する
Teams メッセージ機能を使用すると、エージェントは Teams チャネル、チーム、会議チャットをナレッジとして使用できます。
main.tspファイルを開き、MyAgent名前空間のTeamsMessages機能を次の値に追加し、https://teams.microsoft.com/l/team/...をorganizationの Teams チャネルまたはチーム URL に置き換えます。namespace MyAgent { // Omitted for brevity op teamsMessages is AgentCapabilities.TeamsMessages<TeamsMessagesByUrl = [ { url: "https://teams.microsoft.com/l/team/...", } ]>; // Omitted for brevity }詳細については、「 Microsoft Teams messages オブジェクト」を参照してください。
注:
-
urlプロパティの URL は、Teams チャット、チーム、または会議チャットへの適切な形式のリンクである必要があります。 -
TeamsMessagesByUrl配列を指定しないと、Microsoft 365 organization内のすべての Teams チャネル、チーム、会議、1:1 チャット、グループ チャットが発生し、ログインユーザーがエージェントで使用できるようになります。
-
Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後に回答を生成するために Teams データにアクセスできます。
ユーザーの知識を追加する
ユーザー機能) を使用すると、エージェントのスコープを設定して、organization内の個人に関する質問に回答できます。
main.tspファイルを開き、次の内容を含むMyAgent名前空間にPeople機能を追加します。namespace MyAgent { // Omitted for brevity op people is AgentCapabilities.People; // Omitted for brevity }
詳細については、「People オブジェクト」を参照してください。
- Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後、ユーザーの知識にアクセスできます。
メールの知識を追加する
電子メール機能を使用すると、エージェントのスコープを設定して、ユーザーのメールボックスまたは共有メールボックスのメールをナレッジ ソースとして使用できます。
main.tspファイルを開き、次の内容を含むMyAgent名前空間にEmail機能を追加します。namespace MyAgent { // Omitted for brevity op email is AgentCapabilities.Email<Folders = [ { folder_id: "Inbox", } ]>; // Omitted for brevity }詳細については、「Email オブジェクト」を参照してください。
注:
- 次の使用例は、エージェントのメールボックスのユーザーにアクセスします。 代わりに共有メールボックスにアクセスするには、オプションの
shared_mailboxプロパティ セットを共有メールボックスのメール アドレスに追加します。 -
Folders配列は、メールボックスのアクセスを特定のフォルダーに制限します。 メールボックス全体にアクセスするには、folders配列を省略します。
- 次の使用例は、エージェントのメールボックスのユーザーにアクセスします。 代わりに共有メールボックスにアクセスするには、オプションの
Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後に電子メールの知識にアクセスできます。
イメージ ジェネレーターを追加する
イメージ ジェネレーター機能を使用すると、エージェントはユーザー プロンプトに基づいてイメージを生成できます。
main.tspファイルを開き、次の内容を含むMyAgent名前空間にGraphicArt機能を追加します。namespace MyAgent { // Omitted for brevity op graphicArt is AgentCapabilities.GraphicArt; // Omitted for brevity }
詳細については、「 グラフィック アート オブジェクト」を参照してください。
- Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントでは、ページを再読み込みした後にイメージを生成できます。
コード インタープリターを追加する
コード インタープリター機能は、Python コードを使用して複雑なタスクを解決するように設計された高度なツールです。
main.tspファイルを開き、次の内容を含むMyAgent名前空間にCodeInterpreter機能を追加します。namespace MyAgent { // Omitted for brevity op codeInterpreter is AgentCapabilities.CodeInterpreter; // Omitted for brevity }
詳細については、「 Code インタープリター オブジェクト」を参照してください。
- Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントには、ページを再読み込みした後にコード インタープリター機能があります。
Copilot コネクタのコンテンツを追加する
Copilot コネクタによって取り込まれた項目を、エージェントの使用可能なナレッジに追加できます。
main.tspファイルを開き、MyAgent名前空間のGraphConnectors機能を次の値に追加し、policieslocalを Microsoft 365 organizationの有効な Copilot コネクタ ID に置き換えます。 Copilot コネクタ ID の検索の詳細については、「 宣言型エージェント マニフェストの機能 ID の取得」を参照してください。namespace MyAgent { // Omitted for brevity op copilotConnectors is AgentCapabilities.GraphConnectors<Connections = [ { connectionId: "policieslocal", } ]>; // Omitted for brevity }詳細については、「 Copilot コネクタ オブジェクト」を参照してください。
注:
Connections配列を指定しないと、Microsoft 365 organization内のすべての Copilot コネクタのコンテンツが、ログインユーザーがエージェントで使用できるようになります。Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。
宣言型エージェントは、ページを再読み込みした後に応答を生成するために、Copilot コネクタ のコンテンツにアクセスできます。
完了
Microsoft 365 Copilotの宣言型エージェント ガイドを完了しました。 TypeSpec を使用して宣言型エージェントを構築する方法について理解したので、次の記事で詳細を確認できます。
- エージェントの 効果的な手順を記述 する方法について説明します。
- Copilot 開発者モードでエージェントをテストして、指定されたプロンプトに応答して、copilot オーケストレーターがナレッジ ソースを選択するかどうかを確認します。
- よく寄せられる質問に対する回答を取得します。
- Copilot Studioを使用して宣言型エージェントを構築する別の方法について説明します。