CrewAI Crash Course: Produktionsreife Multi-Agenten-KI-Workflows erstellen

CrewAI ist ein schlankes und sehr schnelles Python-Framework, mit dem sich autonome KI-Agenten koordinieren lassen, die gemeinsam als Team eine definierte Aufgabe erledigen. Das Framework wurde ohne schwere Abstraktionsschichten entwickelt und funktioniert unabhängig von LangChain oder anderen Agenten-Bibliotheken. CrewAI bietet Entwicklern eine praxisnahe Kombination aus einfacher Bedienung auf hoher Ebene und präziser Kontrolle auf technischer Ebene. Besonders geeignet ist es für produktionsnahe Multi-Agenten-Workflows, bei denen Zuverlässigkeit, Beobachtbarkeit und Kosteneffizienz wichtig sind.

Dieser Crashkurs führt dich von einem einfachen Einstiegsszenario bis hin zu einem produktionsorientierten Multi-Agenten-Workflow mit CrewAI. Du lernst die zentralen Konzepte kennen, richtest ein Projekt ein, entwickelst einen praktischen Workflow, bindest nützliche Tools ein und wendest bewährte Methoden für Stabilität und Monitoring an. Am Ende kannst du besser einschätzen, ob CrewAI zu deinem Anwendungsfall passt und wie es sich im Vergleich zu ähnlichen Frameworks wie LangGraph und AutoGen einordnet.

Wichtige Erkenntnisse

  • CrewAI ist auf produktive Nutzung statt auf einfache Demos ausgelegt. CrewAI legt den Schwerpunkt auf Zuverlässigkeit, Beobachtbarkeit und Kostenkontrolle. Da es leichtgewichtig ist und nicht von LangChain abhängt, eignet es sich gut für reale Multi-Agenten-Systeme.
  • Rollenbasierte Agenten machen Workflows verständlicher und skalierbarer. Statt einen einzigen großen Prompt für alle Aufgaben zu verwenden, erhalten Agenten klar definierte Rollen wie Researcher, Writer oder Manager. Diese Rollen erleichtern die saubere Aufteilung von Aufgaben und die Zusammenarbeit zwischen Agenten.
  • Das Grundmodell ist einfach, aber leistungsfähig. CrewAI basiert auf vier zentralen Bausteinen: Agents, Tasks, Tools und Crew. Diese Struktur sorgt für konsistente Workflows, die leichter zu verstehen, zu erweitern und zu debuggen sind.
  • Deklarative und programmatische Optionen beschleunigen die Iteration. CrewAI-Workflows lassen sich für schnelle Änderungen deklarativ in YAML beschreiben. Wenn eine komplexere Orchestrierung, eigene Logik oder tiefere Kontrolle erforderlich ist, können sie über Python-APIs erweitert werden.
  • Solide Engineering-Disziplin ist entscheidend. Zuverlässige CrewAI-Systeme benötigen Schutzmechanismen wie klare Aufgabenbeschreibungen, kontrollierte Delegation, Iterationslimits, Tool-Grounding und passende Beobachtbarkeit. Diese Maßnahmen helfen dabei, Schleifen, Halluzinationen und unerwartete Kosten zu vermeiden.

Was ist CrewAI?

CrewAI ist ein rollenbasiertes Multi-Agenten-Framework für Python. Es ermöglicht, mehrere LLM-gestützte Agenten mit jeweils eigenem Fachgebiet und klarer Zielsetzung zu definieren und diese innerhalb eines strukturierten Workflows zu koordinieren. Die Mitglieder einer Crew arbeiten innerhalb ihrer Spezialisierung teilautonom. Zusätzlich kann ein koordinierender Prozess, etwa ein Manager-Agent, eingesetzt werden, um den Ablauf zu überwachen.

Die Organisation von KI-Agenten als Crew mit klar zugewiesenen Rollen verhindert, dass ein einzelner Agent sämtliche Aufgaben übernehmen muss, wie es bei einfacheren Systemen häufig der Fall ist. Beispielsweise kann ein Agent auf Recherche spezialisiert sein, ein anderer auf Texterstellung und ein weiterer auf Entscheidungen. CrewAI übernimmt die Kommunikation und Organisation zwischen den Agenten, damit sie an Teilaufgaben zusammenarbeiten und ein finales Ergebnis erzeugen können.

Installation

Voraussetzungen: Python 3.10 bis 3.13. CrewAI benötigt Python ab Version 3.10, aber unterhalb von 3.14. Die installierte Version lässt sich mit python3 --version prüfen. Liegt die Version außerhalb dieses Bereichs, sollte Python zuerst aktualisiert werden. Außerdem nutzt CrewAI im Hintergrund die API eines LLM-Anbieters. Daher wird ein API-Schlüssel von OpenAI oder einem anderen unterstützten LLM-Anbieter benötigt.

Schritt 1: CrewAI installieren

CrewAI ist über PyPI verfügbar. Das Kernpaket kann mit pip installiert werden. Dadurch werden das CrewAI-Paket und die CLI installiert.

Wenn ein breiterer Tool-Support benötigt wird, kann zusätzlich das optionale Tools-Paket installiert werden. Dadurch steht die Sammlung vorgefertigter CrewAI-Tools zur Verfügung.

Hinweis: CrewAI stellt außerdem einen eigenen Environment Manager namens UV bereit, der Abhängigkeiten verwalten kann. Die Nutzung ist optional, wird in der CrewAI-Dokumentation jedoch empfohlen.

UV kann einmalig unter macOS oder Linux mit folgendem Befehl installiert werden:

curl -LsSf https://astral.sh/uv/install.sh

Damit wird der Befehl uv installiert.

Anschließend kann CrewAI über UV mit uv tool install crewai installiert werden. Das funktioniert ähnlich wie pip, erstellt aber zusätzlich automatisch eine isolierte Umgebung und richtet das CLI-Tool ein.

Nach der Installation sollte geprüft werden, ob CrewAI korrekt funktioniert. Die Ausgabe sollte ungefähr wie crewai v0.x.x aussehen und damit bestätigen, dass die Installation erfolgreich war.

Schritt 2: Ein CrewAI-Projektgerüst erstellen

CrewAI enthält einen CLI-Befehl, mit dem ein neues Projekt in einer empfohlenen Struktur erstellt werden kann. Führe dazu im Terminal folgenden Befehl aus:

crewai create crew my_project_name

Ersetze my_project_name durch den gewünschten Projektnamen. Der Befehl erzeugt einen Ordner my_project_name/ mit einer einsatzbereiten Vorlage:

my_project_name/
├── .gitignore
├── pyproject.toml
├── README.md
├── .env                # for API keys and config
├── knowledge/          # optional knowledge base
└── src/
   └── my_project_name/
       ├── crew.py     # Crew orchestration code
       ├── main.py     # Entry point to run your crew
       ├── agents.yaml # Define your agents here
       ├── tasks.yaml  # Define tasks/workflows here
       └── tools/      # Custom tools with __init__.py and an example tool file

Dieses Projektgerüst bietet einen strukturierten Ausgangspunkt. Die Dateien agents.yaml und tasks.yaml dienen dazu, die Konfiguration der Crew deklarativ festzulegen, einschließlich Rollen, Ziele und Aufgabenreihenfolge. Die Dateien main.py und crew.py sind Python-Einstiegspunkte für eine codebasierte Konfiguration. In der Datei .env werden API-Schlüssel wie OPENAI_API_KEY=... abgelegt, damit sie nicht fest im Code hinterlegt werden müssen.

Schritt 3: Projektabhängigkeiten installieren

Im Projektverzeichnis wird folgender Befehl ausgeführt:

Dieser Befehl verwendet die CrewAI-CLI, um die für das Projekt benötigten Abhängigkeiten zu installieren. Dabei wird die Umgebung eingerichtet und sichergestellt, dass Pakete wie crewai-tools bei Bedarf verfügbar sind. Falls weitere Python-Pakete benötigt werden, können sie mit uv add <package> oder wie gewohnt mit pip install hinzugefügt werden.

Schritt 4: Die erste Crew ausführen

Die standardmäßig erstellte Beispiel-Crew kann nun mit folgendem Befehl gestartet werden:

Dadurch wird die im Projektgerüst definierte Crew ausgeführt. Standardmäßig kann dies ein einfaches Beispiel mit zwei zusammenarbeitenden Agenten sein. Wenn alles korrekt eingerichtet ist, sollten in der Konsole Denk- und Aktionsschritte der Agenten sichtbar sein.

Häufige Installationsprobleme

Python-Version: Es sollte eine unterstützte Python-Version zwischen 3.10 und 3.13 verwendet werden. Bei älteren Versionen kann die Installation aufgrund von Abhängigkeitsproblemen fehlschlagen.

OpenAI-SDK-Version: CrewAI kann eine bestimmte Mindestversion des OpenAI Python SDK erfordern. Beispielsweise benötigt CrewAI 0.175.0 openai >= 1.13.3. Wenn Importfehler im Zusammenhang mit OpenAI auftreten, sollte das OpenAI-Paket aktualisiert werden.

Windows Build Tools: Wenn unter Windows ein Build-Fehler bei chroma-hnswlib erscheint, müssen die Visual Studio C++ Build Tools installiert werden. CrewAI nutzt Chroma für Memory-Funktionen, und diese Abhängigkeit benötigt C++ Build Tools.

UV nicht im PATH: Wenn der Befehl uv nach der Installation nicht gefunden wird, kann uv tool update-shell ausgeführt werden, um den PATH zu aktualisieren.

CrewAI-Grundmodell: Agents, Tasks, Tools und Crew

Es ist hilfreich, die vier zentralen Bausteine von CrewAI zu verstehen. Ein CrewAI-Workflow besteht aus Agents, Tasks, Tools und der Crew selbst. Die Crew fungiert als Orchestrator, der Agenten und Aufgaben zu einem ausführbaren Workflow verbindet.

Agents: Rollenbasierte LLM-Arbeiter

Ein Agent in CrewAI ist ein LLM-gestützter Arbeiter mit einer definierten Rolle, einem Ziel und optionalem Hintergrundkontext. Agenten handeln autonom und treffen Entscheidungen innerhalb ihres jeweiligen Fachgebiets. Beispielsweise kann ein Research-Analyst-Agent Informationen recherchieren, während ein Writer-Agent daraus einen Bericht erstellt. Ein Agent wird durch die Angabe von Rolle, Ziel und weiteren Parametern definiert. Ein Beispiel:

from crewai import Agent

researcher = Agent(
    role="Senior Research Analyst",
    goal="Identify emerging AI trends and their business implications",
    backstory="You have 10 years of experience in AI research...",
    llm=your_llm_instance,         # Optional: use a specific LLM for this agent
    tools=[web_search_tool, document_loader_tool],
    memory=True,                   # Enable short-term or long-term memory for this agent
    verbose=True                   # Log the agent's thought process and decisions
)

Wichtige Attribute eines Agents

  • role: Der Name oder Kompetenzbereich des Agenten. Dies kann das Verhalten beeinflussen, zum Beispiel „Financial Advisor“ oder „SQL Database Analyst“.
  • goal: Das übergeordnete Ziel, das der Agent erreichen soll.
  • backstory: Hintergrundkontext oder Persona. Dies kann die Prompt-Qualität verbessern, indem dem Agenten eine Perspektive oder ein Ton vorgegeben wird, etwa „You have 10 years of experience in cybersecurity…“
  • tools: Eine Liste von Tools, Funktionen oder APIs, die der Agent während seiner Arbeit aufrufen kann.
  • llm: Jedem Agenten kann ein bestimmtes LLM zugewiesen werden. Für einfache Lookup- oder Keyword-Aufgaben kann beispielsweise ein günstigeres Modell verwendet werden, während komplexere Schlussfolgerungen einem leistungsfähigeren Modell überlassen werden. So lassen sich Kosten und Performance besser ausbalancieren.
  • memory: Wenn diese Option aktiviert ist, kann der Agent Informationen über Aufgaben hinweg behalten und sich an frühere Interaktionen, Fragen oder Ergebnisse erinnern.
  • verbose: Bei aktivierter Option gibt der Agent detaillierte Logs zu seinen Aktionen aus. Das ist hilfreich für Debugging und Nachvollziehbarkeit von Entscheidungen.

Tasks: Konkrete Arbeitseinheiten

Ein Task in CrewAI ist eine Arbeitseinheit, die einem Agenten zugewiesen wird. Sie enthält Anweisungen und beschreibt das erwartete Ergebnis. Man kann sie als strukturierte Aufgabe für einen Agenten verstehen. So kann ein Task im Code definiert werden:

from crewai import Task

analysis_task = Task(
    description="Analyze the top 5 AI trends in 2025 and assess their market potential.",
    expected_output="A structured analysis including each trend's name, market size, key players, and growth forecast.",
    agent=researcher,
    async_execution=False,      # False means this task runs synchronously
    output_file="analysis.md",  # Save the output to a file
    depends_on=[research_task]  # Optional dependency: run after research_task
)

Wichtige Attribute eines Tasks

  • description: Die Anweisungen für die Aufgabe und das, was der Agent erledigen soll.
  • expected_output: Eine Beschreibung der gewünschten Ausgabeform oder Struktur. Das hilft dem Agenten, ein besser nutzbares Ergebnis zu erzeugen.
  • agent: Der Agent, der für die Durchführung der Aufgabe zuständig ist.
  • async_execution: Wenn diese Option auf True gesetzt ist, kann der Task parallel zu anderen unabhängigen Aufgaben laufen. Standardmäßig ist sie für sequenzielle Ausführung auf False gesetzt.
  • output_file: Wenn angegeben, speichert CrewAI die Ausgabe des Agenten in einer Datei auf dem Datenträger.
  • depends_on: Eine Liste von Aufgaben, die abgeschlossen sein müssen, bevor dieser Task startet. Dadurch lässt sich bei Bedarf eine feste Ausführungsreihenfolge erzwingen.

Tools: Fähigkeiten für Agenten

Tools erweitern die Fähigkeiten von Agenten. Ein Tool ist im Kern eine Funktion oder API-Integration, die ein Agent während seines Denk- und Arbeitsprozesses aufrufen kann. Ein Websuch-Tool kann einem Agenten beispielsweise Internetrecherchen ermöglichen, während ein Datenbank-Tool Daten aus einer Datenbank abrufen kann.

CrewAI bringt integrierte Tools mit und erlaubt zusätzlich die Erstellung eigener Tools. Wenn Tools einem Agenten zugewiesen werden, kann der Agent entscheiden, wann er sie zur Erreichung seines Ziels verwendet.

Das folgende Beispiel nutzt integrierte Tools, darunter ein Websuch-Tool sowie Datei-Ein- und Ausgabe-Tools:

from crewai_tools import SerperDevTool, FileReadTool, FileWriteTool

# Initialize tools
web_search = SerperDevTool()   # Web search via Serper
file_reader = FileReadTool()   # Read from files
file_writer = FileWriteTool()  # Write to files

# Give the researcher agent access to these tools
researcher.tools = [web_search, file_reader, file_writer]

Ein eigenes Tool ist eine Python-Funktion oder Klasse, die mit @tool aus CrewAI dekoriert und anschließend Agenten zur Verfügung gestellt wird:

from crewai.tools import tool
import json

@tool("Database Query")
def query_database(sql: str) -> str:
    """Execute an SQL query against the company database."""
    # Simple validation example:
    if "DROP" in sql.upper():
        return "Error: Destructive queries are not allowed."

    # Pretend the query is executed and results are returned
    results = execute_sql(sql)
    return json.dumps(results)

In diesem Beispiel heißt das Tool „Database Query“. Der Funktionsname und der Docstring helfen dem Agenten zu verstehen, wofür das Tool gedacht ist. Eine Sicherheitsprüfung blockiert potenziell schädliche SQL-Befehle. Zur Laufzeit könnte der Agent dieses Tool etwa mit query_database("SELECT * FROM Customers") aufrufen.

Arten von Tools und Interaktionen in CrewAI

  • Integrierte Tools: CrewAI enthält sofort nutzbare Tools für Websuche, Lesen und Schreiben von Dateien, HTTP-Anfragen und weitere typische Aufgaben.
  • Eigene Tools: Eigene Tools können flexibel erstellt werden. Sie können so einfach sein wie das obige Beispiel oder über eine Unterklasse von CrewAI BaseTool komplexere Funktionen bereitstellen.
  • Delegation: Ein CrewAI-Agent kann Arbeit an einen anderen Agenten delegieren. Er kann entscheiden, dass er Unterstützung von einem spezialisierten Agenten benötigt, und dafür eine Teilaufgabe erzeugen. CrewAI übernimmt diese Orchestrierung im Hintergrund.

Crew: Die Orchestrierungs-Engine

Die Crew koordiniert Agenten und Aufgaben und steuert den Ablauf. Beim Erstellen eines Crew-Objekts werden die Liste der Agenten, die Liste der Aufgaben und die Prozesskonfiguration angegeben. Ein Beispiel:

from crewai import Crew, Process

crew = Crew(
    agents=[researcher, writer, manager],
    tasks=[research_task, writing_task, review_task],
    process=Process.HIERARCHICAL,  # The manager agent delegates tasks
    manager_agent=manager,         # Define the manager agent for hierarchical execution
    memory=True,                   # Enable shared memory among agents
    verbose=True                   # Enable detailed logs for debugging
)

result = crew.kickoff(inputs={"topic": "AI Safety"})

Dieses Beispiel erstellt eine Crew mit drei Agenten und drei Aufgaben. Der Workflow verwendet einen hierarchischen Prozess, bei dem ein Manager-Agent den Ablauf steuert und Aufgaben an andere Agenten verteilt. Die Eingabe topic: "AI Safety" kann verwendet werden, um Platzhalter in Aufgabenbeschreibungen oder Agentenzielen zu füllen.

Prozesstypen in CrewAI

CrewAI stellt über die Einstellung Process mehrere Ausführungsstrategien bereit:

  • Sequential: Agenten werden nacheinander in der festgelegten Reihenfolge ausgeführt. Das eignet sich für einfache lineare Workflows.
  • Hierarchical: Ein Manager- oder Koordinator-Agent steuert den Prozess. Er kann Aufgaben dynamisch zuweisen oder delegieren und das Ergebnis verfolgen. Das ist besonders hilfreich bei komplexen Workflows, in denen ein koordinierender Agent Teilaufgaben verwaltet.
  • Custom: Für fortgeschrittene Szenarien, die über die integrierten Prozesstypen hinausgehen, kann eigene Orchestrierungslogik verwendet werden.

Intern richtet sich crew.kickoff() nach dem ausgewählten Prozesstyp:

  • Im sequenziellen Modus arbeitet CrewAI die Aufgabenliste der Reihe nach ab.
  • Im hierarchischen Modus kann der Manager-Agent die Reihenfolge bestimmen oder Aufgaben dynamisch erstellen.
  • Wenn memory=True aktiviert ist, können Agenten auf gemeinsamen Speicher zugreifen, Ergebnisse anderer Agenten nutzen und Kontext beibehalten.

Nachdem die wichtigsten CrewAI-Komponenten erläutert wurden, folgt nun der Aufbau eines praktischen Multi-Agenten-Workflows.

Praktischen Workflow erstellen: Geführtes Projekt

Stell dir vor, ein automatisierter Workflow soll Inhalte recherchieren und schreiben, etwa indem ein Thema analysiert und daraus ein Zusammenfassungsbericht erstellt wird. Dieses Setup nutzt zwei Agenten: Ein Agent übernimmt die Recherche, der zweite verwandelt die gefundenen Informationen in eine Zusammenfassung. Das ist ein einfaches, aber realistisches Anwendungsszenario mit sequenzieller Zusammenarbeit, Tool-Nutzung und Übergabe von Ergebnissen zwischen Agenten.

Schritt 1: Agenten definieren

Der Workflow benötigt einen Researcher-Agenten und einen Writer-Agenten. Diese können in YAML, beispielsweise in agents.yaml, oder direkt in Python definiert werden:

# agents.yaml
agents:
  - name: researcher
    role: Researcher
    goal: "Gather relevant information on a given topic"
    backstory: "An expert at finding and analyzing information."
    tools: [WebSearchTool]    # Allow web search capability
    allow_delegation: false

  - name: writer
    role: Writer
    goal: "Produce a clear, concise summary of the research findings"
    backstory: "Skilled at summarizing information into reports."
    tools: []                 # No external tools; relies on the LLM
    allow_delegation: false

Dem Researcher wird ein WebSearchTool zugewiesen, das Websuchen durchführen kann. CrewAI stellt außerdem Tools wie SerperApiTool bereit, mit denen Google-Suchen über eine API ausgeführt werden können, sofern ein API-Schlüssel konfiguriert ist. Der Writer benötigt kein externes Tool, da er das zugrunde liegende LLM zur Texterstellung nutzt. Beide Agenten verwenden allow_delegation: false, um den Workflow einfach zu halten. Memory kann auf Ebene einzelner Agenten oder auf Crew-Ebene aktiviert werden, wenn Agenten Informationen behalten sollen.

Schritt 2: Aufgaben und Prozess definieren

Der Researcher soll zuerst ausgeführt werden, danach der Writer. Dadurch entsteht ein sequenzieller Prozess: Aufgabe 1 für die Recherche und Aufgabe 2 für das Schreiben. In CrewAI können die Aufgaben in tasks.yaml wie folgt definiert werden:

# tasks.yaml
tasks:
  - id: do_research
    description: "Research the topic: "
    expected_output: "Key points and relevant facts about ."
    agent: researcher

  - id: write_report
    description: |
      "Write a summary report on '' using the research findings."
    expected_output: "A well-structured summary of the topic."
    agent: writer
    context: [do_research]  # Use the output of the research task as context

process: sequential

Hier sind zwei Details besonders wichtig. Platzhalter wie können beim Ausführen der Crew mit Parametern gefüllt werden. Außerdem nutzt der Task write_report den Eintrag context: [do_research]. Dadurch wird die Ausgabe des Researchers automatisch an den Writer übergeben. Auf diese Weise fließen Daten und Kontext zwischen Agenten. Die Einstellung process: sequential macht die Reihenfolge der Ausführung eindeutig. Die Felder expected_output geben den Agenten Orientierung und beschreiben, wie das Ergebnis aussehen soll.

Schritt 3: Orchestrierungscode schreiben

Wenn YAML-Konfiguration verwendet wird, kann crewai run die Orchestrierung automatisch übernehmen. Das folgende Python-Beispiel zeigt dieselbe Idee im Code und macht die interne Struktur besser nachvollziehbar:

# crew.py conceptual example
from crewai import Crew, Task, Process
from crewai import Agent
from crewai_tools import WebSearchTool

# Initialize tools
search_tool = WebSearchTool()  # Assume it is configured with an API key through .env

# Create agent instances
researcher = Agent(
    role="Researcher",
    goal="Gather relevant info on a topic",
    tools=[search_tool],
    allow_delegation=False
)

writer = Agent(
    role="Writer",
    goal="Summarize research into a report",
    tools=[],
    allow_delegation=False
)

# Define tasks
research_task = Task(
    description="Research the topic: {topic}",
    agent=researcher,
    expected_output="Key facts about {topic}",
)

write_task = Task(
    description="Write a summary report on '{topic}' using the research findings.",
    agent=writer,
    context=[research_task],  # Link output of research_task
    expected_output="Summary report for {topic}"
)

# Create a crew with sequential execution
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process=Process.sequential,
    memory=True
)

Um diese Crew auszuführen, kann crew.kickoff(topic="Climate Change Impacts") aufgerufen werden. Dabei wird das Thema übergeben, das von den Aufgabenbeschreibungen erwartet wird. CrewAI führt den Workflow anschließend Schritt für Schritt aus.

Zuerst startet die Rechercheaufgabe. Der Researcher erhält den Prompt Research the topic: Climate Change Impacts. Da der Researcher Zugriff auf ein Websuch-Tool hat, kann das LLM des Agenten entscheiden, dieses Tool zu verwenden. Es könnte beispielsweise nach wichtigen Fakten zu den Auswirkungen des Klimawandels suchen und Ergebnisse abrufen. Die Tool-Ausgabe wird an den Agenten zurückgegeben, der daraus eine Antwort erstellt, etwa eine Liste zentraler Punkte. CrewAI speichert diese Ausgabe und kann sie bei aktivierter Memory-Funktion zusätzlich indexieren.

Danach beginnt die Schreibaufgabe. Der Writer erhält den Prompt Write a summary report on 'Climate Change Impacts' using the research findings. CrewAI stellt automatisch die Ausgabe der Rechercheaufgabe als Kontext bereit. Der Writer nutzt die zentralen Punkte des Researchers und erstellt daraus einen Zusammenfassungsbericht.

Am Ende gibt CrewAI das finale Ergebnis zurück, also den Bericht des Writers. Je nachdem, wie main.py aufgebaut ist, kann das Ergebnis in der Konsole ausgegeben oder gespeichert werden. Da für jede Aufgabe expected_output definiert wurde, kann CrewAI diese Angaben als Orientierung für die Ergebnisqualität nutzen, auch wenn es sich nicht um eine strenge Validierung handelt.

Schritt 4: Workflow ausführen und testen

Der Workflow kann bei Verwendung von CLI und YAML beispielsweise mit crewai run --param topic="Climate Change Impacts" gestartet werden. Alternativ lässt sich in einem Python-Skript crew.kickoff(topic="Climate Change Impacts") aufrufen. Während der Ausführung sollte die Konsolenausgabe beobachtet werden.

Wenn verbose=True auf Crew- oder Agentenebene aktiviert ist, werden die Denk- und Arbeitsschritte des Researchers sichtbar. Dort können etwa Hinweise erscheinen, dass nach Fakten zu Klimawandelauswirkungen gesucht wurde, dass Informationen zu Meeresspiegelanstieg oder Extremwetter gefunden wurden und dass die Recherche abgeschlossen ist.

Anschließend sollte die Ausgabe des Writer-Agenten sichtbar werden, während er die Zusammenfassung erstellt. Am Ende wird der fertige Zusammenfassungsbericht als Ergebnis zurückgegeben.

Produktionstipps für den Aufbau von Workflows

Aufgabenbeschreibungen konkret formulieren. Vage Anweisungen sollten vermieden werden. Im Prompt des Writers steht beispielsweise „using the research findings“, damit klar ist, welche Informationen zusammengefasst werden sollen. Ohne diese Präzisierung könnte der Agent Inhalte erfinden oder wichtige Punkte übergehen.

expected_output zur Steuerung der Antworten nutzen. Definitionen für erwartete Ausgaben, etwa Listen mit Kernaussagen oder strukturierte Zusammenfassungen, wirken wie eine weiche Spezifikation. Wenn die tatsächliche Antwort nicht zur gewünschten Struktur passt, sollte der Prompt angepasst oder die Ausgabe im Code weiterverarbeitet werden.

Agenten einzeln testen. Es kann sinnvoll sein, einen Agenten zunächst isoliert zu testen, bevor er in die vollständige Crew integriert wird. So lässt sich beispielsweise prüfen, ob der Researcher-Prompt funktioniert und das Websuch-Tool nützliche Informationen liefert.

YAML für schnelle Iterationen verwenden. Die YAML-Dateien von CrewAI ermöglichen es, Rollen, Prompts und Einstellungen anzupassen, ohne den Python-Code zu ändern. Falls verfügbar, kann crewai validate genutzt werden, um die YAML-Dateien zu prüfen. Für komplexere Logik wie Schleifen oder Bedingungen kann stattdessen das Python SDK eingesetzt und dort zusätzliche Logik ergänzt werden.

Workflow bei Bedarf erweitern. Dieses Beispiel kann leicht um einen dritten Agenten erweitert werden, etwa einen Editor, der Qualität und Stil prüft. Auch ein FactChecker-Agent könnte Aussagen über eine zusätzliche Websuche verifizieren. Dafür werden eine neue Aufgabe, passende Kontextverknüpfungen und optional Delegationsmöglichkeiten für Überarbeitungen hinzugefügt.

Tools und Integrationen

CrewAI enthält eine breite Tool-Bibliothek, mit der Agenten mit Dateien, Websites, Datenbanken, Vektorspeichern und externen Diensten interagieren können. Die folgende Tabelle fasst typische Tool-Kategorien, Beispiel-Tools und allgemeine Anwendungsfälle zusammen.

Tool Beschreibung
ScrapeWebsiteTool Ruft HTML-Seiten ab, analysiert sie und extrahiert daraus Website-Inhalte.
SerperDevTool Führt Google-Suchen über die Serper API aus, um aktuelle Web-Ergebnisse zu erhalten.
FileReadTool Liest Inhalte aus verschiedenen Arten lokaler Dateien.
Rag Tool Unterstützt Retrieval-Augmented Generation durch Abfragen externer Dokumente.
CodeInterpreterTool Führt Python-Code-Snippets sicher innerhalb der Agentenumgebung aus.
DALLETool oder DallETool Erzeugt Bilder aus Textbeschreibungen mit dem DALL-E-Modell von OpenAI.
PGSearchTool Fragt PostgreSQL-Datenbanken zur Datenabfrage ab, einschließlich semantischer oder RAG-ähnlicher Suchunterstützung.

Integrationen und fortgeschrittene Tools: CrewAI unterstützt außerdem das Model Context Protocol, kurz MCP. Dadurch wird der Zugriff auf ein Ökosystem gemeinschaftlich entwickelter Tools über eine gemeinsame Schnittstelle möglich. Mit MCP-Integration können Agenten auf viele Tools zugreifen, die auf MCP-Servern laufen, darunter spezialisierte APIs und Datenverarbeitungsdienste. Dafür muss das Extra crewai-tools[mcp] installiert werden. Je nach Bedarf wird zusätzlich ein MCP-Server betrieben oder eine Verbindung zu einem vorhandenen Server hergestellt.

Zuverlässigkeitsmuster für Multi-Agenten-Workflows

In Produktionsumgebungen müssen Multi-Agenten-Workflows mit verschiedenen Fehlerbildern umgehen können. Agenten können in Schleifen geraten, Tools können falsch aufgerufen werden und Kosten können schnell steigen. CrewAI stellt Muster und Kontrollen bereit, die die Zuverlässigkeit verbessern. Die folgende Tabelle zeigt wichtige Zuverlässigkeitsmuster.

Zuverlässigkeitsmuster Was es verhindert Wie es in CrewAI angewendet wird
Abgesicherte Tool-Ergebnisse Halluzinationen nach einer korrekten Tool-Ausgabe, bei denen das LLM wahre Informationen umformuliert und dabei Fehler einführt. Bei autoritativen Tools wie Datenbankabfragen, Rechnern oder Retrieval-Tools sollte der Workflow so konfiguriert werden, dass das Tool-Ergebnis direkt zur finalen Antwort wird oder unverändert in die Antwort übernommen wird. Aufgaben sollten außerdem ausdrücklich Tool-Nutzung für Fakten verlangen.
Iterationslimits Endlosschleifen und Token-Verschwendung, wenn Agenten wiederholt nachdenken, erneut versuchen oder neu planen, ohne abzuschließen. Mit max_iter lässt sich die Anzahl von Denk- und Tool-Zyklen eines Agenten begrenzen. Für einfache Aufgaben sollte das Limit niedrig bleiben und nur bei komplexem mehrstufigem Reasoning erhöht werden. Häufige max_iter-Treffer deuten meist darauf hin, dass Prompt oder Aufgabendefinition verbessert werden sollten.
Ausführungs-Timeouts Hängende Workflows durch langsames Scraping, Netzwerkprobleme oder lang laufende Tool-Aufrufe. max_execution_time kann pro Agent oder Aufgabe gesetzt werden. In eigenen Tools sollten zusätzliche Timeouts verwendet werden, etwa HTTP-Timeouts oder Browser-Page-Load-Limits. Besser ist ein Timeout mit anschließendem Retry als unbegrenztes Warten.
Retries und Backoff Temporäre Fehler wie Rate Limits, instabile APIs oder zeitweilige Verbindungsprobleme. max_retry_limit kann genutzt werden, während im Tool-Code exponentielles Backoff umgesetzt wird, zum Beispiel 1 Sekunde, dann 2 Sekunden, dann 4 Sekunden warten. Nach begrenzten Wiederholungen sollte ein strukturierter Fehler zurückgegeben werden, damit nachgelagerte Aufgaben deterministisch reagieren können.
Begrenzte Delegation Delegations-Pingpong, bei dem Agenten Aufgaben gegenseitig weiterreichen und nie fertig werden. allow_delegation sollte nur für einen Manager- oder Koordinator-Agenten aktiviert werden. Worker-Agenten bleiben ohne Delegationsrecht. Explizite Prompt-Regeln wie „delegate only when data or tool access is missing“ sowie konkrete Rückgabeanforderungen für Worker helfen, unnötige Rückfragen zu vermeiden.
Deterministische Eingaben Instabile Ausgaben, bei denen kleine Prompt-Abweichungen unterschiedliche Formate oder Ergebnisse erzeugen und nachgelagerte Automatisierungen stören. Strikte Aufgabenspezifikationen, expected_output, feste Schemas wie JSON und strukturierte Prompts helfen. Bei Extraktions- oder Klassifikationsagenten sollte die Zufälligkeit reduziert werden, etwa durch eine niedrigere Temperatur und klar definierte Ausgabefelder.
Ausgabevalidierung Stille Qualitätsprobleme, bei denen Ergebnisse gut aussehen, aber Pflichtfelder fehlen, Regeln verletzt werden oder Widersprüche enthalten sind. Eine Validator- oder Reviewer-Aufgabe kann Schemas, Pflichtabschnitte, Zitationen und Einschränkungen prüfen. Wenn die Validierung fehlschlägt, kann die Aufgabe mit gezieltem Korrekturfeedback erneut ausgeführt werden, inklusive Angabe, was fehlt und welches Format erwartet wird.
Kostenkontrolle Aus dem Ruder laufende Kosten, weil Multi-Agenten-Workflows Token und Tool-Aufrufe schnell vervielfachen. Für Routineaufgaben können kleinere oder günstigere Modelle genutzt werden, während leistungsfähigere Modelle kritischem Reasoning vorbehalten bleiben. Schritte und Laufzeit sollten begrenzt, wiederholter Kontext gecacht und Token sowie Kosten pro Aufgabe geloggt werden, um teure Bereiche gezielt zu optimieren.

Observability und Debugging

Die folgende Tabelle fasst drei praktische Beobachtbarkeitsebenen für CrewAI-Workflows zusammen. Sie beginnt mit einfacher Konsolensichtbarkeit während der Entwicklung, geht dann zu strukturiertem Tracing und externem Monitoring für den Produktivbetrieb über und ergänzt Debug-Hooks sowie Evaluierungsworkflows zur fortlaufenden Qualitätsverbesserung.

Observability-Bereich Was er bietet Wie er in CrewAI genutzt wird
Basis-Logging und Verbosity Direkt lesbares Debugging. Denkprozesse, Tool-Aufrufe und Entscheidungsflüsse der Agenten werden in Echtzeit sichtbar. Das ist für Entwicklung und schnelle Fehlersuche hilfreich, aber für langfristige Analysen begrenzt. Mit verbose=True auf Crew- oder Agentenebene lassen sich detaillierte Logs wie THINKING, ACTION und OBSERVATION ausgeben. Lokal kann dies zur Reproduktion von Problemen genutzt werden. In Produktion sollte die Verbosity niedrig gehalten und möglichst strukturiertes Logging, etwa JSON, verwendet werden.
Tracing, externe Observability und Produktionsmonitoring Eine strukturierte Nachweiskette mit Zeitstempeln, Eingaben, Ausgaben, Tool-Aufrufen und Run-IDs. Das unterstützt Post-Mortems, Performance-Optimierung und Kostenkontrolle, etwa bei Token-Spitzen oder langsamen Tools. CrewAI-Tracing kann je nach Dokumentation über Konfiguration, Flags oder Umgebungsvariablen aktiviert werden, damit jeder Lauf Trace-Daten mit eindeutiger Kennung erzeugt. Traces und Metriken können an Observability-Backends wie Langfuse, Datadog, Arize/Phoenix, LangSmith, LangTrace oder Neatlogs gesendet werden. Zusätzlich sollten Alerts für Fehler und Latenz eingerichtet, Token-Nutzung und Kosten pro Aufgabe verfolgt sowie Durchsatzwerte für Skalierungsentscheidungen überwacht werden.
Debug-Hooks und Evaluierungsworkflows Konkrete Diagnosemöglichkeiten und Qualitätskontrolle. Eigene Hooks machen Muster wie Delegationsschleifen, wiederholte Retries und Tool-Fehler sichtbar, während Evaluation stille Qualitätsrückschritte verhindert. Mit step_callback können nach jedem Schritt wichtige Ereignisse aufgezeichnet werden, etwa Delegation, Tool-Fehler, Retry-Anzahl oder Schema-Verletzungen. Eine automatisierte Evaluierungsstufe mit Regelprüfungen und optionalem LLM-Scoring kann finale Ausgaben bewerten. Gespeicherte Scores und Trends helfen dabei, Prompts, Tools und Release-Qualität zu verbessern.

CrewAI vs. LangGraph vs. AutoGen

Verschiedene Agenten-Frameworks folgen unterschiedlichen Designphilosophien, Architekturen und Funktionsansätzen. CrewAI, LangGraph und AutoGen gehören zu den verbreiteten Optionen. Der folgende Vergleich zeigt wichtige Gemeinsamkeiten und Unterschiede.

Aspekt CrewAI: Rollenbasierte Teams LangGraph: Graph-Workflows AutoGen: Konversationelle Agenten
Ansatz Rollenbasierte Agenten werden in einer strukturierten Crew organisiert. Aufgaben und Abläufe verbinden Autonomie mit Kontrolle. Gerichteter Graph aus Schritten, häufig in Verbindung mit LangChain, inklusive explizitem State-Handling. Multi-Agenten-Chatsitzungen mit entstehendem Verhalten und ohne fest definierten Standardprozess.
Einstieg Klares Agent-, Crew- und Task-Modell, das einen schnellen Start ermöglicht. Logging kann passende Werkzeuge erfordern. Steilere Lernkurve mit mehr Boilerplate und anfänglichem State-Design. Schnell für Prototypen, aber die Koordination hängt stark von sorgfältigem Prompt-Design ab.
Workflow-Kontrolle Unterstützt autonome Crews und deterministische Abläufe und bietet damit eine Balance aus Flexibilität und Struktur. Starke Kontrolle über Graphen, gut geeignet für komplexe Verzweigungen, aber zur Laufzeit weniger adaptiv. Begrenzte eingebaute Kontrolle, da die Reihenfolge aus der Konversation entsteht und schwerer durchzusetzen ist.
State und Memory Enthält integrierte Module für Kurzzeit-, Langzeit- und Entity-Memory. Nutzt häufig LangChain-Memory, wobei State vorab definiert und im Code verwaltet werden muss. Verwendet hauptsächlich Konversationshistorie, sofern keine zusätzliche Memory-Funktion implementiert wird.
Tools und Integration Bietet viele Tools, funktioniert unabhängig von LangChain und kann eigene APIs oder bei Bedarf LangChain-Tools integrieren. Eng mit LangChain verbunden, mit vielen Integrationen, aber zusätzlicher Komplexität und Anpassungsaufwand. Nutzt Funktionen und AutoGen Studio UI, wobei Tool-Nutzung durch ein konversationelles Modell geprägt ist.
Performance Leichtgewichtiger Kern mit geringem Overhead und guter Eignung für kleine sowie komplexe Workflows. Kann durch LangChain und Graph-Runtime mehr Overhead verursachen, ist aber für strukturierte Abläufe geeignet. Die Performance hängt von der Anzahl der Konversationsrunden ab und kann sinken, wenn Agenten stark iterieren.
Produktionsreife Auf Produktion ausgerichtet, mit Observability-Hooks, Enterprise-Funktionen, fein steuerbaren Kontrollen und wartbaren Systemen. Kann mit sorgfältigem Engineering produktiv eingesetzt werden, benötigt wegen der LangChain-Komplexität aber möglicherweise zusätzlichen Integrationsaufwand. Eher auf Forschung und Demos ausgerichtet, wobei produktionsreife Aspekte wie Logging, Fehlerbehandlung und Kontrollen größtenteils selbst umgesetzt werden müssen.
Am besten geeignet für Rollenbasierte Workflows mit bekannten Schritten und flexibler Ausführung, etwa Enterprise-Automatisierung, Analytics-Pipelines und mehrstufiges RAG mit Kontrolle. Statische oder vorhersehbare Workflows mit komplexen Verzweigungen, etwa ETL- oder QA-Pipelines, besonders bei bestehender LangChain-Nutzung. Offenes konversationelles Problemlösen, Brainstorming, Kritikschleifen und Human-in-the-Loop-Chats, bei denen die Schritte nicht feststehen.

Häufig gestellte Fragen zu CrewAI

1. Was ist CrewAI und wie unterscheidet es sich von klassischen KI-Agenten?

CrewAI ist ein Framework zur Koordination mehrerer KI-Agenten, die mit klar definierten Rollen, Zielen und Verantwortlichkeiten zusammenarbeiten. Im Gegensatz zu klassischen Single-Agent-Systemen legt CrewAI den Fokus auf Zusammenarbeit und Aufgabendelegation, ähnlich wie in menschlichen Teams. Dadurch eignet es sich besonders für komplexe mehrstufige Workflows, die Planung, Ausführung und Validierung erfordern.

2. Wie funktioniert rollenbasierte Agenten-Orchestrierung in CrewAI?

In CrewAI erhält jeder Agent eine spezifische Rolle, zum Beispiel Researcher, Writer oder Reviewer, sowie ein klar definiertes Ziel. Aufgaben werden passend zu diesen Rollen verteilt, damit jeder Agent sich auf die Arbeit konzentriert, für die er am besten geeignet ist. Dieser strukturierte Ansatz verbessert die Effizienz, reduziert doppelte Arbeit und führt zu kohärenteren Ergebnissen.

3. Welche typischen Anwendungsfälle gibt es für CrewAI?

CrewAI wird häufig für Content-Erstellung, Rechercheautomatisierung, Datenanalyse-Pipelines und KI-gestützte Produkt-Workflows eingesetzt. Besonders nützlich ist es, wenn Aufgaben sequenziell oder kollaborativ abgearbeitet werden müssen. Typische Beispiele sind der Aufbau von RAG-Systemen, die Automatisierung von Berichten und die Koordination mehrerer LLM-gestützter Tools.

4. Sind fortgeschrittene KI- oder Python-Kenntnisse für den Einstieg in CrewAI erforderlich?

Grundkenntnisse in Python und großen Sprachmodellen sind hilfreich, aber nicht zwingend auf fortgeschrittenem Niveau erforderlich. CrewAI ist entwicklerfreundlich aufgebaut und bietet klare Abstraktionen für Agenten, Aufgaben und Workflows. Einsteiger können mit einfachen Beispielen beginnen und sich Schritt für Schritt zu komplexeren Multi-Agenten-Orchestrierungen vorarbeiten.

5. Kann CrewAI in bestehende Tools und Frameworks integriert werden?

Ja, CrewAI kann mit gängigen LLM-Anbietern, APIs und externen Tools wie Vektordatenbanken oder Workflow-Engines verbunden werden. Diese Flexibilität ermöglicht die Integration in bestehende KI-Pipelines. Teams können dadurch vorhandene Systeme erweitern, ohne alles von Grund auf neu aufzubauen.

Fazit

CrewAI ist besonders wirkungsvoll, wenn eine Crew als technisch sauber entwickelter Workflow verstanden wird und nicht als einfaches Chat-Experiment. Klare Rollen, eindeutige Aufgabengrenzen, toolgestützte Absicherung wichtiger Schritte und Begrenzungen gegen Schleifen, Fehler oder unerwartete Kosten sind entscheidend. Ergänzend sollten Logs, Traces und einfache Evaluierungen eingesetzt werden, damit Probleme schnell analysiert und die Qualität mit jedem Release verbessert werden kann.

Wenn vorhersehbare mehrstufige Automatisierung mit klarer Verantwortlichkeit und produktionsnahen Kontrollmechanismen benötigt wird, ist CrewAI eine starke Standardoption. Wenn jedoch vor allem komplexe Verzweigungslogik oder offene konversationelle Zusammenarbeit im Mittelpunkt stehen, können LangGraph oder AutoGen besser geeignet sein.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

IoT-Automatisierung mit MQTT Broker und MongoDB

Databases, Tutorial
Vijonavor 37 Minuten IoT-Automatisierungspipeline mit Coreflux MQTT Broker und MongoDB bereitstellen MQTT-Broker gehören zu den zentralen Bausteinen moderner IoT-Infrastrukturen und Automatisierungsumgebungen. Sie dienen als zentraler, einheitlicher und schneller Datenknotenpunkt, der die…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

GPUs für vLLM-Inferenz richtig dimensionieren

AI/ML, Tutorial
Vijonavor 2 Stunden GPUs für vLLM-Inferenz richtig dimensionieren und konfigurieren Eine passende GPU-Dimensionierung und Konfiguration für vLLM-Inferenz beginnt mit einem klaren Verständnis der beiden zentralen Phasen bei der Verarbeitung großer Sprachmodelle:…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

RL-Umgebungen für LLMs und KI-Agenten

AI/ML, Tutorial
Vijonavor 3 Stunden RL-Umgebungen für LLMs und autonome KI-Systeme Ein dauerhaft spannendes Forschungs- und Entwicklungsfeld im Bereich Künstliche Intelligenz ist der Einsatz von LLMs in vollständig autonomen End-to-End-Systemen, die auf Multi-Agenten-Architekturen…