スラッシュ コマンドは 、ユーザーが Teams エージェントとアプリで名前付きコマンド機能を検出して使用するのに役立ちます。
エージェントまたはアプリに、ユーザーが名前付きコマンドを使用して呼び出すことができる機能がある場合は、Teams のメッセージ作成ボックスからこれらのコマンドをすばやく検出してアクセスできるようにする構成を追加できます。 名前付きスラッシュ コマンドは、ユーザーがガイダンスにアクセスしたり、個人的なフォローアップ タスクを作成したり、個人用設定オプションを管理したりするのに役立ちます。
ユーザー エクスペリエンス
Teams のスラッシュ コマンドはテキストベースのショートカットであり、ユーザーは会話の作成ボックスからアクションを実行できます。 ユーザーが空の新規作成ボックスに / を入力すると、Teams は、現在のコンテキストでエージェントまたはアプリによって公開される 一般的なタスクの組み込みコマンド を含むオートコンプリート メニューを表示します。
スラッシュ コマンド機能を使用すると、アプリとエージェントが独自のコマンドをこのリストに追加して、ユーザーがそれらを検出して使用できるようにします。
スラッシュ コマンド
アプリとエージェントは、次の 2 つの主要な方法で、アプリまたはエージェントの構成を通じてスラッシュ コマンド エクスペリエンスを公開できます。
- エージェントスラッシュ コマンド: スラッシュ コマンドオートコンプリート メニューのユーザーに対する Surface の名前付きコマンド。
- メッセージ拡張スラッシュ コマンド: ユーザーがスラッシュ コマンドを使用してアプリまたはエージェントのメッセージ拡張機能をアクティブ化できるようにします。
これらの種類のスラッシュ コマンドは、モバイルを含むすべてのクライアント プラットフォームでサポートされています。
重要
対象となるメッセージング コマンドとエージェントスラッシュコマンドは、グループ会話のエージェント設計の基本であり、ユーザーのプライバシーに対する期待を慎重に処理する必要があります。 エージェント コマンドを選択すると、作成ボックスがターゲット メッセージ モードに切り替わります。 ユーザーが開始したターゲット メッセージは、選択したエージェントにのみ配信され、エージェントはユーザーにプライベートに応答できます。
詳細については、 ベスト プラクティスと設計ガイダンスに関するページを参照してください。
エージェントスラッシュコマンド
エージェントスラッシュ コマンドを使用すると、エージェントは、ユーザーがチャネル、グループ チャット、会議チャットでプライベートに呼び出すことができる名前付きコマンドを表示できます。 スラッシュ コマンドは、ユーザーがグループ会話ですばやくプライベートにアクセスする必要がある機能に役立ちます。
チャネル、グループ チャット、会議チャットでは、スラッシュ コマンドオートコンプリート メニューには、現在の会話でエージェントによって登録されたすべてのコマンドが含まれます。 各コマンドは、その説明とそのエージェントの名前とアイコンと共に表示され、検出可能になり、同じ名前のコマンドを区別できます。
メニューからコマンドを呼び出すと、作成ボックスがエージェントのターゲット メッセージング モードに切り替え、コマンドの名前がメッセージ テキストとして挿入されます。 [ 送信] を選択すると、対象のメッセージがエージェントに送信されます。 たとえば、プロジェクト管理エージェントやボット アプリでは、コンテキストに基づいて現在の会話を追跡されたタスクに変換する /create-task などのコマンドや、作業項目番号を指定して情報を返すことができるコマンド /status-check 公開する場合があります。
アクション型メッセージ拡張機能のスラッシュ コマンド
アクション型 メッセージ拡張機能 を実装するアプリでは、これらのアクションをスラッシュ コマンドとして公開できます。 ユーザーがオートコンプリート メニューから選択すると、関連付けられているタスク モジュールまたはダイアログが開きます。 メッセージ拡張スラッシュ コマンドをアクティブにすると、モジュールまたはダイアログのみが開きます。メッセージは送信されません。 検索型メッセージ拡張機能をスラッシュ コマンドとして公開することはできません。
メッセージ拡張スラッシュ コマンドは、新規作成ボックスと Teams コマンド ボックスの両方にオートコンプリート エントリとして表示されるように構成できます。
エージェントのメンション コマンド
ユーザーが特定のエージェントまたはボットに直接対処する必要がある場合は、エージェントとアプリで @mention コマンドを使用します。 メッセージは前述のエージェントに配信され、エージェントは会話コンテキストに従って応答します。 たとえば、ユーザーはチャネルでプロジェクト管理エージェントを @mention し、「assign」と入力して会話コンテキストからフォローアップ タスクを作成できます。
@mention コマンドの詳細については、「@Mention」を参照してください。
コマンドの追加
スラッシュ コマンドと ターゲット メッセージング は、アプリまたはエージェント マニフェストで構成されます。 マニフェストでコマンドを宣言すると、Teams でコマンドが表示されますが、アプリまたはエージェントの 実装 によって、ユーザーが送信した後の各コマンドの処理方法が決まります。
エージェントのスラッシュコマンドと @mention コマンド
スラッシュコマンドと @mention コマンドでは、エージェントがターゲット メッセージの受信をオプトインする必要があります。詳細については、「 ターゲット メッセージの受信」を参照してください。
トリガー: スラッシュと @mention
triggers プロパティは、コマンドが表示される場所と、ユーザーが Teams の作成エクスペリエンスからコマンドを呼び出す方法を定義します。 エージェント コマンド リストの場合は、コマンドが従来の @mention コマンド メニューに表示される場合は mention を使用し、コマンドをスラッシュ コマンド ピッカーに表示する場合は slashを使用するか、両方のエントリ ポイントから同じコマンドを使用できる必要がある場合は両方の値を含めます。
マニフェストの bots[].commandLists[] セクションを構成して、コマンドとそのトリガーを宣言します。 次のマニフェスト例は、ターゲット メッセージをサポートし、スラッシュ、メンション、および結合されたトリガーを使用して 3 つのコマンドを公開するエージェントを示しています。
{
"bots": [
{
"botId": "{{BOT_ID}}",
"scopes": ["personal", "team", "groupChat"],
"supportsTargetedMessages": true,
"commandLists": [
{
"scopes": ["personal", "team", "groupChat"],
"triggers": ["slash"],
"commands": [
{
"title": "summarize",
"description": "Summarize the conversation"
}
]
},
{
"scopes": ["personal", "team", "groupChat"],
"triggers": ["mention"],
"commands": [
{
"title": "assign",
"description": "Assign a follow-up task"
}
]
},
{
"scopes": ["personal", "team", "groupChat"],
"triggers": ["slash", "mention"],
"commands": [
{
"title": "review",
"description": "Review a document"
}
]
}
]
}
]
}
• スラッシュ コマンドに必要なように、次のコード スニペット例:
-
supportsTargetedMessagesはtrueに設定され、エージェントがグループ会話でターゲット メッセージを受信できるようにします。 -
summarizeはスラッシュ コマンドとして構成されます。 -
assignは、 @mention コマンドとして構成されます。 -
reviewは、スラッシュ コマンドと @mention コマンドの両方として構成されます。
アクション型メッセージ拡張機能のスラッシュ コマンド
メッセージ拡張機能をスラッシュ コマンドとして公開するには、composeExtensions[].commands[] の triggers プロパティを使用します。
{
"composeExtensions": [
{
"botId": "{{BOT_ID}}",
"commands": [
{
"id": "summarizeCommand",
"type": "action",
"title": "Summarize",
"description": "Summarize a document",
"context": ["compose", "commandBox"]
},
{
"id": "draftCommand",
"type": "action",
"title": "Draft",
"description": "Draft a document",
"context": ["compose", "commandBox"],
"triggers": ["slash"]
},
{
"id": "reviewCommand",
"type": "action",
"title": "Review",
"description": "Review a document",
"context": ["compose", "commandBox"],
"triggers": ["slash"]
}
]
}
]
}
この例では、構成された compose および command box コンテキストで summarizeCommand を使用できますが、スラッシュ コマンドとして公開されません。
draftCommandアクションとreviewCommandアクションはスラッシュ トリガーを宣言するため、サポートされているエントリ ポイントではスラッシュ コマンドとして表示されます。
コマンド処理という名前のエージェントを実装する
エージェント スラッシュ コマンドを構成すると、Teams クライアント内のユーザーにのみ表示されます。その実装には役立ちません。
ユーザーがエージェントスラッシュ コマンドをアクティブ化すると、Teams は作成ボックスをターゲット メッセージ モードに切り替え、コマンド名を挿入した後、ユーザーに制御を返して、より多くのテキストを入力してメッセージを送信できるようにします。 エージェントのメッセージ ハンドラーは、メッセージの内容を使用して、メッセージをコマンド呼び出しとして解釈し、適切に処理する必要があるかどうかを判断する役割を担います。
その他のメッセージ処理ガイダンスについては、「 ベスト プラクティスと設計ガイダンス 」を参照してください。
ベスト プラクティスと設計ガイダンス
ユーザーがコマンドを呼び出す方法に一致するトリガーを選択します。 ユーザーがすばやく、繰り返し、プライベートにアクセスする必要がある一般的なアクションの スラッシュ コマンド を提供します。 設定の表示、フォローアップ タスクの作成、個人の状態の確認などのユーザー固有のアクションに最適です。特に、ユーザーが作成ボックスからアクションを検出して再利用するメリットがある場合に最適です。 ユーザーが特定のエージェントに対処するか、会話コンテキストに依存する必要がある場合は、@メンション コマンドを使用します。 どちらも、それぞれが同じ動作への自然なエントリ ポイントである場合にのみ提供します。
すべてのメッセージ ベースのアクティビティと同様に、スラッシュ コマンドの動作の設計では、ユーザーがグループ会話の応答としてパブリック メッセージとプライベート メッセージのどちらを想定しているかを慎重に検討する必要があります。 エージェント応答の可視性に関する一般的なガイダンスについては、「 ターゲット メッセージングのベスト プラクティスと設計ガイダンス」を参照してください。
コマンド セットを小さくしてフォーカスしたままにしておきます。 ユーザーがより会話的なエクスペリエンスを必要とするときに自然言語プロンプトをサポートしますが、最も反復可能なアクションにはスラッシュ コマンドを予約します。
スラッシュ コマンド名は短く、アクション指向のままにします。 検出可能性を向上させる場合は高頻度コマンドにエイリアスを使用し、長いプロンプトまたはそれ以上のオープンエンド プロンプトにはプロンプト スターター を使用します。
コマンド名を超えて予期される入力を含め、検出可能性を向上させるために、明確なコマンドの説明を指定します。
関連コンテンツ
Platform Docs