Plugins für Microsoft 365 Copilot

Plugins ermöglichen deklarativen Agents in Microsoft 365 Copilot die Interaktion mit MCP-Servern (Model Context Protocol) oder REST-APIs, die eine OpenAPI-Beschreibung aufweisen. Mithilfe eines Plug-Ins können Benutzer einen deklarativen Agenten bitten, nicht nur einen MCP-Server oder eine REST-API nach Informationen abzufragen, sondern auch Daten und Objekte zu erstellen, zu aktualisieren und zu löschen. Alles, was der MCP-Server oder die REST-API tun kann, ist über Eingabeaufforderungen in natürlicher Sprache zugänglich.

Wichtig

Plug-Ins werden nur als Aktionen innerhalb deklarativer Agents unterstützt. Sie sind in Microsoft 365 Copilot nicht aktiviert.

Ein Plug-In stellt ein Plug-In-Manifest bereit, mit dem Copilot die Funktionen des MCP-Servers oder der API des Plug-Ins erlernt. Copilot kann dann entscheiden, wann ein installiertes und aktiviertes Plug-In geeignet ist, eine bestimmte Anforderung zu beantworten. Weitere Informationen zur Paketlistendatei, die für ein Plug-In erforderlich ist, finden Sie unter Plug-In-Manifestschema für Microsoft 365 Copilot.

So ermittelt Copilot MCP-Servertools

Bei Plug-Ins, die auf einem MCP-Server basieren, löst Copilot die Tools des Servers standardmäßig dynamisch zur Laufzeit direkt vom MCP-Server auf. Die dynamische Toolermittlung bedeutet, dass Benutzer die neuesten Tools erhalten, die der MCP-Server verfügbar macht, ohne darauf warten zu müssen, dass der Agent neu verpackt und veröffentlicht wird. Beim Erstellen des Agents kann ein Entwickler optional stattdessen einen festen Satz von Tools im Plug-In-Manifest anheften. REST-API-Plug-Ins verwenden immer die Tools, die im Plug-In-Manifest definiert sind. Weitere Informationen finden Sie unter Build Plug-Ins von einem MCP-Server für Microsoft 365 Copilot und Dynamische Toolermittlung für MCP-Plug-Ins in Microsoft 365 Copilot.

Plug-in-Beispiel

Stellen Sie sich einen Budget-MCP-Server vor, der es ermöglicht, Budgets abzufragen und zu erstellen, Ausgaben abzurechnen oder Guthaben zu vorhandenen Budgets hinzuzufügen. Die Eingabeaufforderung "Wie viel ist noch im Contoso-Reisebudget" könnte ein Budget-Plug-In auslösen und das get-budgets Tool aufrufen.

POST /mcp
Content-Type: application/json

{
  "method": "tools/call",
  "params": {
    "name": "get-budgets",
    "arguments": {
      "budgetName": "contoso travel"
    }
  }
}

Copilot verwendet die Antwort des Toolergebnisses, um seine Antwort zu generieren: "Das Reisebudget von Contoso verfügt derzeit über 5.000 USD an verfügbaren Mitteln. Wenn Sie Geld bestimmten Kategorien zuweisen oder Ausgaben verfolgen müssen, kann ich Ihnen auch dabei helfen. Lass mich einfach wissen, wie ich helfen kann!"

Die Eingabeaufforderung "Berechnen Sie 500 USD auf das Reisebudget von Contoso für Megans Flugticket" könnte in den folgenden MCP-Toolaufruf übersetzt werden.

POST /mcp
Content-Type: application/json

{
  "method": "tools/call",
  "params": {
    "name": "charge-budget",
    "arguments": {
      "budgetName": "contoso travel",
      "amount": 500,
      "description": "Megan's airline ticket"
    }
  }
}

Copilot antwortet dem Benutzer mit den zurückgegebenen Informationen: "Die Gebühr von 500 USD für Megans Flugticket wurde erfolgreich verarbeitet. Im Reisebudget von Contoso sind jetzt noch 4.500 USD verfügbar. Wenn Sie weitere Transaktionen durchführen müssen oder weitere Unterstützung bei Ihrem Budget benötigen, lassen Sie es mich bitte wissen!"

Funktionsweise von Plugins

Ein Sequenzdiagramm, das den Plug-In-Datenfluss zeigt

  1. Der Benutzer fragt den Agenten: "Wie viel ist im Budget für die Renovierung der Fourth Coffee Lobby noch übrig?"

  2. Bei einem MCP-Plug-In, das dynamische Tool-Discovery verwendet, ruft der Agent die aktuellen Tool-Definitionen zur Laufzeit vom MCP-Server des Plug-Ins ab und validiert alle neuen oder geänderten Tools, bevor sie verwendet werden. Für ein Plug-In mit einem angehefteten Toolset oder für ein REST-API-Plug-In verwendet der Agent stattdessen die Tools, die im Plug-In-Manifest definiert sind.

  3. Der Agent identifiziert ein budgetbezogenes Plug-In aus den verfügbaren Plug-Ins, das über ein MCP-Servertool oder eine API GetBudget verfügt, um Budgetdetails abzurufen. Es ordnet Teile der Frage des Benutzers den Parametern der Funktion zu: budgetName="".

  4. Der Agent bittet den Benutzer , das Senden Fourth Coffee lobby renovation an das Plugin zu erlauben.

  5. Der Benutzer entscheidet sich dafür, die Freigabe von Daten mit dem Plug-In einmalig zuzulassen, oder er entscheidet sich dafür, die Freigabe von Daten für diese Funktion immer zuzulassen.

  6. Wenn der MCP-Server oder die API des Plug-Ins eine Authentifizierung erfordert, fordert das Plug-In ein Token oder einen API-Schlüssel aus dem Tokenspeicher an.

  7. Der Tokenspeicher gibt ein Token oder einen Schlüssel zurück. Bei Bedarf fordert der Tokenspeicher den Agent auf, sich anzumelden.

  8. Der Agent sendet eine Anforderung an den MCP-Server oder die API des Plug-Ins, die außerhalb von Microsoft 365 gehostet wird.

  9. Der MCP-Server oder die API gibt eine Antwort zurück.

    {
      "name": "Fourth Coffee lobby renovation",
      "availableFunds": 5000.00
    }
    
  10. Der Agent generiert eine Antwort basierend auf der MCP-Server- oder API-Antwort.

  11. Der Agent sendet die Antwort: "Die verfügbaren Mittel, die im Budget für die Renovierung der Fourth Coffee Lobby verbleiben, betragen 5.000 US-Dollar."

Bestätigen von Aktionen

Copilot fragt den Benutzer, bevor er zum ersten Mal Daten an ein Plug-in sendet.

Ein Screenshot eines Plug-In-Bestätigungsdialogs.

Nachdem der Benutzer die Verbindung bestätigt hat, ist bei MCP-Servertools und APIs, die nur Daten abrufen, keine Bestätigung erforderlich, bei Tools und APIs, die Daten ändern, ist eine Bestätigung hingegen erforderlich. Plug-in-Entwickler können diese Standardeinstellungen außer Kraft setzen. Weitere Informationen finden Sie unter Bestätigungsaufforderungen für MCP- und API-Plug-Ins für Microsoft 365 Copilot.

Anpassen der Antwortpräsentation

Copilot generiert Konversationsantworten mithilfe von Daten vom MCP-Server oder API-Antworten. Plugins können anpassen, wie diese Daten dargestellt werden, und der Mechanismus hängt vom Plugin-Typ ab.

  • MCP-Plug-Ins können umfangreiche, interaktive Antworten liefern, indem sie MCP-Apps verwenden – UI-Widgets, die der MCP-Server zur Laufzeit zusammen mit dem Toolergebnis zurückgibt. Da das Widget mit der Toolantwort bereitgestellt wird und nicht im Manifest definiert ist, funktionieren MCP-Apps unabhängig davon, ob das Plug-In einen angehefteten Satz von Tools oder eine dynamische Toolermittlung verwendet.

  • API-Plug-Ins können Adaptive Card-Vorlagen im Plug-In-Manifest bereitstellen, um Daten auf strukturierte Weise anzuzeigen. Da die Vorlagen für die im Manifest deklarierten Vorgänge definiert werden, gilt dieser Ansatz für API-Plug-Ins und für MCP-Plug-Ins, die einen angehefteten Satz von Tools verwenden.

Für quellenbezogene Zitate in jedem Plugin-Typ verwendet Copilot die Antwortsemantik und kann Zitatmetadaten automatisch aus dem Tool oder der API-Antwort ableiten. Automatische Rückschlüsse sind besonders nützlich für MCP-Plug-Ins, die die dynamische Toolermittlung verwenden, bei der Tools zur Laufzeit aufgelöst werden und keine manifeste Tooldefinition konfiguriert werden muss. Weitere Informationen finden Sie unter Zitate mit Antwortsemantik anzeigen.

Screenshot einer adaptiven Kartenantwort von einem API-Plug-In

URL-Behandlung in Aktionsantworten

Die Chaterfahrung von Microsoft 365 Copilot rendert möglicherweise URLs, die als Teil von Aktionsantworten zurückgegeben werden – sei es von MCP-Plug-Ins, API-Plug-Ins, Connectors oder Flows – als anklickbare Links. Die Copilot-Laufzeit steuert dieses Verhalten und wertet es nicht anhand von Domänen aus, die das Plug-In deklariert (z. B. den servers Abschnitt der OpenAPI-Beschreibung eines API-Plug-Ins).

Plattformsicherheits-, Vertrauens- und Richtlinienregeln regeln das URL-Renderingverhalten für Aktionsantworten und können sich im Laufe der Zeit ändern. Verlassen Sie sich nicht auf klickbare URLs in Aktionsreaktionen für produktionskritische Szenarien.

Helfen Sie dem Copilot-Orchestrator bei der Auswahl Ihres Plug-Ins

Microsoft 365 Copilot kann aus den zahlreichen Fähigkeiten in seinem Repertoire die richtige Fähigkeit auswählen. Aber wie können Sie sicherstellen, dass Copilot Ihr Plug-In auswählt, um die richtigen Fähigkeiten bereitzustellen?

Die Antwort liegt darin, wie Sie Ihr Plugin, seine Fähigkeiten und die Parameter für die Initiierung von Fähigkeiten beschreiben. Geben Sie prägnante und genaue Beschreibungen in Ihrem Plug-In-Manifest an, um sicherzustellen, dass der Copilot-Orchestrator bestmöglich weiß, wann und wie er Ihr Plug-In aufrufen muss.

Die Art und Weise, wie Sie dem Orchestrator Ihr Plug-In beschreiben, hängt vom Typ des von Ihnen erstellten Plug-Ins ab, wie in der folgenden Tabelle beschrieben.

Plug-in-Typ Beschrieben von Weitere Informationen
API-Plug-Ins OpenAPI-Beschreibung So machen Sie ein OpenAPI-Dokument effektiv bei der Erweiterung von Copilot
Copilot Studio-Aktionen Namen und Beschreibungen in der Unterhaltungsübersicht von Copilot Studio Orchestrieren Sie Copilot-Themen und -Aktionen mit generativer KI
Nachrichtenerweiterungs-Plug-Ins App-Manifest Richtlinien für Nachrichtenerweiterungs-Plug-Ins

Erstellen eines deklarativen Agent-Plug-Ins

Entwickler können zwei Tools verwenden, um API-Plugin-Pakete zu generieren:

  • Das Microsoft 365 Agents Toolkit in Visual Studio oder Visual Studio Code erstellt Plug-In-Pakete basierend auf einem vorhandenen MCP-Server oder einer OpenAPI-Beschreibung. Agents Toolkit verfügt auch über Starterprojekte mit einer Beispiel-API und einem entsprechenden Plugin-Paket.
  • Kiota ist ein Befehlszeilentool und eine Visual Studio Code-Erweiterung, die Plugin-Pakete basierend auf einer vorhandenen OpenAPI-Beschreibung generiert.

Tipp

Work IQ Dev Tools (Vorschau): Sie können Aktionen auch über die Befehlszeile anfügen und überprüfen. wiqd agent add action Fügt einem deklarativen Agenten eine Aktion hinzu und wiqd agent validate --mode deep bestätigt, dass die OpenAPI-Beschreibung einer Aktion erreichbar und wohlgeformt ist und dass ein referenziertes Plug-In-Manifest das richtige Authentifizierungsschema deklariert. Eine Alpha-Befehlsstruktur wiqd plugin ist ebenfalls vorhanden, aber ihre Schnittstelle kann sich ändern. Weitere Informationen finden Sie in der Work IQ DevTools-Dokumentation.

Begrenzungen

Wenn ein deklarativer Agent bis zu fünf Plug-Ins enthält, die im Manifest des deklarativen Agents definiert sind, fügt der Agent die Plug-Ins immer in den Prompt ein. Wenn der Agent mehr als fünf Plug-Ins enthält, verwendet er den semantischen Abgleich. Das semantische Matching basiert auf der Beschreibung des Plugins, nicht auf einer der einzelnen Funktionen oder Tools innerhalb des Plugins selbst.

Ein Plugin kann eine unbegrenzte Anzahl von Funktionen oder MCP-Tools enthalten. Alle Funktionen oder Tools eines übereinstimmenden Plug-Ins werden zurückgegeben, auch wenn nur eines übereinstimmt. Bei einem MCP-Plug-In, das dynamische Toolermittlung verwendet, werden die Tools, die zur Laufzeit vom MCP-Server aufgelöst wurden, zu dieser Summe hinzugerechnet. Aufgrund von Grenzwerten für Tokenfenster kann sich die Qualität der Antworten verschlechtern, wenn mehr als 10 Funktionen oder Tools enthalten sind.

Das Tokenfenster für Ein- und Ausgaben von einem Plug-In schneidet große Inhalte ab. Die Funktionsgrenze kann sich mit der Verbesserung der Modelle ändern und hängt vom Systemaufwand ab. Optimieren Sie für kleine Tokenlängen, oder entscheiden Sie sich für Erweiterungsoptionen, die bei Bedarf das Streaming großer Inhalte ermöglichen.