Microsoft Copilot Studio 에이전트를 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 에이전트 UI의 도구 영역에서 확인할 수 있습니다.

도구에는 다음과 같은 항목이 포함될 수 있습니다.

  • 프롬프트
  • 워크플로(Power Automate 흐름)
  • CUA 도구
  • 사용자 지정 커넥터
  • REST API
  • MCP 커넥터

도구는 확장 프로그램 내에서 에이전트의 /actions 폴더 아래에 나타나지만, 추가 메타데이터가 있는 다른 폴더에도 나타날 수 있습니다. 예를 들어, 워크플로트리거는 각각 고유한 폴더와 JSON을 가지고 있습니다.

트리거 편집

트리거는 토픽이나 작업이 언제 활성화되는지 정의합니다. 트리거는 일정, 이벤트, 또는 조건 유형으로 설정할 수 있습니다. 트리거는 보통 워크플로를 참조합니다.

kind: ExternalTriggerConfiguration
externalTriggerSource:
  kind: WorkflowExternalTrigger

원격 지식 파일 관리

Copilot Studio의 업로드 기능을 사용하여 문서를 업로드하면, 지식 파일 제거 창에서 해당 문서의 이름을 클릭하여 다운로드할 수 있습니다. 문서는 자동으로 다운로드되지 않으며 창에서 다운로드를 선택해야 합니다. 다운로드에 성공하면 알림이 표시됩니다.

새 파일을 업로드하려면 에이전트 정의의 knowledge/files 폴더에 넣으세요. 변경 사항을 적용하면 에이전트 콘텐츠 업로드 기능을 통해 업로드됩니다.

원격 지식 파일 창에서 사용 가능한 문서가 표시된 스크린샷입니다.

모범 사례

명명 규칙

파일:

  • 케밥 케이스 사용: create-ticket.tool.yaml
  • 구체적으로 작성: faq.yaml이 아니라 product-pricing-faq.yaml
  • 유형 접미사 사용: .topic.yaml, .tool.yaml, .trigger.yaml

ID 및 변수:

  • camelCase 사용: userOrderNumber, productDetails
  • 구체적으로 작성: check1이 아니라 checkPaymentStatus
  • 약어 사용 금지: 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

다음 단계

이제 편집을 이해했으니 다음을 수행할 수 있습니다.