Microsoft Visual Studio Code の Microsoft Copilot Studio エージェントを編集する

Microsoft Copilot Studio エージェントをローカル コンピューターにクローンすると、Microsoft Visual Studio Code のテキスト編集機能を使ってそのコンポーネントを編集できます。 Copilot Studio 拡張機能は、IntelliSense、検証、YAML 言語サポートを備えており、編集を効率化し、エラーを防ぎます。

エージェントのファイル構造

ファイル構造を理解することは、効率的な編集の鍵となります。

my-agent/
├── actions                   # Connectors
│   ├── DevOpsAction.mcs.yml  
│   └── GetItems.mcs.yml      
├── knowledge/files                # Knowledge sources
│   ├── source1.yaml
│   └── source2.yaml
├── topics/                   # Conversation topics
│   ├── greeting.mcs.yaml
│   ├── help.mcs.yaml
│   └── escalate.mcs.yaml
├── workflows/                    # Agent tools and actions
│   └── GetDevOpsItems
│       ├── metadata.yaml
│       └── workflow.json
│   └── GetMeetings
│       ├── metadata.yaml
│       └── workflow.json
├── trigger/                 # Event triggers
│   └── welcometrigger.mcs.yaml
├── agent.mcs.yaml                # Main agent definition
├── icon.png                      # Icon used for the agent, visible in test panel and in supported channels
├── settings.mcs.yml              # Configuration settings for the agent
└── connectioreferences.mcs.yml   # Connection References used by Connectors and other actions

メイン エージェント構成を編集する

IntelliSense の機能

入力時に提案が表示され、無効な値は強調表示されます。 これらの提案はノードのレベルによって変わります。

  • Ctrl+Space を使用して、ノードのレベルに基づいて提案を取得します。
  • Ctrl+F を利用して、エージェント全体で変数名やその他の情報を検索し、効率的に更新する

問題を表示

Visual Studio Code の問題ペインでファイルの問題を確認できます。 また、ファイルを開くと、問題箇所が赤い下線で示されます。

問題点が赤い下線で表示されているエディターのスクリーンショット

問題ペイン

  1. Ctrl+Shift+M を使用して問題ペインを開きます (表示>問題を選択します)。

  2. すべてのエラーと警告を表示する

  3. 任意の問題を選択すると、その場所に移動します。

変更の操作

変更を保存すると、Visual Studio で異なる色で表示されるため、簡単に識別できます。

Visual Studio Code で変更がさまざまな色で表示されているスクリーンショット。

エージェント コンポーネントを編集する

トピック

トピックは会話フローとダイアログを定義します。 これらは、AdaptiveDialog のタイプです。

GitHub Copilot や他のエージェントを使って新しいコンポーネントの作成を支援したり、必要に応じて自分でトピックを作成することもできます。

トピック ファイル構造

簡単な挨拶トピックの例を示します:

# This is the name of the topic that will appear in the 'topics' list in Copilot Studio

kind: AdaptiveDialog
beginDialog:
  kind: OnConversationStart
  id: main
  actions:
    - kind: SendActivity
      id: sendMessage_M0LuhV
      activity:
        text:
          - Hello, I'm {System.Bot.Name}. How can I help?
        speak:
          - Hello and thank you for calling {System.Bot.Name}.

高度なトピック機能

トピックには以下のような他のコンポーネントを使うことができます:

  • エンティティ:

                - kind: Question
                  id: question_1
                  alwaysPrompt: true
                  variable: init:Topic.Continue
                  prompt: Can I help with anything else?
                  entity: BooleanPrebuiltEntity
    
  • 変数:

      actions:
        - kind: Question
          id: 41d42054-d4cb-4e90-b922-2b16b37fe379
          conversationOutcome: ResolvedImplied
          alwaysPrompt: true
          variable: init:Topic.SurveyResponse
          prompt: Did that answer your question?
          entity: BooleanPrebuiltEntity
    
  • Power Fx を使用した条件:

                - kind: ConditionGroup
                  id: condition-1
                  conditions:
                    - id: condition-1-item-0
                      condition: =Topic.Continue = true
                      actions:
                        - kind: SendActivity
                          id: sendMessage_4eOE6h
                          activity: Go ahead. I'm listening.
    
  • 他のノード、例えば HTTP ノード

  • アダプティブ カード

エディター内の高度なトピックに関する機能のスクリーンショット

ツール

ツールはエージェントが実行できるアクションを定義します。 Copilot Studio エージェント UI のツール セクションで確認できます。

ツール には以下が含まれます:

  • プロンプト
  • ワークフロー (Power Automate フロー)
  • CUA ツール
  • カスタム コネクタ
  • REST API
  • MCP コネクタ

ツールは、拡張機能内でエージェントの /actions フォルダーに存在しますが、追加のメタデータを含む他のフォルダーにも存在する場合があります。 例えば、ワークフロートリガーには、それぞれ独自のフォルダーと JSON があります。

トリガーの編集

トリガーは、トピックやアクションがいつ発動するかを定義します。 トリガーは、スケジュール、イベント、または条件タイプとして設定できます。 トリガーは通常、ワークフローを参照します。

kind: ExternalTriggerConfiguration
externalTriggerSource:
  kind: WorkflowExternalTrigger

リモート知識ファイルを管理する

Copilot Studio のアップロード機能を使用してドキュメント書をアップロードした場合、これらの文書はリモート知識ファイルウィンドウで名前をクリックすることでダウンロードできるようになります。 ドキュメントは自動的にダウンロードされるわけではなく、ウィンドウでダウンロードを選択する必要があります。 ダウンロードが成功したら、通知が表示されます。

新しいファイルをアップロードしたい場合は、エージェント定義の knowledge/files フォルダーに入れることができます。 これらの変更を適用すると、エージェントのコンテンツ アップロード機能を通じてアップロードされます。

利用可能なドキュメントが表示されたリモート知識ファイル ウィンドウのスクリーンショット。

ベスト プラクティス

名前付け規則

ファイル:

  • ケバブケースを使用する: create-ticket.tool.yaml
  • 説明的に記述する: product-pricing-faq.yaml を使用し、faq.yaml を使用しない
  • 接尾辞を使用します: .topic.yaml.tool.yaml.trigger.yaml

ID と変数:

  • camelCase を使用する: userOrderNumberproductDetails
  • 説明的に記述する: checkPaymentStatus を使用し、check1 を使用しない
  • 略語は避けます: customerEmail (custEmail にしない)

コメント

複雑なロジックを説明するために、コメントを加えてください:

nodes:
  # Check if user is within business hours and eligible for live support
  # Business hours: 9 AM - 5 PM EST, Monday-Friday
  # Eligibility: Premium tier customers only
  - id: check-live-support-availability
    type: condition

次の手順

編集の方法を理解したところで: