Редактирование своего агента Microsoft Copilot Studio в Microsoft Visual Studio Code

Когда вы клонируете агент 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.

Инструменты могут включать:

  • Запросы
  • Рабочие процессы (потоки Power Automate)
  • Средства CUA
  • Настраиваемые соединители
  • Интерфейсы REST API
  • Соединители MCP

Инструменты появляются внутри расширения в папке /actions агента, но могут также появляться в других папках с дополнительными метаданными. Например, рабочие процессы и триггеры имеют собственные папки и JSON.

Изменение триггеров

Триггеры определяют, когда активируются темы или действия. Вы можете настроить их как расписания, события или условные типы. Триггеры обычно ссылаются на рабочий процесс.

kind: ExternalTriggerConfiguration
externalTriggerSource:
  kind: WorkflowExternalTrigger

Управление удаленными файлами знаний

Если вы загружаете документы с помощью функции загрузки в Copilot Studio, эти документы становятся доступны для скачивания при нажатии на их название в окне Удаленные файлы знаний. Документы не скачиваются автоматически и должны быть выбраны для скачивания в окне. Вы увидите уведомление об успешном скачивании.

Если вы хотите отправить новые файлы, вы можете разместить их в папке knowledge/files в определении агента. Когда вы применяете эти изменения, они отправляются через функцию отправки содержимого агента.

Снимок экрана окна «Удаленные файлы знаний» с доступными документами.

Рекомендации

Соглашения об именовании

Файлы:

  • Используйте kebab-case: create-ticket.tool.yaml
  • Используйте описательные имена: product-pricing-faq.yaml вместо faq.yaml
  • Используйте суффикс типа: .topic.yaml, .tool.yaml, .trigger.yaml

Идентификаторы и переменные:

  • Используйте camelCase: userOrderNumber, productDetails
  • Используйте описательные имена: 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

Следующие шаги

Теперь, когда вы понимаете, что такое редактирование: