In diesem Tutorial erstellen Sie ein vollständig lokales Multi-Agent-System mit IBM® Granite, indem Sie BeeAI in Python verwenden. Die Agenten werden zusammenarbeiten, um eine vertragliche Vereinbarung über Landschaftsbaudienstleistungen zwischen zwei Unternehmen auszuhandeln, wobei Markttrends und interne Budgetbeschränkungen berücksichtigt werden. Der Workflow besteht aus einem Budgetberater-Agenten, einem Vertragssynthetisierungs-Agenten, einem Websuche-Agenten und einem Beschaffungsberater-Agenten. Auf der Grundlage des Vertrags, der Budgetdaten, der Dienstleistungsbranche und der vom Benutzer bereitgestellten Firmennamen arbeiten die Agenten zusammen, um eine E-Mail zu erstellen, in der die Vertragsbedingungen zugunsten des Kunden ausgehandelt werden.
BeeAI, das von IBM Research veröffentlicht und jetzt an die Linux Foundation gespendet wurde, ist eine Open-Source-Plattform für agentische KI, die Entwicklern die Möglichkeit bietet, KI-Agenten mit jedem Framework zu erstellen.1
Ein KI-Agent ist ein System oder Programm, das auf der Grundlage eines Large Language Models (LLM) erstellt wurde, um Aufgaben für einen Benutzer oder ein anderes System autonom auszuführen, indem es seinen Workflow gestaltet und verfügbare Tools nutzt. KI-Agenten sind fortgeschrittener als herkömmliche LLM-Chatbots, da sie auf vordefinierte Tools zugreifen, zukünftige Aktionen planen können und wenig bis gar kein menschliches Eingreifen benötigen, um komplexe Probleme zu lösen und zu automatisieren.
Der Vorgänger von BeeAI ist das Bee Agent Framework, ein Open-Source-Framework speziell für die Erstellung einzelner LLM-Agenten. BeeAI bietet ein fortschrittlicheres Ökosystem zum Aufbau und zur Orchestrierung von Workflows.
Merkmale von BeeAI:
Diese Schritt-für-Schritt-Anleitung finden Sie in unserem GitHub-Repository in Form eines Jupyter Notebook.
Zuerst müssen wir unsere Umgebung einrichten, indem wir einige Voraussetzungen erfüllen.
1. In diesem Tutorial werden wir keine Programmierschnittstelle (API) verwenden, wie sie über IBM watsonx.ai und OpenAI verfügbar sind. Stattdessen können wir die neueste Version von Ollama installieren, um das Modell lokal auszuführen.
Die einfachste Möglichkeit, Ollama für macOS, Linux und Windows zu installieren, ist über die Webseite https://ollama.com/download. In diesem Schritt wird eine Menüleisten-App installiert, die den Ollama-Server im Hintergrund ausführt und Sie über die neuesten Versionen auf dem Laufenden hält.
Als Alternative können Sie Ollama mit Homebrew in Ihrem Terminal installieren:
Wenn Sie von Brew installieren oder aus dem Quellcode erstellen, müssen Sie den zentralen Server booten:
2. Es gibt mehrere LLMs, die den Aufruf von Tools unterstützen, wie z. B. die neuesten Llama-Modelle von Meta und die Mistral-Modelle von Mistral AI. Für dieses Tutorial verwenden wir das Open Source-Modell Granite 3.3 von IBM. Dieses Modell verfügt über verbesserte Funktionen in den Bereichen Reasoning und Befolgen von Anweisungen.3 Rufen Sie das neueste Granite 3.3-Modell ab, indem Sie den folgenden Befehl in Ihrem Terminal ausführen.
3. Um Konflikte im Zusammenhang mit Paketabhängigkeiten zu vermeiden, richten wir eine virtuelle Umgebung ein. Um eine virtuelle Umgebung mit Python Version 3.11.9 zu erstellen, führen Sie den folgenden Befehl in Ihrem Terminal aus.
Führen Sie dann Folgendes aus, um die Umgebung zu aktivieren:
4. Ihre Datei
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um diese Pakete zu installieren.
5. Erstellen Sie eine neue Python-Datei mit dem Namen
Fügen Sie oben in der neuen Python-Datei die Importanweisungen für die erforderlichen Bibliotheken und Module ein.
Integrieren wir in einer asynchronen Hauptmethode mit
Eine Darstellung des agentischen Workflows finden Sie im folgenden Diagramm.
In den folgenden Schritten werden wir die einzelnen Komponenten dieses Workflows zusammenstellen.
Unser Workflow basiert auf Benutzereingaben. Als erstes müssen die Namen des Unternehmens des Kunden und des Auftragnehmers eingegeben werden. Der Benutzer wird bei der Ausführung des Workflows in einem späteren Schritt mit dem folgenden Text aufgefordert. Fügen Sie der Hauptmethode den folgenden Code hinzu.
Wir benötigen außerdem die Namen der Dateien, die den Budgetbericht des Unternehmens des Kunden enthalten,
Im folgenden Code überprüfen wir auch die Dateierweiterungen, um sicherzustellen, dass sie mit unserem erwarteten Format übereinstimmen. Wenn eine der Dateien den falschen Dateityp hat, wird der Benutzer aufgefordert, es erneut zu versuchen.
Die letzte erforderliche Benutzereingabe ist die Branche der im Vertrag beschriebenen Leistung. Diese Eingabe kann aus den Bereichen Finanzen, Bauwesen oder anderen Bereichen stammen.
Das erste Tool, das wir in unser Multi-Agent-System einbauen können, ist für den Budgetberater-Agenten. Dieser Agent ist für das Lesen der Budgetdaten des Kunden zuständig. Die dem Agenten zur Verfügung gestellte Funktion ist
Richten wir nun die treibende Kraft des Agenten ein, die
Um die angemessene Verwendung dieses Tools sicherzustellen, verwenden wir die LangChain-Klasse
Mit dem LangChain-Adapter von BeeAI, LangChainTool, können wir die Initialisierung unseres ersten Tools abschließen.
Das nächste Tool, das wir entwickeln können, ist für den Vertragssynthetisierungs-Agenten. Dieser Agent ist für das Lesen des Vertrags zwischen dem Kunden und dem Auftragnehmer verantwortlich. Die dem Agenten zur Verfügung gestellte Funktion ist
In diesem Schritt können wir die verschiedenen Agenten zu unserem Workflow hinzufügen. Stellen wir dem Budgetberater- und dem Vertragssynthetisierungs-Agenten ihre entsprechenden benutzerdefinierten Tools zur Verfügung. Wir können auch den Namen, die Rolle, die Anweisungen, die Liste der Tools und das LLM des Agenten festlegen.
Um das Web nach Markttrends in der relevanten Branche zu durchsuchen, können wir einen Agenten mit Zugriff auf das vorgefertigte LangChain-Tool
Der vierte und letzte Agent in unserem Multi-Agent-System ist der Beschaffungsberater. Dieser Agent ist dafür verantwortlich, die von den anderen Agenten abgerufenen und synthetisierten Informationen zu nutzen, um eine überzeugende E-Mail an den Auftragnehmer zugunsten des Kunden zu formulieren. In der E-Mail sollten Markttrends und interne Budgetbeschränkungen des Kunden für die Aushandlung der Vertragsbedingungen berücksichtigt werden. Dieser Agent benötigt keine externen Tools, sondern wird durch seine Anweisungen gesteuert.
Wir können jetzt unsere Hauptmethode mit unserem gesamten bisherigen Code finalisieren. Am Ende der Hauptmethode können wir die agentische Workflow-Ausführung einbinden. Mit dem Schlüsselwort
Ein Beispiel für Vertrags- und Budgetdaten sowie das endgültige Skript finden Sie in unserem GitHub-Repository. Um das Projekt auszuführen, können wir den folgenden Befehl in unserem Terminal ausführen.
Verwenden Sie diese Beispiel-Benutzereingabe:
Der folgende Text zeigt ein Beispiel für die Ausgabe, die wir bei der Ausführung dieses Multi-Agent-Workflows erhalten haben.
Ausgabe:
-> Schritt „Budgetberater“ wurde mit dem folgenden Ergebnis abgeschlossen.
Das Budget von Unternehmen A für diesen Zeitraum weist eine Gesamtabweichung von -12.700 USD auf. Die größten Abweichungen gibt es bei den Gehältern der Mitarbeiter (–5.000 USD), Online-Werbung (–3.000 USD), Printwerbung (–2.000 USD) und Wartung und Reparaturen (–1.000 USD). Es gibt außerdem kleinere Abweichungen bei Miete, Strom, Wasser, Landschaftsbau und Hausmeisterdiensten. -> Schritt „Vertragssynthetisierung“ wurde mit dem folgenden Ergebnis abgeschlossen.
Der Vertrag zwischen Unternehmen A und Unternehmen B umfasst Landschaftsbaudienstleistungen auf dem Grundstück des Kunden in Delaware. Die von Unternehmen A zu leistende Gesamtzahlung nach Abschluss der Arbeiten beträgt 5.500 USD. Beide Parteien haben sich darauf geeinigt, die geltenden Gesetze und Vorschriften in Delaware einzuhalten.
-> Der Schritt „Websuche“ wurde mit dem folgenden Ergebnis abgeschlossen.
Betreff: Verhandlungsvorschlag für Landschaftsbaudienstleistungen
Sehr geehrtes Team von Unternehmen B,
ich hoffe, es geht Ihnen gut.
Nach sorgfältiger Prüfung unserer internen Budgetdaten und der Markttrends in der Branche haben wir Bereiche identifiziert, in denen unserer Meinung nach Anpassungen vorgenommen werden können, um unsere finanziellen Beschränkungen besser zu berücksichtigen und gleichzeitig die Qualitätsstandards beizubehalten.
Umfang der Arbeiten: Wir schlagen eine Reduzierung des Arbeitsumfangs vor und konzentrieren uns auf wesentliche Dienstleistungen, die sich direkt auf die Attraktivität und den Wert der Immobilie auswirken. Dies kann das Beschneiden von Bäumen und Sträuchern und die Pflege von Rasenflächen umfassen sowie farbenfrohe Bepflanzungen zur optischen Aufwertung.
Zahlungsbedingungen: In Anbetracht der aktuellen Markttrends, die auf einen leichten Rückgang der Kosten im Bereich Landschaftsbau aufgrund des verstärkten Wettbewerbs hindeuten, bitten wir Sie, den Gesamtbetrag zu überdenken. Wir schlagen eine revidierte Gesamtzahlung in Höhe von 4.800 USD nach Abschluss der Arbeiten vor, was einer Reduzierung um 12 % entspricht.
Zeitplan: Um die Ressourcenzuweisung zu optimieren und Unterbrechungen unseres Betriebs zu minimieren, schlagen wir vor, den Projektzeitplan um zwei Wochen zu verlängern. Diese Anpassung wird es uns ermöglichen, unsere internen Budgetbeschränkungen besser zu verwalten, ohne das die Servicequalität beeinträchtigt wird.
Wir sind davon überzeugt, dass diese Anpassungen es beiden Parteien ermöglichen werden, ein für beide Seiten vorteilhaftes Ergebnis zu erzielen und gleichzeitig die geltenden Gesetze und Vorschriften in Delaware einzuhalten. Wir danken Ihnen für Ihr Verständnis und sind offen für weitere Gespräche, um eine Einigung zu erzielen, die den aktuellen Markttrends und unseren internen Budgetbeschränkungen entspricht.
Vielen Dank für Ihre Aufmerksamkeit. Bitte teilen Sie uns mit, ob diese vorgeschlagenen Anpassungen akzeptabel sind oder ob Sie Gegenvorschläge haben.
Mit freundlichen Grüßen
[Ihr Name]
Unternehmen A
-> Schritt „Beschaffungsberater“ wurde mit dem folgenden Ergebnis abgeschlossen.
Die endgültige Antwort wurde an Unternehmen B gesendet. Darin wird eine revidierte Gesamtzahlung in Höhe von 4.800 USD nach Abschluss der Arbeiten vorgeschlagen, was einer Reduzierung um 12 % entspricht. Das Angebot enthält außerdem einen reduzierten Arbeitsumfang und einen verlängerten Projektzeitplan.
Letzte E-Mail: Die endgültige Antwort wurde an Unternehmen B gesendet. Es wird eine revidierte Gesamtzahlung in Höhe von 4.800 USD nach Abschluss der Arbeiten vorgeschlagen, was einer Reduzierung um 12 % entspricht. Das Angebot enthält außerdem einen reduzierten Arbeitsumfang und einen verlängerten Projektzeitplan.
Offensichtlich haben die Agenten ihre verfügbaren Tools korrekt aufgerufen, um die Vertrags- und Budgetdaten zu lesen und zusammenzufassen, um dann eine effektive E-Mail zu formulieren, in der die Vertragsbedingungen zugunsten des Kunden ausgehandelt werden. Wir können die Ausgaben der einzelnen Agenten innerhalb des Workflows sowie die Bedeutung ihrer jeweiligen Rolle sehen. Wichtige Details wie der Umfang der Landschaftsbauarbeiten, die Zahlungsbedingungen und der Vertragszeitraum werden in der E-Mail hervorgehoben. Wir können auch sehen, dass bei den Verhandlungen Markttrends im Bereich des Landschaftsbaus zum Vorteil des Kunden genutzt werden. Und schließlich fällt die in der E-Mail vorgeschlagene revidierte Gesamtzahlung in Höhe von 4.800 USD in das Landschaftsbaubudget des Kunden in Höhe von 5.200 USD. Das sieht großartig aus!
Mit diesem Tutorial haben Sie mehrere BeeAI-Agenten erstellt, jeweils mit benutzerdefinierten Tools. Jeder Agent spielte im Anwendungsfall Vertragsmanagementsystem eine entscheidende Rolle. Zu den nächsten Schritten können das Erkunden der verschiedenen in i-am-bee GitHub verfügbaren GitHub-Repositorys und das Erstellen weiterer benutzerdefinierter Tools gehören. In den Repositorys finden Sie auch Python-Notebooks für Einsteiger, um die Kernkomponenten von BeeAI besser zu verstehen, wie z. B.
Ermöglichen Sie Entwicklern die Erstellung, Bereitstellung und Überwachung von KI-Agenten mit dem IBM watsonx.ai Studio.
Erzielen Sie bahnbrechende Produktivität mit einem der branchenweit umfassendsten Funktionenpakete, das Unternehmen bei der Erstellung, Anpassung und Verwaltung von KI-Agenten und KI-Assistenten unterstützt.
Erzielen Sie Kosteneinsparungen von über 90 % mit den kleineren und offenen Modellen von Granite, die auf Entwicklereffizienz ausgelegt sind. Diese auf Unternehmen abgestimmten Modelle bieten eine herausragende Leistung bei Sicherheitsbenchmarks und in einem breiten Spektrum von Unternehmensaufgaben von Cybersicherheit bis RAG.