CrewAI ist ein Rahmenwerk für den Aufbau und die Orchestrierung von Multi-Agent-AI-Systemen. Es wurde entwickelt, um die Zusammenarbeit und Koordination zwischen mehreren AI-Agenten zu ermöglichen, damit sie nahtlos zusammenarbeiten können, um komplexe Aufgaben zu bewältigen. Hier sind die wichtigsten Aspekte des CrewAI-Rahmenwerks:
- Agenten-Zusammenarbeit: CrewAI erleichtert die Erstellung von Teams oder „Crews“ von AI-Agenten, von denen jeder über seine eigenen Rollen, Ziele und Hintergründe verfügt. Diese Agenten können zusammenarbeiten, Informationen austauschen und ihre Aktionen koordinieren, um Probleme effektiver zu lösen als einzelne Agenten.
- Modulares Design: CrewAI verfolgt einen modularen Ansatz und unterteilt die Komponenten in Agenten, Werkzeuge, Aufgaben und Crews. Dieses modulare Design fördert Einfachheit und Flexibilität, sodass Entwickler verschiedene Komponenten kombinieren können, um benutzerdefinierte AI-Systeme zu erstellen.
- Integration mit LangChain: CrewAI ist in LangChain integriert, einem beliebten Rahmenwerk für den Aufbau von Anwendungen mit großen Sprachmodellen (LLMs). Diese Integration ermöglicht es Entwicklern, die Werkzeuge und Agenten, die von LangChain bereitgestellt werden, innerhalb des CrewAI-Rahmenwerks zu nutzen.
- Entwickler-Tools: CrewAI stellt eine Reihe von Tools und eine Benutzeroberfläche bereit, um Entwicklern beim Aufbau und der Verwaltung ihrer Multi-Agent-Automatisierungen vor Ort zu helfen. Es bietet auch vorgefertigte Modelle und die Möglichkeit, sich in andere AI-Anbieter zu integrieren.
- API und Bereitstellung: CrewAI+ (die kostenpflichtige Version) ermöglicht es Entwicklern, ihre Crews in APIs umzuwandeln, mit Unterstützung für Webhooks, gRPC, Metriken und mehr, was die Integration und Bereitstellung mit anderen Systemen erleichtert.
Hauptkomponenten von CrewAI:
- Agenten: Das sind Ihre dedizierten Teammitglieder, von denen jeder über seine Rolle, Hintergrundgeschichte, Ziel und Gedächtnis verfügt.
- Werkzeuge: Die Ausrüstung, die unsere Agenten verwenden, um ihre Aufgaben effizient auszuführen. Sie können jedes vorhandene Werkzeug von LangChain verwenden oder Ihre eigenen schnell erstellen.
- Aufgaben: Kleine und fokussierte Missionen, die ein bestimmter Agent ausführen soll.
- Prozess: Dies ist der Arbeitsablauf oder die Strategie, die die Crew befolgt, um Aufgaben abzuschließen.
- Crew: Der Ort, an dem Agenten, Aufgaben und ein Prozess zusammenkommen. Dies ist die Container-Ebene, in der die Arbeit stattfindet.
Wie man mit CrewAI beginnt
Hinweis: Das folgende Beispiel wurde aus der CrewAI-Dokumentation entnommen.
Schritt 0: Installation
Installieren Sie CrewAI und alle erforderlichen Pakete für Ihr Projekt. CrewAI ist kompatibel mit Python >=3.10,<=3.13.
pip install crewai
pip install 'crewai[tools]'
Schritt 1: Ihre Agenten zusammenstellen
Definieren Sie Ihre Agenten mit unterschiedlichen Rollen, Hintergrundgeschichten und erweiterten Fähigkeiten wie Verbose-Modus und Speicherverwendung. Diese Elemente verleihen Tiefe und leiten ihre Aufgabenausführung und Interaktion innerhalb der Crew.
os.environ["SERPER_API_KEY"] = "Ihr Schlüssel" # serper.dev API-Schlüssel
os.environ["OPENAI_API_KEY"] = "Ihr Schlüssel"
from crewai import Agent
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
# Erstellung eines Senior Researcher-Agenten mit Speicher und Verbose-Modus
researcher = Agent(
role='Senior Researcher',
goal='Entdecke bahnbrechende Technologien in {topic}',
verbose=True,
memory=True,
backstory=(
"Angetrieben von Neugierde, stehst du an der Spitze"
"der Innovation, bereit zu erforschen und Wissen zu teilen, das die"
"Welt verändern könnte."
),
tools=[search_tool],
allow_delegation=True
)
# Erstellung eines Writer-Agenten mit benutzerdefinierten Werkzeugen und Delegationsfähigkeit
writer = Agent(
role='Writer',
goal='Erzähle fesselnde Tech-Geschichten über {topic}',
verbose=True,
memory=True,
backstory=(
"Mit einem Hang dazu, komplexe Themen zu vereinfachen, verfasst du"
"engagierende Erzählungen, die faszinieren und aufklären, und neue"
"Entdeckungen in einem zugänglichen Format ans Licht bringen."
),
tools=[search_tool],
allow_delegation=False
)
Schritt 2: Die Aufgaben definieren
Geben Sie die spezifischen Ziele für Ihre Agenten an, einschließlich neuer Funktionen für die asynchrone Ausführung und die Anpassung der Ausgabe. Diese Aufgaben sorgen für einen zielgerichteten Ansatz für ihre Rollen.
from crewai import Task
# Forschungsaufgabe
research_task = Task(
description=(
"Identifiziere den nächsten großen Trend in {topic}. "
"Konzentriere dich auf die Identifizierung von Vor- und Nachteilen und der Gesamterzählung. "
"Dein endgültiger Bericht soll die wichtigen Punkte, "
"seine Marktchancen und potenzielle Risiken klar artikulieren."
),
expected_output='Ein umfassender 3 Absätze langer Bericht über die neuesten AI-Trends.',
tools=[search_tool],
agent=researcher,
)
# Schreibaufgabe mit Sprachmodellkonfiguration
write_task = Task(
description=(
"Verfasse einen einblicksreichen Artikel über {topic}. "
"Konzentriere dich auf die neuesten Trends und wie sie die Branche beeinflussen. "
"Dieser Artikel soll leicht verständlich, ansprechend und positiv sein."
),
expected_output='Ein 4-Absatz-Artikel über {topic} Fortschritte, formatiert als Markdown.',
tools=[search_tool],
agent=writer,
async_execution=False,
output_file='new-blog-post.md' # Beispiel für die Anpassung der Ausgabe
)
Schritt 3: Die Crew bilden
Kombinieren Sie Ihre Agenten zu einer Crew und legen Sie den Arbeitsablauf fest, den sie befolgen werden, um die Aufgaben zu erledigen. Jetzt mit Optionen zur Konfiguration von Sprachmodellen für eine verbesserte Interaktion und zusätzlichen Konfigurationen zur Optimierung der Leistung.
from crewai import Crew, Process
# Bildung der technologieorientierten Crew mit einigen erweiterten Konfigurationen
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # Optional: Die sequentielle Aufgabenausführung ist standardmäßig
memory=True,
cache=True,
max_rpm=100,
share_crew=True
)
Schritt 4: Loslegen
Starten Sie den Prozess mit Ihrer verbesserten Crew, die bereit ist. Beobachten Sie, wie Ihre Agenten zusammenarbeiten und ihre neuen Fähigkeiten nutzen, um das Projekt erfolgreich abzuschließen. Die Eingabevariablen werden in die Agenten und Aufgaben interpoliert, um einen personalisierten Ansatz zu ermöglichen.
# Starten des Aufgabenausführungsprozesses mit erweitertem Feedback
result = crew.kickoff(inputs={'topic': 'AI im Gesundheitswesen'})
print(result)
Standardmäßig verwendet CrewAI GPT als Standard-Sprachmodell, das Sie jedoch durch das llm
-Attribut in Agent
ändern können.
Vollständiger funktionsfähiger Code
from crewai import Agent
from crewai_tools import SerperDevTool
from crewai import Task
from crewai import Crew, Process
from dotenv import load_dotenv
load_dotenv()
search_tool = SerperDevTool()
# Erstellung eines Senior Researcher-Agenten mit Speicher und Verbose-Modus
researcher = Agent(
role='Senior Researcher',
goal='Entdecke bahnbrechende Technologien in {topic}',
verbose=True,
memory=True,
backstory=(
"Angetrieben von Neugierde, stehst du an der Spitze"
"der Innovation, bereit zu erforschen und Wissen zu teilen, das die"
"Welt verändern könnte."
),
tools=[search_tool],
allow_delegation=True
)
# Erstellung eines Writer-Agenten mit benutzerdefinierten Werkzeugen und Delegationsfähigkeit
writer = Agent(
role='Writer',
goal='Erzähle fesselnde Tech-Geschichten über {topic}',
verbose=True,
memory=True,
backstory=(
"Mit einem Hang dazu, komplexe Themen zu vereinfachen, verfasst du"
"engagierende Erzählungen, die faszinieren und aufklären, und neue"
"Entdeckungen in einem zugänglichen Format ans Licht bringen."
),
tools=[search_tool],
allow_delegation=False
)
# Forschungsaufgabe
research_task = Task(
description=(
"Identifiziere den nächsten großen Trend in {topic}. "
"Konzentriere dich auf die Identifizierung von Vor- und Nachteilen und der Gesamterzählung. "
"Dein endgültiger Bericht soll die wichtigen Punkte, "
"seine Marktchancen und potenzielle Risiken klar artikulieren."
),
expected_output='Ein umfassender 3 Absätze langer Bericht über die neuesten AI-Trends.',
tools=[search_tool],
agent=researcher,
)
# Schreibaufgabe mit Sprachmodellkonfiguration
write_task = Task(
description=(
"Verfasse einen einblicksreichen Artikel über {topic}. "
"Konzentriere dich auf die neuesten Trends und wie sie die Branche beeinflussen. "
"Dieser Artikel soll leicht verständlich, ansprechend und positiv sein."
),
expected_output='Ein 4-Absatz-Artikel über {topic} Fortschritte, formatiert als Markdown.',
tools=[search_tool],
agent=writer,
async_execution=False,
output_file='new-blog-post.md' # Beispiel für die Anpassung der Ausgabe
)
# Bildung der technologieorientierten Crew mit einigen erweiterten Konfigurationen
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # Optional: Die sequentielle Aufgabenausführung ist standardmäßig
memory=True,
cache=True,
max_rpm=100,
share_crew=True
)
# Starten des Aufgabenausführungsprozesses mit erweitertem Feedback
result = crew.kickoff(inputs={'topic': 'AI im Gesundheitswesen'})
print(result)
Ausgabe des obigen Programms
Die Ausgabe des obigen Programms hängt von der Interaktion der Agenten, den verwendeten Werkzeugen und den bereitgestellten Eingaben ab. Es wird ein umfassender Bericht über die neuesten Trends im Bereich AI im Gesundheitswesen und ein darauf basierender Artikel erstellt.
Schlussfolgerung
Der Aufbau und die Aktivierung einer Crew in CrewAI hat sich mit neuen Funktionen weiterentwickelt. Durch die Integration des Verbose-Modus, von Speicherfähigkeiten, der asynchronen Aufgabenausführung, der Anpassung der Ausgabe, der Konfiguration von Sprachmodellen und der erweiterten Crew-Konfigurationen ist Ihr AI-Team besser gerüstet denn je, um Herausforderungen effizient zu bewältigen.