次の方法で共有


Microsoft 365 Agents Toolkit と TypeSpec を使用して宣言型エージェントを作成する

宣言型エージェントは、カスタマイズされたバージョンのMicrosoft 365 Copilotであり、ユーザーは特定の指示、アクション、知識を宣言することで、パーソナライズされたエクスペリエンスを作成できます。 このガイドでは、 TypeSpecMicrosoft 365 Agents Toolkit を使用して宣言型エージェントを構築する方法について説明します。

注:

このチュートリアルでビルドするエージェントは、ライセンスMicrosoft 365 Copilotユーザーを対象とします。 また、制限された機能を使用して、Microsoft 365 Copilot Chat ユーザー用のエージェントを構築することもできます。 詳細については、「Microsoft 365 Copilot開発者ライセンス」を参照してください。

注:

Microsoft 365 Copilotに基づく宣言型エージェントが、WordとPowerPointでサポートされるようになりました。

前提条件

開始する前に、organizationでMicrosoft 365 Copilotを使用できることを確認してください。

開発環境では、次のオプションを使用できます。

この記事で説明する手順を完了するには、次のリソースが必要です。

注:

このドキュメントの Microsoft 365 Agents Toolkit のユーザー インターフェイスのスクリーンショットと参照は、最新 のリリース バージョン 6.0 を使用して生成されました。 エージェント ツールキットのプレリリース バージョンは、このドキュメントのユーザー インターフェイスとは異なる場合があります。

Microsoft 365 Copilotの宣言型エージェントに関する次の標準とガイドラインに精通している必要があります。

宣言型エージェントを作成する

まず、基本的な宣言型エージェントを作成します。

  1. Visual Studio Code を開きます。

  2. [ Microsoft 365 エージェント ツールキット] > [新しいエージェント/アプリの作成] を選択します

    Microsoft 365 Agents Toolkit サイドバーの [新しいアプリの作成] ボタンのスクリーンショット

  3. [ 宣言型エージェント] を選択します

    エージェントが選択された [新しいプロジェクト] オプションのスクリーンショット

  4. 基本的な宣言型エージェントを作成するには、Microsoft 365 Copilotの [TypeSpec で開始] を選択します。

  5. [既定のフォルダー] を選択して、プロジェクトのルート フォルダーを既定の場所に格納します。

  6. アプリケーション名として「My Agent」と入力し、Enter キーを押します

  7. 開いた新しい Visual Studio Code ウィンドウで、[ Microsoft 365 Agents Toolkit] を選択します。 [ ライフサイクル ] ウィンドウで、[ プロビジョニング] を選択します。

    Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウの [プロビジョニング] オプションのスクリーンショット

エージェントをテストする

  1. URL https://m365.cloud.microsoft/chatを使用して Copilot アプリケーションに移動します。

  2. [ 新しいチャット ] ボタンの横にある会話ドロワー アイコンを選択します。

  3. 宣言型エージェント My Agent を選択します

    Copilot の宣言型エージェントのスクリーンショット

  4. 宣言型エージェントの動作を確認するための質問を入力します。

手順を追加する

手順では、エージェントの動作を変更します。

  1. 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 プロパティに挿入されます。 詳細については、「 宣言型エージェント マニフェスト オブジェクト」を参照してください。

  1. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後、更新された手順を使用します。

更新された手順に基づく宣言型エージェントからの回答のスクリーンショット

会話スターターを追加する

会話スターターは、宣言型エージェントの使用を開始する方法を示すためにユーザーに表示されるヒントです。

  1. 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 オブジェクト」を参照してください。

  1. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

更新された会話スターターは、ページを更新した後、宣言型エージェントで使用できるようになります。

Microsoft 365 Copilotの宣言型エージェントからの会話スターターを示すスクリーンショット

Web コンテンツを追加する

Web 検索機能を使用すると、エージェントはBingの検索インデックスを使用してユーザー プロンプトに応答できます。

  1. main.tsp ファイルを開き、次の内容を含むMyAgent名前空間にWebSearch機能を追加します。

    namespace MyAgent {
      op webSearch is AgentCapabilities.WebSearch<Sites = [
        {
          url: "https://learn.microsoft.com",
        },
      ]>;
    }
    

    詳細については、「 Web 検索オブジェクト」を参照してください。

    注:

    Sites配列を指定しないと、すべての Web コンテンツがエージェントで使用できるようになります。

  2. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後、その回答を生成するために Web コンテンツにアクセスできます。

Web コンテンツを含む宣言型エージェントからの応答を示すスクリーンショット

OneDrive と SharePoint コンテンツを追加する

SharePoint 機能を使用すると、エージェントは OneDrive と SharePoint のコンテンツをナレッジとして使用できます。

  1. 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 コンテンツが、ログインしているユーザーがエージェントで使用できるようになります。
  2. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後に回答を生成するために、OneDrive および SharePoint コンテンツにアクセスできます。

SharePoint と OneDrive のコンテンツを含む宣言型エージェントからの応答を示すスクリーンショット

Teams メッセージを追加する

Teams メッセージ機能を使用すると、エージェントは Teams チャネル、チーム、会議チャットをナレッジとして使用できます。

  1. 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 チャット、グループ チャットが発生し、ログインユーザーがエージェントで使用できるようになります。
  2. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後に回答を生成するために Teams データにアクセスできます。

Teams コンテンツを含む宣言型エージェントからの応答を示すスクリーンショット

ユーザーの知識を追加する

ユーザー機能) を使用すると、エージェントのスコープを設定して、organization内の個人に関する質問に回答できます。

  1. main.tsp ファイルを開き、次の内容を含むMyAgent名前空間にPeople機能を追加します。

    namespace MyAgent {
      // Omitted for brevity
      op people is AgentCapabilities.People;
      // Omitted for brevity
    }
    

詳細については、「People オブジェクト」を参照してください。

  1. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後、ユーザーの知識にアクセスできます。

人の知識を含む宣言型エージェントからの応答を示すスクリーンショット

メールの知識を追加する

電子メール機能を使用すると、エージェントのスコープを設定して、ユーザーのメールボックスまたは共有メールボックスのメールをナレッジ ソースとして使用できます。

  1. 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 配列を省略します。
  2. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後に電子メールの知識にアクセスできます。

電子メールの知識を含む宣言型エージェントからの応答を示すスクリーンショット

イメージ ジェネレーターを追加する

イメージ ジェネレーター機能を使用すると、エージェントはユーザー プロンプトに基づいてイメージを生成できます。

  1. main.tsp ファイルを開き、次の内容を含むMyAgent名前空間にGraphicArt機能を追加します。

    namespace MyAgent {
      // Omitted for brevity
      op graphicArt is AgentCapabilities.GraphicArt;
      // Omitted for brevity
    }
    

詳細については、「 グラフィック アート オブジェクト」を参照してください。

  1. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントでは、ページを再読み込みした後にイメージを生成できます。

生成されたグラフィック アートを含む宣言型エージェントからの応答を示すスクリーンショット

コード インタープリターを追加する

コード インタープリター機能は、Python コードを使用して複雑なタスクを解決するように設計された高度なツールです。

  1. main.tsp ファイルを開き、次の内容を含むMyAgent名前空間にCodeInterpreter機能を追加します。

    namespace MyAgent {
      // Omitted for brevity
      op codeInterpreter is AgentCapabilities.CodeInterpreter;
      // Omitted for brevity
    }
    

詳細については、「 Code インタープリター オブジェクト」を参照してください。

  1. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントには、ページを再読み込みした後にコード インタープリター機能があります。

生成されたグラフを含む宣言型エージェントからの応答を示すスクリーンショット

要求されたグラフの生成に使用される Python コードを示すスクリーンショット

Copilot コネクタのコンテンツを追加する

Copilot コネクタによって取り込まれた項目を、エージェントの使用可能なナレッジに追加できます。

  1. 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 コネクタのコンテンツが、ログインユーザーがエージェントで使用できるようになります。

  2. Microsoft 365 エージェント ツールキットの [ライフサイクル] ウィンドウで [プロビジョニング] を選択します。

宣言型エージェントは、ページを再読み込みした後に応答を生成するために、Copilot コネクタ のコンテンツにアクセスできます。

Copilot コネクタ コンテンツを含む宣言型エージェントからの応答を示すスクリーンショット

完了

Microsoft 365 Copilotの宣言型エージェント ガイドを完了しました。 TypeSpec を使用して宣言型エージェントを構築する方法について理解したので、次の記事で詳細を確認できます。

  • エージェントの 効果的な手順を記述 する方法について説明します。
  • Copilot 開発者モードでエージェントをテストして、指定されたプロンプトに応答して、copilot オーケストレーターがナレッジ ソースを選択するかどうかを確認します。
  • よく寄せられる質問に対する回答を取得します。
  • Copilot Studioを使用して宣言型エージェントを構築する別の方法について説明します。

次の手順