Dieses Projekt ist ein kleines Vortrags- und Workshop-Setup fuer CrewAI mit Claude/Anthropic. Die Beispiele starten bewusst lebensnah: Einkaufszettel, Wochenendplan, Abendessen, Tagesplanung und kleiner Umzug. Das letzte Beispiel ist eine kleine Dark-Factory fuer Software: mehrere Agents bauen gemeinsam einen Python-Taschenrechner.
Die Beispiele werden Schritt fuer Schritt anspruchsvoller und sind jeweils getrennt: eigene README, eigene Config und eigener Lernfokus. Ab Beispiel 07 kommen lebensnahe Flow-Beispiele hinzu: Morgenroutine, Wochenendplan, Einkaufsliste und Geburtstagsfeier.
Wichtig: Claude Code selbst ist kein CrewAI-Modell-Endpunkt. Claude Code kann dir beim Bearbeiten und Starten dieses Projekts helfen, aber CrewAI braucht zum Ausfuehren einen Anthropic API Key.
- Python
>=3.10und<3.14 - Windows mit PowerShell oder Linux/macOS mit einer Shell wie Bash/Zsh
- Anthropic API Key in
ANTHROPIC_API_KEY
Die Python-Abhaengigkeiten stehen in pyproject.toml:
crewai[anthropic]pydanticPyYAML
Empfohlen ist eine normale Python-Installation von python.org oder ueber den
Windows-Paketmanager winget.
Mit winget:
winget install Python.Python.3.12Danach PowerShell neu oeffnen und pruefen:
python --version
pip --versionFalls python nicht gefunden wird, pruefe bei der Installation, ob Python zum
PATH hinzugefuegt wurde. Alternativ funktioniert auf vielen Windows-Systemen
auch der Python-Launcher:
py --version
py -m pip --versionUnter Debian/Ubuntu:
sudo apt update
sudo apt install python3 python3-venv python3-pipPruefen:
python3 --version
python3 -m pip --versionUnter anderen Distributionen installierst du entsprechend python3, venv und
pip ueber den jeweiligen Paketmanager.
Mit Homebrew:
brew install pythonPruefen:
python3 --version
python3 -m pip --versionEine virtuelle Umgebung ist ein lokaler Python-Arbeitsbereich fuer dieses
Projekt. Die Abhaengigkeiten werden dann in .venv installiert und nicht global
auf deinem System verteilt.
Dieses Projekt nutzt:
.venv/
Der Ordner muss nicht nach GitHub gepusht werden. Er kann jederzeit neu erstellt werden.
Du kannst das Projekt auch ohne .venv installieren. Das ist fuer schnelle
Server-Tests okay, aber weniger sauber, weil die Pakete dann in die aktuelle
Python-Umgebung installiert werden.
Nutze diese Variante nur, wenn du weisst, welche Python-Umgebung aktiv ist, z. B. auf einem frischen Server oder in einem Wegwerf-Container.
python -m pip install -e .Mit Python-Launcher:
py -m pip install -e .Start:
crewai-examples 01Falls crewai-examples nicht gefunden wird, nutze direkt:
python -m examples.main 01python3 -m pip install -e .Start:
crewai-examples 01Falls crewai-examples nicht gefunden wird, nutze direkt:
python3 -m examples.main 01Auf manchen Linux-Systemen verhindert Python globale Installationen und zeigt
einen Hinweis wie externally-managed-environment. Dann nimm besser die
.venv-Variante oder, nur wenn du es wirklich willst:
python3 -m pip install -e . --break-system-packagesIm Projektordner in PowerShell ausfuehren:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .Falls du den Windows-Python-Launcher nutzt:
py -m venv .venv
.\.venv\Scripts\Activate.ps1
py -m pip install -e .Was hier passiert:
python -m venv .venverstellt die virtuelle Umgebung..\.venv\Scripts\Activate.ps1aktiviert sie in der aktuellen PowerShell.pip install -e .liestpyproject.toml, installiert die Abhaengigkeiten und registriert den Befehlcrewai-examples.
Danach den API Key fuer die aktuelle PowerShell setzen:
$env:ANTHROPIC_API_KEY="sk-ant-..."Optional kannst du das Modell ueberschreiben:
$env:CREWAI_MODEL="anthropic/claude-sonnet-4-6"Wenn CREWAI_MODEL nicht gesetzt ist, nutzt das Projekt
anthropic/claude-sonnet-4-6.
Im Projektordner in Bash oder Zsh ausfuehren:
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Was hier passiert:
python3 -m venv .venverstellt die virtuelle Umgebung.source .venv/bin/activateaktiviert sie in der aktuellen Shell.pip install -e .liestpyproject.toml, installiert die Abhaengigkeiten und registriert den Befehlcrewai-examples.
Danach den API Key fuer die aktuelle Shell setzen:
export ANTHROPIC_API_KEY="sk-ant-..."Optional kannst du das Modell ueberschreiben:
export CREWAI_MODEL="anthropic/claude-sonnet-4-6"Wenn CREWAI_MODEL nicht gesetzt ist, nutzt das Projekt
anthropic/claude-sonnet-4-6.
pyproject.toml ist die Projektbeschreibung fuer Python. Darin stehen Name,
Python-Version, Abhaengigkeiten und der Startbefehl:
[project.scripts]
crewai-examples = "examples.main:main"Das bedeutet: Nach pip install -e . kannst du das Projekt mit
crewai-examples starten. Intern ruft Python dann die Funktion main() aus
examples/main.py auf.
Typischer Ablauf:
pyproject.toml -> pip install -e . -> crewai-examples -> examples.main:main
Wenn du das Projekt ohne installierten Script-Befehl starten willst, geht auch:
python -m examples.main 01oder unter Linux/macOS:
python3 -m examples.main 01crewai-examples 01
crewai-examples 02
crewai-examples 03
crewai-examples 04
crewai-examples 05
crewai-examples 06
crewai-examples 07
crewai-examples 08
crewai-examples 09
crewai-examples 10Aliases funktionieren ebenfalls:
crewai-examples basic
crewai-examples review
crewai-examples cooking
crewai-examples weekend
crewai-examples moving
crewai-examples coder
crewai-examples calculator
crewai-examples morgenroutine
crewai-examples wochenendplan
crewai-examples einkaufsliste
crewai-examples geburtstagAlternativ geht der Start direkt als Python-Modul:
python -m examples.main 01crewai-examples 01
crewai-examples 02
crewai-examples 03
crewai-examples 04
crewai-examples 05
crewai-examples 06
crewai-examples 07
crewai-examples 08
crewai-examples 09
crewai-examples 10Aliases funktionieren ebenfalls:
crewai-examples basic
crewai-examples review
crewai-examples cooking
crewai-examples weekend
crewai-examples moving
crewai-examples coder
crewai-examples calculator
crewai-examples morgenroutine
crewai-examples wochenendplan
crewai-examples einkaufsliste
crewai-examples geburtstagAlternativ geht der Start direkt als Python-Modul:
python3 -m examples.main 0100_config_erklaerung: erklaert alle Config-Felder, die spaeter vorkommen.01_single_agent_no_tool: ein Agent, eine Task, keine Tools.02_two_agents_no_tools: zwei Agents, zwei Tasks, keine Tools.03_one_agent_one_tool: ein Agent, eine Task, ein Tool.04_one_agent_multiple_tools: ein Agent, mehrere Tools.05_multi_agent_with_tools: mehrere Agents, Tools und Task-Kontext.06_dark_factory_calculator: Dark-Factory mit Produktdesigner, Coder, Tester, QA-Checker, echter Coder-Tester-Schleife, echten Unit-Tests, echtem Linting sowie unterschiedlichen Modellen und Temperaturen pro Agent.07_morgenroutine_flow: morgens puenktlich loskommen, mit State als Notizzettel.08_wochenendplan_branching: Samstag planen, mit Abzweigung nach Regen und Budget.09_einkaufsliste_validation_loop: Einkaufsliste wiederholen, bis sie ins Budget passt.10_geburtstagsfeier_flow_crews: Kindergeburtstag planen, mit Flow als Rahmen um Planung, Pruefung und Elternnachricht.
Die Idee: Erst Rollen und Tasks verstehen, dann Zusammenarbeit, danach Tools, danach mehrere Tools, danach mehrere Agents mit Kontext, zuletzt eine kleine Software-Dark-Factory mit agentenspezifischem Modell-Setup. Danach wird der Blick groesser: Lebensnahe Flows zeigen, wie man Crews, Tools und normalen Python-Code zu robusteren Workflows verbindet.
README.md
pyproject.toml
examples/
main.py
tools.py
00_config_erklaerung/
README.md
config/
agents.yaml
tasks.yaml
01_single_agent_no_tool/
README.md
config/
agents.yaml
tasks.yaml
02_two_agents_no_tools/
README.md
config/
agents.yaml
tasks.yaml
03_one_agent_one_tool/
README.md
config/
agents.yaml
tasks.yaml
04_one_agent_multiple_tools/
README.md
config/
agents.yaml
tasks.yaml
05_multi_agent_with_tools/
README.md
config/
agents.yaml
tasks.yaml
06_dark_factory_calculator/
README.md
config/
agents.yaml
tasks.yaml
07_morgenroutine_flow/
README.md
config/
agents.yaml
tasks.yaml
flow.yaml
08_wochenendplan_branching/
README.md
config/
agents.yaml
tasks.yaml
flow.yaml
09_einkaufsliste_validation_loop/
README.md
config/
agents.yaml
tasks.yaml
flow.yaml
10_geburtstagsfeier_flow_crews/
README.md
config/
agents.yaml
tasks.yaml
flow.yaml
examples/main.pyist der Runner. Er nimmt das CLI-Argument entgegen, laedt die passende YAML-Config und startet die Crew.examples/flow_examples.pyenthaelt die didaktischen Flow-Beispiele ab 07. Sie zeigen State, Branching, Loops und Flow-Orchestrierung an alltagsnahen Situationen ohne zusaetzliche Modellaufrufe, damit der Ablauf selbst im Vordergrund steht.examples/tools.pyenthaelt alle eigenen Tools. Tools sind Python-Code, weil sie echte Logik ausfuehren. Viele Tools erzeugen Lauf-IDs, Uhrzeiten, Zufallswerte oder kleine Berechnungen, damit im Vortrag sichtbar wird, dass wirklich Python-Code ausgefuehrt wurde.- Beispiel 06 nutzt zusaetzlich
unit_tests_ausfuehrenundlinting_ausfuehren. Ausserdem gibt esbash_befehl_ausfuehren, womit die technischen Agents echte Bash-Kommandos starten koennen, z. B.python --version,pip install ...oder Testbefehle. Der Runner fuehrt die Pflichtpruefungen zwischen Coder und Tester wirklich aus und wiederholt die Coder-Runde, bis Tests und Linting gruen sind oderCREWAI_DARK_FACTORY_MAX_RUNSerreicht ist. - Wichtig:
bash_befehl_ausfuehrenist absichtlich sehr maechtig. Nutze es nur in einer Umgebung, in der ein Agent Befehle ausfuehren darf. Auf Windows wird dafuer Git Bash oder WSL benoetigt. agents.yamlbeschreibt Rollen, Ziele, Backstories und erlaubte Tools.- Im letzten Beispiel beschreibt
agents.yamlzusaetzlich pro Agent ein eigenesllm-Profil mit Modell, Temperatur und Tokenlimit. tasks.yamlbeschreibt Aufgaben, erwartete Ergebnisse und optionalen Task-Kontext.flow.yamlbeschreibt ab Beispiel 07 den Flow-Fokus der Lerneinheit: Schritte, Branches, Validatoren oder Orchestrierung.- Jede Beispiel-README erklaert Lernziel, Besonderheiten und Takeaways.
- Einen neuen Ordner unter
examples/anlegen, z. B.07_mein_beispiel. - Darin
README.md,config/agents.yamlundconfig/tasks.yamlerstellen. - Falls neue Tools noetig sind, diese in
examples/tools.pyimplementieren. - Die Tools in
TOOL_REGISTRYinexamples/main.pyregistrieren. - Das neue Beispiel in
EXAMPLESinexamples/main.pyeintragen.
ANTHROPIC_API_KEYfehlt: Der Crew-Run kann kein Claude-Modell aufrufen.- Virtuelle Umgebung ist nicht aktiv:
crewai-exampleswird nicht gefunden. - Neues Tool steht in YAML, aber nicht in
TOOL_REGISTRY: Der Runner kennt den Tool-Namen nicht. - Task-Kontext verweist auf eine Task, die in
tasks.yamlerst spaeter definiert ist: Kontext-Tasks muessen vor der nutzenden Task stehen.
- CrewAI trennt Rollen, Aufgaben, Tools und Ablauf.
- YAML ist gut fuer Prompts, Rollen und Aufgaben geeignet.
- Python bleibt der richtige Ort fuer Tool-Logik und Orchestrierung.
- Tools sind nicht nur Datenquellen, sondern koennen auch Guardrails sein.
- Mehrere Agents lohnen sich erst, wenn sie unterschiedliche Rollen oder Denkmodi abbilden.