Freigeben über


Schreiben effektiver Anweisungen für deklarative Agents mit API-Plug-Ins

Deklarative Agents passen Microsoft 365 Copilot an die spezifischen Anforderungen eines organization an. Wenn Sie deklarative Agents mit dem Microsoft 365 Agents Toolkit erstellen, können Sie Ihrem Agent über API-Plug-Ins Skills hinzufügen. API-Plug-Ins ermöglichen es Ihrem Agent, die Daten eines organization über APIs abzufragen und damit zu interagieren.

Dieser Artikel beschreibt die Agent-Architektur und enthält bewährte Methoden zum Schreiben von Anweisungen für deklarative Agents, die API-Plug-Ins enthalten.

Hauptkomponenten deklarativer Agents mit API-Plug-Ins

Deklarative Agents, die API-Plug-Ins aufrufen, enthalten mehrere Komponenten, die eine effektive Integration und Funktionalität sicherstellen. Wenn Sie diese Architektur verstehen, können Sie Ihren Agent effektiv entwerfen. Die Architektur umfasst die folgenden Komponenten:

  • Anwendungsmanifest : Beschreibt, wie Ihre App konfiguriert ist, und verweist auf das deklarative Agent-Manifest.
  • Deklaratives Agent-Manifest : Definiert die Konfiguration des Agents, einschließlich Anweisungen, Funktionen, Konversationsstarter und Aktionen. Verweist auf das Plug-In-Manifest.
  • Plug-In-Manifest : Beschreibt die Plug-In-Konfiguration, einschließlich verfügbarer Funktionen und eines Verweises auf die OpenAPI-Spezifikation.
  • OpenAPI-Spezifikation : Bietet detaillierte Definitionen von API-Endpunkten, einschließlich Pfaden, Parametern, Anforderungs- und Antwortformaten und Authentifizierung.

Zusammen definieren diese Dateien das Verhalten des Agents und die Interaktion mit der zugrunde liegenden API.

Diagramm der vier Manifestdateien, die jeweils auf den anderen verweisen

Weitere Informationen zu API-Plug-Ins finden Sie unter:

Funktionszuordnung im Plug-In-Manifest

Im Plug-In-Manifest muss jede Funktion einer entsprechenden operationId in der OpenAPI-Spezifikation zugeordnet werden. Dadurch wird sichergestellt, dass der Agent beim Aufrufen einer Funktion (z. B. createTask) weiß, welcher API-Endpunkt aufgerufen werden soll.

Die folgenden Beispiele zeigen die Zuordnung im Plug-In-Manifest und die zugeordnete Funktion in der OpenAPI-Spezifikation.

"functions": [
  {
    "name": "createTask",
    "description": "Creates a new task in the specified task list."
  }
]
paths:
  /me/todo/lists/{listId}/tasks:
    post:
      operationId: createTask
      summary: Create a new task
      description: Creates a new task in the specified task list.
      parameters:

Bewährte Methoden für Agent-Anweisungen

Das Schreiben effektiver Anweisungen ist wichtig, um sicherzustellen, dass deklarative Agents mit API-Plug-Ins erfolgreich sind. Um Ihren Agent zu optimieren, wenden Sie die richtige Funktionszuordnung an, verwenden Sie Verkettung, um umfangreichere Interaktionen zu ermöglichen, und testen und verfeinern Sie iterativ das Verhalten Ihres Agents.

Wenden Sie beim Schreiben von Anweisungen für deklarative Agents mit API-Plug-Ins die folgenden bewährten Methoden an:

  • Vermeiden Sie mehrdeutige oder negative Anweisungen. Kontrastierende oder negative Anweisungen können zu Mehrdeutigkeiten führen und das Modell verwirren. Konzentrieren Sie sich auf die Definition gültiger Anwendungsfälle mit positiven Beispielen. Wenn es wichtig ist, zwischen gültigen und ungültigen Abfragen zu unterscheiden, geben Sie klare Kriterien und Beispiele an, die die erwartete Agentantwort für jede definieren.
  • Beispiele verwenden Stellen Sie klare Beispiele bereit, um das Verhalten des Agents zu steuern. Zum Beispiel:

Benutzereingabe: Wie ist das Wetter in Prag? Agent-Anruf: getWeather(location="Prague") Benutzereingabe: "Brauche ich morgen einen Regenschirm?" Agent-Aufruf: getWeather(location=user_location, forecast="tomorrow")

  • Überprüfen und testen Sie die Anweisungen. Testen Sie Anweisungen in verschiedenen Szenarien, um zu überprüfen, ob der Agent die richtigen Funktionsaufrufe vornimmt. Wenn Sie beim Testen feststellen, dass der Agent Funktionen unerwartet aufruft, überarbeiten Sie die Funktionsbeschreibung in der OpenAPI-Spezifikation, und erläutern Sie die Agentanweisungen, um die Absichtszuordnung zu verbessern.

  • Entwurfsanweisungen für Unterhaltungen mit mehreren Durchläufen. Wenn Sie API-Plug-Ins integrieren, entwerfen Sie Ihre Anweisungen für den Agent, um Konversationen mit mehreren Durchläufen zu verarbeiten.

Wenn die Funktion beispielsweise mehrere Parameter erfordert, weisen Sie den Agent zusätzlich zum Definieren der erforderlichen Parameter in der OpenAPI-Spezifikation an, vor dem API-Aufruf alle Parameter zu sammeln. Dadurch wird sichergestellt, dass der Agent alle erforderlichen Informationen in einer logischen Sequenz sammelt.

Das folgende Beispiel zeigt, wie Sie einen Wetter-Agent für Mehrdurchläufe und den daraus folgenden Agentflow anweisen.

Anweisungen für den Agent Agent-Flow
Wenn der Benutzer nach dem Wetter fragt:

Fragen Sie den Benutzer nach dem Standort.
– Fragen Sie den Benutzer nach dem Vorhersagetag.
– Fragen Sie den Benutzer nach dem Einheitensystem.
– Rufen Sie getWeather nur auf, wenn Sie alle Werte erfassen.
Benutzer: "Wie ist das Wetter?"
Agent: "Was ist Ihr Standort?"
Benutzer: "London"
Agent: "Bevorzugen Sie die Wetterinformationen in Metrischen oder imperialen Einheiten?"
User: "Metric"
Agent: "Benötigen Sie das Wetter für heute oder Vorhersage für morgen?"
User: "Today"
Agent: "I will check the weather for London for today"
Agent calls: getWeather(location="London", forecast="today", system="Metric")

Allgemeine bewährte Methoden für Agent-Anweisungen finden Sie unter Schreiben effektiver Anweisungen.

Verketten von Funktionsaufrufen in API-Plug-Ins

Durch verkettende Funktionsaufrufe können deklarative Agents mehrere API-Aktionen in einem nahtlosen Flow kombinieren. In den folgenden Abschnitten werden allgemeine Muster und das Schreiben von Anweisungen für die einzelnen Muster beschrieben.

Verketten von Funktionsaufrufen mit Ausgabe als Eingabeparameter

Verwenden Sie das Ergebnis eines API-Aufrufs als Eingabe für einen anderen. Dies ist nützlich, wenn das Ergebnis der ersten Funktion benötigt wird, um die zweite Funktion auszuführen. Dies kann plug-ins-übergreifend funktionieren.

Im folgenden Beispiel erstellt ein deklarativer Agent mit Wetter-API und Aufgaben-API eine Aufgabenaufgabe mit Daten aus der Wettervorhersage.

Anweisungen für den Agent Agent-Flow
Verwenden Sie zum Abrufen des Wetters immer die getWeather-Aktion , erstellen Sie dann eine Aufgabe mit dem Titel "Temperatur in", und fügen Sie dem Aufgabentitel die im Wetter erwähnte Position und Temperatur hinzu. Benutzer: "Get the weather in Prag"
Agent: Calls getWeather (location="Prague", forecast="today")
Agent: Verwendet die Daten aus dem ersten Aufruf, um eine Aufgabenaufgabe zu erstellen createTask (title ="{weather output}")

Verkettung basierend auf dem Konversationsverlauf innerhalb eines Agents

Wenn Sie die Verkettung basierend auf dem Konversationsverlauf verwenden, verwendet der Agent vorherige Antworten, um Folgeaktionen zu verarbeiten. Bei diesem Ansatz wird der Unterhaltungsverlauf verwendet, um den Kontext beizubehalten.

Im folgenden Beispiel löscht ein Agent eine To-Do anhand des Namens.

Anweisungen für den Agent Agent-Flow
1. Wenn der Benutzer darum bittet, alle Aufgaben aufzulisten, rufen Sie getTasks auf, um die Liste der Aufgaben mit Titel und ID abzurufen.
2. Wenn der Benutzer nach dem Auflisten der Aufgaben darum bittet, eine Aufgabe zu löschen, verwenden Sie die ID aus der Antwort, um deleteTask aufzurufen.
Benutzer: "Alle Aufgaben im Aufgabenordner anzeigen?"
Agent: alle getTasks (folderId="Tasks") und zeigt alle Aufgaben mit IDs an.
Benutzer: "TaskMaster Pro to-do löschen"
-Agent: Verwendet die Informationen aus dem Unterhaltungsverlauf, um die ID für die Aufgabe zu finden, und löscht die Aufgabe, indem deleteTask aufgerufen wird.

Verketten mit SharePoint-Wissen

Durch verkettende API-Aufrufe kann ein Agent Wissensquellen und Aktionen kombinieren, um komplexere Workflows zu entwerfen.

Im folgenden Beispiel ruft ein Agent projekt- status Daten aus SharePoint ab und erstellt entsprechende Aufgaben in Microsoft To-Do zur Nachverfolgung.

Anweisungen für den Agent Agent-Flow
– Verwenden Sie SharePoint Knowledge ProjectDeadlines, um Projektstatus abzurufen.
– Erstellen Sie immer eine To-Do für jedes Projekt, indem Sie status Für den Titel aktualisieren.
Benutzer: "Können Sie ein Update für die status aller Projekte bereitstellen?"
Agent: Pullt projekt status Daten aus SharePoint und verwendet dann createTask, um einen Aufgabentask für jedes Projekt zu generieren.

Verkettung mit Codeinterpreter

Es ist auch möglich, API-Aufrufe zu verketten und zusätzliche Funktionen wie einen Codeinterpreter zu integrieren. Dadurch kann ein Agent API-Ausgaben dynamisch verarbeiten, um erweiterte Workflows zu ermöglichen.

Im folgenden Beispiel erstellt ein Agent ein Diagramm basierend auf den Daten in Aufgabenaufgaben.

Anweisungen für den Agent Agent-Flow
Wenn der Benutzer aufgefordert wird, alle Aufgaben aufzulisten, rufen Sie getTasks auf, um die Liste der Aufgaben mit Titel und ID abzurufen, und zeichnen Sie auch das Diagramm für die Ausgabe. Benutzer: "Alle Aufgaben in Aufgaben abrufen"
Agent: Ruft getTasks (folderId="Tasks") auf und zeigt alle Aufgaben mit IDs an.
Agent: Ruft den Codeinterpreter auf, um die Diagrammgenerierung basierend auf der Ausgabe des ersten Aufrufs zu initiieren.

In diesem Beispiel werden auch mehrere Aktionen gleichzeitig ausgeführt. Dies ist nützlich, um eine Reihe verwandter Aktionen zu initiieren, die nicht mehrere Benutzereingaben erfordern.