ReAct-Logik als Basis eines Agenten
Klassische Software und Automatisierung sind deterministisch: Sie prüfen Bedingungen und führen abhängig von deren Status fest definierte Befehle aus.
KI-Agenten entscheiden dagegen eigenständig, welche Befehle ausgeführt werden – auf Basis einer semantischen Bewertung der aktuellen Situation. Diese reflektierte Entscheidungsfindung wird als Reason bezeichnet, die Ausführung als Act. Das Wechselspiel aus Planung und Ausführung wird als ReAct bezeichnet.
Ein LLM allein kann bereits planen und reflektieren. Erst durch den Zugriff auf Werkzeuge (Tools) wird daraus ein handlungsfähiger Agent. Diese Werkzeuge können beispielsweise den Zugriff auf externe Datenquellen oder den Schreibzugriff auf Dateien ermöglichen. Technisch handelt es sich dabei meist um gewöhnliche Python-Funktionen oder APIs, die dem LLM über ein standardisiertes Schema bekannt gemacht werden.
Im oben dargestellten Flussdiagramm läuft dieser Prozess wie folgt ab:
- Die verfügbaren Werkzeuge werden bereitgestellt.
- Der Agent plant abhängig von der Aufgabe, welche Werkzeuge eingesetzt werden sollen.
- Anschließend führt er die ausgewählten Werkzeuge aus.
- Ein vollständig autonomer Agent würde nun den Erfolg seiner Aktionen selbst beobachten und daraus den nächsten Planungsschritt ableiten.
- Das hier gezeigte Ablaufdiagramm verzichtet bewusst auf diese autonome Bewertung.
- Stattdessen gibt ein Benutzer Feedback, ob das gewünschte Ziel erreicht wurde (Human in the Loop).
- Meldet der Benutzer Erfolg, endet der Ablauf.
- Andernfalls wird entschieden, ob der Agent mit den vorhandenen Werkzeugen einen neuen Plan erstellt (Continue) oder zunächst eine neue Werkzeugauswahl erhält (Resume). Anschließend beginnt der Zyklus erneut.
Die Auswahl und Bereitstellung geeigneter Tools nimmt einen zentralen Platz bei der Entwicklung von Agenten ein. Diese Disziplin wird häufig als Harness Engineering bezeichnet.
Oft wird die Frage gestellt, welche Aufgaben dem Menschen überhaupt noch bleiben, wenn Agenten scheinbar „alles“ übernehmen. Eine zentrale Aufgabe besteht gerade darin, sicherzustellen, dass der Agent Zugriff auf die für seine Aufgabe notwendigen Werkzeuge erhält – und gleichzeitig keinen Zugriff auf Werkzeuge bekommt, die nicht erforderlich sind oder mit denen er unbeabsichtigt Schaden anrichten könnte.