int-reference

작성자: microsoft

Copilot Studio YAML 작성용 참조 테이블: 트리거, 액션, 변수, 엔터티, Power Fx 함수, 템플릿. 작성자가 미리 로드하고 문제를 해결…

npx skills add https://github.com/microsoft/skills-for-copilot-studio --skill int-reference

Copilot Studio YAML Reference

Core File Types

FilePurpose
agent.mcs.ymlMain agent metadata (kind: GptComponentMetadata)
settings.mcs.ymlAgent settings and configuration
connectionreferences.mcs.ymlConnector references
topics/*.mcs.ymlConversation topics (kind: AdaptiveDialog)
actions/*.mcs.ymlConnector-based actions (kind: TaskDialog)
knowledge/*.mcs.ymlKnowledge sources (kind: KnowledgeSourceConfiguration)
variables/*.mcs.ymlGlobal variables (kind: GlobalVariableComponent)
agents/*.mcs.ymlChild agents (kind: AgentDialog)

Trigger Types

Topics with OnRecognizedIntent have two routing mechanisms — which one matters depends on the orchestration mode:

  • modelDescription — used by generative orchestration (GenerativeActionsEnabled: true). The AI orchestrator reads this to decide routing. Primary mechanism for generative agents.
  • Trigger phrases (triggerQueries) — used by classic orchestration. Pattern-matched against the user's utterance. Secondary hints when generative orchestration is enabled.

System triggers (OnConversationStart, OnUnknownIntent, OnError, etc.) fire automatically and don't use either mechanism.

KindPurpose
OnRecognizedIntentTrigger phrases matched
OnConversationStartConversation begins
OnUnknownIntentNo topic matched (fallback)
OnEscalateUser requests human agent
OnErrorError handling
OnSystemRedirectTriggered by redirect only
OnSelectIntentMultiple topics matched (disambiguation)
OnSignInAuthentication required
OnToolSelectedChild agent invocation
OnKnowledgeRequestedCustom knowledge source search triggered (YAML-only, no UI)
OnGeneratedResponseIntercept AI-generated response before sending
OnOutgoingMessageNon-functional (2026-03-15) — exists in schema but does not fire at runtime. Do not use.

YAML-Only Features

These features work at runtime but are not visible in the Copilot Studio UI. Warn users that UI edits may silently remove them.

FeatureNotes
triggerCondition on knowledge sourcesThe UI only exposes this as an on/off toggle (=false to exclude from UniversalSearchTool). Arbitrary Power Fx expressions (e.g., =Global.UserDepartment = "HR") work at runtime but can only be set via YAML. Use with caution. (2026-03-16)

Action Types

KindPurpose
SendActivitySend a message
QuestionAsk user for input
SetVariableSet/compute a variable (Power Fx expression, prefix =)
SetTextVariableSet a text variable using template interpolation ({}). Useful for converting non-text types (e.g., Number) to text: "You have {Topic.Count} items"
ConditionGroupBranching logic
BeginDialogCall another topic
ReplaceDialogReplace current topic
EndDialogEnd current topic
CancelAllDialogsCancel all topics
ClearAllVariablesClear variables
SearchAndSummarizeContentGenerative answers (grounded in knowledge)
AnswerQuestionWithAIAI answer (conversation history + general knowledge only)
EditTableModify a collection
CSATQuestionCustomer satisfaction
LogCustomTelemetryEventLogging
OAuthInputSign-in prompt
SearchKnowledgeSourcesSearch knowledge sources (returns raw results, no AI summary)
CreateSearchQueryAI-generated search query from user input

Connector Actions (TaskDialog)

Connector actions (kind: TaskDialog) invoke external connector operations. They are stored in actions/ and require a connection reference in connectionreferences.mcs.yml.

Use /add-action to create new actions from available connectors. The schema describes the structural properties of TaskDialog and InvokeConnectorTaskAction, but the specific inputs and outputs for each connector operation are connector-specific — use the connector lookup script (connector-lookup.bundle.js) to get the full operation details.

Action Structure

FieldPurpose
kind: TaskDialogIdentifies this as a connector action
inputsInputs: AutomaticTaskInput (AI-provided) or ManualTaskInput (fixed value)
modelDisplayNameDisplay name for AI orchestrator routing
modelDescriptionDescription for AI orchestrator routing
outputsOutput property names returned by the connector
action.kindAlways InvokeConnectorTaskAction for connector actions
action.connectionReferenceLogical name of the connection (registered in connectionreferences.mcs.yml)
action.connectionProperties.modeMaker (maker's credentials) or Invoker (end user's credentials)
action.operationIdThe connector's specific operation identifier
outputModeUsually All — exports all operation outputs

Input Types

Input KindUse WhenNotes
AutomaticTaskInputThe AI orchestrator should provide the value based on contextIncludes description for the AI to understand what to provide
ManualTaskInputA fixed/hardcoded value (e.g., timezone, folder path)Can only hardcode strings. Non-string values (IDs, enums) should be reviewed by the user after pushing

$-Prefixed Property Names (SharePoint, OData)

Some connectors (notably SharePoint) use OData parameters like $filter, $orderby, $top. These require special quoting in TaskDialog YAML — both single and double quotes:

# TaskDialog (actions/*.mcs.yml) — CORRECT
- kind: ManualTaskInput
  propertyName: "'$filter'"
  value: "Status eq 'Active'"

"'$filter'" means: the outer "" are YAML string delimiters; the inner '' are part of the literal value sent to the runtime. Using $filter, "$filter", or '$filter' alone will fail.

InvokeConnectorAction (inline in topics) uses a different format — the parameters/ prefix with no inner single quotes:

# InvokeConnectorAction (inside topics) — CORRECT
- kind: InvokeConnectorAction
  operationId: GetItems
  input:
    parameters/$filter: "Status eq 'Active'"

Never mix these two formats.

System Variables

VariableDescription
System.Bot.NameAgent's name
System.Activity.TextUser's current message
System.Conversation.IdConversation identifier
System.Conversation.InTestModeTrue if in test chat
System.FallbackCountNumber of consecutive fallbacks
System.Error.MessageError message
System.Error.CodeError code
System.SignInReasonWhy sign-in was triggered
System.Recognizer.IntentOptionsMatched intents for disambiguation
System.Recognizer.SelectedIntentUser's selected intent
System.SearchQueryAI-rewritten search query (available in OnKnowledgeRequested)
System.KeywordSearchQueryKeyword version of search query (available in OnKnowledgeRequested)
System.SearchResultsTable to populate with custom search results — schema: Content, ContentLocation, Title (available in OnKnowledgeRequested)
System.ContinueResponseSet to false in OnGeneratedResponse to suppress auto-send
System.Response.FormattedTextThe AI-generated response text (available in OnGeneratedResponse)

Variable Scopes

PrefixScopeLifetime
Topic.<name>Topic variableCurrent topic only
Global.<name>Global variableEntire conversation (defined in variables/ folder)
System.<name>System variableBuilt-in, read-only

Global variables are defined as YAML files in variables/<Name>.mcs.yml (kind: GlobalVariableComponent). aIVisibility accepts UseInAIContext (orchestrator can read and reason about the value) or Hidden (orchestrator unaware — use for flags and internal bookkeeping).

Prebuilt Entities

EntityUse Case
BooleanPrebuiltEntityYes/No questions
NumberPrebuiltEntityNumeric inputs
StringPrebuiltEntityFree text
DateTimePrebuiltEntityDate/time
EMailPrebuiltEntityEmail addresses

Power Fx Expression Reference

Only use functions from the supported list below. Copilot Studio supports a subset of Power Fx — using unsupported functions will cause errors.

# Arithmetic
value: =Text(Topic.number1 + Topic.number2)

# Date formatting
value: =Text(Now(), DateTimeFormat.UTC)

# Conditions
condition: =System.FallbackCount < 3
condition: =Topic.EndConversation = true
condition: =!IsBlank(Topic.Answer)
condition: =System.Conversation.InTestMode = true
condition: =System.SignInReason = SignInReason.SignInRequired
condition: =System.Recognizer.SelectedIntent.TopicId = "NoTopic"

# String interpolation in activity (uses {} without =)
activity: "Error: {System.Error.Message}"
activity: "Error code: {System.Error.Code}, Time (UTC): {Topic.CurrentTime}"

# Record creation
value: "={ DisplayName: Topic.NoneOfTheseDisplayName, TopicId: \"NoTopic\", TriggerId: \"NoTrigger\", Score: 1.0 }"

# Variable initialization (first assignment uses init: prefix)
variable: init:Topic.UserEmail
variable: init:Topic.CurrentTime
# Subsequent assignments omit init:
variable: Topic.UserEmail

Supported Power Fx Functions

These are all the Power Fx functions available in Copilot Studio. Do NOT use any function not on this list.

Math: Abs, Acos, Acot, Asin, Atan, Atan2, Cos, Cot, Degrees, Exp, Int, Ln, Log, Mod, Pi, Power, Radians, Rand, RandBetween, Round, RoundDown, RoundUp, Sin, Sqrt, Sum, Tan, Trunc

Text: Char, Concat, Concatenate, EncodeHTML, EncodeUrl, EndsWith, Find, Left, Len, Lower, Match, MatchAll, Mid, PlainText, Proper, Replace, Right, Search, Split, StartsWith, Substitute, Text, Trim, TrimEnds, UniChar, Upper, Value

Date/Time: Date, DateAdd, DateDiff, DateTime, DateTimeValue, DateValue, Day, EDate, EOMonth, Hour, IsToday, Minute, Month, Now, Second, Time, TimeValue, TimeZoneOffset, Today, Weekday, WeekNum, Year

Logical: And, Coalesce, If, IfError, IsBlank, IsBlankOrError, IsEmpty, IsError, IsMatch, IsNumeric, IsType, Not, Or, Switch

Table: AddColumns, Column, ColumnNames, Count, CountA, CountIf, CountRows, Distinct, DropColumns, Filter, First, FirstN, ForAll, Index, Last, LastN, LookUp, Patch, Refresh, RenameColumns, Sequence, ShowColumns, Shuffle, Sort, SortByColumns, Summarize, Table

Aggregate: Average, Max, Min, StdevP, VarP

Type conversion: AsType, Boolean, Dec2Hex, Decimal, Float, GUID, Hex2Dec, JSON, ParseJSON

Other: Blank, ColorFade, ColorValue, Error, Language, OptionSetInfo, RGBA, Trace, With

Available Templates

Templates are bundled with the plugin. Skills that use templates reference them via ${CLAUDE_SKILL_DIR}/../../templates/.

TemplateFilePattern
Greetingtemplates/topics/greeting.topic.mcs.ymlOnConversationStart welcome
Fallbacktemplates/topics/fallback.topic.mcs.ymlOnUnknownIntent with escalation
Arithmetictemplates/topics/arithmeticsum.topic.mcs.ymlInputs/outputs with computation
Question + Branchingtemplates/topics/question-topic.topic.mcs.ymlQuestion with ConditionGroup
Knowledge Searchtemplates/topics/search-topic.topic.mcs.ymlSearchAndSummarizeContent fallback
Custom Knowledge Sourcetemplates/topics/custom-knowledge-source.topic.mcs.ymlOnKnowledgeRequested with custom API (YAML-only)
Remove Citationstemplates/topics/remove-citations.topic.mcs.ymlOnGeneratedResponse citation stripping
Authenticationtemplates/topics/auth-topic.topic.mcs.ymlOnSignIn with OAuthInput
Error Handlertemplates/topics/error-handler.topic.mcs.ymlOnError with telemetry
Disambiguationtemplates/topics/disambiguation.topic.mcs.ymlOnSelectIntent flow
Agenttemplates/agents/agent.mcs.ymlGptComponentMetadata
Connector Action (generic)templates/actions/connector-action.mcs.ymlTaskDialog with connector (structural reference)
Knowledge (Public Website)templates/knowledge/public-website.knowledge.mcs.ymlPublicSiteSearchSource
Knowledge (SharePoint)templates/knowledge/sharepoint.knowledge.mcs.ymlSharePointSearchSource
Global Variabletemplates/variables/global-variable.variable.mcs.ymlGlobalVariableComponent

microsoft의 다른 스킬

oss-growth
microsoft
OSS 성장 해커 페르소나
official
microsoft-foundry
microsoft
Foundry 에이전트를 엔드투엔드로 배포, 평가 및 관리: Docker 빌드, ACR 푸시, 호스팅/프롬프트 에이전트 생성, 컨테이너 시작, 배치 평가, 지속적 평가, 프롬프트 최적화 워크플로, agent.yaml, 트레이스에서 데이터셋 큐레이션. 용도: Foundry에 에이전트 배포, 호스팅 에이전트, 에이전트 생성, 에이전트 호출, 에이전트 평가, 배치 평가 실행, 지속적 평가, 지속적 모니터링, 지속적 평가 상태, 프롬프트 최적화, 프롬프트 개선, 프롬프트 최적화 도구, 에이전트 지침 최적화, 에이전트 개선...
officialdevelopmentdevops
azure-ai
microsoft
Azure AI: Search, Speech, OpenAI, Document Intelligence에 사용됩니다. 검색, 벡터/하이브리드 검색, 음성-텍스트 변환, 텍스트-음성 변환, 전사, OCR을 지원합니다. 사용 시점: AI Search, 쿼리 검색, 벡터 검색, 하이브리드 검색, 의미 검색, 음성-텍스트 변환, 텍스트-음성 변환, 전사, OCR, 텍스트를 음성으로 변환.
officialdevelopmentapi
azure-deploy
microsoft
이미 준비된 애플리케이션에 대해 기존 .azure/deployment-plan.md 및 인프라 파일이 있는 경우 Azure 배포를 실행합니다. 사용자가 새 애플리케이션 생성을 요청할 때는 이 스킬을 사용하지 말고 azure-prepare를 사용하세요. 이 스킬은 azd up, azd deploy, terraform apply, az deployment 명령을 내장된 오류 복구 기능과 함께 실행합니다. azure-prepare의 .azure/deployment-plan.md와 azure-validate의 검증 상태가 필요합니다. 사용 시점: "run azd up", "run azd deploy", "execute deployment",...
officialdevopsaws
azure-storage
microsoft
Azure Storage Services는 Blob Storage, File Shares, Queue Storage, Table Storage, Data Lake를 포함합니다. 스토리지 액세스 계층(hot, cool, cold, archive), 각 계층 사용 시기 및 계층 비교에 대한 질문에 답변합니다. 객체 스토리지, SMB 파일 공유, 비동기 메시징, NoSQL 키-값, 빅데이터 분석을 제공합니다. 수명 주기 관리를 포함합니다. 사용 용도: blob 스토리지, 파일 공유, 큐 스토리지, 테이블 스토리지, 데이터 레이크, 파일 업로드, blob 다운로드, 스토리지 계정, 액세스 계층,...
officialdevelopmentdatabase
azure-diagnostics
microsoft
Azure에서 AppLens, Azure Monitor, 리소스 상태 및 안전한 트라이지를 사용하여 Azure 프로덕션 문제를 디버그합니다. 사용 시기: 프로덕션 문제 디버그, 앱 서비스 문제 해결, 앱 서비스 높은 CPU, 앱 서비스 배포 실패, 컨테이너 앱 문제 해결, 함수 문제 해결, AKS 문제 해결, kubectl 연결 불가, kube-system/CoreDNS 오류, pod 보류 중, crashloop, 노드 준비 안 됨, 업그레이드 실패, 로그 분석, KQL, 인사이트, 이미지 풀 실패, 콜드 스타트 문제, 상태 프로브 실패,...
officialdevopsdevelopment
azure-prepare
microsoft
Azure 앱을 배포용으로 준비합니다(인프라 Bicep/Terraform, azure.yaml, Dockerfiles). 생성/현대화 또는 생성+배포에 사용하며, 크로스 클라우드 마이그레이션에는 사용하지 않습니다(azure-cloud-migrate 사용). 다음에는 사용하지 마십시오: copilot-sdk 앱(azure-hosted-copilot-sdk 사용). 사용 시점: "앱 생성", "웹 앱 빌드", "API 생성", "서버리스 HTTP API 생성", "프론트엔드 생성", "백엔드 생성", "서비스 빌드", "애플리케이션 현대화", "애플리케이션 업데이트", "인증 추가", "캐싱 추가", "Azure에 호스팅", "생성 및...
officialdevelopmentdevops
azure-validate
microsoft
Azure 배포 전 준비 상태 검증. 구성, 인프라(Bicep 또는 Terraform), RBAC 역할 할당, 관리 ID 권한, 사전 요구 사항에 대한 심층 점검을 실행합니다. 사용 시점: 내 앱 검증, 배포 준비 상태 확인, 사전 점검 실행, 구성 확인, 배포 가능 여부 확인, azure.yaml 검증, Bicep 검증, 배포 전 테스트, 배포 오류 문제 해결, Azure Functions 검증, 함수 앱 검증, 서버리스 검증...
officialdevopstesting