Erfahren Sie, wie Sie die Aktionsschritte konfigurieren, die ein GenAI-Agent ausführen kann.
Der Hauptvorteil von Cognition besteht darin, dass Sie einfach konfigurieren können, wie sich der GenAI-Agent verhält, um eine Frage zu beantworten oder Aufgaben für Sie zu lösen. Der Editor-Bildschirm ist nur für die Rolle eines Ingenieurs verfügbar. Einer der Vorteile dieses Editors ist die Funktion „Route anzeigen“, die Schritt für Schritt zeigt, wie die Abfrage ausgeführt wurde. Die Idee hinter der 'Route anzeigen' besteht darin, sie als Debugger zu verwenden, sodass mögliche Fehler leicht gefunden, verstanden und korrigiert werden können.
Wenn Sie den Editor öffnen, sehen Sie einen Editor wie diesen:

Jedes Projekt besteht aus einer oder mehreren Strategien, von denen jede einen oder mehrere Knoten enthält. Sie können sich eine Strategie als ein Toolset vorstellen, wobei jedes Tool über unterschiedliche Funktionen verfügt. Eine Strategie könnte beispielsweise verwendet werden, um Fragen auf der Grundlage von Dokumenten zu beantworten, die über ETL bearbeitet wurden (Abschnitt „Dokumentation zur Datenverarbeitung“), ein weiteres für API-Aufrufe im Internet und ein drittes für das Hochladen und Verarbeiten von Dokumenten. Die Strategien können bearbeitet, gelöscht, importiert und exportiert werden, und die Knoten der Strategien können per Drag & Drop verschoben werden.
Die Fähigkeiten des Agenten werden von diesen Knoten bestimmt, und es gibt zahlreiche Möglichkeiten, sowohl die Knoten als auch die Strategien an Ihre spezifischen Bedürfnisse anzupassen und zu verbessern. Jeder Knoten verarbeitet die Eingabe — eine Nachricht — und erzeugt eine Ausgabe. Wenn Sie beispielsweise eine Frage gestellt haben, können Sie den Pfad verfolgen, den die Nachricht durch die Pipeline nimmt.

Die Daten, die verarbeitet werden, sind immer zweifach:
Wenn Sie sich die Ausgabe des ersten Knotens ansehen, sehen Sie den Anfangszustand des record_dict. Außerdem können Sie bei jedem Schritt in einem Git-Diff-ähnlichen Editor sehen, welche Änderungen vom Knoten vorgenommen wurden.

Eine der leistungsstärksten Funktionen eines Projekts ist der Smart Router, der anhand von Benutzereingaben dynamisch die geeigneten Strategien auswählen kann.
Sie müssen jedoch nicht immer die „intelligente“ Komponente des Smart-Routers verwenden. Die Routing-Logik kann auf Wunsch auch so programmiert werden, dass sie statisch ist.
Angenommen, Sie möchten die Absicht Ihres Benutzers überprüfen, bevor Sie die nächsten Schritte festlegen. Sie können eine Bedingung fest codieren, um immer zu einer bestimmten Strategie zur Absichtsprüfung weiterzuleiten, bevor Sie fortfahren:

In dieser Strategie können Sie dann „Absicht“ als Schlüssel zum record_dict um sicherzustellen, dass diese Strategie nicht mehr ausgelöst wird. Auf der Grundlage der Absicht können Sie die nächste Vorgehensweise festlegen. Wenn der Benutzer beispielsweise beabsichtigt, Daten aus einer Datenbank abzurufen, können Sie zu einer Strategie weiterleiten, die für Datenbankabfragen konzipiert ist. Wenn der Benutzer lediglich eine Zusammenfassung wünscht, können Sie alternativ zu einem generischen Sprachmodell weiterleiten.

Wenn kein statisches Routing programmiert ist, übernimmt der Smart Router automatisch und entscheidet anhand der Beschreibung einer Strategie, welche Strategie verwendet werden soll. Die Beschreibung kann als eine Aufforderung betrachtet werden, wann eine Strategie verwendet werden soll.

Neben der Beschreibung sind die Eingabe- und Ausgabeparameter einer Strategie entscheidend. Die Eingabeparameter dienen als Bedingungen, die den Einsatz von Strategien aktivieren oder deaktivieren. Die Ausgabefelder geben an, welche Schlüssel aus dem record_dict und scope_dict sollte nach Ausführung der Strategie beibehalten werden. Diese Schlüssel werden während der Schritte der aktuellen Strategie hinzugefügt.
Schlüssel-Wert-Paare aus beiden Wörterbüchern, die vor der Eingabe einer Strategie vorhanden waren, werden immer beibehalten, ohne dass sie erneut angegeben werden müssen. Wenn Sie beispielsweise eine Antwort aus einem Sprachmodell generieren und sie unter dem Schlüssel „Antwort“ speichern, müssen Sie dr.antwort als eines der Ausgabefelder; andernfalls wird es am Ende verworfen. Dieser Ansatz ermöglicht eine detailliertere Steuerung der Ein- und Ausgaben und verhindert so, dass temporäre Daten unnötig gespeichert oder überschrieben werden.
Die Abkürzung „rd“ steht für record_dict, während „sd“ für scope_dict.

Die Strategien bestehen aus beliebig vielen sequentiellen Knoten. Derzeit sind die folgenden Knoten verfügbar:

Ein typischer Knoten kann z. B. ein Auswahl-Widget-Knoten sein, der den Benutzer fragt, nach welchen Dokumenten er filtern soll (falls Sie nur in eine Teilmenge der Wissensdatenbank schauen möchten, um eine Frage zu beantworten). Diese Art von Knoten kann verwendet werden, um das Verhalten des GENai-Agenten dynamisch zu konfigurieren.

Sie können auch Low-Code-Python-Knoten verwenden, um jedes Verhalten von GenAI-Agenten zu implementieren. Der Python-Knoten verwendet immer record_dict, scope_dict als Eingabe und gibt dann ein Tupel zurück. Der erste Wert des Tupels ist das neue record_dict, der zweite ist das neue scope_dict.
Nicht zuletzt möchten Sie normalerweise einen LLM-Knoten verwenden, um eine Antwort auf die Frage zu generieren. Über den No-Code-Editor, in dem Sie Prompt-Vorlagen implementieren können, können Sie aus einer Reihe von LLMs auswählen. Wir verwenden mustache.js unter der Haube, um dynamische Variableneingaben zu ermöglichen.

Sie können jederzeit rendern, was das LLM für eine bestimmte Nachricht tatsächlich sieht.

Wenn Sie möchten, können Sie die sequentiellen Aktionsschritte einer Strategie ändern. Dies kann über die Pfeile oder per Drag & Drop erfolgen.

Sie können auch auf die Schaltfläche „API“ klicken, um die API-Spezifikationen und den aktuellen Status von scope_dict einzusehen.

Sie können die aktuelle Konversation sehen, indem Sie oben rechts auf die Schaltfläche „Anzeigen“ klicken.

Hier können Sie auch die Protokolle der spezifischen Aktionen einsehen, die ergriffen wurden, um die eigentliche Antwort zu erstellen, was vollständige Transparenz ermöglicht.

Auf jeden Agenten kann über eine API zugegriffen werden, entweder über REST oder Websocket. Kopieren Sie dazu den Code aus dem API-Bereich und generieren Sie ein persönliches Zugriffstoken.
