⚠️こちらの記事は2026年1月27日に作成した記事です。
Microsoft Copilot Studio VS Code拡張機能は継続的にアップデートされていくと考えられるため、本記事の内容と実際の動作が異なる場合があります。
最新の仕様や手順については、公式ドキュメントをご参照ください。
Copilot Studioの拡張機能はまだ新しく、筆者自身も試行錯誤しながら検証しました。
そのため、記載内容に誤りがある可能性があります。
「ここ違うよ!」という箇所がありましたら、ぜひコメントで教えていただけますと幸いです。
はじめに
Microsoft Copilot StudioのVisual Studio Code拡張機能が一般提供(GA)されました。
これにより、従来のWebベースのCopilot Studio UIに加えて、使い慣れたVS Codeでエージェント開発が可能になりました。
本記事では、SharePointリストをナレッジソースとした有給申請QAエージェントを、VS Code拡張機能を使って開発する手順を解説します。
この記事で学べること
- VS Code拡張機能のセットアップ
- SharePointリストをナレッジソースとして設定
- YAMLベースでのエージェント編集
1. 前提条件と準備
必要なもの
| 項目 | 要件 |
|---|---|
| Visual Studio Code | 最新版推奨 |
| Microsoft 365 ライセンス | Copilot Studio利用権限 |
| Power Platform 環境 | 開発用環境 |
| SharePoint サイト | リストを作成済み |
SharePointリストの構造
今回使用する有給申請リストの列構成は以下の通りです:
| 列名 | データ型 | 説明 |
|---|---|---|
| 氏名 | 1行テキスト | 従業員の氏名 |
| 1行テキスト | メールアドレス | |
| 従業員コード | 1行テキスト | 社員ID(例: E10433) |
| 所属店 | 1行テキスト | 勤務地(東京本店、大阪支店など) |
| 所属部署 | 1行テキスト | 部署名(営業部、人事部など) |
| 最新有給申請日 | 日付と時刻 | 直近の申請日 |
| 最新有給使用開始日 | 日付と時刻 | 有給取得開始日 |
| 最新有給使用終了日 | 日付と時刻 | 有給取得終了日 |
| 最新有給残日数 | 数値 | 残りの有給日数 |
SharePointリストURL例
https://your-tenant.sharepoint.com/sites/CopilotStudio/Lists/List/XXXXXX.aspx

2. VS Code拡張機能のインストール
2.1 拡張機能のインストール
- VS Codeを起動します
- 拡張機能パネルを開きます(
Ctrl + Shift + X) - 検索バーに「Copilot Studio」と入力し、CopilotStudioを選択(Microsoftが発行していることを確認)
- インストールボタンをクリック

- インストール完了後、アクティビティバーにCopilot Studioアイコンが表示されることを確認

参考: Install the Microsoft Copilot Studio extension for Microsoft Visual Studio Code
https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/visual-studio-code-extension-install-configure
2.2 Microsoftアカウントでサインイン
- Copilot Studioアイコンをクリック
- Sign in to Copilot Studioをクリック

- ブラウザが開き、Microsoft 365アカウントでサインイン

- 認証完了後、VS Codeに戻る

3. Copilot Studioでエージェントを作成(Web UI)
VS Codeでクローンする前に、まずCopilot Studio Web UIでベースとなるエージェントを作成します。
3.1 新規エージェント作成
- Copilot Studio にアクセス
- エージェントを作成したい環境を選択する
- 左メニューから「エージェント」→「+ 新しいエージェント」をクリック

- エージェント名を入力:
有給申請QAエージェント - 説明を入力
従業員の有給申請状況、有給残日数、申請方法などの質問に回答するエージェントです。
SharePointリストに登録された有給情報をもとに回答します。

3.2 SharePointリストをナレッジソースとして追加
- エージェント編集画面で「ナレッジ」タブをクリック
- 「+ ナレッジを追加」をクリック

- 「SharePoint」を選択

- 「アイテムを参照」をクリック、または直接URLを入力


- SharePointリストを選択(有給申請一覧リスト)して追加をクリック

重要: 説明は詳細に記載してください。生成AIがナレッジソースを選択する際の判断材料となります。
参考: Add SharePoint as a knowledge source
https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/knowledge-add-sharepoint
3.3 システムプロンプトの設定
- 「指示」の編集をクリック

- 以下を入力
あなたは社内の有給休暇に関する質問に答えるアシスタントです。
## 対応可能な質問
- 特定の従業員の有給残日数の確認
- 最新の有給申請状況の確認
- 部署・支店ごとの有給取得状況
- 有給申請の方法や手続きに関する一般的な質問
## 回答時のルール
1. 従業員を特定する際は、氏名または従業員コードで検索してください
2. 個人情報を含む回答は、質問者が本人または人事担当者であることを確認してください
3. データが見つからない場合は「該当するデータが見つかりませんでした」と回答してください
4. 有給残日数が0または少ない場合は、人事部への相談を促してください
## 回答フォーマット
- 簡潔に箇条書きで回答
- 日付は「YYYY年MM月DD日」形式で表示
- 保存をクリック

4. VS Codeでエージェントをクローン
4.1 ローカルフォルダの準備
# 作業用フォルダを作成
mkdir ~/copilot-agents-paid-leave
cd ~/copilot-agents-paid-leave

4.2 エージェントのクローン
- 左サイドバーの「COPILOT STUDIO」アイコンをクリック
- 「AGENTS」パネルで環境を展開(今回はサンドボックス環境で作成したため、Sandbox Environments を選択)
- 有給申請QAエージェントを作成した環境を選択
- 有給申請QAエージェントを選択

- クローンしたいエージェントを右クリック →「Clone Agent」を選択

- クローン先のフォルダを選択(さっき作成した
copilot-agents-paid-leaveを選択する)

4.3 フォルダ構造の確認
クローン後、以下のようなフォルダ構造が生成されます
有給申請QAエージェント/
│
├── agent.mcs.yml # エージェント定義(メイン)
├── settings.mcs.yml # エージェント設定
├── icon.png # エージェントアイコン
│
├── .mcs/ # 拡張機能の内部ファイル(編集不要)
│ ├── .gitignore # 全ファイル除外(*)
│ ├── botdefinition.json
│ ├── changetoken.txt
│ ├── conn.json
│ └── filechangetrack.json
│
├── knowledge/ # ナレッジソース
│ └── copilots_header_XXXXX.topic.List_XXXXXXXXXX.mcs.yml
│
└── topics/ # トピック(13ファイル)
├── ConversationStart.mcs.yml
├── EndofConversation.mcs.yml
├── Escalate.mcs.yml
├── Fallback.mcs.yml
├── Goodbye.mcs.yml
├── Greeting.mcs.yml
├── MultipleTopicsMatched.mcs.yml
├── OnError.mcs.yml
├── ResetConversation.mcs.yml
├── Search.mcs.yml
├── Signin.mcs.yml
├── StartOver.mcs.yml
└── ThankYou.mcs.yml

参考: Clone your Microsoft Copilot Studio agent in Microsoft Visual Studio Code
https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/visual-studio-code-extension-clone-agent
5. VS Codeでエージェントを編集
5.1 agent.mcs.yml の確認と編集
agent.mcs.ymlはエージェントの中核となる設定ファイルです。
# Name: 有給申請QAエージェント
# 従業員の有給申請状況、有給残日数、申請方法などの質問に回答するエージェントです。
kind: GptComponentMetadata
displayName: 有給申請QAエージェント
instructions: |
あなたは社内の有給休暇に関する質問に答えるアシスタントです。
## 対応可能な質問
- 特定の従業員の有給残日数の確認
- 最新の有給申請状況の確認
- 部署・支店ごとの有給取得状況
- 有給申請の方法や手続きに関する一般的な質問
## 回答時のルール
1. 従業員を特定する際は、氏名または従業員コードで検索してください
2. 個人情報を含む回答は、質問者が本人または人事担当者であることを確認してください
3. データが見つからない場合は「該当するデータが見つかりませんでした」と回答してください
4. 有給残日数が0または少ない場合は、人事部への相談を促してください
## 回答フォーマット
- 簡潔に箇条書きで回答
- 日付は「YYYY年MM月DD日」形式で表示
gptCapabilities:
webBrowsing: false
aISettings:
model:
modelNameHint: GPT5Auto

💡 ポイント: modelNameHint: GPT5AutoでGPT-5モデルが指定されています。GPT4oやGPT41に変更することも可能です。
5.2 settings.mcs.yml の確認
settings.mcs.ymlにはエージェントの詳細設定が含まれます。
displayName: 有給申請QAエージェント
schemaName: copilots_header_XXXXX
accessControlPolicy: GroupMembership
authenticationMode: Integrated
authenticationTrigger: Always
configuration:
settings:
GenerativeActionsEnabled: true
aISettings:
useModelKnowledge: true
isFileAnalysisEnabled: true
isSemanticSearchEnabled: true
template: default-2.1.0
language: 1041 # 日本語
| 設定項目 | 説明 |
|---|---|
authenticationMode: Integrated | Microsoft認証を使用 |
authenticationTrigger: Always | 常に認証を要求 |
isSemanticSearchEnabled: true | セマンティック検索有効 |
language: 1041 | 日本語(LCID) |

5.3 ナレッジソースの確認
SharePointリストのナレッジソースは、knowledge/フォルダ内に保存されます。
ファイル: knowledge/copilots_header_XXXXX.topic.List_XXXXXXXXXX.mcs.yml
# Name: List
# このナレッジ ソースは SharePoint の List にある情報を提供します。
kind: KnowledgeSourceConfiguration
source:
kind: FederatedStructuredSearchSource
connectionProperties:
mode: Invoker
skillConfiguration: List_XXXXXXXXXX

📝 注意: ナレッジソースのファイル名は自動生成されるため、copilots_header_XXXXX.topic.List_XXXXXXXXXX.mcs.ymlのような長い名前になります。
5.4 トピックの確認
topics/フォルダには、エージェントの会話フローを定義するトピックが含まれます。
主要なトピック:
| ファイル名 | 説明 |
|---|---|
Greeting.mcs.yml | ユーザーへの挨拶 |
Goodbye.mcs.yml | 会話終了時のメッセージ |
Search.mcs.yml | 検索機能 |
Fallback.mcs.yml | 回答できない場合の対応 |
Escalate.mcs.yml | 人間へのエスカレーション |
Signin.mcs.yml | サインイン処理 |
OnError.mcs.yml | エラー処理 |

5.5 カスタムトピックの作成
実際にカスタムトピックを作成して、Copilot Studioに反映してみましょう。
作成するトピック: 「有給申請方法案内」トピック
- ユーザーが有給の申請方法を聞いたときに、手順を案内するトピック
Step 1: topics/フォルダを右クリック →「新しいファイル」
Step 2: ファイル名を入力: HowToApply.mcs.yml
Step 3: 以下のYAMLを入力
# Name: 有給申請方法案内
# ユーザーが有給休暇の申請方法を質問したときに案内するトピック
kind: AdaptiveDialog
beginDialog:
kind: OnRecognizedIntent
id: main
intent:
displayName: 有給申請方法案内
triggerQueries:
- 有給の申請方法を教えて
- 有給休暇はどうやって申請するの
- 有給を取りたい
- 休暇申請の手順
- 有給届の出し方
actions:
- kind: SendActivity
id: sendMessage_guide
activity:
text:
- |
有給休暇の申請方法をご案内します。
**📝 申請手順**
1. 社内ポータルにログイン
2. 「勤怠管理」→「有給申請」を選択
3. 希望日と理由を入力
4. 上長を選択して申請
**⏰ 申請期限**
- 通常:希望日の3営業日前まで
- 緊急時:当日朝9時まで(事後申請可)
**📞 お問い合わせ**
人事部:内線1234
- kind: Question
id: question_checkDays
alwaysPrompt: true
variable: init:Topic.WantToCheck
prompt: 有給残日数も確認しますか?
entity: BooleanPrebuiltEntity
- kind: ConditionGroup
id: condition_check
conditions:
- id: wantCheck
condition: =Topic.WantToCheck = true
actions:
- kind: SendActivity
id: sendMessage_askName
activity:
text:
- 確認したい方の氏名または従業員コードを教えてください。
- kind: SendActivity
id: sendMessage_end
activity:
text:
- 他にご質問があればお気軽にどうぞ!
Step 4: Ctrl + Sで保存

💡 ポイント:
triggerQueriesに複数のフレーズを登録すると、類似の質問でもトピックが起動しますQuestionで選択肢を提示し、ConditionGroupで分岐処理ができます
6. ローカルの変更をCopilot Studioに反映(Apply)
先ほど作成した「有給申請方法案内」トピックをCopilot Studioに反映してみましょう。
💡 重要: VS Codeで保存しただけでは、Copilot Studioには反映されません。必ず「Apply」が必要です。
6.1 Applyの実行手順
方法1: Agent Changesパネルから(推奨)
- 左サイドバーの「COPILOT STUDIO」アイコンをクリック
- 「AGENT CHANGES」パネルを展開
- 「Local Changes」に
HowToApply.mcs.ymlが表示されていることを確認 - Apply ボタンをクリック

6.2 Apply完了の確認
Applyが成功すると、VS Codeに完了メッセージが表示されます。

📝 注意:
- Apply ≠ Publish(公開) です。Applyは開発環境への反映で、本番公開は別途Web UIから行います。
- リモートに未取得の変更がある場合、Applyがブロックされることがあります。その場合は「Get」で先にリモート変更を取得してください。
参考: Synchronize your changes – Microsoft Learn
https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/visual-studio-code-extension-synchronization
6.3 Web UIでトピックが反映されたか確認
Step 1: Copilot Studio Web UIを開く
Step 2: 左メニューから「トピック」を選択
Step 3: 「有給申請方法案内」トピックが追加されていることを確認

6.4 SharePointコネクタへ接続させる
Step 1: 右側の「テスト」パネルを開く
Step 2: 「…」をクリック

Step 3: 接続の管理をクリック

Step 4: SharePointの接続をクリック

Step 5: 「…」をクリックして、自分の接続を選択し、送信をクリック

Step 6: 状態が接続済みになっているのを確認したら、元のエージェントの画面に戻る

6.5 テストチャットで動作確認
Step 1: 右側の「テスト」パネルを開く
Step 2: 「有給の申請方法を教えて」と入力
Step 3: 作成したトピックの回答が表示されることを確認

追加のテストケース:
| # | 入力 | 期待される結果 |
|---|---|---|
| 1 | 有給の申請方法を教えて | 申請手順が表示される |
| 2 | 有給を取りたい | 同上(triggerQueriesで設定した別フレーズ) |
| 3 | 山田 太郎001の有給残日数は? | SharePointリストから検索して回答 |
| 4 | 営業部の有給状況 | 営業部所属者の一覧を表示 |

VS Codeで作成したトピックがCopilot Studioに反映されました!
これで、ローカルでの開発 → クラウドへの反映 → 動作確認の一連のフローが完了です。
まとめ
本記事では、VS Code拡張機能を使ったCopilot Studioエージェント開発の工程を解説しました。
🎯 ポイントまとめ
| ステップ | 使用ツール | 概要 |
|---|---|---|
| 1. 環境準備 | VS Code | 拡張機能インストール |
| 2. ベース作成 | Web UI | エージェント作成、ナレッジソース設定 |
| 3. クローン | VS Code | ローカルに取得 |
| 4. 編集 | VS Code | YAMLでトピック追加・編集 |
| 5. 同期 | VS Code | Apply Changesで反映 |
🚀 VS Code拡張機能を使うべき場面
- ✅ トピックが10個以上ある大規模エージェント
- ✅ 複雑なトピックの編集・管理


