📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Multi-Agent Systems Have NEVER Been EASIER to Build (n8n, no code)

Nate Herk | AI Automation20:13

Transcription

Ein Multi-Agenten-System ist eines, bei dem mehrere autonome KI-Agenten zusammenarbeiten, um die Aufgabe zu erledigen, und sie können miteinander sprechen und die Werkzeuge nutzen, auf die sie Zugriff haben. Worüber wir heute sprechen werden, ist eine Art von Multi-Agenten-System, das als Orchestrator-Architektur bezeichnet wird, und im Grunde bedeutet das, dass wir hier oben einen Agenten haben, den ich den Eltern-Agenten nenne, und dann nenne ich diese Kind-Agenten, aber wir haben einen Orchestrator-Agenten, der in der Lage ist, verschiedene Unteragenten aufzurufen. Und der beste Weg, darüber nachzudenken, ist, dass das einzige Ziel dieses Agenten darin besteht, die Absicht des Benutzers zu verstehen, sei es über Telegram oder per E-Mail, was auch immer es ist, diese Absicht zu verstehen und dann zu verstehen: Okay, ich habe Zugriff auf diese vier Agenten und hier ist, was jeder von ihnen gut kann, welchen oder welche ich aufrufen muss, um das Endziel tatsächlich zu erreichen.

In diesem Fall, wenn ich dem Agenten sage: "Kannst du mir bitte einen kurzen Blogbeitrag über Hunde schreiben und ihn an Dexter Morgan senden, und kannst du auch ein Abendessen für heute Abend um 18 Uhr mit Michael Scott erstellen, und danke, cool?" Das ist eine ziemlich umfangreiche Aufgabe, oder? Und können Sie sich vorstellen, wenn dieser eine Agent Zugriff auf all diese, sagen wir, 15 oder wie viele Werkzeuge auch immer hätte und er all das selbst tun müsste? Er wäre ziemlich überfordert und könnte es nicht sehr genau tun.

Was Sie hier sehen können, ist, dass er einfach verstehen kann: Okay, ich habe diese vier Agenten, jeder hat eine andere Rolle, welche muss ich aufrufen? Und Sie können sehen, was er tut, er hat den Kontakt-Agenten aufgerufen, um die Kontaktinformationen zu erhalten. Jetzt ruft er den Content-Creator-Agenten auf, und nachdem das abgeschlossen ist, wird er wahrscheinlich den Kalender-Agenten aufrufen, um diese Veranstaltung zu erstellen, und dann wird er den E-Mail-Agenten aufrufen, um den Blogbeitrag tatsächlich zu senden, den wir vom Content-Creator-Agenten erstellen ließen. Und dann können Sie sehen, dass er auch dieses kleine Werkzeug hier unten namens "Think" aufgerufen hat. Wenn Sie ein vollständiges Video sehen möchten, in dem ich erkläre, was das tut, können Sie es hier oben ansehen. Aber wir haben gerade eine Antwort vom Orchestrator-Agenten erhalten, also sehen wir, was er gesagt hat.

Alles klar, er sagte: "Der Blogbeitrag über Hunde wurde an Dexter Morgan gesendet. Ein Abendessen für heute Abend um 18 Uhr mit Michael Scott wurde erstellt. Und wenn Sie noch etwas brauchen, lassen Sie es mich wissen." Und nur um zu überprüfen, ob das tatsächlich durchgegangen ist, können Sie sehen, dass wir eine neue Veranstaltung für das Abendessen um 18 Uhr mit Michael Scott haben, und dann in unseren gesendeten E-Mails können wir sehen, dass wir einen vollständigen Blogbeitrag an Dexter Morgan gesendet haben. Und Sie können sehen, dass wir hier auch einen Link haben, auf den wir klicken können, was bedeutet, dass der Content-Creator-Agent recherchieren, diese URL finden, den Blogbeitrag erstellen und ihn an den Orchestrator-Agenten zurücksenden konnte. Und dann erinnerte sich der Orchestrator-Agent: Okay, ich muss einen Blogbeitrag an Dexter Morgan senden, ich habe seine E-Mail vom Kontakt-Agenten, ich habe den Blogbeitrag vom Content-Creator-Agenten. Jetzt muss ich ihn nur noch an den E-Mail-Agenten weitergeben, um den Rest zu erledigen.

Ja, es ist wichtig, über die Werkzeuge nachzudenken, denn wenn dieser Hauptagent Zugriff auf all diese Werkzeuge hätte, wäre das ziemlich überwältigend. Aber denken Sie auch über die Prompts nach. In diesem ultimativen Assistenten-Prompt ist er ziemlich kurz, oder? Alles, was ich sagen musste, war: "Du bist der ultimative Assistent. Deine Aufgabe ist es, die Anfrage des Benutzers an das richtige Werkzeug weiterzuleiten. Du solltest niemals E-Mails schreiben oder Zusammenfassungen erstellen oder irgendetwas tun, du musst nur die Aufgabe delegieren." Und dann haben wir gesagt: "Okay, du hast diese sechs Werkzeuge. Hier sind sie, hier ist, wann du sie benutzt." Und es ist einfach super super klar und prägnant, es gibt fast keinen Raum für Mehrdeutigkeit. Wir haben ihm ein paar Regeln gegeben, ein Beispiel-Output und das war's im Grunde. Und jetzt kann er jede Anfrage interpretieren, die wir haben könnten, auch wenn es eine umfangreiche Anfrage ist, wie Sie in diesem Fall sehen können, musste er alle vier Agenten aufrufen, aber er hat es trotzdem richtig gemacht.

Und wenn er etwas an den E-Mail-Agenten weiterleitet, zum Beispiel, können wir diesem spezifischen Agenten einen sehr, sehr spezifischen System-Prompt geben, weil wir ihm nur sagen müssen: "Du hast nur Zugriff auf diese E-Mail-Werkzeuge." Und das ist nur eine Rückkehr zu dem ganzen Thema Spezialisierung. Es ist nicht verwirrend, er weiß genau, was er tun muss. Dasselbe gilt für diese anderen Agenten. Der Kalender-Agent hat natürlich seinen eigenen Prompt mit seinem eigenen Satz von Kalender-Werkzeugen. Der Kontakt-Agent hat seinen eigenen Prompt mit seinem eigenen Satz von Kontakt-Werkzeugen. Und dann haben wir natürlich den Content-Creator-Agenten, der wissen muss, wie man nicht nur recherchiert, indem er sein Tavly-Werkzeug benutzt, sondern er muss auch den Blogbeitrag formatieren, mit, wissen Sie, richtigem HTML, wie Sie hier sehen können, gab es einen Titel, es gab Überschriften, es gab Inline-Links, all diese Art von Dingen. Und weil wir all diese Spezialisierung haben, können Sie sich vorstellen, wenn wir all diese System-Prompts in diesen einen Agenten geworfen und ihm Zugriff auf alle Werkzeuge gegeben hätten, wäre das einfach nicht gut gewesen.

Und wenn Sie immer noch nicht überzeugt sind, denken Sie daran, dass wir für jede dieser verschiedenen Aufgaben, weil wir wissen, was jeder Agent tut, ihm ein sehr spezifisches Chat-Modell geben können. Denn für etwas wie Content-Erstellung benutze ich gerne Cloud 3.7, aber ich würde nicht etwas so Teures wie Cloud 3.7 verwenden, nur um Kontakte zu erhalten oder Kontakte zu meiner Kontaktdatenbank hinzuzufügen. Deshalb habe ich mich hier für Flash entschieden, und für diese benutze ich 4.1 Mini. So haben Sie viel mehr Kontrolle darüber, wie genau Ihre Agenten laufen sollen. Und damit habe ich so ziemlich alles abgedeckt, aber wissen Sie, Vorteile eines Multi-Agenten-Systems: wiederverwendbare Komponenten. Jetzt, da wir einen E-Mail-Agenten aufgebaut haben, wann immer ich einen anderen Agenten baue und merke, dass es vielleicht schön wäre, wenn dieser Agent ein paar E-Mail-Funktionen hätte, boom, ich gebe ihm einfach Zugriff auf den E-Mail-Agenten, weil wir ihn bereits gebaut haben. Und dieser E-Mail-Agent kann von so vielen verschiedenen Workflows aufgerufen werden, wie wir wollen.

Und wenn wir über wiederverwendbare Komponenten sprechen, muss das nicht nur bedeuten, dass diese Agenten wiederverwendbar sind. Es können auch Workflows sein, die wiederverwendbar sind. Zum Beispiel, wenn ich zu diesem KI-Marketingteam-Video gehe, wenn Sie es noch nicht gesehen haben, werde ich hier oben einen Link hinterlassen. Diese Werkzeuge hier unten sind keine Agenten, es sind alles nur Workflows. Wenn ich zum Beispiel in den Video-Workflow klicke, sehen Sie, dass Daten an diesen Workflow gesendet werden, und obwohl es kein Agent ist, wird er trotzdem alles tun, was er tun muss, und dann Daten an diesen Hauptagenten zurücksenden. Ähnlich mit diesem "Create Image"-Werkzeug, wenn ich darauf klicken würde, sehen Sie, dass dies kein Agent ist, aber was es tun wird, ist, dass es Informationen von diesem Orchestrator-Agenten nimmt und eine sehr spezifische Funktion ausführt. Auf diese Weise muss der Hauptagent hier oben nur verstehen: Ich habe diese verschiedenen Werkzeuge, welches muss ich benutzen?

Also wiederverwendbare Komponenten und auch Modellflexibilität, verschiedene Modelle für verschiedene Agenten. Wir werden einfacheres Debugging und Wartung haben, denn wie ich schon sagte, mit dem ganzen Prompting-Ding, wenn Sie versucht hätten, diesem Hauptagenten Zugriff auf 25 Werkzeuge zu geben und im Prompt sagen müssten: "Hier ist, wann Sie alle 25 Werkzeuge benutzen", und es nicht funktionierte, wüssten Sie nicht, wo Sie anfangen sollen. Sie würden sich wirklich überfordert fühlen, wie kann ich diesen Prompt überhaupt reparieren? Indem wir die Dinge in kleine, kleine Aufgaben und spezialisierte Bereiche aufteilen, wird es so viel einfacher. Genau wie ich gerade Punkt Nummer vier abgedeckt habe: klare Prompt-Logik und bessere Testbarkeit. Und schließlich ist es eine Grundlage für Multi-Turn-Agenten oder Agenten-Gedächtnis. Nur weil wir Daten vom Hauptagenten an den Unteragenten senden, bedeutet das nicht, dass wir den Kontext verlieren, dass wir gerade mit Nate sprechen oder gerade mit Dave sprechen. Wir können immer noch dieses Gedächtnis zwischen den Workflows weitergeben, so dass die Dinge wirklich, wirklich mächtig werden und es einfach ziemlich cool ist.

Okay, wir haben eine Demo gesehen, ich denke, Sie verstehen die Vorteile hier. Nur eine Sache, die ich erwähnen wollte, bevor wir zu einem Live-Build eines Multi-Agenten-Systems übergehen, ist, dass nur weil das cool ist und es Vorteile gibt, das nicht immer das Richtige ist. Wenn Sie ein Multi-Agenten-Orchestrator-Framework in einen Prozess erzwingen, der ein einfacher Einzelagent oder ein einfacher KI-Workflow sein könnte, werden Sie nur die Latenz erhöhen, Sie werden die Kosten erhöhen, weil Sie mehr API-Aufrufe tätigen, und Sie werden wahrscheinlich die Fehlermenge erhöhen, einfach weil die goldene Regel ist, dass Sie so viel Datentransfer zwischen Workflows wie möglich eliminieren wollen, denn dort können Sie auf Probleme stoßen. Aber natürlich gibt es Zeiten, in denen Sie dedizierte Agenten für bestimmte Funktionen benötigen.

Lassen Sie uns also zu einem neuen Workflow übergehen und ein wirklich einfaches Beispiel für einen Orchestrator-Agenten erstellen, der einen Unteragenten aufrufen kann. Alles klar, was wir hier tun werden, ist, dass wir einen Orchestrator-Agenten erstellen werden. Ich werde Tab drücken, ich werde KI-Agent eingeben und wir werden diesen Kerl hier reinziehen und wir werden einfach mit diesem Kerl über dieses kleine Chat-Fenster hier unten für den Moment sprechen.

Das erste, was wir wie immer tun müssen, ist, ein Gehirn zu verbinden. Ich werde mir einen Open Router schnappen und wir werden einfach einen 4.1 Mini hineinwerfen und ich werde diesen Namen kurz ändern, damit wir sehen können, was wir benutzen. Und von hier aus werden wir im Grunde nur zu einem Sub-Workflow verbinden und dann werden wir diesen eigentlichen Sub-Workflow-Agenten aufbauen.

Der Weg, wie wir es tun, ist, wir klicken auf das Plus unter Werkzeug, und was wir tun wollen, ist, einen Noden-Workflow-Tool aufzurufen, weil Sie sehen können, dass es heißt: "Verwendet einen anderen Noden-Workflow als Werkzeug, ermöglicht die Verpackung jedes Noden-Knotens als Werkzeug." Das ist also super cool, so können wir Daten an diese benutzerdefinierten Dinge senden, die wir aufgebaut haben, wie Sie früher gesehen haben, als ich dieses kleine Beispiel des Marketingteam-Agenten gezeigt habe, so können wir es tun.

Ich werde darauf klicken und im Grunde, wenn Sie darauf klicken, gibt es ein paar Dinge zu konfigurieren. Das erste ist eine Beschreibung, wann Sie dieses Werkzeug verwenden. Sie werden dem Agenten das hier erzählen, und Sie werden auch ein wenig in einem System-Prompt erzählen können, aber Sie müssen ihm sagen, wann er dieses Werkzeug verwenden soll. Und dann ist das nächste, das Werkzeug tatsächlich zu verknüpfen. Sie können sehen, dass wir aus einer Liste unserer verschiedenen Workflows in Noden wählen können. Sie sehen, ich habe eine Menge verschiedener Workflows hier, aber alles, was Sie tun müssen, ist, denjenigen auszuwählen, zu dem dieser Orchestrator-Agent Daten senden soll. Und eine Sache, auf die ich hier aufmerksam machen möchte, ist diese Textbox, die besagt: "Das Werkzeug ruft den unten definierten Workflow auf und sucht im letzten Knoten nach der Antwort. Der Workflow muss mit einem Execute Workflow Trigger beginnen."

Was bedeutet das? Lassen Sie uns einfach einen weiteren Workflow erstellen und wir werden genau sehen, was es bedeutet. Ich werde einen neuen Workflow öffnen, der unser Unteragent sein wird. Ich werde Tab drücken, um die Knoten zu öffnen, und es fordert uns offensichtlich auf, einen Trigger auszuwählen, und wir werden diesen hier unten auswählen, der besagt: "Wenn ausgeführt von einem anderen Workflow, führt den Flow aus, wenn er von einem anderen Werkzeug über den Execute Workflow Knoten aufgerufen wird."

Im Grunde ist das Einzige, was auf diesen Knoten zugreifen und Daten an diesen Knoten senden kann, einer dieser Jungs hier. Diese beiden Dinge sind im Grunde nur verbunden und Daten werden zwischen ihnen gesendet. Und was an diesem Knoten interessant ist, ist, dass Sie Daten auf ein paar Arten akzeptieren können. Standardmäßig stelle ich es normalerweise auf "Alle Daten akzeptieren" und das platziert Dinge in ein Feld hier namens "Query". Aber wenn Sie wollten, könnten Sie auch spezifische Felder übermitteln lassen. Wenn Sie nur eine Telefonnummer erhalten möchten und einen Namen und eine E-Mail und all das bereits in drei separaten Feldern haben möchten, so könnten Sie das tun. Und ein praktisches Beispiel dafür wäre in meinem Marketingteam hier im "Create Image", wo Sie sehen können, dass ich einen Bildtitel, einen Bild-Prompt und eine Chat-ID übermittle. Und das ist ein weiteres gutes Beispiel dafür, dass man auch "Speicher" übermitteln kann, denn ich habe eine Chat-ID, die von hier kommt, was Speicher für den Agenten hier ist, aber dann kann ich diese Chat-ID auch an den nächsten Workflow senden, wenn wir hier unten auch auf Speicher zugreifen müssen.

In diesem Fall werden wir zu Beginn keine spezifischen Felder übermitteln, wir werden einfach "Alle Daten akzeptieren" machen und uns einen KI-Agenten daran anschließen lassen. Ich werde KI-Agent eingeben, wir werden das hier reinziehen. Das erste, was wir tun müssen, ist, das zu ändern, weil wir nicht über den verbundenen Chat-Trigger-Knoten sprechen werden, wie wir wissen, weil wir diesen Trigger hier haben. Also werden wir diesen Workflow speichern. Jetzt sollte er tatsächlich in Noden registriert werden, dass wir diesen Workflow haben. Ich werde hier zurückgehen und wir werden ihn einfach verbinden. Wir wissen, dass er "Subwork Sub Agent" heißt. Schnappen wir uns das hier. Und jetzt sehen Sie, dass der Sub-Workflow so eingerichtet ist, dass er alle Eingabedaten empfängt. Ohne spezifische Eingaben kann der Agent keine Daten an dieses Werkzeug übergeben. Sie können die spezifischen Eingaben im Trigger definieren. Das ist genau das, was ich Ihnen gerade mit der Änderung gezeigt habe.

Was ich tun möchte, ist zu zeigen, wie Daten hierher gelangen, damit wir sie abbilden können, damit der Agent sie lesen kann. Was wir tun müssen, bevor wir es tatsächlich testen können, ist, sicherzustellen, dass dieser Orchestrator-Agent versteht, was dieses Werkzeug tun wird und wann er es benutzen soll. Sagen wir einfach, dies wird ein E-Mail-Agent sein. Das erste, was ich tun werde, ist, dieses Ding intuitiv E-Mail-Agent zu nennen. Ich werde dann die Beschreibung eingeben: "Rufe dieses Werkzeug auf, um E-Mail-Aktionen durchzuführen."

Jetzt sollte es im Grunde genommen diesem Kerl signalisieren, dass immer wenn ich eine Anfrage sehe, die mit E-Mail zu tun hat, ich diese Anfrage einfach an dieses Werkzeug weiterleite. Wie Sie sehen können, werde ich diesem KI-Agenten noch keine Systemnachricht hinzufügen. Wir werden einfach sehen, ob wir verstehen können. Und ich werde hier reinkommen und sagen: "Bitte sende eine E-Mail an Nate und frage ihn, wie es ihm geht."

Wir schicken das ab und hoffentlich wird es dieses Werkzeug aufrufen, und dann können wir hineingehen und die erhaltene Anfrage sehen. Der Grund, warum dies fehlgeschlagen ist, ist, dass wir nichts abgebildet haben. Ich werde auf das Werkzeug klicken, ich werde auf "Sub-Ausführung anzeigen" klicken, damit wir den genauen Fehler öffnen können, der gerade passiert ist, und wir können genau sehen, was passiert ist. Es kam in einem Feld namens "Query" an, aber der Hauptagent sucht nicht nach einem Feld namens "Query", er sucht nach einem Feld namens "Chat Input".

Ich werde auf "Debuggen und Editor" klicken, damit wir das jetzt tatsächlich reinholen können. Alles, was ich tun muss, ist hierher zu kommen, das auf "Unten definieren" zu ändern und dann einfach die eigentliche Anfrage hineinzuziehen. Und jetzt wissen wir, dass dieser Unteragent immer die Nachricht des Orchestrator-Agenten erhalten wird. Aber was Sie hier bemerken werden, ist, dass der Orchestrator-Agent eine Nachricht gesendet hat, die lautet: "Hallo Nate, ich wollte nur nachfragen, wie es dir geht. Ich hoffe, alles ist gut."

Hier gibt es einen Fehler, weil dieser Hauptagent im Grunde eine E-Mail erstellt und gesendet hat. Alles, was wir tun wollten, war, die Nachricht einfach weiterzuleiten. Was ich hier tun würde, ist, in den System-Prompt zu kommen und ich werde einfach sagen: "Übersicht: Du bist ein Orchestrator-Agent. Deine einzige Aufgabe ist es, die Aufgabe an das richtige Werkzeug zu delegieren. Es ist nicht nötig, E-Mails zu schreiben oder Zusammenfassungen zu erstellen. Das ist alles."

Und damit ist das alles, was wir tun werden. Und bevor wir das abschicken, gehe ich zurück in den Sub-Workflow und wir müssen diesem Ding ein tatsächliches Gehirn geben, damit es Nachrichten verarbeiten kann. Wir werden uns wieder für einen 4.1 Mini entscheiden. Speichern Sie das, damit es sich tatsächlich auf diesen Hauptagenten auswirkt. Und jetzt versuchen wir, genau dieselbe Anfrage zu senden und wir werden sehen, was es dieses Mal tut.

Es ruft das E-Mail-Agent-Werkzeug auf. Es sollte nicht fehlschlagen, weil wir es behoben haben. Aber wie Sie sehen können, hat es dieses Werkzeug jetzt zweimal aufgerufen. Wir müssen verstehen, warum es den Unteragenten zweimal aufgerufen hat. Das erste, was ich tun werde, ist, in den Hauptagenten zu klicken und ich werde auf "Logs" klicken, und wir können genau sehen, was er getan hat. Als er den E-Mail-Agenten aufrief, sandte er wieder einen Betreff, der "Checking In" ist, und den eigentlichen E-Mail-Text. Wir müssen also die Eingabeaufforderung dort korrigieren, richtig? Aber dann sagte die Ausgabe, die im Grunde das ist, was dieser Sub-Workflow zurückgesendet hat: "Hier ist eine leicht polierte Version Ihrer Nachricht für einen warmen und klaren Ton, blah blah blah." Und dann rief er aus irgendeinem Grund erneut diesen E-Mail-Agenten auf. Jetzt heißt es: "Bitte senden Sie die folgende E-Mail", und er sendet sie erneut. Und dann sagt der Unteragent: "Ich kann keine E-Mails direkt senden, aber hier ist die E-Mail, die Sie senden können."

Sie sind also beide in dieser seltsamen Schleife gefangen, dass sie denken, sie erstellen eine E-Mail, können sie aber nicht tatsächlich senden. Lassen Sie uns sehen, wie wir das beheben können.

Alles klar, zurück im Sub-Workflow, was wir jetzt tun wollen, ist, diesem Agenten tatsächlich die Möglichkeit zu geben, E-Mails zu senden, sonst werden sie diese Endlosschleife immer wieder fortsetzen. Ich werde ein Werkzeug hinzufügen und Gmail eingeben. Wir werden dies in eine "Nachricht senden"-Operation ändern. Ich werde das einfach in "E-Mail senden" umbenennen, und wir werden die "An"-Adresse vom Modell definieren lassen, den Betreff vom Modell definieren lassen und die Nachricht vom Modell definieren lassen. Und all das bedeutet, dass idealerweise, wissen Sie, diese Anfrage lauten wird: "Hey, sende eine E-Mail an nate@example.com und frage ihn, was los ist." Der Agent würde das dann interpretieren und es würde ausfüllen: Wer ist der Empfänger, was ist der Betreff und was ist die Nachricht? Es würde im Grunde alles selbst mit KI erstellen. Und das Letzte, was ich tun werde, ist, die "End Attribution" dort auszuschalten.

Und jetzt versuchen wir es noch einmal. Und behalten Sie im Hinterkopf, dass es in diesem eigentlichen Agenten keinen System-Prompt gibt. Und ich möchte Ihnen tatsächlich einen coolen Tipp zeigen. Wenn Sie diese Multi-Agenten-Systeme erstellen und Dinge wie das Senden von Daten zwischen Flows tun, wenn Sie nicht immer zum Hauptagenten zurückkehren möchten, um zu testen, wie dieser funktioniert, können Sie hier hineingehen und wir können diese Anfrage einfach bearbeiten und einige Mock-Daten einstellen, als ob der Hauptagent etwas senden würde. Ich werde sagen, wir tun so, als ob der Orchestrator-Agent an den Sub-Workflow gesendet hätte: "Sende eine E-Mail an Nate und frage ihn, was los ist", und wir werden das R entfernen. Und jetzt sehen Sie, das ist die Anfrage, die dieser Agent hier sehen wird. Und wenn wir oben auf diesen KI-Agenten spielen, werden wir sehen, dass er hoffentlich dieses "E-Mail senden"-Werkzeug aufruft und wir werden sehen, was er getan hat.

Es ist gerade fertig geworden. Wir werden in das Werkzeug klicken, um zu sehen, was es getan hat, und wie Sie sehen können, hat es es an native@example gesendet. Es hat den Betreff "Checking In" gemacht und die Nachricht war: "Hey Nate, ich wollte nur nachfragen, wie es dir geht. Ich hoffe, alles ist gut. Beste Grüße, dein Name."

Mein Gedankengang ist jetzt: Lassen Sie uns alles so zum Laufen bringen, wie wir es mit diesem Agenten wollen, bevor wir zum Orchestrator-Agenten zurückkehren und die Eingabeaufforderung dort korrigieren. Eine Sache, die mir nicht gefällt, ist, dass er mit "Beste Grüße, dein Name" unterschreibt. Wir haben hier ein paar Optionen. Wir könnten das im System-Prompt machen, aber dasselbe wie bei der Spezialisierung, wenn dieses Werkzeug auf das Senden von E-Mails spezialisiert ist, können wir es genauso gut anweisen, wie es E-Mails in diesem Werkzeug senden soll.

Für die Nachricht werde ich eine Beschreibung hinzufügen und sagen: "Unterschreibe E-Mails immer als Bob." Und das sollte es wirklich tun. Da wir hier Mock-Daten haben, muss ich nicht noch eine Nachricht senden. Ich kann es einfach noch einmal testen und sehen, was es tun wird. Es wird das "E-Mail senden"-Werkzeug aufrufen, es wird diese Nachricht erstellen und jetzt werden wir nachsehen, ob es sich besser abgemeldet hat. Hier können wir jetzt sehen, dass es sich mit "Beste Grüße, Bob" abmeldet.

Lassen wir uns also sagen, wir sind jetzt mit der Funktionsweise unseres Unteragenten zufrieden. Wir können zurück zum Hauptagenten gehen und es erneut testen.

Alles klar, ich werde dieselbe Nachricht noch einmal abschicken, die lautet: "Sende eine E-Mail an Nate und frage ihn, wie es ihm geht." Und das wird interessant sein. Wir werden sehen, was es dieses Mal sendet. Es war ein Durchlauf und es sagt: "Könnten Sie bitte Nates E-Mail-Adresse angeben, damit ich die Nachricht senden kann?"

Was hier passiert ist, war, dass die Sub-Ausführung erkannte, dass wir Nates E-Mail-Adresse nicht haben, und deshalb hat sie im Grunde an diesen Hauptagenten zurückgesendet und gesagt: "Ich brauche das, wenn ich die Nachricht senden soll." Wenn ich auf Sub-Ausführung klicke, werden wir genau sehen, was es getan hat und warum es das getan hat, und es hat wahrscheinlich nicht einmal das "E-Mail senden"-Werkzeug aufgerufen. Ja, es ist tatsächlich fehlgeschlagen, und es ist fehlgeschlagen, weil es versucht hat, das "An" als Nate auszufüllen, und es erkannte, dass das keine gültige E-Mail-Adresse ist. Dann, weil dieser Unteragent mit "Könnten Sie bitte Nates E-Mail-Adresse angeben, damit ich die Nachricht senden kann?" antwortet, das ist genau das, was der Hauptagent hier in der Antwort dieses Agenten-Werkzeugs gesehen hat. So können sie miteinander sprechen, hin und her gehen. Und dann können Sie sehen, dass der Orchestrator-Agent uns aufgefordert hat, Nates E-Mail-Adresse anzugeben.

Jetzt werden wir versuchen: "Bitte sende eine E-Mail an nate@example.com und frage ihn, wie das Projekt vorankommt." Wir schicken das ab und alles sollte dieses Mal durchgehen, und es sollte im Grunde sagen: "Oh, auf welches Projekt beziehen Sie sich? Das wird mir helfen, Ihnen die genaueste und relevanteste Aktualisierung zu geben."

Auch hier ist der Unteragent wie: "Okay, ich habe nicht genug Informationen, um diese Nachricht abzuschicken." Also werde ich an diesen Orchestrator-Agenten zurücksenden. Und nur weil wir tatsächlich einen brauchen, der durchgeht, lassen Sie mich noch ein Beispiel schicken. Okay, hoffentlich ist dieses spezifisch genug. Wir haben eine E-Mail-Adresse, wir haben einen angegebenen Projektnamen, und wir sollten sehen, dass es diese E-Mail dieses Mal hoffentlich senden wird.

Okay, da haben wir es. Die E-Mail, in der Nate gefragt wird, wie Projekt Pan vorankommt, wurde gesendet. Brauchen Sie noch etwas?

An diesem Punkt wäre es: Okay, welche anderen Agenten könnte ich dem System hinzufügen, um es mir selbst ein wenig einfacher zu machen? Das Erste, was natürlich zu tun wäre, ist, eine Art Kontakt-Agent hinzuzufügen, oder vielleicht stelle ich fest, dass ich dafür keinen vollständigen Agenten brauche, vielleicht muss das nur ein Werkzeug sein.

Im Grunde würde ich dann ein Werkzeug hier hinzufügen. Ich würde Airtable schnappen, weil dort meine Kontaktinformationen leben, und alles, was ich tun möchte, ist zu "Kontakte" zu gehen und "Kontakte" auszuwählen. Und jetzt muss ich das nur noch in "Suchen" ändern. Jetzt ist die einzige Aufgabe dieses Werkzeugs, alle Kontakte in meiner Kontaktdatenbank zurückzugeben. Ich werde hier einfach reinkommen und das "Kontakte" nennen.

Und denken Sie daran, es gibt immer noch nichts im System-Prompt darüber, "Hier sind die Werkzeuge, die Sie haben, und hier ist, was Sie tun." Ich möchte Ihnen nur zeigen, wie intelligent diese Modelle sein können, bevor Sie sie überhaupt auffordern. Und wenn Sie dann hineingehen und sagen: "Okay, jetzt haben Sie Zugriff auf diese sieben Agenten. Hier ist, was jeder von ihnen gut kann." Das wird noch cooler.

Lassen Sie uns noch eine Sache versuchen und sehen, ob es die Kombination aus Kontaktdatenbank und E-Mail-Agent verwenden kann. Okay, ich werde das abschicken: "Sende eine E-Mail an Dexter Morgan und frage ihn, ob er zum Mittagessen gehen möchte." Sie können sehen, dass es sofort die Kontaktdatenbank verwendet hat, die E-Mail-Adresse von Dexter Morgan zurückgegeben hat, und jetzt können wir sehen, dass es diese E-Mail-Adresse an den E-Mail-Agenten gesendet hat, und jetzt haben wir all diese verschiedenen Datentransfers, die miteinander sprechen. Und hoffentlich hat es die E-Mail gesendet.

Alles klar, hier ist diese E-Mail: "Hallo Dexter, möchtest du bald zum Mittagessen gehen? Beste Grüße, Bob." Die Formatierung ist ein wenig daneben, das können wir innerhalb des Werkzeugs für den E-Mail-Agenten beheben. Aber sehen wir mal, ob wir das an die richtige E-Mail gesendet haben, nämlich dexter@miami.com. Wenn wir in unsere Kontaktdatenbank gehen, können wir hier sehen, dass wir dextermorgan@miami.com haben. Und wie ich Ihnen früher gezeigt habe, wollen Sie ziemlich gut darin werden, diese Agenten-Logs zu lesen, damit Sie sehen können, wie Ihre Agenten denken und welche Daten sie zwischen den Workflows senden.

Und wenn wir zu den Logs hier gehen, können wir zuerst sehen, dass es sein GPT4.1 Mini Modellgehirn verwendet hat, um zu verstehen, was zu tun ist. Es hat verstanden: Okay, ich muss zur Kontakte-Tabelle gehen, also habe ich meine Kontaktinformationen. Dann muss ich den E-Mail-Agenten aufrufen, und was ich an den E-Mail-Agenten gesendet habe, war: "Sende eine E-Mail an dexter@miami.com und frage ihn, ob er zum Mittagessen gehen möchte." Und das war perfekt.

Okay, das war's für dieses Mal. Hoffentlich hat Ihnen das die Möglichkeiten dieser Multi-Agenten-Systeme in N&N eröffnet und Sie hoffentlich auch etwas gelehrt. Denn ich weiß, dass all diese Dinge manchmal wie reine Schlagworte sind, mit all diesen Agenten, Agenten, Agenten. Aber es gibt Anwendungsfälle, bei denen es wirklich der beste Weg ist. Aber es geht darum, zu verstehen, was das Endziel ist und wie ich diesen Workflow entwickeln möchte, und dann zu entscheiden, was die beste Architektur oder das beste System ist.

Wenn Ihnen das Video gefallen hat oder Sie etwas Neues gelernt haben, geben Sie ihm bitte ein Like. Das hilft mir wirklich sehr. Und wie immer schätze ich es, dass Sie bis zum Ende des Videos gekommen sind. Ich sehe Sie im nächsten. Danke, alle zusammen.