エージェントは、基本的に Microsoft 365 用のアプリです。 共通のマニフェスト スキーマ、アプリのパッケージ化、配布と管理のプロセスを共有します。
アプリ マニフェストは、copilotAgents オブジェクト内の宣言型エージェントの定義ファイルを参照します。
エージェントをローカライズする方法は、Microsoft 365 アプリ マニフェストで他の機能 (タブ、ボット、メッセージ拡張機能など) をローカライズする方法とは若干異なります。
Teams アプリの機能とエージェントの両方に同じローカライズ ファイル (言語ごと) を使用します。 ただし、他のすべてのアプリ マニフェスト フィールドは、言語ファイルの JSONPath 式を使用して参照されますが、エージェント関連のフィールドはディクショナリ キーを使用して参照されます。 アプリ マニフェスト自体で既定の言語文字列を使用する従来の Teams アプリ機能とは異なり、ローカライズされたエージェントには、既定の言語と余分な言語ごとに言語ファイルが必要です。
この記事では、(既定の言語を超えて) 他の言語のサポートをエージェントに追加する方法について説明します。
トークン化されたキーを使用してエージェント マニフェストを更新する
ローカライズするフィールド値に対して、宣言型エージェントまたは API プラグイン マニフェストをトークン化されたキー (例: [[PLUGIN_NAME]]) で更新します。 ローカライズ キーは、次の正規表現と一致する必要があります。 ^[a-zA-Z_][a-zA-Z0-9_]*$
次の例は、名前と説明のトークン化された値を持つ宣言型エージェント マニフェストを示しています。
{
"$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.0/schema.json",
"name": "[[DA_Name]]",
"description": "[[DA_Description]]",
"instructions": "# You are an assistant..."
}
アプリ マニフェストに localizationInfo を追加する
localizationInfo セクションをアプリ マニフェストに追加します。言語タグと、アプリ パッケージ内でサポートされている各言語ファイルへの相対パスを指定します。
エージェントが複数の言語をサポートしている場合は、サポートされているすべての言語 (既定の言語を 含む) にスタンドアロン言語ファイルを指定する必要があります。
次の例は、アプリ マニフェストの localizationInfo セクションを示しています。
"localizationInfo": {
"defaultLanguageTag": "en",
"defaultLanguageFile": "en.json",
"additionalLanguages": [
{
"languageTag": "fr",
"file": "fr.json"
}
]
},
エージェントが他の言語をサポートしていない場合、既定の言語文字列はアプリ マニフェスト ファイル自体で表されます。 単一言語アプリ パッケージでは、既定の言語に個別の言語ファイルは必要ありません。
余分な言語ごとにローカライズ ファイルを作成する
前の手順でアプリ マニフェストで指定したファイル名 ( defaultLanguageFile および file プロパティ) を使用して、トークン化されたキーの値を使用して、サポートされている言語ごとにローカライズ ファイルを作成します。
次の例は、エージェントタブと個人用タブの両方にローカライズされた文字列を含む言語ファイル fr.jsonを示しています。
{
"$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.Localization.schema.json",
"name.short": "Agent de Communications",
"name.full": "Agent pour les Communications",
"description.short": "Outils pour les professionnels de la communication",
"description.full": "Outils pour les professionnels de la communication Contoso, y compris la galerie de ressources et les assistants personnels",
"localizationKeys": {
"DA_Name": "Agent de Communications",
"DA_Description": "Un assistant pour les professionnels de la communication et des relations publiques chez Contoso."
},
"staticTabs[0].name": "Accueil",
"staticTabs[1].name": "Galerie de ressources",
"staticTabs[2].name": "À propos de Contoso"
}
アプリ マニフェストのローカライズ可能なフィールド
言語ファイルごとに、ローカライズする必要があるアプリのローカライズ スキーマから次のプロパティを指定します。
| マニフェスト フィールド | Description | 最大長 | 必須 |
|---|---|---|---|
$schema |
ローカライズ スキーマの URL。 エージェントの場合は、devPreview: https://developer.microsoft.com/en-us/json-schemas/teams/vDevPreview/MicrosoftTeams.Localization.schema.jsonを使用します。 マニフェスト スキーマのバージョンは、アプリ マニフェストとローカライズ ファイルの両方で同じである必要があります。 |
✔️ | |
name.short |
アプリ マニフェストの短い名前を指定された値に置き換えます。 | 30 文字 | ✔️ |
name.full |
アプリ マニフェストの完全な名前を指定された値に置き換えます | 100 文字 | ✔️ |
description.short |
アプリ マニフェストの短い説明を指定された値に置き換えます。 | 80 文字 | ✔️ |
description.full |
アプリ マニフェストの完全な説明を指定された値に置き換えます。 | 4,000 文字 | ✔️ |
| エージェント内のローカライズされた文字列のキーと値のペア | エージェントの場合は、ローカライズされた値でトークン化されたキー (アプリ manifest.jsonで指定されているが、二重引用符は使用しません) を使用します。 例: "DA_Name": "Agent de Communications" |
||
| 他のアプリ コンポーネントのローカライズされた文字列の JSONPath/値ペア | 他のすべての (クラシック Teams) アプリ コンポーネントの場合は、ローカライズされた値のキーとして JSONPath 式を使用します。 例: "staticTabs[0].name": "Accueil" |
詳細については、「 アプリのローカライズ (Microsoft Teams)」 と 「ローカライズ スキーマ リファレンス」を参照してください。
宣言型エージェント マニフェストのローカライズ可能なフィールド
宣言型エージェント マニフェスト内では、次のフィールドをローカライズできます。
| マニフェスト フィールド | Description | 最大長 | 必須 |
|---|---|---|---|
name |
宣言型エージェントの名前。 空白以外の文字を少なくとも 1 つ含む必要があります。 | 100 文字 | ✔️ |
description |
宣言型エージェントの説明。 空白以外の文字を少なくとも 1 つ含む必要があります。 | 1,000 文字 | ✔️ |
conversation_starters |
宣言型エージェントが回答できる質問の例のリスト (配列)。各例は、 title と textを持つオブジェクトであり、どちらもローカライズ可能です。 |
配列内の 12 個のオブジェクト |
詳細については、「 宣言型エージェント マニフェスト リファレンス」を参照してください。
API プラグイン マニフェストのローカライズ可能なフィールド
次のフィールドは、API プラグイン マニフェスト内でローカライズできます。
| マニフェスト フィールド | Description | 最大長 | 必須 |
|---|---|---|---|
name_for_human |
プラグインの人間が判読できる短い名前。 空白以外の文字を少なくとも 1 つ含む必要があります。 | 20 文字 | ✔️ |
description_for_model |
モデルに提供されるプラグインの説明(プラグインの目的、その機能が関連する状況など)。 | 2,048 文字 | |
description_for_human |
プラグインの人間が判読できる説明。 | 100 文字 | ✔️ |
logo_url |
オーケストレーターが使用できるロゴを取得するために使用される URL。 | ||
legal_info_url |
プラグインのサービス条件を含むドキュメントを検索する絶対 URL。 | ||
privacy_policy_url |
プラグインのプライバシー ポリシーを含むドキュメントを検索する絶対 URL。 | ||
conversation_starters |
プラグインが回答できる質問の例のリスト (配列)。各例は、 title と textを持つオブジェクトであり、どちらもローカライズ可能です。 |
詳細については、「 API プラグイン マニフェスト リファレンス」を参照してください。