Google's Blueprint to Building Powerful Agents

Dieses Video fasst die Kernideen von Googles Whitepaper "Agents" zusammen: Definition eines Agenten als LLM-basiertes System mit Werkzeugzugriff und Orchestrierungsschicht, die Planung, Argumentation und Ausführung ermöglicht; Kognitive Architektur (LLM-Kern, Tools, Orchestrierung); Toolkategorien (Erweiterungen, Funktionsaufrufe, Datenspeicher/RAG) sowie Argumentationsrahmen (REACT, Chain-of-Thought, Tree-of-Thought) und Ansätze zum gezielten Lernen (kontextuelles Lernen, retrieval-gestütztes Lernen, Fine-Tuning).
Chapters
Google hat vor kurzem ein Whitepaper mit dem Titel Agents veröffentlicht, in dem erläutert wird, wie man effektiv agentenbasierte Systeme erstellt. Wir werden uns die wichtigsten Erkenntnisse aus diesem Whitepaper ansehen. Dies ist besonders nützlich, wenn Sie Systeme auf der Basis von Agenten erstellen. Es gibt unterschiedliche Definitionen für Agenten, aber mittlerweile scheint es in der Community eine Annäherung oder Übereinstimmung zu geben. Sehen wir uns zunächst an, wie Google einen Agenten definiert. Laut diesem Whitepaper kann ein Key Agent als eine Anwendung definiert werden, die versucht, ein Ziel zu erreichen, indem sie die Welt beobachtet und mit Hilfe der ihr zur Verfügung stehenden Werkzeuge darauf reagiert. Im Wesentlichen handelt es sich also um ein LLM System, das über bestimmte Werkzeuge verfügt, mit denen es mit der Außenwelt interagieren kann. Die kognitive Architektur, die Google in diesem Whitepaper vorschlägt, soll drei verschiedene Komponenten haben. Die Hauptkomponente ist das LLM oder das Modell im Kern. Das Modell hat dann Zugriff auf einige Werkzeuge, z. B. Die Websuche oder die Interaktion mit verschiedenen Datenbanken. Und dann gibt es noch eine Orchestrierungsschicht, in der es mit Hilfe dieser Tools Planen, Schlussfolgern und Maßnahmen ergreifen kann. Außerdem kann es seinen Speicher aktualisieren und sowohl die kurz als auch die langfristigen Maßnahmen und Ergebnisse Ergebnisse nachverfolgen. Sie betrachten Agenten als autonome Systeme, die unabhängig von menschlichem Eingreifen agieren können, insbesondere wenn ihnen angemessene Ziele oder Vorgaben vorgegeben werden, die sie erreichen sollen. Generell, wenn Sie ein klar definiertes Problem haben und es eine Reihe vordefinierter Schritte gibt, die Sie ausführen können, würde ich die Verwendung eines Workflows empfehlen. Es gibt einen Artikel von Antropic Building Effective Agents, der dieses Konzept von Workflows beschreibt. Außerdem habe ich ein sehr ausführliches Video zu diesem Thema, das Sie in der Videobeschreibung finden. Die Idee dahinter ist jedoch, dass Sie sich nicht wirklich auf die Wahrscheinlichkeitsrechnung und Planung des Agenten verlassen sollten, wenn sie über vordefinierte Schritte verfügen, die das System ausführen kann. Ich denke, dass Agenten dann wirklich glänzen können, wenn keine expliziten Anweisungen von menschlicher Seite vorliegen oder es keine vordefinierten Schritte gibt, die sie ausführen können, um etwas zu erreichen. Hier können die Argumentationsfähigkeiten von Agenten äußerst hilfreich sein. Bevor wir uns einige der wichtigsten Erkenntnisse ansehen, wollen wir den Unterschied zwischen Agenten und Modellen verstehen, da ein Agent kein LLM mit Funktionsaufrufen oder Toolnutzung ist. Er ist viel mehr als das An erster Stelle stehen Wissensgrenzen, Modelle sind also auf die Trainingsdaten beschränkt. Andererseits kann das Wissen der Agenten durch die Verbindung mit externen Systemen mit Hilfe der ihnen zur Verfügung stehenden Tools erweitert werden. Ein Beispiel wäre eine Websuche, die das Wissen, auf das der Agent Zugriff hat, erweitern kann. Zweitens ist ein LLM seinem Wesen nach eine einzelne Schlussfolgerung oder Vorhersage, basierend auf der Benutzerabfrage. Sie benötigen eine ganze Infrastruktur, die bei Bedarf Diagrammsitzungen verwalten kann. Das LLM ist jedoch seinem Wesen nach ein einzelnes Eingabeausgabesystem. Andererseits verfügt der Agent über die Orchestrierungsschicht, sie können also den Chatverlauf und sogar mehrstufige Konversationen verwalten. Er kann die vorherige Konversation, die er mit dem Benutzer geführt hat, einsehen und seine Pläne und Aktionen aktualisieren. Ebenso haben Modelle keine native Implementierung für die Toolnutzung. Auf der anderen Seite haben Agenten die Möglichkeit, mit Hilfe von Tools mit der Außenwelt zu interagieren. Die letzte Komponente besteht darin, dass Modelle keine native Implementierung der logischen Ebene haben. Nun können sie Eingabehilfe Techniken wie Denkketten oder React verwenden und um komplexe Eingabehilfen bereitzustellen, die das Modell leiten. Diese Implementierung ist jedoch nativ nicht vorhanden. Agenten verwenden jedoch naturgemäß eines dieser Argumentationsgerüste, um die Planung und Ausführung durchzuführen und anschließend auf der Grundlage der Ein und Ausgaben zu argumentieren. Wir werden uns also Denkketten, React und Denkbäume ansehen, um zu verstehen, wie diese verschiedenen Gerüste von Agenten verwendet werden. Der Hauptunterschied besteht darin, dass dass die Agenten Zugriff auf Tools haben und dann auch entscheiden können, wann sie bestimmte Tools verwenden sollen. Hier ein kurzes Das Modell hat Zugriff auf verschiedene Tools, die bei Bedarf Fluginformationen nachschlagen, Websuchen durchführen, Code ausführen oder Berechnungen anstellen können. Basierend auf den Benutzereingaben entwickelt es zunächst einen internen Denkprozess. Es gibt verschiedene Gerüste, die wir uns in diesem Video ansehen werden. Auf dieser Grundlage ergreift es Maßnahmen. Die Aktion könnte die Verwendung eines Tools sein, das das Ergebnis analysiert, dann seinen internen Denkprozess basierend auf der Beobachtung aktualisiert und eine endgültige Antwort generiert. Dies kann in einem Single Turn oder Multi Turn Setup erfolgen. Für die Argumentation ist das verwendete Framework die Schlüsselkomponente. Wenn wir über Agenten sprechen, sprechen die Leute immer über Argumentationsfähigkeiten oder Planung. Aber wie genau werden sie implementiert? In diesem While Whitepaper werden drei verschiedene Frameworks erläutert. Das erste ist REACT, ein Prompt Engineering Framework, das eine Denkstrategie für das Sprachmodell bereitstellt, um die Benutzeranfrage mit oder ohne kontextbezogene Beispiele zu begründen und Maßnahmen zu ergreifen. Das REACT Framework ist wahrscheinlich eines der ersten und bekanntesten Frameworks, das zum Erstellen von Agenten verwendet wird. Die Idee dahinter ist, dass das LLM immer wenn sie eine Benutzeranfrage erhalten, diese zunächst aufschlüsselt, einen Plan erstellt und dann basierend auf dem Tool, auf das es Zugriff hat, den Plan ausführt, die Ergebnisse beobachtet und den Plan bei Bedarf basierend auf den Beobachtungen aktualisiert. Das andere Framework ist die Gedankenkette. Damit sind sie wahrscheinlich vertraut. Die Leute bitten die LLMs normalerweise Schritt für Schritt zu denken, bevor einige dieser Argumentationsmodelle wie verwendet werden. Dies war eine sehr bekannte Technik, die Argumentationsfähigkeiten durch Zwischenschritte ermöglicht. Und hier kommt das schrittweise Denken ins Es handelt sich eigentlich um eine Familie von Techniken mit einigen Untertechniken wie Selbstkonsistenz, aktive Eingabeaufforderung und multimodale Gedankenkette, die sie zum Aufbau von agentischen Frameworks verwenden können. Die letzte, die sie besprochen haben, ist der Gedankenbaum. Dies ist eine relativ neue Technik und einige der Argumentationsmodelle verwenden sie. Sie eignet sich also gut für Erkundungs oder strategische Vorausschauaufgaben. Im Grunde genommen erstellen sie mehrere mögliche Lösungen und untersuchen dann, welche die beste ist. Schauen wir uns noch einmal ein Beispiel für eine Gedankenkette an. Hier ist eine Benutzerfrage. Dann gibt es einen internen Denkprozess. Zum Beispiel möchte ich einen Flug buchen, Also entscheidet es sich, das Flug Tool zu verwenden. Es erhält die Eingabe vom Benutzer, Eingabeaufforderung oder Abfrage, Ausführung dieses Funktionsaufrufs, Abruf der Beobachtung, Aktualisierung des internen Denkprozesses oder Erstellung eines anderen Gedankens basierend auf der Beobachtung des Tools und anschließende Generierung der endgültigen Ausgabe für den Nutzer. All dies geschieht auf der Grundlage der kognitiven Architektur, die Google als Framework für Argumentation, Planung und Entscheidungsfindung bezeichnet. Laut Google verleiht diese kognitive Architektur dem Modell nicht nur die Fähigkeit, aktiv auf Nutzereingaben zu reagieren, sondern auch proaktiv zu sein. Die zweitwichtigste Komponente eines agentenbasierten Systems sind die ihm zur Verfügung stehenden Tools. Im Wesentlichen ist das LLM zeitlich eingefroren und auf die Menge der für das Training verwendeten Trainingsdaten beschränkt. Die wahre Stärke von Agenten liegt jedoch in ihrer Fähigkeit, mit externen Datenquellen zu interagieren, und dies geschieht über die Verwendung von Tools oder Funktionen. Google unterteilt diese Tools in drei verschiedene erstens Erweiterungen, zweitens Funktionen und drittens Datenspeicher. Die erste Kategorie sind Erweiterungen, die die Lücke zwischen einer API und einem Agenten auf standardisierte Weise schließen und es dem Agenten ermöglichen, APIs unabhängig von ihrer zugrundeliegenden Implementierung nahtlos und einfach auszuführen. Das klingt jetzt sehr ähnlich wie das Konzept des Model Context Protocol, das vor kurzem von Antropic eingeführt wurde. Schauen wir uns ein kurzes Beispiel Sie möchten die Google Flights API verwenden, Wenn Sie von Ostin nach Zürich fliegen möchten und eine Eingabeaufforderung wie diese Ich möchte einen Flug von Z von Austin nach Zürich buchen. Dann kann der Agent leicht herausfinden, dass der Abflugort Austin und der Zielort U is, und diese Information kann an die Google API übermittelt werden. Wenn Sie jedoch eine Eingabeaufforderung wie diese Ich möchte einen Flug nach Zürich buchen, hat der Agent keine Ahnung, wo der Flug abfliegt, und deshalb können Sie den API Aufruf nicht über einen einfachen Funktionsaufruf durchführen. Hier kommen die Erweiterungen ins Spiel. Sie bringen dem Agenten bei, wie API Endpunkte verwendet werden, indem sie ihm einige kurze Beispiele geben und ihm mitteilen, welche Argumente oder Parameter er benötigt, um verschiedene API Endpunkte erfolgreich aufzurufen. Sie fügen also für jeden API Endpunkt einige kurze Beispiele hinzu. Auf diese Weise weiß der Agent, wann er eine Erweiterung verwenden muss und welche verschiedenen Eingaben erforderlich sind. Die zweite Gruppe von Werkzeugen werden Funktionen genannt. Diese sind den Funktionen in Programmiersprachen sehr ähnlich, wobei eine Funktion im Grunde ein in sich geschlossenes Codemodul ist, das verwendet wird, um eine ganz bestimmte Aufgabe zu erledigen. In Bezug auf die Implementierung ähnelt dies sehr einer Erweiterung. Der einzige Unterschied zwischen einer Funktion und einer Erweiterung besteht laut diesem Whitepaper darin, dass die Funktion auf der Client Seite ausgeführt wird, während die Erweiterungen auf der Agentenseite ausgeführt werden. Das Modell generiert lediglich Eingaben und Ausgaben für eine Funktion, die eine ganz bestimmte Operation ausführt oder implementiert, die auf der Client Seite erledigt werden muss. Die Ergebnisse werden an den Agenten zurückgegeben. Der Agent verwendet diese Beobachtungen, um seinen Plan zu aktualisieren und Maßnahmen zu ergreifen. Um den Unterschied bei Erweiterungen noch einmal zusammenzufassen, hier ein paar kurze Beispiele, bei denen der Agent sie ausführen kann. Bei Funktionen. Handelt es sich um tatsächliche Funktionen, bei denen die Eingaben vom LLM stammen. Dann führen wir diese Funktionen auf der Client Seite aus und senden die Ergebnisse zurück an den Agenten oder das LLM. Funktionen bieten Ihnen viel Flexibilität, da der Entwickler bestimmte Aufgaben auf der Client Seite auslagern kann. Ein Anwendungsfall könnte also die Sicherheit sein, da Unternehmen oder Entwickler so viel mehr Kontrolle darüber erhalten, wie Agenten auf sensible Daten zugreifen oder bestimmte Operationen an den Daten durchführen können. Oder jetzt die dritte Tool Familie, die sogenannten Datenspeicher. Diese erweitern im Grunde das Wissen Ihres LLM. Die Idee dabei ist, dass Sie Datenspeicher verwenden können, die diese verschiedenen Arten von Datensätzen in ein standardisiertes Format bringen, das der Agent verwenden kann, wenn Sie über private Dokumente oder bestimmte Websites verfügen, die nach dem Trainingsabbruch Ihres LLM online gegangen sind. Ein Beispiel hierfür ist REC oder Retrieval Augmented Generation. In REC standardisieren Sie im Grunde alle Ihre Informationen in einem Vektorspeicher mit Hilfe eines Einbettungsmodells. Immer wenn es also eine Abfrage gibt, die sich auf die Informationen in Ihrem Vektorspeicher bezieht, verwenden Sie das Einbettungsmodell. Um Einbettungen für die Benutzerabfrage zu berechnen. Führen Sie dann den Abruf im Vektorspeicher oder in der Datenbank durch. Danach werden die abgerufenen Inhalte an den Agenten weitergeleitet, der die endgültige Antwort generiert. Meiner bescheidenen Meinung nach ist RACK wahrscheinlich eine der wichtigsten und praktischsten Anwendungen von Generativer Key und Agenten im Allgemeinen. Es wird in Branchen eingesetzt. Jeder versucht sein eigenes Retrieval System zu entwickeln. Wenn Sie sich also für dieses Thema interessieren, sollten Sie unbedingt den Kanal abonnieren. Ich erstelle viele Inhalte zu verschiedenen RACK Techniken. Ich biete sogar einen Kurs zu fortgeschrittenen Rack Techniken an, falls Sie daran interessiert sind. Den Link zu diesem Kurs finden Sie in der Videobeschreibung. Und RAC ist so wichtig, dass die meisten der agentischen Frameworks, die Sie sehen, spezielle Tools für das Retrieval haben werden. Und deshalb erwägt sogar Google in diesem White Paper Rack oder Retrieval. Oder Datenquellen, wie auch immer Sie es nennen wollen. Im Wesentlichen ist es REG als eine bestimmte Kategorie von Tools. Hier ist eine sehr schöne Tabelle, die verschiedene Tools, die Sie haben, und ihre Anwendungsfälle zusammenfasst. Sie haben also drei mögliche Tools. Wenn der Entwickler möchte, dass der Agent die Interaktion mit dem API Endpunkt steuert, sollten Sie Erweiterungen verwenden, da diese auf der Agentenseite ausgeführt werden. Dies ist nützlich, um native vorgefertigte Erweiterungen zu nutzen. Es gibt beispielsweise verschiedene vorgefertigte APIs und sie müssen dann nur einige Beispiele für deren Verwendung bereitstellen. Erweiterungen sind dann ein sehr guter Anwendungsfall. Alles, was Sie auf der Agentenseite ausführen möchten, sollte als Erweiterung implementiert werden. Funktionsaufrufe hingegen werden aus Sicherheits und Authentifizierungsgründen auf der Client Seite durchgeführt. Ein weiterer zu berücksichtigender Aspekt sind zeitliche Einschränkungen oder wenn Sie asynchrone Vorgänge oder Stapelverarbeitungen durchführen möchten, dann sollten Sie Funktionsaufrufe verwenden. Und der letzte Punkt Wenn Sie mit Datenquellen interagieren und diese verwenden möchten, um das Wissen des Agenten zu erweitern, dann sollten Sie Datenquellen verwenden. Dies ist im Grunde eine REG Implementierung, die wiederum auf der Agentenseite ausgeführt wird, da der Agent diese Wissensdatenbanken oder Datenquellen verwendet, um Informationen zu extrahieren. Es gibt nun einen Abschnitt über die Verbesserung der Modellleistung durch gezieltes Lernen. Sie können drei verschiedene Ansätze für gezieltes Lernen verwenden. Einer ist kontextbezogenes Lernen. Sie stellen also zum Zeitpunkt der Inferenz ein ganz bestimmtes Eingabeaufforderungstool und einige kurze Beispiele bereit, die es dem Modell ermöglichen, anhand der bereitgestellten Beispiele im Handumdrehen zu lernen. Dies ist eine sehr beliebte Technik, die Frameworks wie React oder Chain of Fort gut nutzen können. Das Problem dabei ist jedoch, dass sie zeitlich eingefroren ist, da Sie diese wenigen kurzen Beispiele nur einmal basierend auf der Benutzereingabe bereitstellen. Wenn Sie die Eingabeaufforderung des Modells jedoch dynamisch füllen möchten, können Sie möglicherweise etwas wie abrufbasiertes Kontextlernen verwenden. In diesem Fall geben Sie also einige kurze Beispiele speziell basierend auf dem Kontext an, in dem der Agent verwendet wird, und dann können Sie die Eingabeaufforderungen basierend auf dem abgerufenen Kontext dynamisch füllen. Beide dieser Methoden sind relativ einfacher umzusetzen und meiner Meinung nach viel flexibler. Bei beiden Techniken lernt das Modell im Handumdrehen. Wenn Sie jedoch ein dauerhafteres Lernen wünschen, können Sie Techniken wie auf Feinabstimmung basierendes Lernen verwenden. In diesem Fall benötigen Sie einen größeren Datensatz mit spezifischen Beispielen für die Unterschiede bei der Verwendung verschiedener Tools und der Interaktion mit verschiedenen Szenarien. Dies wird jedoch viel dauerhafter sein und Ihre Eingabeaufforderungen werden viel einfacher sein. Wenn Sie also nicht viele Aufnahmen hinzufügen möchten und Ihr Kontextfenster sehr begrenzt ist, können Sie so etwas wie Fine Tuning basiertes Lernen verwenden. Sie haben auch ein Beispiel dafür, wie Sie mit Agenten in LangChain beginnen können. Ich habe eine Reihe verschiedener Videos zu verschiedenen Frameworks in verschiedenen LLMs erstellt, in denen es darum geht, wie Agenten erstellt werden. Daher werde ich diesen Teil nicht behandeln. Eines meiner Ziele für 2025 ist es, viele technische Inhalte abzudecken, darunter auch, wie Menschen agentenbasierte Systeme in der Industrie erstellen und verwenden. Wenn Sie sich dafür interessieren, sollten Sie den Kanal unbedingt abonnieren. Es gibt auch viele spannende Dinge, die passieren, die ich in ein paar Wochen mit Ihnen teilen werde. Ich hoffe, Sie finden dieses Video nützlich. Danke fürs Zuschauen und wie immer bis zum nächsten Mal.










