Edytuj swojego agenta Microsoft Copilot Studio w programie Microsoft Visual Studio Code

Po sklonowaniu agenta Microsoft Copilot Studio na lokalny komputer możesz edytować jego składniki, korzystając z narzędzi edycji tekstu w Microsoft Visual Studio Code. Rozszerzenie Copilot Studio zapewnia funkcje IntelliSense, walidację oraz obsługę języka YAML, co sprawia, że edycja jest efektywna i wolna od błędów.

Struktura pliku agenta

Interpretacja struktury pliku jest kluczowe dla efektywnej edycji.

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

Edytowanie głównej konfiguracji agenta

Funkcje IntelliSense

Podczas pisania wyświetlane są sugestie, a nieprawidłowe wartości są wyróżniane. Te sugestie zmieniają się w zależności od poziomu węzła, na którym się znajdujesz.

  • Użyj klawiszy Ctrl+Space, aby uzyskać sugestie na podstawie poziomu węzła.
  • Użyj Ctrl+F do wyszukiwania nazw zmiennych i innych informacji w całym agencie, aby szybko zaktualizować dane

Wyświetlanie problemów

Możesz zobaczyć problemy z plikami w okienku Problemy w Visual Studio Code. Ponadto, gdy otwierasz plik, możesz zobaczyć czerwone podkreślenie wskazujące na problemy.

Zrzut ekranu przedstawiający problemy podkreślone na czerwono w edytorze.

Okienko problemów

  1. Użyj klawiszy Ctrl+Shift+M do otwarcia okienka Problemy (lub przejdź do Wyświetl>Problemy).

  2. Wyświetl wszystkie błędy i ostrzeżenia.

  3. Wybierz dowolny problem, aby przejść do odpowiedniego miejsca.

Obsługa zmian

Gdy zmiana zostanie wprowadzona i zapisana, w Visual Studio pojawia się w innym kolorze, dzięki czemu łatwo ją rozpoznać.

Zrzut ekranu pokazujący zmiany widoczne w innym kolorze w Visual Studio Code.

Składniki agenta edytowania

Tematy

Tematy definiują przepływy konwersacji i dialogi. To rodzaj AdaptiveDialog.

Możesz użyć GitHub Copilot lub innych agentów, aby pomóc w tworzeniu nowych składników albo, jeśli chcesz, napisać własne tematy.

Struktura pliku tematu

Oto przykład prostego tematu powitania:

# 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}.

Zaawansowane funkcje tematów

Możesz użyć innych składników w tematach, na przykład:

  • Encje:

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

      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
    
  • Warunki przy użyciu 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.
    
  • Inne węzły, na przykład węzły HTTP

  • Karty adaptacyjne

Zrzut ekranu funkcji zaawansowanych tematów w edytorze.

Narzędzia

Narzędzia określają działania, które agent może wykonywać. Możesz je zobaczyć w obszarze Narzędzia w interfejsie agenta Copilot Studio.

Narzędzia mogą obejmować:

  • Monity
  • Przepływy pracy (przepływy Power Automate)
  • Narzędzia CUA
  • Łączniki niestandardowe
  • Interfejsy API REST
  • Łączniki MCP

Narzędzia pojawiają się w rozszerzeniu w folderze /actions agenta, ale mogą też pojawić się w innych folderach z dodatkowymi metadanymi. Na przykład Przepływy i Wyzwalacze mają własne foldery i pliki JSON.

Edycja wyzwalaczy

Wyzwalacze definiują, kiedy tematy lub działania zostają aktywowane. Możesz ustawić je jako harmonogramy, zdarzenia lub typy warunkowe. Wyzwalacze zazwyczaj odwołują się do przepływu pracy.

kind: ExternalTriggerConfiguration
externalTriggerSource:
  kind: WorkflowExternalTrigger

Zarządzanie zdalnymi plikami wiedzy

Jeśli przesyłasz dokumenty za pomocą funkcji przesyłania w Copilot Studio, dokumenty te są dostępne do pobrania po kliknięciu nazwy w oknie Zdalne pliki wiedzy. Dokumenty nie są pobierane automatycznie i muszą zostać wybrane do pobrania w oknie. Pojawia się powiadomienie, gdy pobieranie zakończy się pomyślnie.

Jeśli chcesz przesłać nowe pliki, możesz umieścić je w folderze knowledge/files w definicji agenta. Po zastosowaniu tych zmian są one przesyłane za pomocą funkcji przesyłania zawartości agenta.

Zrzut ekranu okna zdalnych plików wiedzy pokazujący dostępne dokumenty.

Najlepsze wskazówki

Konwencje nazewnictwa

Pliki:

  • Użyj notacji kebab-case: create-ticket.tool.yaml
  • Stosuj opisowe nazwy: product-pricing-faq.yaml zamiast faq.yaml
  • Dodaj sufiks określający typ: .topic.yaml, .tool.yaml, .trigger.yaml

Identyfikatory i zmienne:

  • Użyj notacji camelCase: userOrderNumber, productDetails
  • Stosuj opisowe nazwy: checkPaymentStatus zamiast check1
  • Unikaj skrótów: customerEmail nie custEmail

Komentarze

Aby wyjaśnić złożoną logikę, dodaj komentarze:

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

Następne kroki

Skoro już rozumiesz edycję: