Ein Agent (Intelligenter Agent) ist eine anwendungszentrierte System, das auf einem großen Sprachmodell basiert und in der Lage ist, autonom Entscheidungen zu treffen und Aktionen im Hinblick auf eine Aufgabenbereich durchzuführen. Das große Modell stellt dem Agent grundlegende Fähigkeiten wie Sprachverständnis, Reasoning und Inhaltsgenerierung zur Verfügung, wodurch er Benutzeraufgaben verstehen und aktuelle Informationen analysieren kann. Auf dieser Basis wendet der Agent die Reasoning-Fähigkeit des Modells weiter auf die Aufgabenausführung an: Bei einem Ziel muss er nicht nur eine Antwort generieren, sondern auch bestimmen, was getan werden muss, um das Ziel zu erreichen, und über Werkzeuge externe Informationen abrufen oder spezifische Aktionen ausführen. Wenn eine Aufgabe mehrere Schritte umfasst, kann der Agent auch die Ergebnisse des vorherigen Schrittes verwenden, um den nächsten Schritt zu bestimmen und bei Bedarf den ursprünglichen Plan anzupassen, bis die Aufgabe abgeschlossen ist. Daher erweitert sich der Fokus des Agent von „welchen Inhalt basierend auf der Eingabe generieren" zu „wie Aufgaben rund um Ziele abschließen". Die hier erwähnte autonome Entscheidungsfindung bedeutet nicht, vollkommen uneingeschränkt zu handeln, sondern innerhalb des vordefinierten Aufgabenbereichs, der Werkzeuge und der Berechtigungen basierend auf dem aktuellen Zustand passende Operationen auszuwählen. Ein Agent ist also kein eigenständiges Modell neben den großen Sprachmodellen, sondern ein Aufgabenausführungssystem, das große Modelle als Kern für Verständnis und Entscheidungsfindung nutzt und Modelle mit externen Fähigkeiten kombiniert.
Agent eignen sich besonders gut für Aufgaben, die mehrere Schritte umfassen, die Verwendung externer Informationen oder Werkzeuge erfordern und deren Ausführungsprozess sich basierend auf Zwischenergebnissen ändern kann. Gängige Anwendungsszenarien umfassen Informationsabruf, Datenanalyse, Softwareentwicklung und Geschäftsprozessautomatisierung. Zum Beispiel kann ein Agent im Informationsabruf-Szenario basierend auf der Aufgabe Materialien aus verschiedenen Quellen suchen und organisieren; im Datenanalyse-Szenario kann er Daten lesen, Berechnungen durchführen und Analyseergebnisse generieren; im Softwareentwicklungs-Szenario kann er Code schreiben, Tests ausführen und basierend auf Laufzeitergebnissen weiter modifizieren; im Geschäftsprozessautomatisierungs-Szenario kann er sich mit Datenbanken und Geschäftssystemen verbinden, um Datenabfragen, Ticketverarbeitung und andere Operationen durchzuführen. Für Aufgaben wie Übersetzung, Zusammenfassung und Umformulierung, die direkt durch Modellgenerierung abgeschlossen werden können, ist in der Regel kein Agent erforderlich.
Anmelden an der Diskussion teilnehmen
Der Kern des Agent, verantwortlich für die Verarbeitung von Benutzereingaben, die Generierung von Antworten und die Entscheidungsfindung — im Wesentlichen das „Gehirn" des Agent. Da Agent keine voreingestellten Pfade befolgen, sondern ihr Verhaltensstrategie dynamisch basierend auf Echtzeitbedingungen anpassen, ist das LLM nicht nur für das Verstehen und Generieren von Inhalten verantwortlich, sondern muss auch die nächste Operation basierend auf der aktuellen Aufgabe und den Ausführungsergebnissen bestimmen und entscheiden, wie mit der externen Umgebung interagiert wird. Der Agent verwendet Prompts (Hinweise), um die Rolle des LLM, die Aufgabenziele, Verhaltensregeln und Berechtigungsgrenzen festzulegen, wodurch das LLM innerhalb der vordefinierten Grenzen Entscheidungen treffen und ausführen kann.
Verantwortlich für die Erstellung des Aktionsplans des Agent, einschließlich der Zerlegung komplexer Aufgaben in mehrere Teilaufgaben und der Bestimmung nachfolgender Ausführungsschritte. Bei der Verarbeitung mehrstufiger Aufgaben muss ein Agent nicht nur einen Aktionsplan erstellen, sondern diesen auch basierend auf der Aufgabenausführung anpassen. Wenn beispielsweise Werkzeugergebnisse von den Erwartungen abweichen oder die erhaltenen Informationen unzureichend sind, kann der Agent den ursprünglichen Plan anpassen und den nächsten Schritt neu bestimmen. Das Planungsmodul ermöglicht es dem Agent, nachfolgende Aktionen dynamisch basierend auf dem Aufgabenstatus zu planen und anzupassen.
Verwendet zur Speicherung des Gedächtnisses des Agent, einschließlich Kurzzeitgedächtnis und Langzeitgedächtnis. Das Kurzzeitgedächtnis speichert hauptsächlich Informationen der aktuellen Sitzung oder Aufgabe, während das Langzeitgedächtnis zur Speicherung von Informationen dient, die langfristig benötigt werden. Das Gedächtnis ist ein dynamisches, zugängliches und aktualisierbares System. Dynamisch bedeutet, dass sich das Gedächtnis mit neuen Informationen und dem Aufgabenstatus ändern kann; zugänglich bedeutet, dass der Agent gespeicherte Informationen bei Bedarf abrufen und verwenden kann; aktualisierbar bedeutet, dass der Agent das bestehende Gedächtnis basierend auf neuen Informationen und Ausführungsergebnissen ergänzen oder ändern kann. Da sich das Gedächtnis kontinuierlich aktualisiert, kann der Agent Interaktion und Aufgabenerfahrung nutzen, um nachfolgende Urteile und Entscheidungen zu verbessern und seine Anpassungsfähigkeit an verschiedene Aufgaben und Umgebungen zu steigern.
Verschiedene Werkzeuge, die dem Agent zur Verfügung stehen, einschließlich Suchmaschinen, Datenbanken, Rechenmaschinen, Code-Ausführungsumgebungen und verschiedener externer Dienste, die über APIs bereitgestellt werden. Die Hauptfunktion des Werkzeugmoduls ist es, die Fähigkeit des Agent zur Interaktion mit der externen Umgebung zu erweitern, wodurch der Agent nicht nur Inhalte generieren, sondern auch externe Informationen abrufen und spezifische Operationen ausführen kann.
Bei der Verwendung des Werkzeugmoduls muss der Agent basierend auf der aktuellen Aufgabe und dem Kontext bestimmen, ob Werkzeuge benötigt werden und welches Werkzeug ausgewählt werden soll. Effektive Werkzeugverwendung bedeutet nicht nur die Auswahl des richtigen Werkzeugs, sondern auch, wie Werkzeuge effizient genutzt werden, um unnötige Werkzeugverwendung zu reduzieren. Wenn eine Aufgabe die Zusammenarbeit mehrerer Werkzeuge erfordert, muss der Agent auch entscheiden, ob andere Werkzeuge basierend auf den Ergebnissen weiter aufgerufen werden sollen, und Ergebnisse verschiedener Werkzeuge integrieren. Daher stellt das Werkzeugmodul dem Agent nicht nur externe Fähigkeiten zur Verfügung, sondern erfordert auch, dass der Agent Werkzeuge basierend auf den Aufgabenanforderungen vernünftig auswählt und verwendet.
Ein Agent ist ein System, das LLM, Planification, Gedächtnis und Werkzeuge integriert, wie im folgenden Diagramm gezeigt. Diese Module arbeiten zusammen, um dem Agent zu ermöglichen, Aufgaben autonom auszuführen, zu lernen und sein Verhalten zu verbessern.
Nach Erhalt einer Aufgabe muss ein Agent basierend auf dem Aufgabenziel und den aktuellen Informationen bestimmen, wie er vorgeht. Einige Aufgaben können beispielsweise Werkzeuge aufrufen und gleichzeitig den nächsten Schritt basierend auf den Rückgabewerten bestimmen; einige komplexe Aufgaben erfordern zuerst die Zerlegung der Schritte und dann die schrittweise Ausführung; für generierte Ergebnisse können weitere Überprüfung und Änderung durchgeführt werden. Wenn ein einzelner Agent die gesamte Aufgabe nicht abschließen kann, können mehrere Agent verschiedenen Rollen zugewiesen werden, um zusammenzuarbeiten.
Basierend auf den Aufgabenmerkmalen und Ausführungsmethoden können Agent verschiedene Aufgabenausführungsmodi annehmen. Nachfolgend werden vier gängige Modi vorgestellt: ReAct, Plan-and-Execute, Reflection und Multi-Agent-Zusammenarbeit, die den Aufgabenausführungsprozess des Agent aus verschiedenen Aspekten wie dynamische Ausführung, Aufgabenplanung, Ergebnisverbesserung und Aufgabenteilung organisieren.
ReAct (Reasoning and Acting) ist ein Ansatz zur Aufgabenausführung, der Reasoning und Aktion kombiniert, vorgeschlagen von Shunyu Yao et al. Das große Modell reasoniert und handelt basierend auf aktuellen Informationen, reasoniert und handelt dann weiter basierend auf neuen Informationen aus der Aktion, bis die Aufgabe abgeschlossen ist.
Der typische ReAct-Prozess umfasst Thought (Reasoning), Action (Aktion) und Observation (Beobachtung). Thought repräsentiert die Analyse aktueller Informationen durch das Modell, um den nächsten Schritt zu bestimmen; wenn externe Informationen abgerufen oder eine Operation ausgeführt werden muss, generiert das Modell die entsprechende Action, wie den Aufruf eines Suchwerkzeugs oder eine Datenbankabfrage; das vom Werkzeug zurückgegebene Ergebnis wird dem Modell als Observation zur Verfügung gestellt, und das Modell trifft weitere Entscheidungen basierend auf diesen neuen Informationen.
Während der Aufgabenausführung erscheinen Thought, Action und Observation basierend auf den Aufgabenanforderungen abwechselnd und bilden einen Ausführungsprozess, bei dem Reasoning, Aktion und Beobachtung zusammenarbeiten. Der typische Prozess kann ausgedrückt werden als:
Thought → Action → Observation → Thought → Action → Observation → ... → Endergebnis
Zum Beispiel fragt ein Benutzer: „Wer hat 2024 den Nobelpreis für Physik gewonnen? Wer ist der Älteste unter ihnen?"
Der Agent bestimmt zuerst, dass er die Liste der Nobelpreisträger für Physik 2024 abrufen muss, daher ruft er das Suchwerkzeug zur Abfrage auf. Nach Erhalt der Liste stellt er fest, dass er auch die Alter der Preisträger vergleichen muss, daher fährt er mit der Abfrage ihrer Geburtsdaten fort. Nach Erhalt der erforderlichen Informationen vergleicht der Agent und generiert die endgültige Antwort.
In diesem Prozess hat der Agent nicht alle Ausführungsschritte zu Beginn der Aufgabe bestimmt, sondern den nächsten Schritt basierend auf jedem Werkzeug-Rückgabewert entschieden. Daher eignet sich ReAct besser für Aufgaben, die eine kontinuierliche Interaktion mit der externen Umgebung erfordern, wie Suche, Abfrage und Werkzeugaufruf. Für komplexe Aufgaben mit vielen Schritten kann es bei vollständiger Verwendung dieses schrittweisen Ansatzes zu fehlenden Schritten oder wiederholten Ausführungswegen kommen.
Plan-and-Execute teilt die Verarbeitung komplexer Aufgaben in zwei Phasen: Planung und Ausführung. Nach Erhalt einer Aufgabe analysiert der Agent zuerst das Aufgabenziel und zerlegt die durchzuführenden Schritte und bildet einen Gesamtplan, um dann schrittweise gemäß dem Plan auszuführen.
Zum Beispiel beantragt ein Benutzer: „Analysieren Sie die jüngste Geschäftsentwicklung von drei Unternehmen der neuen Energiebranche und erstellen Sie einen Vergleichsbericht." Diese Aufgabe umfasst mehrere Schritte, darunter Datenerfassung, Datenorganisation, Vergleichsanalyse und Berichterstellung. Für solche mehrstufigen Aufgaben kann zuerst ein Plan wie folgt erstellt werden:
Nach Bildung des Plans führt der Agent die Aufgaben nacheinander aus. Bei der Ausführung eines Schritts kann er weiterhin Suche, Datenbank oder andere Werkzeuge aufrufen. Wenn während der Ausführung festgestellt wird, dass der ursprüngliche Plan nicht fortgesetzt werden kann, oder neue Aufgabenanforderungen auftauchen, kann der ursprüngliche Plan angepasst werden.
Der typische Ausführungsprozess von Plan-and-Execute kann ausgedrückt werden als:
Benutzeraufgabe → Plan erstellen → Schrittweise ausführen → Aufgabenstatus prüfen → Endergebnis
Wobei beim Prüfen des Aufgabenstatus, wenn der ursprüngliche Plan Anpassungen erfordert, vor der Fortsetzung der Ausführung eine Neuplanung durchgeführt werden kann.
Im Vergleich zu ReAct betont Plan-and-Execute die Erstellung eines Gesamtplans vor der Ausführung, was es für Aufgaben mit vielen Schritten, klaren Zielen und der Möglichkeit der Vorauszerlegung geeignet macht. Die beiden Modi können auch kombiniert werden, beispielsweise durch Verwendung von Plan-and-Execute zur Planung komplexer Aufgaben und dann ReAct innerhalb einzelner Schritte zur dynamischen Bestimmung der nächsten Operation basierend auf den Werkzeug-Rückgabewerten.
Die Ergebnisse, die ein Agent beim ersten Mal generiert, erfüllen nicht unbedingt die Aufgabenanforderungen. Zum Beispiel kann der erstellte Bericht wichtige Informationen auslassen, Antworten können Faktenfehler enthalten, oder der Code kann möglicherweise nicht korrekt ausgeführt werden. Für solche Aufgaben kann ein Überprüfungs- und Verbesserungsprozess basierend auf vorläufigen Ergebnissen hinzugefügt werden — dies ist die Grundidee des Reflection-Modus (Reflexion).
Der grundlegende Reflection-Prozess kann ausgedrückt werden als: Benutzeraufgabe → Vorläufige Ergebnisse generieren → Ergebnisse prüfen → Probleme identifizieren → Ergebnisse ändern → Erneut prüfen → ... → Anforderungen erfüllen → Endergebnis.
Zum Beispiel lassen Sie einen Agent einen Produktvergleichsbericht basierend auf mehreren Quellen erstellen. Nach Fertigstellung des ersten Entwurfs können Sie weiter prüfen, ob alle zu vergleichenden Produkte abgedeckt sind, ob die Produktparameter mit den Originalquellen übereinstimmen und ob wichtige Unterschiede fehlen. Wenn für ein Produkt unvollständige Informationen gefunden werden, können Sie erneut nach Materialien suchen und diese ergänzen; wenn die Schlussfolgerungen nicht mit den Quellen übereinstimmen, müssen diese überarbeitet werden.
In diesem Prozess können die Feedbacks zur Ergebnisüberprüfung aus verschiedenen Quellen stammen. Der Agent kann seine eigenen Ausführungsergebnisse überprüfen, andere Agent oder Modelle zur Bewertung verwenden oder Regeln, Wissensbasen oder manuelle Überprüfung kombinieren, um Feedback zu geben.
Dieser Modus eignet sich besser für Aufgaben mit hohen Qualitätsanforderungen wie Berichterstellung, Code-Schreibung und komplexe Analyse. Allerdings erhöhen mehrfache Überprüfungen und Änderungen auch die Anzahl der Modellaufrufe und die Ausführungszeit, daher werden in der Praxis normalerweise Beendigungsbedingungen festgelegt, wie das Beenden, wenn die Ergebnisse die Anforderungen erfüllen, oder das Stoppen nach Erreichen der maximalen Überprüfungsanzahl.
Für einige komplexe Aufgaben muss ein einzelner Agent möglicherweise gleichzeitig Datenerfassung, Datenanalyse, Inhaltserstellung und Ergebnisüberprüfung durchführen. In diesem Fall können die Aufgaben mehreren Agent zugewiesen werden, die jeweils verschiedene Teile verarbeiten, und dann zusammenarbeiten, um das endgültige Ziel zu erreichen. Die Multi-Agent-Zusammenarbeit umfasst hauptsächlich zwei Aspekte: Aufgabenteilung und Informationsaustausch.
Bei der Aufgabenteilung werden verschiedenen Agent verschiedene Rollen, Aufgaben, Werkzeuge und Wissen zugewiesen. Um beispielsweise einen Branchenforschungsbericht zu erstellen, können ein Research-Agent, ein Data-Analysis-Agent, ein Writing-Agent und ein Review-Agent eingerichtet werden. Der Research-Agent ist für die Erfassung und Organisation von Materialien verantwortlich, der Data-Analysis-Agent verarbeitet relevante Daten, der Writing-Agent generiert den Bericht und der Review-Agent überprüft den Bericht.
In Bezug auf den Informationsaustausch können verschiedene Zusammenarbeitsmethoden zwischen mehreren Agent verwendet werden. Für Aufgaben, die klar geteilt werden können, können mehrere Agent verschiedene Teilaufgaben getrennt verarbeiten und am Ende die Ergebnisse zusammenfassen; für Aufgaben mit sequenziellen Abhängigkeiten kann das Ergebnis eines Agent an den nächsten Agent zur weiteren Verarbeitung übergeben werden; für Aufgaben, die wiederholte Diskussion oder Änderung erfordern, können verschiedene Agent Informationen über Nachrichteninteraktionen austauschen. Zusätzlich kann ein koordinierender Agent eingerichtet werden, der basierend auf der aktuellen Situation entscheidet, welcher Agent als nächstes die Aufgabe bearbeiten soll.
Am Beispiel der Erstellung eines Branchenforschungsberichts wird ein Multi-Agent-Zusammenarbeitsansatz im folgenden Diagramm gezeigt:

Die Multi-Agent-Zusammenarbeit kann die Schwierigkeit der Verarbeitung komplexer Aufgaben für einen einzelnen Agent durch Arbeitsteilung reduzieren, aber die Anzahl der Agent ist nicht unbedingt besser. Mit zunehmender Anzahl der Agent werden auch die Aufgabenzuweisung, Informationsübermittlung und Ergebniskoordination komplexer, was die Modellaufrufe und Ausführungskosten erhöht. Daher ist es für Aufgaben, die ein einzelner Agent abschließen kann, in der Regel nicht erforderlich, mehrere Agent einzuführen.
Diese Aufgabenausführungsmodi sind nicht voneinander unabhängig und können basierend auf den Aufgabenanforderungen in praktischen Anwendungen kombiniert werden. Plan-and-Execute kann beispielsweise zur Planung komplexer Aufgaben verwendet werden, dann ReAct zur Durchführung von Schritten, die mehrere Werkzeugaufrufe erfordern, mit Reflection zur Überprüfung und Verbesserung der Ergebnisse; für größere Aufgaben können verschiedene Teilaufgaben mehreren Agent zur Zusammenarbeit zugewiesen werden.