KI-Agenten kündigen mit der Möglichkeit, die Durchführung von Aktionen an LLMs zu delegieren, eine neue Revolution an. Stellen Sie sich vor, Sie könnten ChatGPT bitten, Ihnen den Fahrplan des Zuges zu nennen, den Sie nehmen möchten, aber vor allem auch, die Buchung für Sie vorzunehmen!
Sobald man die Handlungsfähigkeit an den LLM delegiert, ergeben sich eine Vielzahl neuer, sehr interessanter Anwendungsfälle. Vor allem im Bereich des Softwaretests kann man sich die Entwicklung von Agenten vorstellen, die Tests nicht nur schreiben, sondern auch und vor allem völlig autonom ausführen können.
Dennoch gibt es noch viele Schwierigkeiten und die KI-Agenten leiden noch an vielen Unzulänglichkeiten. Einer der Knackpunkte kommt von der Handlungsfähigkeit, die die Beantwortung von zwei Fragen erfordert: "Was tun?" und "Wie tun?".
Man muss nämlich bereits wissen, was zu tun ist, d. h. man muss eine abstrakte Vorstellung von der auszuführenden Handlung haben.
Wenn es zum Beispiel darum geht, ein Zugticket zu buchen, muss man zunächst eine Fahrplansuche durchführen, um den richtigen Zug zu finden. Sobald man weiß, was man tun soll (nach einem Zug suchen), muss man wissen, wie man es tut, d. h. man muss die Anwendung, mit der man interagieren möchte, verstehen und ihre grafische Benutzeroberfläche nutzen.
Ebenfalls in unserem Beispiel geht es darum, wie wir mit der Suchleiste interagieren und dort die Informationen eingeben, die wir für die Suche nach unserem Zug benötigen.
LLMs sind heute sehr gut darin, Antworten auf die Frage "Was tun?" anzubieten. Wenn Sie nämlich ChatGPT die folgende Frage stellen: "Ich bin auf der sncf-Website.connect, was muss ich tun, um einen Zug zu buchen, der am 15. März von Bordeaux nach Nantes fährt?", wird er Ihnen antworten:
Um die Frage nach dem "Wie mache ich das?" zu beantworten, muss man viel genauer sein und erklären, wie man automatisch mit der Anwendung interagieren kann.
Im Bereich der Webanwendungen handeln Agenten konkret, indem sie technische Frameworks wie z. B. Playwright ausnutzen. Wenn wir ChatGPT folgende Frage stellen: "Wie kann ich in Playwright Schritt 2 (Ihre Fahrt suchen) ausführen?", wird er uns einen Playwright-Code zurückgeben, aber die angegebenen Parameter werden nicht funktionieren!
Denn der CSS-Selektor [data-testid="origin-input"] existiert in der Webanwendung nicht.
Die Schwierigkeit des "Wie mache ich das?" wird allmählich unter dem Namen Grounding bekannt. Es geht darum, von einer abstrakten Beschreibung, der Antwort auf die Frage nach dem "Was tun?", auszugehen und die technischen Elemente zu liefern, die eine konkrete Interaktion mit der grafischen Benutzeroberfläche der Anwendung ermöglichen. Die größte Schwierigkeit besteht darin, die Komponenten zu identifizieren, die miteinander interagieren sollen.
In den letzten Jahren wurden im Bereich der Webanwendungen mehrere Lösungsansätze in Betracht gezogen. Der erste bestand darin, das DOM der Webanwendung mit einer Beschreibung des zu interagierenden Elements zu versehen.
In unserem Beispiel liefern wir das DOM der Seite sncf-connect und bitten das LLM, uns den CSS-Selektor für die Suchleiste zu liefern. Dieser Ansatz führt hauptsächlich aufgrund der Komplexität des DOMs zu enttäuschenden Ergebnissen.
Ein zweiter Ansatz bestand darin, alle interagierbaren Elemente auf der Seite zu identifizieren, ihre CSS-Selektoren zu konstruieren und die LLM zu fragen, welcher dieser Selektoren dem Element entspricht, mit dem man interagieren möchte. Dieser Ansatz führte nicht zu besseren Ergebnissen.
Eine zweite Familie von Ansätzen wird seit kurzem entwickelt und nutzt Screenshots aus. Der SOM-Ansatz (Set Of Mark) besteht darin, einen Screenshot der Website zu erzeugen, aber alle interagierbaren Elemente grafisch zu umschließen und mit nummerierten grafischen Labels zu versehen.
So gemacht, kann man das LLM nach der Nummer des Grafiklabels des Bereichs fragen, der das Element umgibt, mit dem man interagieren möchte. Dieser Ansatz führt zu sehr interessanten Ergebnissen, aber einige Elemente sind schwer zu identifizieren (Menüs, kleine Schaltflächen usw.).
Schließlich sind einige LLMs so trainiert, dass sie die X- und Y-Koordinaten von Elementen zurückgeben können. Man kann sie dann bitten, Elemente zu lokalisieren. Auch hier sind die Ergebnisse ermutigend.
Wie dem auch sei, das Problem des Grounding ist noch nicht gelöst und es gibt zahlreiche Arbeiten, die innovative Lösungen vorschlagen. Im Bereich des Testens spiegelt dies das Problem der Testbarkeit einer Website wider. Man kann in der Tat erwarten, dass die ersten Ergebnisse auf leicht testbaren Anwendungen erzielt werden.
Wenn dies der Fall ist, könnte es schon bald Agenten geben, die bei der Durchführung von Tests helfen und so ein besseres Testen von Anwendungen ermöglichen.
Beim Grounding geht es dann darum, den richtigen Playwright-Befehl mit den richtigen Parametern zu finden, mit dem die Aktion ausgeführt werden kann.
In unserem Beispiel besteht das Eingeben der Informationen in die Suchleiste darin, zunächst die Suchleiste zu lokalisieren (Befehl locator, für den man den CSS-Selektor der Suchleiste kennen muss) und dann mit dem richtigen Wert zu füllen (Befehl fill, für den man den einzugebenden Wert kennen muss).
Die No-Code-SaaS-Lösung Mr Suricate deckt ein breites Spektrum an automatisierten Tests ab, sodass Sie Ihre Rezeptur unter Kontrolle haben und Ihren Nutzern eine optimale Erfahrung bieten können.
Übernehmen Sie die Kontrolle über Ihre Anwendungen und erkennen Sie Fehler in Echtzeit auf Ihren Websites, Anwendungen und APIs, indem Sie Ihre Benutzerpfade in regelmäßigen Abständen automatisch nachbilden.