Freigeben über


Inlinebearbeitung von Antworten für adaptive Karten zulassen (Vorschau)

Sie können Antworten auf adaptive Karten in deklarativen Agents für Microsoft 365 Copilot verbessern, indem Sie die Inlinebearbeitung zulassen. Dieser Ansatz ermöglicht es dem Karte, Eingabedaten zu sammeln, strukturierte Nutzlasten an Ihre App zu senden und die Karte basierend auf zurückgegebenen Antworten dynamisch zu aktualisieren, um eine nahtlose, zustandsbehaftete Interaktion zu schaffen, ohne die Agent-Oberfläche zu verlassen.

In diesem Artikel wird beschrieben, wie Sie die Action.Execute Funktion (verfügbar ab Version 1.5 des Adaptive Card-Schemas) verwenden, um Ihren Antworten des Copilot-Agents modale Dialogfelder hinzuzufügen. Mithilfe dieser Dialogfelder können Benutzer Informationen über die adaptive Karte bearbeiten und übermitteln.

Hinweis

Die Action.Execute Funktion befindet sich derzeit in der Vorschauphase.

Bearbeitung adaptiver Karten

So verwenden Sie die aktion des modalen Dialogfelds:

Das folgende Beispiel zeigt das Schema für Action.Execute.

{
  "static_template": {
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
      {
        "type": "Container",
        "$data": "${$root}",
        "items": [
          {
            "type": "TextBlock",
            "text": "ticketId: ${if(ticketId, ticketId, 'N/A')}",
            "wrap": true
          },
          {
            "type": "Input.Text",
            "value": "${if(title, title, 'N/A')}",
            "id": "title",
            "wrap": true,
            "maxLength": 500
          },
          {
            "type": "Input.Text",
            "value": "${if(description, description, 'N/A')}",
            "id": "description",
            "wrap": true,
            "maxLength": 500,
            "isMultiline": true
          },
          {
            "type": "Input.Number",
            "label": "Severity",
            "value": "${if(severity, severity, 'N/A')}",
            "id": "severity",
            "wrap": true
          },
          {
            "type": "Input.Date",
            "label": "Due Date - Overdue ⏰",
            "id": "dueDate",
            "value": "${if(dueDate, dueDate, 'N/A')}",
            "wrap": true
          },
          {
            "type": "Input.Number",
            "placeholder": "Placeholder text",
            "id": "completionPercentage",
            "label": "Completion Percentage",
            "max": 100,
            "min": 0,
            "value": "${if(completionPercentage, completionPercentage, 'N/A')}",
            "isVisible": true,
            "wrap": true
          }
        ]
      }
    ],
    "actions": [
      {
        "type": "Action.Execute",
        "verb": "updateTickets",
        "isVisible": true,
        "id": "ticketUpdate",
        "title": "Update Ticket",
        "data": {
          "ticketId": "${if(ticketId, ticketId, 'N/A')}"
        }
      }
    ]
  }
},
{
  "name": "updateTickets",
  "description": "Update a ticket field for a given ticketId",
  "capabilities": {
    "response_semantics": {
      "data_path": "$",
      "properties": {
        "title": "$.title",
        "subtitle": "$.description"
      },
      "static_template": {
        "type": "AdaptiveCard",
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.5",
        "body": [
          {
            "type": "Container",
            "$data": "${$root}",
            "items": [
              {
                "type": "TextBlock",
                "text": "ticketId: ${if(updatedTicket.ticketId, updatedTicket.ticketId, 'N/A')}",
                "wrap": true
              },
              {
                "type": "Input.Text",
                "value": "${if(updatedTicket.title, updatedTicket.title, 'N/A')}",
                "id": "title",
                "wrap": true,
                "maxLength": 500
              },
              {
                "type": "Input.Text",
                "value": "${if(updatedTicket.description, updatedTicket.description, 'N/A')}",
                "id": "description",
                "wrap": true,
                "maxLength": 500,
                "isMultiline": true
              }
            ]
          }
        ],
        "actions": [
          {
            "type": "Action.Execute",
            "verb": "updateTickets",
            "isVisible": true,
            "id": "ticketUpdate",
            "title": "Update Ticket",
            "data": {
              "ticketId": "${if(updatedTicket.ticketId, updatedTicket.ticketId, 'N/A')}"
            }
          }
        ]
      }
    }
  }
}

Beispiele für Anforderungen und Antworten

Die folgenden Anforderungs- und Antwortbeispiele zeigen, was geschieht, wenn ein Benutzer eine Aktion ausführt, die bewirkt, dass die Action.Execute Funktion im Client ausgeführt wird.

Anforderung

{
  "clientInfo": {
    "clientPlatform": "chat-web",
    "clientAppName": "Office",
    "clientEntrypoint": "chat-officeweb",
    "clientSessionId": "d8bc8369-277e-c48c-2faf-3c894945abe0"
  },
  "message": {
    "text": "Card action execute",
    "messageType": "ExecuteActionRequest",
    "actionId": "jiraclouddev_searchForIssuesUsingJql(jql=\"assignee=currentUser() AND type=Task AND created >= -30d\", startAt=0, maxResults=10)",
    "author": "user",
    "executeActionData": {
      "gptId": "gpt_ud",
      "gptActionId": "plugin_1",
      "titleId": "U_e80ce190-4f5a-ee50-ce95-dcbabd8cd2ec",
      "verb": "updateTickets",
      "data": {
        "ticketId": 1,
        "title": "Bug Fix",
        "description": "Fix login issues",
        "severity": "3",
        "dueDate": "2025-06-20",
        "completionPercentage": "97"
      }
    }
  }
}

Antwort

{
  "text": "Mohit custom text",
  "executeActionData": "{\"type\":\"AdaptiveCard\",\"$schema\":\"http://adaptivecards.io/schemas/adaptive-card.json\",\"version\":\"1.5\",\"body\":[{\"type\":\"Container\",\"style\":\"good\",\"items\":[{\"type\":\"TextBlock\",\"text\":\"✅ Ticket updated successfully\",\"color\":\"default\",\"weight\":\"bolder\",\"wrap\":true},{\"type\":\"TextBlock\",\"text\":\"1\",\"wrap\":true},{\"type\":\"TextBlock\",\"text\":\"Bug Fix\",\"wrap\":true},{\"type\":\"TextBlock\",\"text\":\"Fix login issues\",\"wrap\":true},{\"type\":\"TextBlock\",\"text\":\"3\",\"wrap\":true},{\"type\":\"TextBlock\",\"text\":\"2025-06-20\",\"wrap\":true},{\"type\":\"TextBlock\",\"text\":\"97\",\"wrap\":true}]}]}",
  "messageType": "ExecuteActionResponse",
  "author": "bot",
  "createdAt": "2025-04-30T11:07:44.9557335+00:00",
  "timestamp": "2025-04-30T11:07:44.9557335+00:00",
  "messageId": "649112bc-7fe2-40bd-990d-928364fb173c",
  "requestId": "3058aa09-c9b6-3425-b0ef-49ef2ad4b9a5",
  "offense": "Unknown",
  "spokenText": "Ticket updated successfully",
  "turnCount": 1
}