Editar su agente Microsoft Copilot Studio en Microsoft Visual Studio Code

Al clonar el agente de Microsoft Copilot Studio en tu máquina local, puedes editar sus componentes mediante las características de edición de texto de Microsoft Visual Studio Code. La extensión de Microsoft Copilot Studio proporciona IntelliSense, validación y compatibilidad con el lenguaje YAML para que la edición sea eficiente y libre de errores.

Estructura de archivos del agente

Comprender la estructura de los archivos es clave para una edición eficiente.

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

Editar la configuración de agente principal

Características de IntelliSense

Mientras escribes, se muestran sugerencias y se resaltan los valores inválidos. Estas sugerencias cambian según el nivel de nodo en el que estés.

  • Use Ctrl+Space para obtener sugerencias según el nivel del nodo.
  • Use Ctrl+F para buscar nombres de variables y otra información en todo tu agente y actualizar rápidamente.

Ver problemas

Puede ver los problemas con archivos en el Panel de problemas en Visual Studio Code. Además, cuando abres un archivo, se muestra un subrayado rojo que identifica problemas.

Captura de pantalla que muestra problemas subrayados en rojo en el editor.

Panel de problemas

  1. Usa Ctrl+Shift+M para abrir el panel de problemas (o ve a Ver>Problemas).

  2. Ver todos los errores y advertencias.

  3. Seleccione cualquier problema para saltar a la ubicación.

Trabajar con cambios

Visual Studio resalta los cambios realizados y guardados con un color distinto para que puedas identificarlos fácilmente.

Captura de pantalla de los cambios visibles en un color diferente en Visual Studio Code.

Editar componentes de agente

Temas

Los temas definen los flujos de conversación y los diálogos. Son un tipo de AdaptiveDialog.

Puede utilizar GitHub Copilot u otros agentes para ayudar a crear nuevos componentes o, si prefieres, escribir tus propios temas.

Estructura del archivo de tema

Aquí tienes un ejemplo de un tema sencillo de saludo:

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

Características de temas avanzadas

Puede utilizar otros componentes en temas como:

  • Entidades:

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

      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
    
  • Condiciones usando 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.
    
  • Otros nodos, p. ej., nodos HTTP

  • Tarjetas adaptables

Captura de pantalla de las características avanzadas de temas en el editor.

Herramientas

Las herramientas definen las acciones que puede realizar tu agente. Puede verlas en el área de Herramientas de la interfaz de agentes de Copilot Studio.

Las herramientas pueden incluir:

  • Solicitudes
  • Flujos de trabajo (flujos de Power Automate)
  • Herramientas de CUA
  • Conectores personalizados
  • API de REST
  • Conectores MCP

Las herramientas aparecen dentro de la extensión bajo la carpeta /actions de un agente, pero también pueden aparecer en otras carpetas con metadatos adicionales. Por ejemplo, los flujos de trabajo y los desencadenadores tienen sus propias carpetas y JSON.

Editar desencadenadores

Los desencadenantes definen cuándo se activan los temas o acciones. Puede configurarlos como horarios, eventos o tipos condicionales. Los desencadenadores suelen hacer referencia a un flujo de trabajo.

kind: ExternalTriggerConfiguration
externalTriggerSource:
  kind: WorkflowExternalTrigger

Gestionar archivos de conocimiento remotos

Si subes documentos mediante la característica de carga en Copilot Studio, estos documentos estarán disponibles para descargar haciendo clic en el nombre en la ventana de Archivos de Conocimiento Remoto. Los documentos no se descargan automáticamente y deben ser seleccionados para su descarga en la ventana. Ve una notificación cuando la descarga es correcta.

Si quieres subir nuevos archivos, puedes ponerlos en la carpeta knowledge/files de la definición del agente. Cuando aplicas esos cambios, los archivos se cargan mediante la característica de carga de contenidos del agente.

Captura de pantalla de la ventana de Archivos de Conocimiento Remotos que muestra documentos disponibles.

Prácticas recomendadas

Convenciones de nomenclatura

Archivos:

  • Usar kebab-case: create-ticket.tool.yaml
  • Sea descriptivo: product-pricing-faq.yaml not faq.yaml
  • Usa el sufijo de tipo: .topic.yaml, .tool.yaml, .trigger.yaml

Id. y variables:

  • Usar camelCase: userOrderNumber, productDetails
  • Sea descriptivo: checkPaymentStatus not check1
  • Evitar las abreviaturas: customerEmail no custEmail

Comentarios

Para explicar la lógica compleja, agregue comentarios:

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

Pasos siguientes

Ahora que comprende la edición: