Freigeben über


API-Plug-In-Manifestschema 2.2 für Microsoft 365 Copilot

API-Plug-Ins ermöglichen Microsoft 365 Copilot die Interaktion mit REST-APIs, die in einer OpenAPI-Beschreibung beschrieben werden. Die OpenAPI-Beschreibung in einem API-Plug-In beschreibt die REST-APIs, mit denen Copilot interagieren kann. Darüber hinaus enthält ein API-Plug-In eine Plug-In-Manifestdatei, die Metadaten zum Plug-In bereitstellt, z. B. Name, Beschreibung und Version des Plug-Ins. Das Plug-In-Manifest enthält auch Informationen zu den Funktionen des Plug-Ins, z. B. zu den unterstützten APIs und zu den Vorgängen, die es ausführen kann.

Im folgenden Artikel wird das 2.2-Schema beschrieben, das von API-Plug-In-Manifestdateien verwendet wird. Weitere Informationen zu API-Plug-Ins finden Sie unter API-Plug-Ins für Microsoft 365 Copilot.

Änderungen gegenüber der vorherigen Version

Mit dieser Schemaversion werden die folgenden Änderungen gegenüber Version 2.1 eingeführt.

  • security_info Die -Eigenschaft wurde dem Funktionsfunktionsobjekt hinzugefügt. Mit dieser Eigenschaft können Sie das Verhalten des Plug-Ins nachweisen, um die Risiken des Aufrufs der Funktion zu bewerten.
  • Die veraltete localization Eigenschaft wurde aus dem Plug-In-Capabilities-Objekt entfernt. Manifeste, die mit dem Teams-Toolkit mithilfe des 2.1-Schemas generiert wurden, enthielten die veraltete localization Eigenschaft. Manifeste, die das 2.2-Schema verwenden, schlagen bei der Überprüfung fehl, wenn diese Eigenschaft enthalten ist.

JSON-Schema

Das in diesem Dokument beschriebene Schema finden Sie hier im JSON-Schemaformat.

Konventionen

Relative Verweise in URLs

Sofern nicht anders angegeben, können alle Eigenschaften, die URLs sind, relative Verweise sein. Relative Verweise im Manifestdokument sind relativ zur Position des Manifestdokuments.

Zeichenfolgenlänge

Sofern nicht anders angegeben, SOLLTEN alle Zeichenfolgeneigenschaften auf 4.000 Zeichen beschränkt sein. Diese Zeichenfolgenlänge verleiht keine akzeptable Größe für das gesamte Dokument. Implementierungen eine frei, ihre eigenen praktischen Grenzen für manifeste Länge aufzuerlegen.

Nicht erkannte Eigenschaften

Json-Objekte, die in diesem Dokument definiert sind, unterstützen nur die beschriebenen Eigenschaften. Nicht erkannte Eigenschaften in einem JSON-Objekt SOLLTEN das gesamte Dokument ungültig machen.

Lokalisierung von Zeichenfolgen

Lokalisierbare Zeichenfolgen können einen Lokalisierungsschlüssel anstelle eines Literalwerts verwenden. Die Syntax ist [[key_name]], wobei key_name der Schlüsselname in der localizationKeys -Eigenschaft in Ihren Lokalisierungsdateien ist. Ausführliche Informationen zur Lokalisierung finden Sie unter Lokalisieren Ihres Agents.

Beispiel für lokalisierte Zeichenfolgen

{
    "schema_version": "v2.2",
    "name_for_human": "[[plugin_name]]",
    "description_for_human": "[[plugin_description]]"
}

Plug-In-Manifestobjekt

Der Stamm des Plug-In-Manifestdokuments ist ein JSON-Objekt, das Eigenschaften enthält, die das Plug-In beschreiben.

Das Plug-In-Manifestobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
schema_version String Erforderlich. Die Schemaversion. Frühere Versionen sind v1 und v2. Muss auf v2.2 festgelegt werden.
name_for_human String Erforderlich. Ein kurzer, für Menschen lesbarer Name für das Plug-In. Es MUSS mindestens ein Zeichen enthalten, das nicht weiß ist. Zeichen, die über 20 hinausgehen, können ignoriert werden. Diese Eigenschaft kann lokalisiert werden.
namespace Zeichenfolge Veraltet. Optional.
description_for_model Zeichenfolge Optional. Die Beschreibung für das Plug-In, das für das Modell bereitgestellt wird. Diese Beschreibung sollte beschreiben, wofür das Plug-In vorgesehen ist und unter welchen Umständen seine Funktionen relevant sind. Zeichen, die über 2048 hinausgehen, können ignoriert werden. Diese Eigenschaft kann lokalisiert werden.
description_for_human String Erforderlich. Eine lesbare Beschreibung des Plug-Ins. Zeichen, die über 100 hinausgehen, können ignoriert werden. Diese Eigenschaft kann lokalisiert werden.
logo_url Zeichenfolge Optional. Eine URL, die zum Abrufen eines Logos verwendet wird, das möglicherweise vom Orchestrator verwendet wird. Implementierungen KÖNNEN alternative Methoden bereitstellen, um Logos bereitzustellen, die ihren visuellen Anforderungen entsprechen. Diese Eigenschaft kann lokalisiert werden.
contact_email Zeichenfolge Optional. Eine E-Mail-Adresse eines Kontakts für Sicherheit/Moderation, Support und Deaktivierung.
legal_info_url Zeichenfolge Optional. Eine absolute URL, die ein Dokument mit den Nutzungsbedingungen für das Plug-In sucht. Diese Eigenschaft kann lokalisiert werden.
privacy_policy_url Zeichenfolge Optional. Eine absolute URL, die ein Dokument mit der Datenschutzrichtlinie für das Plug-In sucht. Diese Eigenschaft kann lokalisiert werden.
functions Array des Function-Objekts Optional. Ein Satz von Funktionsobjekten, die die für das Plug-In verfügbaren Funktionen beschreiben. Jeder Funktionsobjektname MUSS innerhalb des Arrays eindeutig sein. Die Reihenfolge des Arrays ist nicht signifikant. Wenn die functions Eigenschaft nicht vorhanden ist und eine OpenAPI-Runtime vorhanden ist, werden die Funktionen aus den OpenAPI-Vorgängen abgeleitet.
runtimes Array des OpenAPI-Laufzeitobjekts Optional. Ein Satz von Laufzeitobjekten, die die vom Plug-In verwendeten Runtimes beschreiben.
capabilities Plug-In-Funktionen-Objekt Optional. Beschreibt die Funktionen des Plug-Ins.

Funktionsobjekt

Informationen zur Interaktion des Modells mit einer Funktion.

Das Funktionsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
id Zeichenfolge Optional.
name String Erforderlich. Eine Zeichenfolge, die diese Funktion eindeutig identifiziert. Laufzeitobjekte können auf diesen Bezeichner verweisen, um die Laufzeit an die Funktion zu binden. Wenn die Funktion an eine OpenAPI-Runtime gebunden ist, muss der Wert mit einem operationId Wert in der OpenAPI-Beschreibung übereinstimmen. Der Wert muss mit dem ^[A-Za-z0-9_]+$ regulären Ausdruck übereinstimmen.
description Zeichenfolge Optional. Eine Beschreibung, die besser auf das Modell zugeschnitten ist, z. B. Überlegungen zur Tokenkontextlänge oder Schlüsselwort (keyword) Verwendung für eine verbesserte Plug-In-Eingabeaufforderung.
parameters Funktionsparameterobjekt Optional. Ein -Objekt, das Eigenschaften enthält, die die Parameter einer Funktion laufzeitunabhängig beschreiben. Sie spiegelt die Form von json-schema wieder, unterstützt jedoch nur eine kleine Teilmenge der JSON-Schemafunktionen. Wenn die parameters Eigenschaft nicht vorhanden ist, verwenden Funktionen, die von einem Laufzeitobjekt vom Typ OpenApi beschrieben werden, die OpenAPI-Beschreibung, um die Parameter zu bestimmen. Jedes Element im JSON-Objekt ist ein Funktionsparameterobjekt, das die Semantik des Parameters beschreibt.
returns Rückgabeobjekt OR Rich-Rückgabeobjekt Optional. Beschreibt die Semantik des von der Funktion zurückgegebenen Werts.
states Funktionsstatusobjekt Optional. Definiert Zustandsobjekte für Orchestratorzustände.
capabilities Funktionsfunktionsobjekt Optional. Enthält eine Sammlung von Daten, die zum Konfigurieren optionaler Funktionen des Orchestrators beim Aufrufen der Funktion verwendet werden.

Funktionsobjektbeispiel

{
  "functions": [
    {
      "name": "add_todo",
      "description": "Adds a new Todo",
      "parameters": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          }
        },
        "required": [
          "description"
        ]
      },
      "returns": {
        "type": "string"
      }
    }
  ]
}

Funktionsparameterobjekt

Ein -Objekt, das verwendet wird, um den Satz von Parametern zu identifizieren, die an die Funktion übergeben werden können. Dieses Objekt ist so strukturiert, dass es die Form eines JSON-Schemaobjekts Spiegel, unterstützt aber nur eine Teilmenge von JSON-Schemaschlüsselwörtern.

Das Funktionsparameterobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
type Zeichenfolge Optional. Der JSON-Schematyp. Muss auf object festgelegt werden.
properties Eigenschaftenobjekt für Funktionsparameter Erforderlich. Ein -Objekt, das parameternamen ihren Definitionen zuordnet.
required Array aus Zeichenfolgen Optional. Die Namen von Eigenschaften, die erforderliche Parameter sind. Im Gegensatz zum JSON-Schema müssen die Werte in diesem Array mit den in der properties -Eigenschaft aufgeführten Namen übereinstimmen.
Beispiel für Funktionsparameterobjekt
{
  "type": "object",
  "properties": {
    "param1": {
      "type": "string"
    },
    "param2": {
      "type": "number"
    }
  },
  "required": [
    "param1"
  ]
}

Eigenschaftenobjekt für Funktionsparameter

Ein -Objekt, das parameternamen ihren Definitionen zuordnet.

Das Eigenschaftenobjekt der Funktionsparameter enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
Namensabgleich ^[A-Za-z0-9_]+$ Funktionsparameterobjekt Optional. Die Parameterdefinition, die dem Parameter entspricht, der dem Eigenschaftennamen entspricht.

Funktionsparameterobjekt

Ein -Objekt, das die Semantik eines Funktionsparameters beschreibt.

Das Funktionsparameterobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
type String Erforderlich. Gibt den Typ des Parameters an. Mögliche Werte: string, array, boolean, integer, number.
items Funktionsparameterobjekt Optional. Ein Funktionsparameterobjekt, das ein einzelnes Element in einem Array beschreibt. DARF nur vorhanden sein, wenn type ist array.
enum Array aus Zeichenfolgen Optional. Ein Array gültiger Werte für diesen Parameter. DARF nur vorhanden sein, wenn type ist string.
description Zeichenfolge Optional. Eine Beschreibung des Parameters.
default Array, Boolean, String, Number, Integer Optional. Ein Wert des von der -Eigenschaft angegebenen Typs, der type den Wert angibt, den die API verwendet, wenn kein Wert für einen optionalen Parameter angegeben wird.
Beispiel für Funktionsparameter
{
  "type": "string",
  "description": "The color of the item",
  "enum": [
    "green",
    "blue",
    "orange"
  ]
}

Rückgabeobjekt

Enthält die Semantik des von der Funktion zurückgegebenen Werts.

Das Rückgabeobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
type String Erforderlich. Gibt den Typ des von der API zurückgegebenen Werts an. Mögliche Werte sind: string.
description Zeichenfolge Optional. Eine Beschreibung des von der API zurückgegebenen Werts.

Rich-Rückgabeobjekt

Gibt an, dass die Funktion eine Antwort zurückgibt, die mit dem Rich Responses-Protokoll kompatibel ist.

Das Rich-Rückgabeobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
$ref String Erforderlich. Muss auf https://copilot.microsoft.com/schemas/rich-response-v1.0.json festgelegt werden.

Funktionsstatusobjekt

Definiert Zustandsobjekte für Orchestratorzustände.

Das Funktionszustandsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
reasoning State-Objekt Optional. Der Zustand, in dem das Modell Funktionen aufrufen und Berechnungen ausführen kann.
responding State-Objekt Optional. Der Zustand, in dem das Modell Text generieren kann, der dem Benutzer angezeigt wird. Das Modell kann keine Funktionen im Antwortzustand aufrufen.
disengaging State-Objekt Optional.

State-Objekt

Enthält spezifische Anweisungen dafür, wann eine Funktion in einem bestimmten Orchestratorzustand aufgerufen wird.

Das Zustandsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
description Zeichenfolge Optional. Beschreibt den Zweck einer Funktion, wenn sie in einem bestimmten Orchestratorzustand verwendet wird.
instructions Array, Zeichenfolge Optional. Eine Zeichenfolge oder ein Array von Zeichenfolgen, die verwendet werden, um dem Orchestrator Anweisungen zur Verwendung dieser Funktion in einem bestimmten Orchestratorzustand bereitzustellen. Die Angabe einer einzelnen Zeichenfolge gibt die Absicht an, einen vollständigen Satz von Anweisungen bereitzustellen, die alle integrierten Funktionsaufforderungen außer Kraft setzen würden. Die Angabe eines Arrays von Zeichenfolgen gibt an, dass der integrierte Eingabeaufforderungsmechanismus für Funktionen erweitert werden soll.
examples Array, Zeichenfolge Optional. Eine Zeichenfolge oder ein Array von Zeichenfolgen, die zum Bereitstellen von Beispielen für den Orchestrator verwendet werden, wie diese Funktion aufgerufen werden kann.
State-Objektbeispiel
{
  "functions": [
    {
      "name": "searchEmails",
      "description": "search for Emails from using 3S search Service",
      "states": {
        "reasoning": {
          "description": "\n# `searchEmails(**params) -> str` returns the emails from user's inbox based on search query.",
          "instructions": [
            "Examine the output of `searchEmails(**params) -> str`.",
            "Do not include any information that is not present in the JSON results.",
            "Exclude any irrelevant data from the JSON results",
            "Determine if the response contains an error field.",
            "If an error is present, provide the error code and error message extracted from the response JSON.",
            "If there is no error, extract and include as much relevant information as possible from the JSON result to meet the user's needs."
          ],
          "examples": []
        }
      }
    }
  ]
}

Funktionsfunktionsobjekt

Enthält eine Sammlung von Daten, die zum Konfigurieren optionaler Funktionen des Orchestrators beim Aufrufen der Funktion verwendet werden.

Das Funktionsfunktionsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
confirmation Confirmation-Objekt Optional. Beschreibt ein Bestätigungsdialogfeld, das dem Benutzer vor dem Aufrufen der Funktion angezeigt werden soll.
response_semantics Antwortsemantikobjekt Optional. Beschreibt, wie der Orchestrator die Antwortnutzlast interpretieren und ein visuelles Rendering bereitstellen kann.
security_info Sicherheitsinformationsobjekt Optional. Enthält Nachweise über das Verhalten des Plug-Ins, um die Risiken des Aufrufs der Funktion zu bewerten. Wenn diese Eigenschaft nicht angegeben wird, kann die Funktion nicht mit anderen Plug-Ins oder Funktionen des enthaltenden Agents interagieren.

Confirmation-Objekt

Beschreibt, wie der Orchestrator den Benutzer vor dem Aufrufen einer Funktion zur Bestätigung auffordert.

Das Bestätigungsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
type Zeichenfolge Optional. Gibt den Typ der Bestätigung an. Mögliche Werte sind: None und AdaptiveCard.
title Zeichenfolge Optional. Der Titel des Bestätigungsdialogfelds. Diese Eigenschaft kann lokalisiert werden.
body Zeichenfolge Optional. Der Text des Bestätigungsdialogfelds. Diese Eigenschaft kann lokalisiert werden.

Antwortsemantikobjekt

Enthält Informationen, um die Semantik der Antwortnutzlast zu identifizieren und das Rendern dieser Informationen in einer umfassenden visuellen Umgebung mithilfe adaptiver Karten zu ermöglichen.

Das Antwortsemantikobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
data_path String Erforderlich. Eine JSONPath-RFC9535 Abfrage, die einen Satz von Elementen aus der Funktionsantwort identifiziert, die mithilfe der in den einzelnen Elementen angegebenen Vorlage gerendert werden sollen.
properties Eigenschaftenobjekt der Antwortsemantik Optional. Ermöglicht die Zuordnung von JSONPath-Abfragen zu bekannten Datenelementen. Jede JSONPath-Abfrage ist relativ zu einem Ergebniswert.
static_template Object Optional. Ein JSON-Objekt, das dem Adaptive Kartenschema und der Vorlagensprache entspricht. Diese adaptive Karte instance wird verwendet, um ein Ergebnis aus der Plug-In-Antwort zu rendern. Dieser Wert wird verwendet, wenn nicht template_selector vorhanden ist oder nicht in eine adaptive Karte aufgelöst werden kann.
oauth_card_path Zeichenfolge Optional.
Beispiel für eine statische Vorlage
{
  "functions": {
    "capabilities": {
      "response_semantics": {
        "data_path": "$.resources",
        "properties": {
          "title": "$.name",
          "subtitle": "$.location",
          "url": "$.href",
          "information_protection_label": "$.ipLabel"
        },
        "static_template": {
          "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
          "type": "AdaptiveCard",
          "version": "1.5",
          "body": [
            {
              "type": "TextBlock",
              "text": "${name}",
              "weight": "Bolder"
            },
            {
              "type": "TextBlock",
              "text": "${description}"
            }
          ],
          "action": [
            {
              "type": "Action.OpenUrl",
              "title": "View",
              "text": "${href}"
            }
          ]
        }
      }
    }
  }
}
Beispiel für eine dynamische Vorlage
{
  "functions": {
    "capabilities": {
      "response_semantics": {
        "data_path": "$.attachments",
        "properties": {
          "title": "$.title",
          "subtitle": "$.subtitle",
          "url": "$.url",
          "thumbnail_url": "$.thumbnailUrl",
          "template_selector": "$.template"
        }
      }
    }
  }
}

Eigenschaftenobjekt der Antwortsemantik

Ermöglicht die Zuordnung von JSONPath-Abfragen zu bekannten Datenelementen. Jede JSONPath-Abfrage ist relativ zu einem Ergebniswert.

Das Eigenschaftenobjekt der Antwortsemantik enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
title Zeichenfolge Optional. Titel eines Zitats für das Ergebnis.
subtitle Zeichenfolge Optional. Untertitel eines Zitats für das Ergebnis.
url Zeichenfolge Optional. URL eines Zitats für das Ergebnis.
thumbnail_url Zeichenfolge Optional. URL eines Miniaturbilds für das Ergebnis.
information_protection_label Zeichenfolge Optional. Datenempfindlichkeitsindikator des Ergebnisinhalts.
template_selector Zeichenfolge Optional. Ein JSONPath-Ausdruck für eine adaptive Karte instance zum Rendern des Ergebnisses verwendet werden.

Sicherheitsinformationsobjekt

Enthält Informationen, die verwendet werden, um das relative Risiko des Aufrufens der Funktion zu bestimmen.

Das Sicherheitsinformationsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
data_handling Array aus Zeichenfolgen Erforderlich. Ein Array von Zeichenfolgen, die das Datenverarbeitungsverhalten der Funktion beschreiben. Gültige Werte sind GetPublicData, GetPrivateData, DataTransform, DataExportund ResourceStateUpdate.
Datenverarbeitungswerte
Wert Beschreibung Beispiel
GetPublicData Gibt an, dass die Funktion Daten aus einer externen Quelle abruft, die keine Authentifizierung erfordert. Eine Funktion, die einen Dienstaufruf zum Abrufen von Daten von einer öffentlichen Website vornimmt.
GetPrivateData Gibt an, dass die Funktion Daten aus einer externen Quelle abruft, die eine Authentifizierung erfordert, oder aus der aktuellen Anwendung des Benutzers. Eine Funktion, die Daten aus einer privaten Datenbank oder aus dem aktuell geöffneten Dokument des Benutzers abruft.
DataTransform Gibt an, dass die Funktion nur eine Ausgabe basierend auf der Eingabe zurückgibt, ohne dass neue Daten eingeführt oder eine Ressourcenaktualisierung verursacht wird. Eine Funktion, die eine Zahl in ein Wort konvertiert oder ein Datum formatiert.
DataExport Gibt an, dass die Funktion Daten an einen Speicherort außerhalb der Funktion selbst sendet oder schreibt. Eine Funktion, die Daten in einer lokalen oder Clouddatei speichert.
ResourceStateUpdate Gibt an, dass sich die Funktion auf eine Ressource auswirkt, indem sie eine Transaktion initiiert, einen Prozess in der realen Welt ändert, Berechtigungen gewährt oder verweigert oder eine andere Aktion ausführt, die eine explizite Bestätigung durch den Benutzer erfordern würde. Eine Funktion, die ein Hotelzimmer bucht oder den Zustand eines Arbeitselements von in activeresolvedändert.

Hinweis

Plug-In-Manifeste, die den DataExport Wert verwenden, können bei der Überprüfung fehlschlagen, wenn sie versuchen, das Plug-In zu installieren. Dies ist vorübergehend und wird in Kürze behoben werden.

OpenAPI-Laufzeitobjekt

Beschreibt, wie das Plug-In OpenAPI-Funktionen aufruft.

Das OpenAPI-Laufzeitobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
type String Erforderlich. Identifiziert diese Runtime als OpenAPI-Runtime. Muss auf OpenApi festgelegt werden.
auth Laufzeitauthentifizierungsobjekt Erforderlich. Authentifizierungsinformationen, die zum Aufrufen der Runtime erforderlich sind.
run_for_functions Array aus Zeichenfolgen Optional. Die Namen der Funktionen, die in dieser Laufzeit verfügbar sind. Wenn diese Eigenschaft nicht angegeben wird, sind alle von der Runtime beschriebenen Funktionen verfügbar. Bereitgestellte Zeichenfolgenwerte können Wildcards enthalten. Mehr als eine Laufzeit DARF DIE Unterstützung für dieselbe Funktion nicht implizit oder explizit deklarieren.
spec OpenAPI-Spezifikationsobjekt Erforderlich. Enthält die OpenAPI-Informationen, die zum Aufrufen der Runtime erforderlich sind.

OpenAPI-Spezifikationsobjekt

Enthält die OpenAPI-Informationen, die zum Aufrufen der Runtime erforderlich sind.

Das OpenAPI-Spezifikationsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
url Zeichenfolge Optional. Die URL zum Abrufen der OpenAPI-Spezifikation, die mit einer GET-Anforderung aufgerufen wird. Dieser Member ist erforderlich, es sei denn api_description , es ist vorhanden.
api_description Zeichenfolge Optional. Eine Zeichenfolge, die eine OpenAPI-Beschreibung enthält. Wenn dieses Element vorhanden ist, url ist nicht erforderlich und wird ignoriert, falls vorhanden.
progress_style Zeichenfolge Optional. Der Statusstil, der verwendet wird, um den Fortschritt der Funktion anzuzeigen. Mögliche Werte: None, ShowUsage, ShowUsageWithInput, ShowUsageWithInputAndOutput
OpenAPI-Spezifikationsobjektbeispiel
{
  "runtimes":
  [
    {  
      "type": "OpenApi",
      "auth": {
        "type": "None"
      },
      "spec": {
        "url": "https://example.org/api/openapi.yaml",  
      }
    }
  ]
}  

Laufzeitauthentifizierungsobjekt

Enthält Informationen, die vom Plug-In zur Authentifizierung bei der Runtime verwendet werden.

Das Laufzeitauthentifizierungsobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
type Zeichenfolge Optional. Gibt den Typ der Authentifizierung an, die zum Aufrufen einer Funktion erforderlich ist. Mögliche Werte sind: None, OAuthPluginVault und ApiKeyPluginVault.
reference_id Zeichenfolge Optional. Ein Wert, der verwendet wird, wenn type oder ApiKeyPluginVaultistOAuthPluginVault. Der reference_id Wert wird unabhängig voneinander abgerufen, wenn die erforderlichen Authentifizierungskonfigurationswerte bereitgestellt werden. Dieser Mechanismus ist vorhanden, um das Speichern von Geheimniswerten im Plug-In-Manifest zu verhindern.
Beispiel für ein Laufzeitauthentifizierungsobjekt
{
  "type": "OAuthPluginVault",
  "reference_id": "0123456-abcdef"
}

Plug-In-Funktionen-Objekt

Beschreibt die Funktionen des Plug-Ins.

Das Plug-In-Capabilities-Objekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
conversation_starters Array des Conversation-Starterobjekts Optional. Unterhaltungsstarter, die dem Benutzer angezeigt werden können, um Vorschläge zum Aufrufen des Plug-Ins zu erhalten.

Conversation Starter-Objekt

Ein Beispiel für eine Frage, die das Plug-In beantworten kann.

Das Unterhaltungsstartobjekt enthält die folgenden Eigenschaften.

Eigenschaft Typ Beschreibung
text String Erforderlich. Der Text des Unterhaltungsstarts. Diese Eigenschaft kann lokalisiert werden.
title Zeichenfolge Optional. Der Titel des Konversationsstarts. Diese Eigenschaft kann lokalisiert werden.
Conversation Starter-Objektbeispiel
{
  "conversation_starters": [
    {
      "title": "Developer tasks",
      "text": "What issues are assigned to me?"
    }
  ]
}

Manifestbeispiel

Hier sehen Sie ein Beispiel für eine Plug-In-Manifestdatei, die die meisten der im Artikel beschriebenen Manifesteigenschaften und Objekteigenschaften verwendet:

{
  "schema_version": "v2.2",
  "name_for_human": "Contoso Real Estate",
  "description_for_human": "Find up-to-date, detailed real estate properties for sale on the market",
  "description_for_model": "Plugin for finding properties for sale. Use it whenever a user asks about real estate properties for sale on the market. This plugin can be used to search for properties in a particular city, and with a given number of bedrooms, bathrooms, and amenities.",
  "capabilities": {
    "conversation_starters": [
      {
        "title": "Available listings",
        "text": "What listings are available in my area?"
      }
    ]
  },
  "functions": [
    {
      "name": "getListings",
      "description": "Get a list of properties matching the specified criteria",
      "parameters": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "The city to search properties in"
          },
          "bedrooms": {
            "type": "number",
            "description": "The number of bedrooms the property should have"
          },
          "bathrooms": {
            "type": "number",
            "description": "The number of bathrooms the property should have"
          },
          "amenities": {
            "type": "array",
            "description": "The list of amenities the property should have",
            "items": {
              "type": "string",
              "description": "One amenity the property should have",
              "enum": [
                "air conditioning",
                "balcony",
                "dishwasher",
                "elevator",
                "fireplace",
                "furniture",
                "garden",
                "gym",
                "heating",
                "jacuzzi",
                "laundry room",
                "microwave",
                "no furniture",
                "parking",
                "patio",
                "sauna",
                "swimming pool",
                "terrace",
                "wi-fi"
              ]
            }
          }
        }
      },
      "returns": {
        "type": "string",
        "description": "A list of properties"
      },
      "states": {
        "reasoning": {
          "description": "`getListings` returns a list of real estate properties for sale based on the specified criteria.",
          "instructions": [
            "If the user mentions a city in their question, only search in that city by using the city parameter.",
            "If the user asks for properties with things like parking space, heating, jacuzzi, or similar amenities, use the amenities parameter to filter the results.",
            "Only use the list of amenities provided in the amenities parameter enum. If the user asked for an amenity that is not in the list, find the closest match from the list, or ignore it if no match can be found.",
            "Determine if the response contains an error field.",
            "If an error is present, provide the error code and error message from the JSON response to the user.",
            "If there is no error, extract and include as much relevant information as possible from the JSON response to meet the users needs."
          ]
        }
      },
      "capabilities": {
        "security_info": {
          "data_handling": [
            "GetPublicData",
            "GetPrivateData"
          ]
        }
      }
    },
    {
      "name": "saveSearch",
      "description": "Save a search for properties for sale",
      "parameters": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "The city to search in"
          },
          "bedrooms": {
            "type": "number",
            "description": "The number of bedrooms"
          }
        },
        "required": [
          "city"
        ]
      },
      "returns": {
        "type": "string",
        "description": "The unique ID for the saved search"
      },
      "states": {
        "responding": {
          "description": "`saveSearch` returns a unique ID that identifies the newly saved search.",
          "instructions": [
            "Examine the output of the `saveSearch` function.",
            "Extract the unique ID integer from the output and include it in your response to the user."
          ]
        }
      },
      "capabilities": {
        "security_info": {
          "data_handling": [
            "ResourceStateUpdate"
          ]
        }
      }
    },
    {
      "name": "deleteSavedSearch",
      "description": "Delete a previously saved search",
      "parameters": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique ID of the saved search"
          }
        },
        "required": [
          "id"
        ]
      },
      "returns": {
        "type": "string",
        "description": "True if the saved search was deleted, false otherwise"
      },
      "capabilities": {
        "security_info": {
          "data_handling": [
            "ResourceStateUpdate"
          ]
        }
      }
    }
  ],
  "runtimes": [
    {
      "type": "OpenApi",
      "auth": {
        "type": "none"
      },
      "run_for_functions": [
        "getListings",
        "saveSearch",
        "deleteSavedSearch"
      ],
      "spec": {
        "url": "http://contoso.com/openapi.yaml"
      }
    }
  ],
  "logo_url": "http://contoso.com/logo.png",
  "contact_email": "contact@contoso.com",
  "legal_info_url": "https://contoso.com/legal/"
}

Siehe auch