Crash Course: How to Build a Multi-Agent AI System with OpenAI’s SDK

Learn to build multi-agent systems with OpenAI's Agent SDK. The course covers creating agents with tools and handoffs, setting up tracing to watch execution, and two patterns for connecting agents together: using agents as tools or passing work between them.
Chapters
Willkommen zu diesem Crashkurs über das neue Agent SDK von OpenAI. Am Ende dieses Kurses können Sie mit dem Aufbau von Multi Agent Systemen mit diesem neuen Agent SDK beginnen. Wir werden wichtige Konzepte wie Tool Aufrufe, Übergabe, Ablaufverfolgung und Leitplanken behandeln. Dieses Agent SDK basiert auf SWAM, einem Open Source Projekt von OpenAI, das letztes Jahr veröffentlicht wurde und ein Bildungs und Experimentalprojekt war. Jetzt haben sie es jedoch zu einem produktionsreifen System zusammengefasst. Wir werden vier Hauptkonzepte behandeln. Das erste sind Agenten, bei denen es sich um LLMs handelt, die mit Anweisungen, Tools, Leitplanken und Übergabevorgängen konfiguriert sind. Übergabevorgänge sind ein spezielles Tool, das vom Agent SDK verwendet wird, um die Kontrolle zwischen Agenten zu übertragen. Machen Sie sich keine Sorgen, wenn diese Dinge jetzt noch keinen Sinn ergeben. Ich werde alles viel detaillierter behandeln. Das nächste Konzept sind Guard Dateien, bei denen es sich um konfigurierbare Sicherheitsüberprüfungen für die Eingabe und Ausgabe handelt. Und zu guter Letzt verfügt dieses Tool über eine integrierte Nachverfolgung von Agentenausführungen, mit der Sie Ihre Workflows anzeigen, debuggen und optimieren können. Tracing und Observability sind eine der besten Funktionen dieses neuen agentc SDK, da Sie so genau wissen, was passiert. Das sehen wir uns später im Video noch genauer an. Alles, was in diesem Video behandelt wird, finden Sie in diesem Jupyter Notebook. Wir werden die Themen Agenten, Tools, Übergaben und Leitplanken besprechen und wie Sie Tracing aktivieren. Wir müssen also zwei Dinge installieren. Eines ist das OpenAI Agenten Paket und das zweite ist das OpenAI Python SDK. Als nächstes müssen Sie Ihren OpenAI API Schlüssel festlegen. Ich richte auch den Tracing Export über den API Schlüssel ein. So können wir alle Traces auf der OpenAI Plattform sehen. Das zeige ich Ihnen später im Video. Das Einrichten eines Agenten ist hier ganz einfach. Aus dem Agentenpaket importieren wir also Agent und Runner. Agent ist dein LLM, das über einen bestimmten Satz an Anweisungen sowie Zugriff auf einige Tools verfügt. Für jeden Agenten musst du einen Namen vergeben. Ich nenne ihn Assistent. Dann gibt es noch einen Satz an Anweisungen, die das Verhalten des Agenten steuern. Stell dir das als Systemanweisung vor. Wir erstellen also einen Agenten. Um einen Agenten auszuführen, hast du nun mehrere Möglichkeiten. Du kannst ihn entweder synchron oder asynchron ausführen oder, wenn du möchtest, Streaming aktivieren. Um einen Agenten auszuführen, verwendest du jedoch die Runner Klasse. Auch diese kannst du synchron oder asynchron ausführen. Ich führe sie asynchron aus. Du rufst also die Run Funktion in der Runner Klasse auf. Dann weist du den Agenten zu, den du ausführen möchtest. Im Grunde ist das im Moment der LLM Aufruf und du übergibst deine Eingaben. In diesem Fall tut der Agent also nichts. Es ist nur ein LLM-Aufruf und das Ergebnis. Ist, dass er ein Haiku über Rekursion und Programmierung schreibt. Und hier ist das Haiku. Die Hauptkonzepte sind jedoch die Agentenklasse und der Runner. Runner wird verwendet, um einen Agenten auszuführen. Der Agent sollte einen Namen, eine Reihe von Anweisungen und optional eine Reihe von Tools haben. Ich zeige dir später im Video, wie du einem Agenten Tools zuweist. Was genau geschah also im Hintergrund, als wir diesen Agenten ausführten. Da wir das Tracing über diesen API Schlüssel aktiviert haben, können wir alle Schritte sehen. Dazu musst du nun zu deinem OpenAI Konto zurückkehren. Dies ist die Plattform. Hier kannst du diese Traces sehen. Dies ist der Trace, den ich ausgeführt habe. Du wirst sehen, dass es keine berührungslosen Aktionen oder Tools gibt. Die Ausführung dauerte etwa zwei Sekunden. Wenn du nun darauf klickst, werden dir die Traces viel detaillierter angezeigt. Dies war also ein Agentenaufruf, der etwa zwei Sekunden dauerte. Und dies ist der ausgeführte Zeitraum. Wenn du dir nun die Postantworten ansiehst, kannst du hier tatsächlich die Systemanweisungen sehen, die an den Agenten übermittelt wurden. Wie lautete in diesem Fall die Eingabe für den Agenten zusammen mit der Gesamtzahl der token? Es wurden 44 Token verwendet und ich denke, die Systemanweisungen sind ebenfalls enthalten. Hier sehen Sie die Ausgabe, die vom Agenten generiert wurde. Sie umfasst insgesamt 17 Token. Sie können OpenAI nun Benutzerfeedback bereitstellen. Beispielsweise ist das semitische Feedback deaktiviert. Ich glaube, ich habe es deaktiviert. Wenn ich es hier jedoch aktiviere, wird dieses Feedback an OpenAI bereitgestellt und OpenAI kann diese Daten möglicherweise zum Trainieren seiner Systeme verwenden. Normalerweise verwendet man eine separate Plattform für Observability und Tracing, aber es ist großartig Zu sehen, dass OpenAI eine eigene Plattform entwickelt hat. Wir werden im Laufe des Videos immer wieder auf diese Traces zurückkommen. Sie können auch einige Optionen im Agenten anpassen. Eine davon ist der LLM. Standardmäßig verwendet er GPT-40 Sie können GPD-40 Mini verwenden, um Kosten zu sparen. Beachten Sie jedoch, dass GPD in einem System mit mehreren Agenten manchmal keine gute Leistung erbringt. Ich habe festgestellt, dass es insbesondere dann kein so tolles Modell ist, wenn es darum geht, eine Reihe von Werkzeugen auszuwählen. Für kleinere Teilaufgaben kann man aber trotzdem GPD 40 verwenden. Später im Video zeige ich euch noch ein paar Beispiele. Man kann auch andere Parameter anpassen, wie z. B. Die Temperatur, die maximale Anzahl der gewünschten Token und auch die Werkzeuge, auf die der Agent Zugriff haben soll. OK, in diesem Fall habe ich das Modell durch GPT-4 Mini ersetzt. Jetzt führen wir genau dieselbe Eingabeaufforderung aus und erhalten eine sehr ähnliche Ausgabe. In diesem Fall ist dies der generierte Trace. Im Moment verwenden wir also GPT mini. Bisher haben wir uns einfach nur angesehen, wie man einen Agenten erstellt. Allerdings sind Agenten ohne Zugriff auf Werkzeuge oder externe Funktionen sehr nutzlos. Und Kollegen. Als nächstes schauen wir uns an, wie wir dem Agenten Werkzeuge hinzufügen können. Und das ist die eigentliche Stärke von Agenten. OpenAI hat kürzlich einige integrierte Tools angekündigt. Die Websuche ist beispielsweise eines davon. Es gibt ein weiteres Tool namens Dateisuche, mit dem Sie im Grunde Ihre eigenen Vektorspeicher erstellen können, mit denen dann die OpenAI Responses API interagieren kann. Es gibt ein weiteres Tool namens Computernutzung. Ich werde Ihnen also zeigen, wie Sie das Websuch Tool als Teil eines Agenten verwenden können und habe gerade ein Video über die Dateisuche erstellt. Falls Sie den Link noch nicht gesehen haben, finden Sie ihn in der Videobeschreibung. Um unserem Agenten nun Webzugriff zu gewähren, verwenden wir das websuchtool. Sie stellen ein Tool bereit, indem Sie hier einfach eine Liste von Tools bereitstellen. Mit diesem Tool kann der Agent nun eine Websuche durchführen. In dieser SR Abfrage wird beschrieben, was Nvidia heute auf der GTC angekündigt hat. Ich führe diese Abfrage jetzt synchron aus und Sie sehen hier die Ausgabe. Es heißt, dass der CEO von Nvidia auf der GPU Technology Conference 2025 der GDC mehrere bedeutende Fortschritte vorgestellt hat. Hier ist alles aufgeführt, was angekündigt wurde und es werden auch die Referenzen oder die verwendeten Zitate bereitgestellt. Jetzt kann also festgelegt werden, wann dieses Tool verwendet werden soll. Beachten Sie jedoch, dass diese Websuche von OpenAI ziemlich teuer ist. Sie können jedoch Ihre eigenen benutzerdefinierten Tools erstellen und diese Ihrem Agenten zuweisen. Sie können beispielsweise die Dr. Guo API verwenden, die für die Websuche kostenlos ist und diese mit Ihrem Agenten nutzen. Ich zeige Ihnen ein Beispiel dafür, wie Sie benutzerdefinierte Agenten oder benutzerdefinierte Tools erstellen können. Wir können jetzt auch eine Abfrage wie Was ist 10 3 ausführen. In diesem Fall muss das Websuch Tool nicht aufgerufen oder verwendet werden, sondern es wird einfach das interne Wissen des LLM verwendet. OK, was ist, wenn Sie nun Ihr eigenes Tool erstellen möchten, anstatt eines dieser integrierten Tools zu verwenden? Das ist ganz einfach. Sie müssen lediglich eine Funktion implementieren und dann diesen Funktionstool Decorator hinzufügen. Dadurch wird sie für das Modell zugänglich. Sie werden sie mit dem Agenten auf genau dieselbe Weise verwenden. Anstelle des integrierten Tools geben wir jetzt einfach den Namen dieser Funktion an, die wir erstellt haben. Der wichtigste Teil ist nun dieser DocString, den Sie so detailliert wie möglich ergänzen sollten. Denn wenn der Agent eine Benutzereingabe erhält, wird er sich den DocString jedes verfügbaren Tools ansehen und auf dieser Grundlage entscheiden, welches Tool verwendet werden soll. Diese Beschreibung ist also ziemlich wichtig und ich habe persönlich festgestellt, dass viele Leute Tools erstellen, aber keine Beschreibung für den Befürworter angeben. Infolgedessen ist der Agent verwirrt, welches Tool er verwenden soll. Achten Sie also nicht nur auf die Beschreibung, die Sie einem Agenten geben, sondern auch auf das Tool selbst. Dieses Tool ist nun sehr einfach aufgebaut. Es zeigt lediglich das aktuelle Datum und die aktuelle Uhrzeit an. Ich habe zunächst einen Agenten erstellt, den ich Zeitagent nenne. Ich habe jedoch kein Tool angegeben. Der Agent soll dem Benutzer das aktuelle Datum und die aktuelle Uhrzeit mitteilen. Die Benutzerfrage lautet Sage dem Benutzer das aktuelle Datum und die aktuelle Uhrzeit. Da der Agent jedoch keinen Zugriff auf die aktuelle Uhrzeit hat, wird ihm mitgeteilt Es tut mir leid, ich kann keine Echtzeitinformationen bereitstellen. Möglicherweise möchten Sie Datum und Uhrzeit auf Ihrem Gerät oder über eine Suchmaschine überprüfen. Wenn wir jedoch einfach dieses Tool hinzufügen, kann der Agent diese Funktion aufrufen und sollte uns die richtige Uhrzeit anzeigen können. Mal sehen, was passiert. Jetzt wird angezeigt, dass das aktuelle Datum und die aktuelle Uhrzeit der 19.03.2025 sind und hier ist die Uhrzeit. Jetzt gehen wir zurück und schauen uns die Traces an und versuchen zu verstehen, was genau hier passiert ist. Sie sehen, dass wir für diesen spezifischen Trace einen Tool Aufruf haben. Wenn Sie sich diesen Trace zunächst ansehen, sehen Sie die Modellantwort. Wir haben also wieder GPD verwendet. Es ist eine Funktion oder ein Tool Aufruf verfügbar und die Systemanweisung lautet, dem Benutzer das aktuelle Datum und die aktuelle Uhrzeit mitzuteilen. Dies ist die Benutzereingabe und dann hat es beschlossen, einen Aufruf dieser Funktion durchzuführen und wir können tatsächlich sehen, was genau in dieser Funktion passiert ist. Dieser Funktionsaufruf wurde also durchgeführt. Hier ist die Ausgabe, die vom Funktionsaufruf erzeugt wurde. Diese wird dann an den Agenten selbst weitergeleitet. Der Agent verwendet die Ausgabe des Funktionsaufrufs, um die endgültige Antwort an den Benutzer zu generieren. Wie Sie sehen, ist die Ablaufverfolgung äußerst hilfreich und zeigt Ihnen tatsächlich, was genau hinter den Kulissen vor sich geht. Wenn ein Agent Zugriff auf mehrere Tools hat, können Sie feststellen, ob der Agent das Tool auswählen kann oder nicht. Beachten Sie außerdem, dass die internen Tools, die dem Agenten über OpenAI zur Verfügung stehen, z. B. Das Websuchtool, aus irgendeinem Grund nicht in den Tool aufrufen angezeigt werden. Hier sehen Sie, dass wir einen Aufruf an dieses Website Tool getätigt haben. Es wird jedoch nicht als separater Aufruf wie ein Funktionsaufruf angezeigt, den wir zuvor hatten. Sie können mehrere Tools kombinieren. Hier ist ein Beispiel für ein anderes Tool, einen anderen Agenten, den ich Multitool Agenten nenne. In diesem Fall aktivieren wir sowohl das Websuch Tool als auch das Tool für aktuelles Datum und Uhrzeit. Diesmal lautet die Beschreibung des Agenten Fragen beantworten, auf aktuelle Uhrzeit und Datum zugreifen und bei Bedarf das Web durchsuchen. Meine Frage war nun, wie sich der Aktienkurs von Nvidia in der letzten Woche verändert hat. Da das Tool Zugriff darauf hat, muss ich es zunächst ausführen. Da es sowohl Zugriff auf das aktuelle Datum und die Uhrzeit als auch auf die Websuche hat, sollte es meiner Meinung nach in der Lage sein, das aktuelle Datum zu ermitteln und hoffentlich auch, wie sich die Preise in den vorherigen Tagen verändert haben. Hier ist die Ausgabe Es heißt, dass der Aktienkurs von Nvidia in der letzten Woche erheblichen Schwankungen unterworfen war. Das heutige Datum ist der 19. März. Dann heißt es, dass die Aktie am 12. März 2025 bei 115,4 schloss, was einem Anstieg von 6,4 gegenüber dem Vortag entspricht. Richtig. Da das Tool also das aktuelle Datum ermitteln kann, kann es präzise Websuchen für diese spezifische Aktie durchführen. OK. Es scheint einen kleinen Fehler zu geben, da es erkennt, dass es sich um einen Multitool Agenten handelt. Das ist tatsächlich der Name des Agenten, den wir bereitgestellt haben. In diesem Workflow kann es nun auch auf die aktuelle Uhrzeit und die Websuche zugreifen. Es stellt jedoch den gesamten Ablauf hier bereit. Es unterteilt es nicht wirklich in mehrere Aufrufe. OK. Als nächstes schauen wir uns an, wie man ein Multi Agenten System erstellen kann. Es gibt zwei Möglichkeiten, wie man mit dem Agenten SDK ein Multi Agenten System erstellen kann. Eine Möglichkeit ist die Verwendung von Agenten als Werkzeuge, die andere sind Übergaben. Die Verwendung von Agenten als Werkzeuge ist äußerst leistungsstark, da sie eine hierarchische Struktur ermöglicht, in der ein spezialisierter Agent unter einem Koordinator arbeitet. Sie haben also einen Orchestrator und unter diesem Orchestrator haben Sie weitere spezialisierte Agenten. Hier ist ein Beispiel. Dies ist ein Notizen Agent und der andere ist ein Aufgabenmanager Agent. Keiner dieser Agenten hat Zugriff auf irgendwelche Werkzeuge. Dies basiert auf einem Beispiel von datacamp. Ich.










