調適型卡片讓您將內容片段新增到 Copilot Studio 的 Agent 中,這些片段也可以與其他雲端應用程式和服務自由交換。 為了為您的 Agent 提供豐富的對話功能,您可以新增文字、圖形和按鈕。 由於它們與平台無關,因此您可以輕鬆地根據您的需求自訂調適型卡片。
使用調適型卡片節點,您的 Agent 可以顯示包含一個或多個提交按鈕以及一個或多個表單輸入欄位 (選用) 的調適型卡片。 您的 Agent 會將使用者輸入儲存在變數中以供稍後對話中使用。
備註
Copilot Studio 支援調適型卡片架構版本 1.6 及更早版本。 但是,適當的架構版本取決於目標主機應用程式:
- Bot Framework 網路聊天元件 (即預設的網站整合模式) 支援版本 1.6,但不支援
Action.Execute - 即時聊天小工具 (用於 Dynamics 365 Customer Service 全通路) 僅限於版本 1.5
- Teams 也僅限於 1.5 版本
此外,Copilot Studio 僅在測試交談中呈現 1.6 版本卡片,而不在畫布上呈現。
有關調適型卡片架構的詳細資訊,請參閱結構描述總管。
Copilot Studio 內建了調適型卡片設計工具,提供調適型卡片設計工具的最有用功能。
或者,您可以:
- 使用 JSON 表示形式來表示您想要顯示給使用者的卡片。
- 使用 Power Fx 公式可在卡片中包含動態資訊。
您還可以控制卡片的行為,例如當使用者輸入無效回應時該做什麼或節點是否可以中斷。
調適型卡片節點用於互動式卡片,使用者需要提交回應。 訊息和問題節點可以用來向使用者展示非互動式卡片,以對使用者顯示資訊。
小費
重新命名節點以使其更易於識別。 選擇節點的名稱欄位以直接更新名稱,或選擇節點的更多圖示 (...),並從功能表中選擇重新命名。 您也可以在程式碼編輯器中重新命名節點。
無法重新命名觸發程序節點和前往步驟節點。
節點名稱的長度最多可達 500 個字元。
新增調適型卡片節點
在您想要新增調適型卡片節點的節點下方,選取新增節點圖示
,然後選取以 調適型卡片 詢問。選取節點的更多圖示 (...),然後選取屬性。
在調適型卡片節點屬性面板中,選擇編輯調適型卡片。 調適型卡片設計工具面板打開。
為您的卡片新增所需的元素並設定其屬性。 或者,在卡片承載編輯器窗格中,將預設承載替換為卡片的 JSON 文字。
提示
您的卡片必須至少包含一個提交按鈕,因為它必須是一張允許使用者向 Agent 提交資訊的互動式卡片。 如果沒有,並且僅用於顯示訊息,則應將調適型卡片新增至訊息節點。
完成初始設計後,選擇儲存並關閉設計工具面板。 您的卡片的預覽會出現在節點上。 Copilot Studio 會根據程式碼中指定的輸入自動建立輸出變數。
小費
如果為卡片產生的輸出變數不正確,您可以透過在調適型卡片節點屬性面板中選擇編輯架構來手動更新變數及其類型的清單。
您的互動式調適型卡片現在已準備就緒。 當 Agent 的使用者選擇卡片上的提交按鈕時,輸出變數將填入使用者在與卡片互動時提供的資訊。
其他屬性
其他屬性可讓您控制調適型卡片節點的行為,例如:
- Agent 如何回應無效回應
- 如果可以中斷
如果 Agent 正在等待調適型卡片的提交,而使用者卻傳送了短信,則該回應被視為無效,除非該訊息觸發中斷。 在此案例中,下列屬性會判斷行為。
重試次數:Agent 嘗試從卡片獲得有效提交的次數。 最多重複 2 次為預設值。 您也可以選取重複一次或不要重複。 每次重試時,都會將該卡片重新傳送給使用者。
重試提示:使用此屬性定義重試時要發送的訊息,並重複卡片。 若要定義重試訊息,請選取自訂,然後輸入新的提示。
允許切換到另一個主題:如果選取 (預設),當 Agent 等待卡片提交時,來自使用者的傳入訊息會觸發中斷並切換到另一個主題。 如果發生主題切換,一旦中斷主題結束,卡片將再次發送給使用者。
連續卡片的 Agent 提交按鈕行為
設計上,調適型卡片允許多次選擇提交按鈕。 如果 Agent 有連續的調適型卡片,且使用者在較早的卡片上選擇按鈕,可能會遇到意想不到的行為。
為了防止一張牌的提交動作干擾另一張牌:
隔離提交動作:確保每張調適型卡片都有其獨特的識別碼和動作處理器。
使用具有獨特資料的提交動作:在定義卡片的提交動作時,請加入獨特的識別碼或資料負載,幫助使用者在選擇提交按鈕時區分卡片間。
為您的 Agent 加入強大的事件處理邏輯:根據與提交按鈕相關的識別碼或有效載荷元素定義條件。
除錯與記錄:在您的 Agent 事件處理程式碼中加入詳細記錄,以記錄動作順序並找出非預期提交發生的位置。
使用 Power Fx 讓您的卡片具有動態功能
您可以使用 Power Fx 公式,透過參考主題或 Agent 的變數,在卡片中包含動態資訊。
選取節點的更多圖示 (...),然後選取屬性。
在調適型卡片節點屬性面板中,切換到公式,選取公式後會自動將卡片的 JSON 表示轉換為 Power Fx 公式。
例如,從以下卡片的 JSON 文字開始:
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.5", "body": [{ "type": "ColumnSet", "columns": [{ "type": "Column", "width": 2, "items": [{ "type": "TextBlock", "text": "Tell us about yourself", "weight": "Bolder", "size": "Medium", "wrap": true, "style": "heading" }, { "type": "TextBlock", "text": "We just need a few more details to get you booked for the trip of a lifetime!", "isSubtle": true, "wrap": true }, { "type": "Input.Text", "id": "myName", "label": "Your name (Last, First)", "isRequired": true, "regex": "^[A-Z][a-z]+, [A-Z][a-z]+$", "errorMessage": "Please enter your name in the specified format" } ] } ] } ], "actions": [{ "type": "Action.Submit", "title": "Submit" } ] }以下是產生的 Power Fx 公式,使用兩個變數 Topic.Title 與 Topic.Subtitle,取代 JSON 文字內容中的硬編碼文字。 (此範例假設變數已在您的主題中定義。)
{ '$schema': "http://adaptivecards.io/schemas/adaptive-card.json", type: "AdaptiveCard", version: "1.5", body: [ { type: "ColumnSet", columns: [ { type: "Column", width: "2", items: [ { type: "TextBlock", text: Topic.Title, weight: "Bolder", size: "Medium", wrap: true, style: "heading" }, { type: "TextBlock", text: Topic.Subtitle, isSubtle: true, wrap: true }, { type: "Input.Text", id: "myName", label: "Your name (Last, First)", isRequired: true, regex: "^[A-Z][a-z]+, [A-Z][a-z]+$", errorMessage: "Please enter your name in the specified format" } ] } ] } ], actions: [ { type: "Action.Submit", title: "Submit" } ] }
重要
一旦開始在公式面板中編輯,就無法傳回原始 JSON 程式碼。 為了允許迭代設計和變更,我們建議將原始 JSON 的副本儲存在您自己的筆記中,或作為節點中的註釋。 如果需要,此預防措施可讓您恢復變更。