Rückblick: Was ist ein Agent?
„Agenten sind autonome LLM-basierte Prozesse, die mit externen Systemen interagieren können, um ein übergeordnetes Ziel zu erreichen.“
Agenten sind LLM-basierte Systeme, die auf Grundlage der Anfrage des Benutzers und des Szenarios, das vom LLM des Agentensystems bestimmt wird, Aktionen ausführen können. Ein minimaler Agent besteht aus 1. einer LLM-Komponente und 2. Tools, die der Agent verwenden kann. Stellen Sie sich den Agenten als einen Roboter mit einem Gehirn (LLM) und Roboterarmen (Tools) vor. Basierend auf der Anfrage kann das Gehirn „entscheiden“, etwas zu tun, und dann führt der Arm die vom Gehirn beschlossene Aktion aus. Je nach Szenario kann das Gehirn dann entscheiden, ob weitere Aktionen erforderlich sind oder ob die Anfrage abgeschlossen ist.
Der Prozess eines Agenten
Wir haben zuvor das Pipeline-Muster „Agent Driver und Agent Worker“ vorgestellt, das jeden einzelnen Vorgang, der in einem Agent-Prozess auftreten würde, klar definiert. Der Prozess des Musters lässt sich wie folgt beschreiben
Agent-Treiber

- Definieren Sie die Anweisung des Agenten. (Systemaufforderung)
- Formatieren Sie die Anfrage des Benutzers in eine Konversation. (Nachrichten-Array)
- Legen Sie die Tools fest, die dem Agenten zur Verfügung gestellt werden sollen.
- Senden Sie alle oben genannten Informationen in eine „Schleife“ und lassen Sie den Agent-Worker laufen, bis der Prozess abgeschlossen ist.
Agent-Mitarbeiter

- Rufen Sie den LLM mit den Anweisungen, der Konversation und den Werkzeugdefinitionen auf.
- LLM entscheidet…
- Wenn die Anfrage abgeschlossen werden kann, beenden Sie das Gespräch und fahren Sie mit Schritt 7 fort.
- Wenn Werkzeugaufrufe erforderlich sind, fahren Sie mit Schritt 3 fort.
- Rufen Sie die Werkzeuge.
- Formatieren Sie das Ergebnis des Tools.
- Fügen Sie die Ergebnisse des Tools zur Unterhaltung hinzu.
- Zurück zu Schritt 1.
- Die Anfrage ist abgeschlossen, der Agent antwortet.
Die Begründung
Aus der Agent Driver- und der Agent Worker-Pipeline lässt sich folgende Beobachtung ableiten:
- Die Treiber-Pipeline übernimmt die gesamte „Konfiguration“ des Agenten.
- Die Worker-Pipeline übernimmt den „Betrieb“ des Agenten.
Stellen Sie sich nun Folgendes vor:
Wenn wir die „Agentenoperation“ in einem einzigen Modul zusammenfassen könnten, sodass wir Agenten einfach durch Bereitstellung von Anweisungen und Tools erstellen könnten, wäre das nicht großartig?
Genau das macht Agent Snap. Agent Snap kombiniert PipeLoop Snap und die Agent Worker-Pipeline, sodass alle Agent-Operationen in einem einzigen Snap ausgeführt werden.
Informationen und Voraussetzungen
Bevor Sie nun davon träumen, Ihre eigene Agentur zu gründen, sollten Sie wissen, dass es einige Informationen und Voraussetzungen gibt, die Sie beachten müssen, bevor dies möglich ist, auch wenn die Gründung einer Agentur mittlerweile sehr einfach ist.
1. Agent Snaps sind modellspezifisch.
Modellspezifische Agent-Snaps
Der Agent Snap ist eine Kombination aus „Loop“ und Agent Worker, daher ist auch der für einen Agent Snap zu verwendende LLM-Anbieter festgelegt. Dieses Design ermöglicht es Benutzern, ihre bevorzugte Kombination aus benutzerdefinierten Modellparametern beizubehalten.
2. Funktionsdefinitionen (Werkzeuge) müssen mit einer Pipeline verknüpft sein, um die Ausführung durchzuführen.


Bisher war in einer Agent Worker-Pipeline das Tool Calling Snap mit Pipeline Execute Snaps verbunden, um Tool-Aufrufe auszuführen, aber dies ist beim Agent Snap nicht mehr der Fall. Stattdessen sollte eine Funktionsdefinition den Pfad der Pipeline enthalten, um die Ausführung durchzuführen, wenn dieses Tool aufgerufen wird. Auf diese Weise können wir sicherstellen, dass jeder Tool-Aufruf erfolgreich durchgeführt werden kann. Wenn der Benutzer keine Tool-Pipeline mit der Funktionsdefinition bereitstellt, wird das Agent Snap nicht fortgesetzt.
3. Erwartete Ein- und Ausgänge einer Tool-Pipeline
Wenn ein Tool-Aufruf von einem LLM angefordert wird, gibt das LLM den Namen des aufzurufenden Tools und die entsprechenden Parameter für den Aufruf an. Der Agent Snap entpackt die Parameter und sendet sie direkt an die Tool-Pipeline.
Hier ein Beispiel: Ich habe ein Tool namens get_weather, das city: string als Parameter verwendet. Das LLM beschließt, das Tool get_weather mit der folgenden Nutzlast aufzurufen:
{ "name": "get_weather", "parameters": { "city": "New York City" }, "sl_tool_metadata": { ... } }
Damit dies funktioniert, muss meine Tool-Pipeline das Eingabedokument akzeptieren können:
{"city": "New York City"}
Nebenbei bemerkt wird dassl_tool_metadata-Objekt auch für die Tool-Pipeline als Eingabe für APIM- und OpenAPI-Tools verfügbar sein.
Nehmen wir nun an, meine Tool-Pipeline hat erfolgreich die Wetterdaten für New York City abgerufen. Nun ist es an der Zeit, dass Agent Snap das Ergebnis dieses Tool-Aufrufs erfasst. Agent Snap erfasst alle Daten aus dem Ausgabedokument der Tool-Pipeline als Ergebnis des Tool-Aufrufs*, damit das LLM die nächsten Schritte richtig bestimmen kann.
*Hinweis: Mit einer Ausnahme wird die Ausgabe einer „Tool-Pipeline“, die das Feld „messages“ oder „contents“ enthält, als Konversationsverlauf des „Child-Agenten“ behandelt, der gefiltert und nicht berücksichtigt wird.
Erstellen Sie einen Agenten mit Agent Snap
Wir haben die Idee verstanden, wir haben die Voraussetzungen durchgesprochen, und nun ist es an der Zeit, einen Agenten zu erstellen.

In diesem Beispiel haben wir einen Agenten mit zwei Tools: einem Wetter-Tool und einem Kalender-Tool. Wir beginnen zunächst mit einem Prompt-Generator, um die Benutzereingaben zu formatieren. Anschließend definieren wir die Tools, auf die der Agent zugreifen kann.
Schauen wir uns eine der Werkzeugdefinitionen an.
In diesem Beispiel-Tool sehen wir den Namen des Tools, die Beschreibung des Tools, die Parameter und den Pfad der Tool-Pipeline, um diese Aufgabe auszuführen. Dies erfüllt die Anforderungen an ein Tool, das von einem Agent Snap verwendet werden soll.

Nachdem wir die Tools eingerichtet haben, schauen wir uns den Agent Snap an, wobei wir den Amazon Bedrock Converse API Agent Snap als Beispiel verwenden.
Die Konfiguration eines Agent-Snaps ähnelt der des entsprechenden Tool-Aufruf-Snaps, mit Ausnahme einiger zusätzlicher Felder, wie z. B. einer Schaltfläche zur Visualisierung des Agent-Ablaufs und einem Abschnitt zur Konfiguration des Agent-Betriebs, wie z. B. Iterationsgrenze und Anzahl der Threads für die Ausführung der Tool-Pipeline.
Der Agent Snap übernimmt den gesamten Ausführungsprozess und wird beendet, wenn 1. die Anfrage abgeschlossen ist (keine weiteren Tool-Aufrufe erforderlich sind) oder 2. ein Fehler aufgetreten ist.

Voilà! Sie haben einen Agenten erstellt.
Nachdem die Agent-Pipeline eine Ausführungsrunde abgeschlossen hat, kann der Benutzer die Schaltfläche „Agent-Ablauf visualisieren“ im Agent-Snap verwenden, um die vom LLM aufgerufenen Tools anzuzeigen.

Tipps und Tricks für den Agent Snap
Werfen wir einen Blick auf die Funktionen, die in Agent Snap integriert sind.
Wiederverwendung von Pipelines
Die meisten Aufrufe von Agententools sind Prozesse, die wiederverwendet werden können. Um die Ausführungslast zu minimieren, können wir die Funktion „Tool-Pipeline wiederverwenden“ nutzen. Diese Funktion ermöglicht die Wiederverwendung von Tool-Pipeline-Instanzen, sodass der Agent nicht bei jedem Aufruf eines Tools eine Pipeline erstellen muss.
Um diese Funktion nutzen zu können, muss die wiederzuverwendende Tool-Pipeline „Ultra-kompatibel“ sein, da sonst die Ausführung der Pipeline hängen bleibt und der Agent Snap schließlich eine Zeitüberschreitung verursacht.
Überwachung von Tool-Aufrufen
Agenten können lang laufen; es ist nicht ungewöhnlich, dass ein Agent mehrere Iterationen ausführt. Um zu sehen, was in diesem Prozess geschieht, verfügt Agent Snap über eine integrierte Überwachungsfunktion während der Validierung. Der Benutzer kann den Iterationsindex, das aktuell aufgerufene Tool und die für den Toolaufruf verwendeten Parameter in der Statusleiste der Pipeline-Statistik sehen.
Durch Auswahl der Option „Monitor tool call“ (Toolaufruf überwachen) wird der Parameter in die Statusaktualisierung aufgenommen. Dies ist eine Opt-in-Funktion. Wenn der Benutzer die Informationen nicht an SnapLogic weitergeben möchte, sollte er diese Option deaktivieren.
Warnungen
Die Konfiguration des Agenten ist ein heikler Vorgang; ein Fehler kann möglicherweise zu Fehlern führen. Der Agent Snap verfügt über eine Reihe integrierter Warnfunktionen, sodass der Benutzer besser erkennen kann, was schiefgehen könnte.
1. Der Agent-Prozess wurde abgeschlossen, bevor alle Tool-Aufrufe abgeschlossen waren.

Im Agent Snap gibt es eine Einstellung für die Iterationsgrenze, die die Anzahl der Iterationen begrenzt, die der Agent ausführen kann. Wenn der Benutzer eine kleinere Grenze angegeben hat, wodurch der Agent angehalten wurde, während das LLM noch auf Tool-Aufrufe wartet, wird diese Warnung angezeigt, um den Benutzer darauf hinzuweisen, dass die Ausführung unvollständig ist.
2. Der Pfad der Tool-Pipeline ist nicht definiert.

Eine vom Agent Snap zu verwendende Funktionsdefinition (Tool-Definition) sollte einen Tool-Pipeline-Pfad enthalten, damit der Agent Snap eine Verbindung zur tatsächlichen Pipeline herstellen kann, die die Ausführung durchführt. Wenn der Pipeline-Pfad nicht in der Funktionsdefinition enthalten ist, wird diese Warnung angezeigt, um den Benutzer darauf hinzuweisen, dass der Agent nicht fortfahren wird.
3. Doppelte Benennung von Werkzeugen

Da wir versuchen, dem Agent Snap immer mehr Tools hinzuzufügen, haben wahrscheinlich zwei Tools denselben Namen. Der Agent Snap kann die an das LLM gesendeten Tools umbenennen und dann trotzdem mit der richtigen Pipeline verknüpfen. Außerdem wird in den Pipeline-Statistiken eine Warnung angezeigt, um den Benutzer auf eine Verhaltensänderung aufmerksam zu machen.
Veröffentlichungszeiträume
Der Agent Snap ist die Grundlage für den SnapLogic Agent der nächsten Generation. Im November werden wir vier Agent Snaps veröffentlichen:
- Amazon Bedrock Converse API-Agent
- OpenAI Chat-Vervollständigungsagent
- Azure OpenAI Chat-Vervollständigungsagent
- Google Gemini API -Agent
Um die Agent Snaps besser nutzen zu können, werden wir auch einige unserer Funktionsgeneratoren um neue Funktionen erweitern. Hier ist die Liste der Funktionsgenerator-Snaps, die in Kürze geändert werden:
- APIM -Funktionsgenerator-Snap
- OpenAPI -Funktionsgenerator-Snap
- MCP -Funktionsgenerator-Snap
Wir hoffen, Sie sind genauso begeistert wie wir.


