Copilot Studio 项目初始化必备Topics
MCS Agent项目如果在teams中使用。因为teams的conversation不会像M365 Copilot自动切conversation,所以需要在topics中设置
Topics需求:
1. Manual End Conversation
Manul Stop有两个作用
1. 给用户手动结束对话强行结束报错的方式
2. 当reinstall新的Agent版本,可以routing 到当前Topic来强行结束conversation

2. Auto End Conversation
当inactivity一段时间之后,当前conversation会自动切断

3. Installation Update
Reinstall经常不会触发conversation Start,所以通过activity occurs可以避免Reinstall之后的Agent没触发conversation Start。 这里也可以绑定Manual conversation end

4. 用户基本信息
在Conversation Start中保存用户信息e.g.,语言,国家。这样可以配合instruction更好翻译answer成匹配用户的内容


5. 定制化Start over模块
简易版本的conversation start可以参考Manual+auto的模式。但是如果是个复杂项目,可以给用户提供更完善的start over体验,这样IT会避免无法有效获取用户的错误参数



kind: AdaptiveDialog
beginDialog:
kind: OnRecognizedIntent
id: main
intent:
displayName: Start Over
includeInOnSelectIntent: false
triggerQueries:
- let's begin again
- start over
- start again
- restart
actions:
- kind: Question
id: i47Svk
interruptionPolicy:
allowInterruption: false
repeatCount: 0
alwaysPrompt: true
variable: Topic.Confirm
prompt:
attachments:
- kind: AdaptiveCardTemplate
cardContent: |-
={
'$schema': "https://adaptivecards.io/schemas/adaptive-card.json",
type: "AdaptiveCard",
version: "1.5",
body: [
{
type: "TextBlock",
text: "Are you sure you want to restart the conversation?",
wrap: true,
weight: "Bolder",
size: "Medium"
},
{
type: "TextBlock",
text: "This will reset the current conversation context.",
wrap: true,
isSubtle: true,
spacing: "Small"
},
{
type: "ActionSet",
spacing: "Medium",
actions: [
{ type: "Action.Submit", title: "Yes", data: "Yes" },
{ type: "Action.Submit", title: "No", data: "No" }
]
},
{
type: "Container",
spacing: "Small",
style: "emphasis",
bleed: true,
items: [
{
type: "TextBlock",
text: "Advanced options",
size: "Small",
weight: "Bolder",
wrap: true
}
],
selectAction: {
type: "Action.ToggleVisibility",
targetElements: ["advancedOptions"]
}
},
{
type: "Container",
id: "advancedOptions",
isVisible: false,
spacing: "Small",
items: [
{
type: "TextBlock",
text: "Troubleshooting actions",
size: "Small",
weight: "Bolder",
spacing: "Small"
},
{
type: "ActionSet",
spacing: "Small",
actions: [
{ type: "Action.Submit", title: "Clear state", data: "/debug clearstate" },
{ type: "Action.Submit", title: "Clear history", data: "/debug clearhistory" },
{ type: "Action.Submit", title: "Conversation ID", data: "/debug conversationid" }
]
},
{
type: "TextBlock",
text: "Troubleshooting information",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "TextBlock",
text: "Environment details",
weight: "Bolder",
size: "Small",
spacing: "Small"
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Environment ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.EnvironmentId), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Tenant ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.TenantId), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "TextBlock",
text: "Agent details",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Name", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.Name), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Agent ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Schema name", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.SchemaName), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "TextBlock",
text: "User details",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Language", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.User.Language), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Object ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.User.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "TextBlock",
text: "Conversation details",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Channel", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Activity.ChannelId), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Conversation ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Conversation.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Time (UTC)", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{
type: "TextBlock",
text: Text(Now(), DateTimeFormat.UTC),
size: "Small",
wrap: true,
spacing: "None",
isSubtle: true
}
]
}
]
}
]
}
]
}
defaultValue: =Blank()
entity:
kind: ClosedListEntityReference
entityId: cat_B2EAgent.entity.YesNo
- kind: ConditionGroup
id: conditionGroup_lvx2zV
conditions:
- id: conditionItem_sVQtHa
condition: =Topic.Confirm = 'cat_B2EAgent.entity.YesNo'.Wspx0O
actions:
- kind: BeginDialog
id: 0YKYsy
dialog: cat_B2EAgent.topic.ResetConversation
- id: conditionItem_drBn6v
condition: =Topic.Confirm = 'cat_B2EAgent.entity.YesNo'.PlYKYb
actions:
- kind: SendActivity
id: 5iVukz
activity: Ok. Let's carry on.
elseActions:
- kind: RecognizeIntent
id: AcwpXt
userInput: =System.Activity.Text
6. On Error 增强


kind: AdaptiveDialog
startBehavior: UseLatestPublishedContentAndCancelOtherTopics
beginDialog:
kind: OnError
id: main
actions:
- kind: SendActivity
id: sendActivity_idc9Fl
activity:
attachments:
- kind: AdaptiveCardTemplate
cardContent: |-
={
'$schema': "https://adaptivecards.io/schemas/adaptive-card.json",
type: "AdaptiveCard",
version: "1.5",
body: [
{
type: "TextBlock",
text: "⚠️ Something went wrong",
wrap: true,
weight: "Bolder",
size: "Medium"
},
{
type: "TextBlock",
text: "We couldn't complete your request. You can review the details below or use the advanced troubleshooting options if needed.",
wrap: true,
isSubtle: true,
spacing: "Small"
},
{
type: "Container",
spacing: "Medium",
style: "attention",
bleed: true,
items: [
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "110px",
items: [
{ type: "TextBlock", text: "Error message", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Error.Message), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "110px",
items: [
{ type: "TextBlock", text: "Error code", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Error.Code), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "110px",
items: [
{ type: "TextBlock", text: "Conversation ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Conversation.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "110px",
items: [
{ type: "TextBlock", text: "Time (UTC)", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{
type: "TextBlock",
text: Text(Now(), DateTimeFormat.UTC),
size: "Small",
wrap: true,
spacing: "None",
isSubtle: true
}
]
}
]
}
]
},
{
type: "Container",
spacing: "Small",
style: "emphasis",
bleed: true,
items: [
{
type: "TextBlock",
text: "Advanced options",
size: "Small",
weight: "Bolder",
wrap: true
}
],
selectAction: {
type: "Action.ToggleVisibility",
targetElements: ["advancedOptions"]
}
},
{
type: "Container",
id: "advancedOptions",
isVisible: false,
spacing: "Small",
items: [
{
type: "TextBlock",
text: "Troubleshooting actions",
size: "Small",
weight: "Bolder",
spacing: "Small"
},
{
type: "ActionSet",
spacing: "Small",
actions: [
{ type: "Action.Submit", title: "Start over", data: "Start over" },
{ type: "Action.Submit", title: "Clear state", data: "/debug clearstate" },
{ type: "Action.Submit", title: "Clear history", data: "/debug clearhistory" },
{ type: "Action.Submit", title: "Conversation ID", data: "/debug conversationid" }
]
},
{
type: "TextBlock",
text: "Troubleshooting information",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "TextBlock",
text: "Environment details",
weight: "Bolder",
size: "Small",
spacing: "Small"
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Environment ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.EnvironmentId), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Tenant ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.TenantId), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "TextBlock",
text: "Agent details",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Name", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.Name), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Agent ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Schema name", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Bot.SchemaName), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "TextBlock",
text: "User details",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Language", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.User.Language), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Object ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.User.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "TextBlock",
text: "Conversation details",
weight: "Bolder",
size: "Small",
spacing: "Small",
separator: true
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Channel", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Activity.ChannelId), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Conversation ID", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{ type: "TextBlock", text: Text(System.Conversation.Id), size: "Small", wrap: true, spacing: "None", isSubtle: true }
]
}
]
},
{
type: "ColumnSet",
spacing: "None",
columns: [
{
type: "Column",
width: "90px",
items: [
{ type: "TextBlock", text: "Time (UTC)", weight: "Bolder", size: "Small", wrap: true, spacing: "None" }
]
},
{
type: "Column",
width: "stretch",
items: [
{
type: "TextBlock",
text: Text(Now(), DateTimeFormat.UTC),
size: "Small",
wrap: true,
spacing: "None",
isSubtle: true
}
]
}
]
}
]
}
]
}
- kind: LogCustomTelemetryEvent
id: 9KwEAn
eventName: OnErrorLog
properties: "={ErrorMessage: System.Error.Message, ErrorCode: System.Error.Code, TimeUTC: Text(Now(), DateTimeFormat.UTC), ConversationId: System.Conversation.Id}"
- kind: CancelAllDialogs
id: NW7NyY

浙公网安备 33010602011771号