Kurs
CrewAI: Ein Leitfaden mit Beispielen für Multi AI Agentensysteme
KI-Agenten sind Assistenten, die Aufgaben erfüllen und mit der Welt interagieren können. Anders als traditionelle Systeme, die festen Regeln folgen, können sie lernen und sich an neue Situationen anpassen. Stell dir vor, sie sind intelligente Roboter, die bei einer Vielzahl von Aufgaben helfen.
Aber was unterscheidet KI-Agenten von anderen KI-Entitäten, wie den beliebten Sprachmodelle von denen wir alle schon gehört haben?
In diesem Artikel gehe ich auf diese Frage ein und stelle CrewAIvor, ein kostenloses und quelloffenes Python-Framework, das die Entwicklung von Multi-Agenten-KI-Systemen vereinfachen soll. Wir werden den Unterschied zwischen Agenten und Sprachmodellen untersuchen und diskutieren, warum Agenten-Frameworks für die Entwicklung von KI-Anwendungen wichtig sind. Entwicklung von KI-Anwendungenund zeigen, wie CrewAI es Agenten ermöglicht, zusammenzuarbeiten und großartige Ergebnisse zu erzielen.
KI-Agenten vs. LLMs
Wir wollen ein häufiges Missverständnis über den Unterschied zwischen Agenten und großen Sprachmodellen (LLMs) ausräumen. Beide gehören zur Familie der künstlichen Intelligenz, aber sie haben unterschiedliche Fähigkeiten.
Sprachmodelle, wie zum Beispiel ChatGPT und Geminisind sehr versiert im Umgang mit Sprache. Sie haben ein umfangreiches Training an riesigen Text- und Codemengen absolviert, das sie mit der Fähigkeit ausgestattet hat, Sprache zu verstehen und zu produzieren, die der menschlichen Kommunikation sehr ähnlich ist.
LLMs sind geschickte Wortschmiede der künstlichen Intelligenz, die eine breite Palette von Inhalten produzieren, darunter Übersetzungen, Zusammenfassungen, kreative Erzählungen oder sogar Gedichte. Ihr Aufgabenbereich ist in der Regel auf sprachbezogene Aufgaben beschränkt.
Agenten konzentrieren sich jedoch in erster Linie darauf, Maßnahmenzu ergreifen . Sie sind in der Lage zu navigieren, mit Objekten zu interagieren und Entscheidungen auf der Grundlage ihrer Wahrnehmungen zu treffen.
Kurz gesagt: Sprachmodelle sind Gehirne und Agenten sind Hände. Zusammen bilden sie ein starkes Duo.
Da Agenten in KI-Anwendungen eine so wichtige Rolle spielen, stellt sich die Frage, wie wir ihre Komplexität bewältigen, wenn mehrere Agenten zusammenarbeiten müssen. Hier kommen die Agenten-Frameworks ins Spiel.
Der Bedarf an einem Agentenrahmen
Der Bedarf an Agenten-Frameworks ergibt sich aus der zunehmenden Komplexität von KI-Anwendungen, insbesondere solchen, bei denen mehrere Agenten zusammenarbeiten, um ein gemeinsames Ziel zu erreichen. Sehen wir uns an, warum Agenten-Frameworks so wichtig sind.
Orchestrierung und Koordination
Da KI-Systeme immer größer werden, enthalten sie oft zahlreiche Agenten mit unterschiedlichen Fähigkeiten. Es wird immer schwieriger, diese Interaktionen zu verwalten und sicherzustellen, dass sie harmonisch funktionieren.
Agenten-Frameworks bieten eine strukturierte Umgebung, die es ermöglicht, die Aktivitäten der Agenten zu orchestrieren, ihre Rollen und Verantwortlichkeiten zu definieren und die Kommunikation zu verbessern.
In Multi-Agenten-Systemen ist ein wichtiger Aspekt die effiziente Zuweisung von Aufgaben an die am besten geeigneten Agenten und die effektive Verwaltung gemeinsamer Ressourcen. Agenten-Frameworks bieten dynamische Mechanismen für die Aufgabenzuweisung, die Aushandlung von Ressourcen und die Konfliktlösung.
Modularität und Wiederverwendbarkeit
Agenten-Frameworks fördern einen modularen Ansatz zur KI-Entwicklung, bei dem Agenten als unabhängige Komponenten entworfen und implementiert werden. Diese Modularität sorgt für eine bessere Organisation des Codes und ermöglicht die Wiederverwendung von Agentenmodulen in verschiedenen Projekten, was die Entwicklung und Wartung komplexer Systeme vereinfacht. Mit dieser komponentenbasierten Struktur können sich KI-Entwickler auf einzelne Agenten konzentrieren, ohne das Gesamtsystem zu stören.
Darüber hinaus verwenden Agenten-Frameworks oft eine rollenbasierte Architektur, die es den Entwicklern ermöglicht, den Agenten bestimmte Rollen zuzuweisen, die ihre Fähigkeiten und Berechtigungen definieren. Dieses rollenbasierte Design führt zu einem besser organisierten und verwaltbaren System, in dem Agenten mit minimalen Auswirkungen auf die Gesamtarchitektur hinzugefügt, entfernt oder verändert werden können. Diese Flexibilität stellt sicher, dass sich die Systeme weiterentwickeln und an neue Anforderungen anpassen können, ohne dass ein umfangreiches Re-Engineering erforderlich ist.
Anpassungsfähigkeit und Lernen
Die reale Welt ist oft dynamisch, unberechenbar und entwickelt sich ständig weiter. Agenten-Frameworks versetzen Agenten in die Lage, Veränderungen in ihrer Umgebung wahrzunehmen und ihr Verhalten entsprechend anzupassen. Diese Anpassungsfähigkeit stellt sicher, dass Agenten auch in komplexen und sich ständig verändernden Szenarien effektiv arbeiten können und so besser mit den Herausforderungen der realen Welt umgehen können.
Außerdem enthalten Agenten-Frameworks häufig Lernmechanismen, die es den Agenten ermöglichen, ihre Leistung im Laufe der Zeit zu verbessern. Indem sie aus Feedback und Erfahrungen lernen, können Agenten ihre Entscheidungsprozesse kontinuierlich optimieren und sich an neue Herausforderungen anpassen. Diese kontinuierliche Verbesserung ermöglicht es den Agenten, effektiver und wertvoller zu werden, und trägt so zur langfristigen Effizienz und zum Erfolg des Systems bei.
Apropos Agenten-Frameworks: Wir stellen dir eines vor, das in der KI-Community Wellen schlägt: CrewAI.
Was ist CrewAI?
CrewAI ist ein quelloffenes Python-Framework, das die Entwicklung und Verwaltung von Multi-Agenten-KI-Systemen unterstützt.
CrewAI verbessert diese KI-Systeme, indem sie bestimmte Rollen zuweist, autonome Entscheidungen ermöglicht und die Kommunikation zwischen Agenten erleichtert. Mit diesem Ansatz können sie komplexe Probleme effektiver angehen als einzelne Agenten, die allein arbeiten.
Dieser Rahmen besteht aus einer Reihe von Werkzeugen, darunter Web-Suchmaschinen und Sprachmodelle, die es den Agenten ermöglichen, mit der Außenwelt in Kontakt zu treten, Informationen zu sammeln und zu handeln, um ihre Ziele zu erreichen.
Das Design und die Skalierbarkeit von CrewAI eignen sich perfekt für die Entwicklung einfacher und komplexer Multi-Agenten-Anwendungen, die eine kollaborative Methode für die Bewältigung von Herausforderungen und die Entscheidungsfindung in KI-Systemen fördern.
Werfen wir einen Blick auf einige der wichtigsten Funktionen, die CrewAI zu einem leistungsstarken Werkzeug für den Aufbau von Multiagentensystemen machen.
- Agenten-Orchestrierung: CrewAI stellt sicher, dass jeder Agent seine Rolle in der Performance kennt. Es bietet die Werkzeuge, um das Verhalten der Agenten zu definieren und zu koordinieren und sicherzustellen, dass alle synchron spielen.
- Rollenbasierte Architektur: So wie du Musikern verschiedene Instrumente zuweist, kannst du mit CrewAI den Agenten bestimmte Rollen zuweisen und ihre Fähigkeiten und Berechtigungen festlegen. So entsteht ein modulares und gut strukturiertes System, selbst wenn die Dinge komplex werden.
- Flexible Kommunikation: CrewAI unterstützt verschiedene Kommunikationskanäle, damit die Agenten nahtlos Informationen austauschen können. Stell dir vor, du hast einen privaten Chat, eine Gruppendiskussion und ein Megaphon in einem.
- Werkzeugintegration: CrewAI befähigt Agenten, mit Hilfe verschiedener Tools mit der Welt zu interagieren. Mit diesen Tools können Agenten das Internet durchsuchen, Sprache verstehen, Daten analysieren und individuelle Aufgaben durchführen.
- Skalierbarkeit: CrewAI ist so konzipiert, dass es sich mühelos skalieren lässt, damit dein Multi-Agenten-System auch dann reaktionsschnell und effizient bleibt, wenn es wächst.
Aber welche Vorteile bringt CrewAI auf die Tabelle? Lass uns die Vorteile erkunden.
Vorteile des Einsatzes von CrewAI
Crew.ai ermöglicht es mehreren KI-Agenten, zusammenzuarbeiten, Wissen zu teilen und ihre Handlungen auf ein gemeinsames Ziel hin zu koordinieren.
Durch die Automatisierung der Aufgabenverteilung und des Ressourcenmanagements ermöglicht Crew.ai den Agenten, sich mit minimalem Aufwand auf ihre spezifischen Aufgaben zu konzentrieren.
Das Framework unterstützt auch die Anpassungsfähigkeit, so dass die Agenten ihr Verhalten an veränderte Bedingungen oder Ziele anpassen können.
Außerdem vereinfacht Crew.ai den Entwicklungsprozess mit einer benutzerfreundlichen Plattform für die Erstellung und Verwaltung von Multiagentensystemen.
Eine weitere wichtige Stärke von CrewAI ist die Integration mit einer Vielzahl von Tools. Dadurch werden die Fähigkeiten der Agenten erweitert, sodass sie mit der Außenwelt interagieren und Informationen sammeln können.
CrewAI unterstützt Tools wie Websuchmaschinen, Sprachmodelle, Datenanalysetools und sogar benutzerdefinierte Funktionalitäten. Dadurch können Agenten Aufgaben ausführen, die über ihre eigentlichen Fähigkeiten hinausgehen, wie z.B. das Abrufen von Informationen aus dem Internet oder die Durchführung komplexer Datenanalysen.
Hands-On: Mit CrewAI ein Web-Suchwerkzeug bauen
Wir krempeln die Ärmel hoch und bauen einen Workflow mit CrewAI-Tools auf, um die Inhalte von der Website zu scrapen und sie dann mit RAG zu bearbeiten.
Wir müssen den Code schreiben, damit das Tool funktioniert. Bevor wir beginnen, installieren wir die Pakete crewai-tools
und crewai
mit pip
:
pip install crewai-tools crewai
Sobald du die Pakete installiert hast, befolge die folgenden Schritte. In diesem Beispiel verwenden wir drei verschiedene Tools: ScrapeWebsiteTool
, um die Website zu scrapen, FileWriterTool
, um die Datei zu schreiben, und TXTSearchTool
, um den Kontext nach RAG zu durchsuchen. Lass uns loslegen.
Schritt 1: Scraping einer Website
Zuerst importieren wir die notwendigen Bibliotheken und initialisieren die ScrapeWebsiteTool
. Dieses Tool wird verwendet, um Inhalte aus einer Website zu extrahieren. In diesem Fall ist es so eingestellt, dass es Inhalte von der Wikipedia-Seite "Künstliche Intelligenz" scrapen kann:
from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests
# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')
# Extract the text
text = tool.run()
print(text)
Schritt 2: Den extrahierten Text in eine Datei schreiben
Wir verwenden nun die FileWriterTool
, um den extrahierten Text in einer Datei namens ai.txt
zu speichern.
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)
Schritt 3: Einrichten der Textsuche
Wir richten ein weiteres Tool ein, um den Inhalt der Datei ai.txt zu durchsuchen , die wir gerade gespeichert haben. Wir setzen auch die Umgebungsvariable für den OpenAI-API-Schlüssel.
import os
from crewai_tools import TXTSearchTool
os.environ['OPENAI_API_KEY'] = 'API-KEY'
# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')
Schritt 4: Erstelle einen Agenten für die Aufgabe und führe ihn aus
Wir schaffen einen Datenanalysten-Agenten mit der Rolle eines Erziehers. Die Aufgabe dieses Agenten ist es, die Frage "Was ist Natural Language Processing?" zu beantworten, basierend auf dem Text, den wir in der Datei gesucht haben.
from crewai import Agent, Task, Crew
context = tool.run('What is natural language processing?')
data_analyst = Agent(
role='Educator',
goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
backstory='You are a data expert',
verbose=True,
allow_delegation=False,
tools=[tool]
)
test_task = Task(
description="Understand the topic and give the correct response",
tools=[tool],
agent=data_analyst,
expected_output='Give a correct response'
)
crew = Crew(
agents=[data_analyst],
tasks=[test_task]
)
output = crew.kickoff()
Ausgabe:
Fazit
CrewAI bietet eine praktische Plattform für die Verwaltung von Multiagentensystemen. Ob es um das Scraping von Inhalten oder das Delegieren von Aufgaben geht, dieses Framework unterstützt die Zusammenarbeit zwischen Agenten und hilft ihnen, sich anzupassen und zu verbessern.
Durch die Integration von Tools und die Bereitstellung einer organisierten Struktur erleichtert CrewAI den Entwicklern die Verwaltung von Agenteninteraktionen, die Verteilung von Aufgaben und die Gewährleistung einer optimalen Leistung.
KI-Anwendungen entwickeln
Senior GenAI Engineer und Content Creator, der mit seinem Wissen über GenAI und Data Science bereits 20 Millionen Views erreicht hat.
Lerne KI mit diesen Kursen!
Lernpfad
Entwicklung von KI-Anwendungen
Kurs