Microsoft 365 Copilotの宣言型エージェントを構築する
重要
Microsoft 365 の宣言型エージェントは現在、一般公開フェーズにあります。 ただし、アクセスはステージングされ、すべてのユーザーがすぐに使用できるわけではありません。 完全な可用性は後日提供される予定です。
注:
- organizationでMicrosoft 365 Copilotが使用可能であることを確認します。 Copilot の開発環境を取得するには、次の 2 つの方法があります。
- Copilot を含むサンドボックス Microsoft 365 テナント ( TAP メンバーシップを通じて限定プレビューで利用できます)。
- Microsoft 365 Copilot ライセンスを持つ適格な Microsoft 365 またはOffice 365運用環境。
宣言型エージェントとは
宣言型エージェントの概要については、「Microsoft 365 Copilotの宣言型エージェント」を参照してください。
Microsoft 365 での宣言型エージェントの安全な実装の確保
Microsoft 365 のお客様とパートナーは、宣言型エージェントによって構成された REST API の説明を介して呼び出されるカスタム命令、基礎知識、アクションを使用してMicrosoft 365 Copilotを拡張する宣言型エージェントを構築できます。 実行時に、ユーザーのプロンプト、宣言型エージェントの一部であるカスタム命令、およびカスタム アクションによって提供されたデータの組み合わせに関する理由をMicrosoft 365 Copilotします。 このデータはすべてシステムの動作に影響を与える可能性があり、このような処理にはセキュリティ リスクが伴います。特に、カスタム アクションで信頼されていないソース (メールやサポート チケットなど) からのデータを提供できる場合、攻撃者はメッセージ ペイロードを作成して、エージェントが制御する方法で動作させる可能性があります。これにより、質問に誤って応答したり、カスタム アクションを呼び出したりする可能性があります。 Microsoft ではこのような攻撃を防ぐために多くの対策を講じますが、組織では、信頼されたナレッジ ソースを使用し、カスタム アクションを介して信頼された REST API に接続する宣言型エージェントのみを有効にする必要があります。 信頼されていないデータ ソースの使用が必要な場合は、侵害の可能性を中心に宣言型エージェントを設計し、慎重な人間の介入なしに機密性の高い操作を実行する機能を提供しないでください。
Microsoft 365 は、統合アプリを取得して使用できるユーザーと、宣言型エージェントを含むアプリを含む、Microsoft 365 テナント内のグループまたは個人に対して有効な特定のアプリを取得および使用できるユーザーを管理する広範な制御を組織に提供します。 ユーザーが独自の宣言型エージェントを作成できるようにする Copilot Studio などのツールには、管理者がナレッジアクションとカスタム アクションの両方で使用されるコネクタを管理できる広範なコントロールも含まれています。
前提条件
作業を開始する前に、Microsoft 365 Copilotの宣言型エージェントに関する次の標準とガイドラインに精通していることを確認してください。
- Teams ストアの検証ガイドラインに記載されているコンプライアンス、パフォーマンス、セキュリティ、およびユーザー エクスペリエンスに関する標準。
宣言型エージェントを作成する
手順を提供し、Microsoft 365 データの基礎を作成し、プラグインを介して既存の API と統合できる宣言型エージェントを作成しましょう。
作業を開始する前に、次のツールをインストールして、宣言型エージェントをビルドしてデプロイしてください。
環境変数
注:
この手順は、宣言型エージェントがパブリックに使用できるようになるまで一時的です。
環境変数を TEAMSFX_DECLARATIVE_COPILOT に設定し、 KIOTA_CONFIG_PREVIEW を true に設定 します。
PowerShell ターミナルを開き、次のコマンドを実行します。
[Environment]::SetEnvironmentVariable("TEAMSFX_DECLARATIVE_COPILOT", 'true', "User")
[Environment]::SetEnvironmentVariable("KIOTA_CONFIG_PREVIEW", "true", "User")
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
警告
ターミナルを閉じてもう一度開き、すべての変更が考慮されるようにします。
Teams Toolkit CLI をインストールする
コマンド プロンプトまたは PowerShell ターミナルで、次のコマンドを実行します。
npm install -g @microsoft/teamsapp-cli
teamsapp -h
詳細については、「 Teams Toolkit CLI のインストール」を参照してください。
Teams Toolkit Visual Studio Code 拡張機能をインストールする
「Teams Toolkit Visual Studio Code 拡張機能をインストールする」の手順に従って、プレリリース バージョンをインストールします。
Kiota をインストールする
.NET SDK がインストールされている場合は、.NET ツールとして Kiota をインストールできます。
ツールをインストールするには、コマンド プロンプトまたは PowerShell ターミナルで次のコマンドを実行します。
dotnet tool install --global Microsoft.OpenApi.Kiota
詳細については、「 Kiota のインストール」を参照してください。
Teams Toolkit を使用して宣言型エージェントを作成するには、次の手順に従います。
Visual Studio Code を開きます。
[ Teams ツールキット] > [新しいアプリの作成] を選択します。
[ Copilot 拡張機能] を選択します。
[ 宣言型の副操縦士] を選択します。
[ プラグインなし ] を選択して、基本的な宣言型エージェントを作成します。
[既定のフォルダー] を選択して、プロジェクトのルート フォルダーを既定の場所に格納します。
アプリケーション名を選択します。
これで、アプリケーションがスキャフォールディングされ、発行に使用できるようになりました。
アプリケーションを発行するには、[発行] を選択 します。
URL を使用して Copilot アプリケーションに移動します https://microsoft365.com/chat
[ 新しいチャット ] ボタンの横にある会話ドロワー アイコンを選択します。
宣言型エージェント Teams ツールキットの宣言型 copilot を選択する
宣言型エージェントに関する質問を入力し、"Teams Toolkit を使用して宣言型 copilot を作成していただきありがとうございます" と回答していることを確認します。
会話スターターを追加する
宣言型エージェントに会話スターターを追加するには、次の手順に従います。
- Visual Studio Code で開いているプロジェクト内に留まる。
appPackage/declarativeCopilot.json
ファイルを開き、次の内容のconversation_starters
配列を追加します。{ "conversation_starters": [ { "title": "Getting Started", "text": "How can I get started with Teams Toolkit?" }, { "title": "Getting Help", "text": "How can I get help with Teams Toolkit?" } ] }
Teams Toolkit を使用して、[発行] を選択 します。
更新された会話スターターは、ページを更新した後、宣言型エージェントで使用できるようになります。
Web コンテンツを追加する
Bingを使用して Web コンテンツをエージェントに追加するには、次の手順に従います。
appPackage/declarativeCopilot.json
ファイルを開き、次の内容のcapabilities
配列を追加します。{ "capabilities": [ { "name": "WebSearch" } ] }
Teams Toolkit を使用して、[発行] を選択 します。
宣言型エージェントは、ページを再読み込みした後、Web コンテンツにアクセスして回答を生成します。
OneDrive と SharePoint のナレッジを追加する
宣言型エージェントに OneDrive と SharePoint の知識を追加するには、次の手順に従います。
appPackage/declarativeCopilot.json
ファイルを開き、次の内容をcapabilities
配列に追加します。{ "capabilities": [ { "name": "WebSearch" }, { "name": "OneDriveAndSharePoint", "items_by_url": [ { "url": "https://contoso.sharepoint.com/sites/ProductSupport" } ] } ] }
注:
-
https://contoso.sharepoint.com/sites/ProductSupport
を SharePoint サイト URL に置き換えます。 - URL は、SharePoint アイテム (サイト、ドキュメント ライブラリ、フォルダー、またはファイル) への完全なパスである必要があります。 SharePoint の [直接リンクのコピー] オプションを使用して、完全なパスまたはファイルとフォルダーを取得できます。 これを実現するには、ファイルまたはフォルダーを右クリックし、[詳細] を選択 します。 [パス] に移動し、コピー アイコンをクリックします。
-
items_by_url
配列を指定しない場合、既定では、ログインしたユーザーが使用できる OneDrive と SharePoint コンテンツのコーパス全体が使用されます。
-
Teams Toolkit を使用して、[発行] を選択 します。
宣言型エージェントは、ページを再読み込みした後に回答を生成するために、OneDrive と SharePoint コンテンツにアクセスできます。
Graph コネクタのナレッジを追加する
宣言型エージェントに Graph コネクタの知識を追加するには、次の手順に従います。
appPackage/declarativeCopilot.json
ファイルを開き、次の内容をcapabilities
配列に追加します。{ "capabilities": [ { "name": "WebSearch" }, { "name": "OneDriveAndSharePoint", "items_by_url": [ { "url": "https://contoso.sharepoint.com/sites/ProductSupport" } ] }, { "name": "GraphConnectors", "connections": [ { "connection_id": "foodstore" } ] } ] }
注:
-
foodstore
を Graph コネクタ接続 ID に置き換えます。 - Foodsie は、ここで入手できる Graph コネクタのサンプル です。
-
connections
配列を指定しない場合、既定では、ログインしたユーザーが使用できる Graph Connectors コンテンツのコーパス全体が使用されます。
-
Teams Toolkit を使用して、[発行] を選択 します。
宣言型エージェントは GraphConnectors コンテンツにアクセスして、ページを再読み込みした後で回答を生成します。
プラグインを追加する
宣言型エージェントにプラグインを追加するには、次の手順に従います。
[コマンド プロンプト] に移動します。
プロジェクト フォルダーに移動します。 この場合、プロジェクト フォルダーは
ttk-declarative-copilot
と呼ばれます。 これをフォルダーの名前に置き換えます。cd ttk-declarative-copilot
次のコマンドを実行します。
kiota plugin add --openapi https://aka.ms/repairshub/openapi.json --plugin-name "RepairsHub" --type apiplugin --output appPackage
次の結果が表示されます。
warn: Kiota.Builder.KiotaBuilder[0] OpenAPI warning: #/paths/~1repairs/get/responses/200/content/application~1json/schema/items/properties/image - The format uri is not supported by Kiota and the string type will be used. warn: Kiota.Builder.KiotaBuilder[0] OpenAPI warning: #/paths/~1repairs/post/requestBody/content/application~1json/schema/properties/image - The format uri is not supported by Kiota and the string type will be used. warn: Kiota.Builder.KiotaBuilder[0] OpenAPI warning: #/paths/~1repairs/patch/requestBody/content/application~1json/schema/properties/image - The format uri is not supported by Kiota and the string type will be used. Generation completed successfully Client base url set to https://piercerepairsapi.azurewebsites.net Hint: use the --include-path and --exclude-path options with glob patterns to filter the paths generated. Example: kiota plugin add --include-path "**/foo" -a "~/src/demos/ttk-declarative-copilot/.kiota/apimanifest.json#RepairsHub"
注:
OpenAPI の説明 URL をローカルまたはホストされている説明に置き換えて、独自の API を使用します
appPackage/declarativeCopilot.json
ファイルを開き、actions
配列を追加します。{ "actions": [ { "id": "repairsPlugin", "file": "repairshub-apiplugin.json" } ] }
Teams Toolkit を使用して、[発行] を選択 します。
宣言型エージェントは、ページを再読み込みした後に、プラグイン コンテンツにアクセスして回答を生成します。
宣言型エージェントの手順を改善する
宣言型エージェントの手順を改善するには、次の手順に従います。
appPackage/declarativeCopilot.json
ファイルを開き、instructions
値を編集します。{ "instructions": "You are a declarative copilot 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 行です。\\n
を使用して新しい行を追加します。
-
Teams Toolkit を使用して、[発行] を選択 します。
- 宣言型エージェントは、ページを再読み込みした後、更新された手順にアクセスできます。