Direkt zum Hauptinhalt
KI

Erstellen Sie einen autonomen KI-Assistenten mit dem Mosaic AI Agent Framework

von Ananya Roy

  • Große Sprachmodelle revolutionieren die Art und Weise, wie wir mit Technologie interagieren, indem sie fortschrittliche natürliche Sprachverarbeitung nutzen, um komplexe Aufgaben auszuführen.
  • LLM-Agenten sind fortschrittliche KI-Systeme der nächsten Generation, die für die Ausführung komplexer Aufgaben entwickelt wurden, die Schlussfolgerungen, vorausschauendes Denken, Erinnerung an vergangene Gespräche und die Verwendung verschiedener Werkzeuge zur Anpassung von Antworten erfordern.
  • Das Mosaic AI Agent Framework ermöglicht es Entwicklern, Produktions-Agentensysteme über jedes LLM zu erstellen, was eine Anpassung ermöglicht und Agenten befähigt, autonome Entscheidungen zu treffen.

Große Sprachmodelle revolutionieren die Art und Weise, wie wir mit Technologie interagieren, indem sie fortschrittliche natürliche Sprachverarbeitung nutzen, um komplexe Aufgaben auszuführen. In den letzten Jahren haben wir hochmoderne LLM-Modelle gesehen, die eine breite Palette innovativer Anwendungen ermöglichen. Letztes Jahr markierte eine Verschiebung hin zu RAG (Retrieval Augment Generation), bei der Benutzer interaktive KI-Chatbots erstellten, indem sie LLMs mit ihren Organisationsdaten (durch Vektoreinbettung) fütterten.

Aber wir kratzen gerade erst an der Oberfläche. Obwohl „Retrieval Augment Generation“ leistungsstark ist, beschränkt es unsere Anwendung auf die statische Wissensabfrage. Stellen Sie sich einen typischen Kundendienstmitarbeiter vor, der nicht nur Fragen aus internen Daten beantwortet, sondern auch mit minimalem menschlichen Eingriff Handlungen vornimmt. Mit LLMs können wir vollständig autonome Entscheidungsfindungsanwendungen erstellen, die nicht nur auf Benutzeranfragen reagieren, sondern auch darauf handeln. Die Möglichkeiten sind endlos – von der internen Datenanalyse bis hin zu Websuchen und darüber hinaus.

Das semantische Verständnis und die sprachlichen Fähigkeiten von großen Sprachmodellen ermöglichen es uns, vollständig autonome Entscheidungsfindungsanwendungen zu erstellen, die nicht nur antworten, sondern auch basierend auf den Anfragen der Benutzer „handeln“ können.

Databricks Mosaic AI Agent Framework:

Databricks hat das Mosaic AI Agent Framework eingeführt, das es Entwicklern ermöglicht, ein Produktions-Skalierungs-Agenten-Framework über jedes LLM zu erstellen. Eine der Kernfunktionen ist die Erstellung von Tools auf Databricks, die dazu dienen, produktionsreife KI-Agenten wie Retrieval Augmented Generation (RAG)-Anwendungen und vieles mehr zu erstellen, bereitzustellen und zu bewerten. Entwickler können Agenten erstellen und protokollieren, indem sie jede Bibliothek verwenden und sie mit MLFlow integrieren. Sie können Agenten parametrisieren, um schnell zu experimentieren und die Entwicklung zu iterieren. Agent Tracing ermöglicht es Entwicklern, Traces zu protokollieren, zu analysieren und zu vergleichen, um zu debuggen und zu verstehen, wie der Agent auf Anfragen reagiert.

In diesem ersten Teil des Blogs werden wir Agenten und ihre Kernkomponenten untersuchen und einen autonomen Multi-Turn-Kundenservice-KI-Agenten für ein Online-Einzelhandelsunternehmen mit einem der leistungsstärksten Databricks Foundational Models (Open Source) auf der Plattform erstellen. In der nächsten Serie des Blogs werden wir das Multi-Agenten-Framework untersuchen und einen fortschrittlichen Multi-Step-Reasoning-Multi-Agenten für dieselbe Geschäftsanwendung erstellen.

Was ist ein LLM-Agent?

LLM-Agenten sind fortschrittliche KI-Systeme der nächsten Generation, die für die Ausführung komplexer Aufgaben entwickelt wurden, die Schlussfolgerungen erfordern. Sie können vorausdenken, sich an frühere Gespräche erinnern und verschiedene Werkzeuge verwenden, um ihre Antworten basierend auf der Situation und dem benötigten Stil anzupassen.

Als natürliche Weiterentwicklung von RAG sind LLM-Agenten ein Ansatz, bei dem hochmoderne große Sprachmodelle mit externen Systemen/Werkzeugen oder Funktionen ausgestattet werden, um autonome Entscheidungen zu treffen. In einem zusammengesetzten KI-System kann ein Agent als Entscheidungsmaschine betrachtet werden, die mit Gedächtnis, Introspektionsfähigkeit, Werkzeugnutzung und vielem mehr ausgestattet ist. Betrachten Sie sie als superintelligente Entscheidungsmaschinen, die lernen, schlussfolgern und unabhängig handeln können – das ultimative Ziel, eine wirklich autonome KI-Anwendung zu erstellen.

Kernkomponenten:

Die Schlüsselkomponenten einer agentischen Anwendung umfassen:

  • LLM/Zentraler Agent: Dies fungiert als zentrale Entscheidungsfindungskomponente für den Workflow.
  • Gedächtnis: Verwaltet die vergangenen Gespräche und die vorherigen Antworten des Agenten.
  • Planer: Eine Kernkomponente des Agenten zur Planung zukünftiger auszuführender Aufgaben.
  • Werkzeuge: Funktionen und Programme zur Ausführung bestimmter Aufgaben und zur Interaktion mit dem Haupt-LLM.

Zentraler Agent:

Das primäre Element eines Agenten-Frameworks ist ein vortrainiertes, universell einsetzbares großes Sprachmodell, das Daten verarbeiten und verstehen kann. Dies sind im Allgemeinen leistungsstarke vortrainierte Modelle; Die Interaktion mit diesen Modellen beginnt mit der Erstellung spezifischer Prompts, die wesentlichen Kontext liefern und sie anleiten, wie sie antworten, welche Werkzeuge sie nutzen und welche Ziele sie während der Interaktion erreichen sollen.

Ein Agenten-Framework ermöglicht auch die Anpassung, sodass Sie dem Modell eine eindeutige Identität zuweisen können. Das bedeutet, dass Sie seine Eigenschaften und Fachkenntnisse an die Anforderungen einer bestimmten Aufgabe oder Interaktion anpassen können. Letztendlich verbindet ein LLM-Agent fortschrittliche Datenverarbeitungsfähigkeiten nahtlos mit anpassbaren Funktionen und macht ihn zu einem unschätzbaren Werkzeug für die präzise und flexible Handhabung vielfältiger Aufgaben.

Gedächtnis:

Das Gedächtnis ist eine wichtige Komponente einer agentischen Architektur. Es handelt sich um einen temporären Speicher, den der Agent zum Speichern von Gesprächen verwendet. Dies kann entweder ein Kurzzeit-Arbeitsgedächtnis sein, in dem der LLM-Agent aktuelle Informationen mit unmittelbarem Kontext speichert und den Speicher löscht, sobald die Aufgabe abgeschlossen ist. Dies ist temporär.

Auf der anderen Seite haben wir Langzeitgedächtnis (manchmal auch episodisches Gedächtnis genannt), das langlaufende Gespräche speichert und dem Agenten helfen kann, Muster zu verstehen, aus früheren Aufgaben zu lernen und Informationen abzurufen, um in zukünftigen Interaktionen bessere Entscheidungen zu treffen. Dieses Gespräch wird im Allgemeinen in einer externen Datenbank gespeichert. (z. B. Vektordatenbank).

Die Kombination dieser beiden Speicher ermöglicht es einem Agenten, maßgeschneiderte Antworten zu liefern und im Laufe der Zeit basierend auf den Benutzerpräferenzen besser zu arbeiten. Denken Sie daran, das Agentengedächtnis nicht mit dem Konversationsgedächtnis unseres LLM zu verwechseln. Beide dienen unterschiedlichen Zwecken.

Planer:

Die nächste Komponente eines LLM-Agenten ist die Planungsfähigkeit, die hilft, komplexe Aufgaben in überschaubare Aufgaben zu zerlegen und jede Aufgabe auszuführen. Bei der Formulierung des Plans kann die Planerkomponente mehrere Argumentationstechniken nutzen, wie z. B. Chain-of-Thought-Argumentation oder hierarchische Argumentation, wie Entscheidungsbäume, um zu entscheiden, welchen Weg er einschlagen soll.

Sobald der Plan erstellt ist, überprüfen und bewerten Agenten dessen Wirksamkeit durch verschiedene interne Feedbackmechanismen. Einige gängige Methoden sind ReAct und Reflexion. Diese Methoden helfen LLMs, komplexe Aufgaben zu lösen, indem sie eine Reihe von Gedanken durchlaufen und die Ergebnisse beobachten. Der Prozess wiederholt sich zur iterativen Verbesserung.

In einem typischen Multi-Turn-Chatbot mit einem einzigen LLM-Agenten werden die Planung und Orchestrierung von einem einzigen Sprachmodell durchgeführt, während in einem Multi-Agenten-Framework separate Agenten spezifische Aufgaben wie Routing, Planung usw. ausführen können. Wir werden dies im nächsten Teil des Blogs über das Multi-Agenten-Framework ausführlicher besprechen.

Werkzeuge:

Werkzeuge sind die Bausteine von Agenten; sie führen verschiedene Aufgaben aus, wie vom zentralen Kernagenten gesteuert. Werkzeuge können verschiedene Aufgabenausführer in jeder Form sein (API-Aufrufe, Python- oder SQL-Funktionen, Websuche, Codierung, Databricks Genie Space oder alles andere, was das Werkzeug tun soll). Durch die Integration von Werkzeugen führt ein LLM-Agent spezifische Aufgaben über Workflows aus, sammelt Beobachtungen und sammelt Informationen, die zur Erledigung von Teilaufgaben benötigt werden.

Beim Erstellen dieser Anwendungen ist zu berücksichtigen, wie lang die Interaktion ist. Sie können das Kontextlimit von LLMs leicht erschöpfen, wenn die Interaktion langwierig ist und die Gefahr besteht, dass ältere Gespräche vergessen werden. Während eines langen Gesprächs mit einem Benutzer kann der Kontrollfluss der Entscheidungsfindung Single-Threaded, Multi-Threaded parallel oder in einer Schleife erfolgen. Je komplexer die Entscheidungsverkettung wird, desto komplexer wird ihre Implementierung.

In Abbildung 1 unten ist ein einziges, leistungsstarkes LLM der Schlüssel zur Entscheidungsfindung. Basierend auf der Frage des Benutzers versteht es, welchen Weg es einschlagen muss, um den Entscheidungsfluss zu steuern. Es kann mehrere Werkzeuge nutzen, um bestimmte Aktionen auszuführen, Zwischenergebnisse im Gedächtnis speichern, nachfolgende Planungen durchführen und schließlich das Ergebnis an den Benutzer zurückgeben.

Ein einziges, leistungsstarkes LLM ist der Schlüssel zur Entscheidungsfindung. Basierend auf der Frage des Benutzers versteht es, welchen Weg es einschlagen muss, um den Entscheidungsfluss zu steuern. Es kann mehrere Werkzeuge nutzen, um bestimmte Aktionen auszuführen, Zwischenergebnisse im Gedächtnis speichern, nachfolgende Planungen durchführen und schließlich das Ergebnis an den Benutzer zurückgeben.

Konversationsagent für den Online-Einzelhandel:

Für den Zweck des Blogs erstellen wir einen autonomen Kundendienst-KI-Assistenten für einen Online-Elektronikhändler über das Mosaic AI Agent Framework. Dieser Assistent wird mit Kunden interagieren, ihre Fragen beantworten und Aktionen basierend auf Benutzeranweisungen ausführen. Wir können einen Human-in-the-Loop einführen, um die Antwort der Anwendung zu überprüfen. Wir würden die Funktionalität der Werkzeuge von Mosaic AI verwenden, um unsere Werkzeuge innerhalb des Unity Catalog zu erstellen und zu registrieren. Nachfolgend finden Sie die Entitätsbeziehung (synthetische Daten), die wir für den Blog erstellt haben.

Entity relationship diagram

Nachfolgend finden Sie das einfache Prozessflussdiagramm für unseren Anwendungsfall.

Simple agent framework process flow

Code-Snippet: (SQL) Bestelldetails

Der folgende Code gibt Bestelldetails basierend auf einer vom Benutzer bereitgestellten Bestell-ID zurück. Beachten Sie die Beschreibung des Eingabefelds und des comment Feldes der Funktion. Überspringen Sie keine Funktions- und Parameterkommentare, die für LLMs entscheidend sind, um Funktionen/Werkzeuge richtig aufzurufen.

Kommentare werden von unserem zentralen LLM als Metadatenparameter verwendet, um zu entscheiden, welche Funktion bei einer Benutzeranfrage ausgeführt werden soll. Falsche oder unzureichende Kommentare können das LLM potenziell dazu veranlassen, falsche Funktionen/Werkzeuge auszuführen.

Code-Snippet: (SQL) Versanddetails

Diese Funktion gibt Versanddetails aus der Versand-Tabelle zurück, gegeben eine ID. Ähnlich wie oben sind die Kommentare und Details der Metadaten wichtig, damit der Agent mit dem Werkzeug interagieren kann.

Code-Snippet: (Python)

Ähnlich können Sie jede Python-Funktion erstellen und als Werkzeug oder Funktion verwenden. Sie kann auf ähnliche Weise im Unity Catalog registriert werden und Ihnen alle oben genannten Vorteile bieten. Das folgende Beispiel zeigt das Web-Suchwerkzeug, das wir erstellt und als Endpunkt für unseren Agenten zum Aufrufen verwendet haben.

Für unseren Anwendungsfall haben wir mehrere Werkzeuge erstellt, die verschiedene Aufgaben ausführen, wie zum Beispiel:

tools performing tasks

return_order_detailsGibt Bestelldetails zurück, gegeben eine Bestell-ID
return_shipment_detailsGibt Versanddetails zurück, gegeben eine Versand-ID
return_product_detailsGibt Produktdetails zurück, gegeben eine Produkt-ID
return_product_review_detailsGibt eine Zusammenfassung der Bewertungen aus unstrukturierten Daten zurück
search_toolSucht im Web basierend auf Schlüsselwörtern und gibt Ergebnisse zurück
process_orderVerarbeitet eine Rückerstattungsanfrage basierend auf einer Benutzeranfrage

Unity Catalog UCFunctionToolkit :
Wir werden den LangChain-Orchestrator verwenden, um unser Chain-Framework in Kombination mit dem Databricks UCFunctionToolkit und grundlegenden API-Modellen zu erstellen. Sie können jedes Orchestrator-Framework verwenden, um Ihre Agenten zu erstellen, aber wir benötigen das UCFunctionToolkit, um unseren Agenten mit unseren UC-Funktionen (Werkzeugen) zu erstellen.

d

Erstellung des Agenten:

Nachdem unsere Werkzeuge nun bereit sind, werden wir sie mit einem großen Sprach-Foundation-Modell integrieren, das auf Databricks gehostet wird. Beachten Sie, dass Sie auch Ihr eigenes benutzerdefiniertes Modell oder externe Modelle über AI Gateway verwenden können. Für diesen Blog verwenden wir databricks-meta-llama-3-1-70b-instruct, das auf Databricks gehostet wird.

Dies ist ein Open-Source-Modell von Meta und wurde in Databricks so konfiguriert, dass es Werkzeuge effektiv nutzt. Beachten Sie, dass nicht alle Modelle gleichwertig sind und verschiedene Modelle unterschiedliche Werkzeugnutzungsfähigkeiten haben.

Nachdem unser LLM nun bereit ist, würden wir den LangChain Agent Executor verwenden, um all dies zusammenzufügen und einen Agenten zu erstellen:

Sehen wir uns an, wie das in Aktion aussieht, mit einer Beispielanfrage:

Stellen Sie sich vor, ich werde als Kunde den Preis eines bestimmten Produkts, „Breville Electrical Kettle“, in ihrem Unternehmen und auf dem Markt erfragen, um wettbewerbsfähige Angebote zu sehen.

Basierend auf der Frage verstand der Agent, zwei Funktionen/Werkzeuge auszuführen:

  • return_product_price_details Für interne Preise
  • web_search_tool – Für die Websuche.

Der folgende Screenshot zeigt die sequentielle Ausführung der verschiedenen Werkzeuge basierend auf einer Benutzerfrage.

Schließlich, mit der Antwort dieser beiden Funktionen/Tools, synthetisiert der Agent die Antwort und liefert die Antwort unten. Der Agent hat die auszuführenden Funktionen autonom verstanden und die Frage des Benutzers in Ihrem Namen beantwortet. Ziemlich cool!

Die sequentielle Ausführung der verschiedenen Tools basierend auf einer Benutzerfrage.

Sie können auch die End-to-End-Spur der Agentenausführung über MLflow Trace sehen. Dies hilft Ihrem Debugging-Prozess immens und gibt Ihnen Klarheit darüber, wie jeder Schritt ausgeführt wird.

End-to-End-Spur der Agentenausführung über MLflow Trace

Speicher:

Einer der Schlüsselfaktoren für den Aufbau eines Agenten ist sein Zustand und sein Speicher. Wie oben erwähnt, gibt jede Funktion eine Ausgabe zurück, und idealerweise müssen Sie sich an das vorherige Gespräch erinnern, um ein Multi-Turn-Gespräch zu führen. Dies kann auf verschiedene Weise über jedes Orchestrator-Framework erreicht werden. In diesem Fall würden wir LangChain Agent Memory verwenden, um einen Multi-Turn-Konversationsbot zu erstellen.

Sehen wir uns an, wie wir dies über die LangChain und die Databricks FM API erreichen können. Wir würden den vorherigen Agent Executor verwenden und einen zusätzlichen Speicher mit LangChain ChatMessageHistory undRunnableWithMessageHistory hinzufügen.

Hier verwenden wir zur Demonstration einen In-Memory-Chat. Sobald der Speicher instanziiert ist, fügen wir ihn unserem Agent Executor hinzu und erstellen einen Agenten mit dem unten stehenden Chat-Verlauf. Sehen wir uns an, wie die Antworten mit dem neuen Agent aussehen.

Nachdem wir den Agent Executor definiert haben, versuchen wir, dem Agenten einige Folgefragen zu stellen und zu sehen, ob er sich an das Gespräch erinnert. Achten Sie genau auf die session_id; dies ist der Speicher-Thread, der die laufende Konversation speichert.

Agent Chat-Verlauf

Agent Chat-Verlauf

Gut! Er erinnert sich an alle vorherigen Gespräche des Benutzers und kann Folgefragen ziemlich gut ausführen! Nun, da wir verstanden haben, wie man einen Agenten erstellt und seinen Verlauf pflegt, sehen wir uns an, wie der End-to-End-Konversations-Chat-Agent in Aktion aussehen würde.

Wir werden die Databricks AI Playground verwenden, um zu sehen, wie sie End-to-End aussieht. Databricks AI Playground ist eine Chat-ähnliche Umgebung, in der Sie mehrere LLMs testen, abfragen und vergleichen können. Denken Sie daran, dass Sie den gerade erstellten Agenten auch als Serving-Endpunkt bereitstellen und ihn im Playground verwenden können, um die Leistung Ihres Agenten zu testen.

Multi-Turn-Konversations-Chatbot:

Wir haben den KI-Agenten mit dem Databricks Mosaic AI Agent Framework, der Databricks Foundational Model API und dem LangChain-Orchestrator implementiert.

Das folgende Video veranschaulicht ein Gespräch zwischen dem Multi-Turn-Agenten, den wir mit Meta-llama-3-1-70b-instruct und unseren UC-Funktionen/Tools in Databricks erstellt haben.

Es zeigt den Gesprächsfluss zwischen einem Kunden und unserem Agenten, der dynamisch geeignete Tools auswählt und diese basierend auf einer Reihe von Benutzeranfragen ausführt, um unseren Kunden nahtlos zu unterstützen.

Hier ist ein Gesprächsfluss eines Kunden mit unserem neu erstellten Agenten für unseren Online-Einzelhandelsladen.

Ein Gesprächsfluss eines Kunden mit unserem neu erstellten Agenten für unseren Online-Einzelhandelsladen.

Von der Initiierung einer Frage zum Bestellstatus mit dem Namen des Kunden bis zur Aufgabe einer Bestellung, alles autonom und ohne menschliches Eingreifen.

Agenten-Demo

Fazit:

Und das ist alles! Mit nur wenigen Codezeilen haben wir die Leistungsfähigkeit autonomer Multi-Turn-Agenten freigeschaltet, die im Namen Ihrer Kunden kommunizieren, schlussfolgern und handeln können. Das Ergebnis? Eine erhebliche Reduzierung manueller Aufgaben und ein deutlicher Anstieg der Automatisierung. Aber wir fangen gerade erst an! Das Mosaic AI Agent Framework hat die Türen zu einer Welt voller Möglichkeiten in Databricks geöffnet.

Bleiben Sie dran für die nächste Folge, in der wir es auf die nächste Stufe heben werden: Multi-Agenten-KI – denken Sie an mehrere Agenten, die harmonisch zusammenarbeiten, um selbst die komplexesten Aufgaben zu bewältigen. Um das Ganze abzurunden, zeigen wir Ihnen, wie Sie alles über MLflow und Model-Serving-Endpunkte bereitstellen können, sodass Sie problemlos produktionsreife agentische Anwendungen erstellen können, ohne Kompromisse bei der Daten-Governance einzugehen. Die Zukunft der KI ist da und nur einen Klick entfernt.

Referenzpapiere & Materialien:

Mosaic AI: Erstellen und Bereitstellen von KI-Agentensystemen in Produktionsqualität

Ankündigung des Mosaic AI Agent Framework und der Agentenbewertung | Databricks Blog

Mosaic AI Agent Framework | Databricks

Der Wandel von Modellen zu Compound AI Systems – The Berkeley Artificial Intelligence Research Blog

React: Synergizing reasoning and acting in language models

Reflexion: Language agents with verbal reinforcement learning

Reflection Agents

LLM-Agenten: Der ultimative Leitfaden | SuperAnnotate

Speicher in LLM-Agenten - DEV Community

Eine Umfrage zu autonomen Agenten auf Basis von Large Language Models arXiv:2308.11432v5 [cs.AI] 4. April 2024

Wie man mehrere Agenten im selben Thread ausführt

(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag

Erhalten Sie die neuesten Beiträge in Ihrem Posteingang

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.