Freigeben über


Plug-Ins für Microsoft 365 Copilot

Plug-Ins ermöglichen deklarative Agents in Microsoft 365 Copilot die Interaktion mit MCP-Servern oder REST-APIs, die über eine OpenAPI-Beschreibung verfügen. Mit einem Plug-In können Benutzer einen deklarativen Agent bitten, nicht nur einen MCP-Server oder eine REST-API abzufragen, sondern auch Daten und Objekte zu erstellen, zu aktualisieren und zu löschen. Auf alles, was der MCP-Server oder die REST-API ausführen kann, kann über Eingabeaufforderungen in natürlicher Sprache zugegriffen werden.

Hinweis

Zusätzlich zum Aufrufen von MCP-Servern oder REST-APIs gibt es eine Vorschaufunktion, mit der ein Plug-In APIs in einer lokalen Bibliothek aufrufen kann. Wir empfehlen Ihnen, mit diesem Feature zu experimentieren, aber es sollte nicht in einem Produktions-Plug-In verwendet werden. Weitere Informationen finden Sie unter Erstellen von API-Plug-Ins für Microsoft 365 Copilot mit der Office JavaScript-Bibliothek.

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, das Copilot verwendet, um die Funktionen des MCP-Servers oder der API des Plug-Ins zu erlernen. Copilot kann dann entscheiden, wann ein installiertes und aktiviertes Plug-In geeignet ist, um eine bestimmte Aufforderung zu beantworten. Weitere Informationen zur Manifestdatei, die für ein Plug-In erforderlich ist, finden Sie unter Plug-In-Manifestschema für Microsoft 365 Copilot.

Plug-In-Beispiel

Stellen Sie sich einen BUDGET-MCP-Server vor, der das Abfragen und Erstellen von Budgets, das Berechnen von Ausgaben oder das Hinzufügen von Mitteln zu vorhandenen Budgets ermöglicht. Die Aufforderung "Wie viel bleibt im Contoso-Reisebudget?" kann ein Budget-Plug-In auslösen, das das get-budgets Tool aufruft.

POST /mcp
Content-Type: application/json

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

Copilot verwendet die Antwort aus dem Toolergebnis, um seine Antwort zu generieren: "Das Contoso-Reisebudget verfügt derzeit über 5.000 US-Dollar an verfügbaren Mitteln. Wenn Sie Mittel bestimmten Kategorien zuordnen oder Ausgaben nachverfolgen müssen, kann ich Ihnen auch dabei helfen. Lassen Sie mich einfach wissen, wie ich helfen kann!"

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

POST /mcp
Content-Type: application/json

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

Copilot verwendet die Antwort des Tools, um seine Antwort zu generieren: "Das Contoso-Reisebudget verfügt derzeit über 5.000 US-Dollar an verfügbaren Mitteln. Wenn Sie Mittel bestimmten Kategorien zuordnen oder Ausgaben nachverfolgen müssen, kann ich Ihnen auch dabei helfen. Lassen Sie mich einfach wissen, wie ich helfen kann!"

Die Aufforderung "Berechnen Sie 500 US-Dollar auf das Contoso-Reisebudget für das Flugticket von Megan" 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 US-Dollar für das Flugticket von Megan wurde erfolgreich verarbeitet. Das Contoso-Reisebudget verfügt jetzt über 4.500 US-Dollar an verfügbaren Mitteln. Wenn Sie weitere Transaktionen tätigen oder weitere Unterstützung bei Ihrem Budget benötigen, lassen Sie es mich wissen!"

Funktionsweise von Plug-Ins

Ein Sequenzdiagramm, das zeigt, wie ein API-Plug-In funktioniert

  1. Der Benutzer fragt den Agent: "Wie viel bleibt im Budget für die Renovierung der vierten Kaffeelobby übrig?"

  2. Der Agent identifiziert ein budgetbezogenes Plug-In aus seinen 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="".

  3. Der Agent fordert den Benutzer auf, das Senden Fourth Coffee lobby renovation an das Plug-In zuzulassen.

  4. Der Benutzer entscheidet, dass Daten einmal für das Plug-In freigegeben werden, oder er entscheidet, dass Daten für diese Funktion immer freigegeben werden.

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

  6. Der Tokenspeicher gibt ein Token oder einen Schlüssel zurück. Bei Bedarf veranlasst der Tokenspeicher den Agent, den Benutzer zur Anmeldung aufzufordern.

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

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

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

  10. Der Agent sendet die Antwort "Die verfügbaren Mittel, die im Budget für die Renovierung der vierten Kaffeelobby verbleiben, sind 5.000 US-Dollar."

Bestätigen von Aktionen

Copilot fragt den Benutzer vor dem ersten Senden von Daten an ein Plug-In.

Screenshot eines Plug-In-Bestätigungsdialogfelds.

Nachdem der Benutzer die Verbindung bestätigt hat, erfordern MCP-Servertools und -APIs, die nur Daten abrufen, keine Bestätigung, während Tools und APIs, die Daten ändern, dies tun. Plug-In-Entwickler können diese Standardwerte außer Kraft setzen. Weitere Informationen finden Sie unter Bestätigungsaufforderungen für API-Plug-Ins für Microsoft 365 Copilot.

Anpassen der Antwortpräsentation

Copilot generiert Konversationsantworten mithilfe von Daten von MCP-Server- oder API-Antworten. Plug-Ins können diese Antworten anpassen, indem sie Vorlagen für adaptive Karten bereitstellen, um Daten auf strukturierte Weise anzuzeigen.

Screenshot einer Antwort für adaptive Karten von einem API-Plug-In

Optimieren Ihres Plug-Ins für Copilot Orchestrator

Microsoft 365 Copilot können aus den vielen Fähigkeiten ihres Repertoires die richtige Fähigkeit auswählen. Aber wie können Sie sicherstellen, dass Copilot Ihr Plug-In auswäht, um die richtige Qualifikation bereitzustellen?

Die Antwort liegt darin, wie Sie Ihr Plug-In, seine Fähigkeiten und die Parameter für die Initiierung von Skills beschreiben. Geben Sie präzise und genaue Beschreibungen in Ihrem Plug-In-Manifest an, um am besten sicherzustellen, dass der Copilot-Orchestrator weiß, wann und wie Ihr Plug-In aufgerufen werden soll.

Die Art und Weise, wie Sie Ihr Plug-In für den Orchestrator beschreiben, hängt vom Typ des Plug-Ins ab, das Sie erstellen, wie in der folgenden Tabelle beschrieben.

Plug-In-Typ Beschrieben von Weitere Informationen
API-Plug-Ins OpenAPI-Beschreibung Wie man ein OpenAPI-Dokument bei der Erweiterung von Copilot effektiv macht
Copilot Studio-Aktionen Namen und Beschreibungen in Copilot Studio Konversationszuordnung Orchestrieren von Copilot-Themen und -Aktionen mit generativer KI
Nachrichtenerweiterungs-Plug-Ins App-Manifest Richtlinien für Nachrichtenerweiterungs-Plug-Ins

Generieren von Plug-In-Paketen

Es gibt zwei Tools, mit denen Entwickler API-Plug-In-Pakete generieren können.

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

Begrenzungen

Plug-Ins für deklarative Agents

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

Ein Plug-In kann eine unbegrenzte Anzahl von Funktionen enthalten. Alle Funktionen werden zurückgegeben, auch wenn nur eine Funktion übereinstimmt. Aufgrund von Tokenfenstergrenzwerten kann die Qualität der Antworten jedoch beeinträchtigt werden, wenn mehr als 10 Funktionen enthalten sind.

Das Tokenfenster für Eingaben in und Ausgaben eines Plug-Ins schneidet große Inhalte ab. Der Funktionsgrenzwert kann je nach Verbesserung der Modelle und abhängig vom Systemaufwand geändert werden. Optimieren Sie für kleine Tokenlängen, oder entscheiden Sie sich für Erweiterbarkeitsoptionen, mit denen bei Bedarf große Inhalte gestreamt werden können.