[{"data":1,"prerenderedAt":750},["ShallowReactive",2],{"blog-crewai-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":26,"cover":54,"og":55,"expertise":56,"locales":57,"lang":59,"title":61,"description":62,"coverAlt":63,"metaTitle":64,"takeaways":65,"faq":71,"toc":84,"blocks":109,"others":479},"crewai","2026-06-08",10,"agents",[9,10,11,12,13],"Multi-agent","Agent orchestration","Python","Flows","Token cost",[4,15,16,17,18,19,20,21],"crewai vs langgraph","crewai framework review","multi-agent framework python","crewai flows","crewai memory","crewai pricing","agent framework comparison",[23],{"name":24,"url":25},"CrewAI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCrewAI",[27,30,33,36,39,42,45,48,51],{"title":28,"url":29},"CrewAI documentation: introduction","https:\u002F\u002Fdocs.crewai.com\u002Fen\u002Fintroduction",{"title":31,"url":32},"CrewAI on PyPI: crewai 1.15.23","https:\u002F\u002Fpypi.org\u002Fproject\u002Fcrewai\u002F",{"title":34,"url":35},"CrewAI docs: Flows","https:\u002F\u002Fdocs.crewai.com\u002Fen\u002Fconcepts\u002Fflows",{"title":37,"url":38},"CrewAI docs: Memory","https:\u002F\u002Fdocs.crewai.com\u002Fen\u002Fconcepts\u002Fmemory",{"title":40,"url":41},"CrewAI docs: tracing","https:\u002F\u002Fdocs.crewai.com\u002Fen\u002Fobservability\u002Ftracing",{"title":43,"url":44},"CrewAI pricing","https:\u002F\u002Fwww.crewai.com\u002Fpricing",{"title":46,"url":47},"GitHub: crewAIInc\u002FcrewAI","https:\u002F\u002Fgithub.com\u002FcrewAIInc\u002FcrewAI",{"title":49,"url":50},"LangGraph overview","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Foverview",{"title":52,"url":53},"AutoGen AgentChat user guide","https:\u002F\u002Fmicrosoft.github.io\u002Fautogen\u002Fstable\u002Fuser-guide\u002Fagentchat-user-guide\u002Findex.html","\u002Fimages\u002Fblog\u002Fcrewai\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcrewai\u002Fog.jpg","ai-engineer",[58,59,60],"en","de","hu","CrewAI im Test: Crews, Flows und die Token-Rechnung","CrewAI ist das MIT-lizenzierte Python-Framework für Multi-Agent-Systeme: Crews für autonome Zusammenarbeit, Flows für kontrollierten State. Was ein Lauf an Tokens kostet und wo es hakt.","Fünf kleine Quadrate im Kreis, durch gebogene Pfeile verbunden, darunter eine Kiste mit dünnen Scheiben.","CrewAI: Crews, Flows und die Kosten pro Task · Balázs Csorba",[66,67,68,69,70],"CrewAI 1.15.23 ist MIT-lizenziertes Python für 3.10 bis 3.13, ohne eigene Ausführungsgrenze und mit Extras für Tools, LiteLLM, mem0, Qdrant und Bedrock.","Crews delegieren über Modellaufrufe, deshalb bestimmt die Topologie die Kosten eines Laufs: Rollen-Prompts, ein hierarchischer Manager, drei Guardrail-Retries und Memory-Analyse kosten alle extra.","Memory hält Einträge als LanceDB-Vektoren und ruft ein Modell beim Speichern und beim tiefen Abruf, zusätzlich zum Embedding-Aufruf.","Das eingebaute Tracing geht an CrewAIs eigenes Backend und verlangt ein Konto plus eine Zustimmung beim ersten Lauf; Langfuse, Phoenix, Braintrust und MLflow laufen stattdessen über OpenTelemetry.","Das Framework ist am besten, wenn der Flow die Logik hält und ein oder zwei Agenten den offenen Teil machen.",[72,75,78,81],{"q":73,"a":74},"Ist CrewAI im Produktivbetrieb kostenlos?","Ja. Das Framework ist MIT-lizenziert und ohne Ausführungsgrenze; Kosten entstehen durch die Modellaufrufe deiner Agenten und deine eigene Infrastruktur. Das kommerzielle Produkt CrewAI AMP hat einen kostenlosen Basic-Plan mit 50 Workflow-Ausführungen pro Monat und eine Enterprise-Stufe auf Anfrage.",{"q":76,"a":77},"Hängt CrewAI von LangChain ab?","Nein. Das Paket hat keine LangChain-Abhängigkeit und positioniert sich als eigenständiges Framework. Der Modellzugriff läuft über Provider-SDKs, LiteLLM ist als Extra crewai[litellm] verfügbar.",{"q":79,"a":80},"Worin unterscheiden sich Crews und Flows?","Ein Flow hält State und Ausführungsreihenfolge über @start-, @listen- und @router-Methoden; ein Crew ist eine Menge Agenten und Aufgaben, die in einem Flow-Schritt läuft. Die Empfehlung des Anbieters lautet, mit einem Flow zu starten und an einen Crew zu delegieren, wenn ein Schritt Autonomie braucht.",{"q":82,"a":83},"Ist CrewAIs Memory für vertrauliche Daten geeignet?","Nicht ohne Weiteres. Der Inhalt der Einträge geht zur Analyse von Scope, Kategorie und Importance an das konfigurierte LLM, und der Standard-Embedder ist OpenAI text-embedding-3-large. Die Dokumentation empfiehlt für vertrauliche Inhalte ein lokales LLM und einen lokalen Embedder wie Ollama.",[85,88,91,94,97,100,103,106],{"id":86,"title":87},"what-it-is","Was CrewAI ist",{"id":89,"title":90},"how-it-works","Wie ein Lauf funktioniert",{"id":92,"title":93},"getting-started","Erste Schritte",{"id":95,"title":96},"memory-and-knowledge","Memory und Knowledge",{"id":98,"title":99},"running-it-in-production","Im Produktivbetrieb",{"id":101,"title":102},"where-it-shingles","Wo es hakt",{"id":104,"title":105},"verdict","Urteil",{"id":107,"title":108},"sources","Quellen",[110,114,117,120,123,139,140,171,177,180,181,222,224,234,249,250,261,271,274,296,297,300,304,307,349,352,355,358,361,391,392,395,432,435,436,439,451,456,457],{"type":111,"content":112},"paragraph",[113],"CrewAI ist ein MIT-lizenziertes Python-Framework für Multi-Agent-Systeme und in dieser Kategorie das sofort einsatzfähigste: Ein Agent bekommt Rolle, Ziel und Backstory, eine Aufgabe bekommt eine erwartete Ausgabe, und ein Crew führt beides in ein paar Zeilen Code zusammen. Das Urteil: gut gebaut, ungewöhnlich gut dokumentiert und still teuer. Jedes strukturelle Feature, das das Framework über einen nackten Prompt hinaus legt, ist als zusätzlicher Modellaufruf implementiert, und eine Produktionsrechnung besteht genau aus solchen Aufrufen.",{"type":111,"content":115},[116],"Es liegt auf derselben Ebene wie LangGraph, AutoGen und Pydantic AI und konkurriert um Bedienung, nicht um Kontrolle. Der Anbieter teilt das Angebot in zwei Teile: die Bibliothek auf PyPI, kostenlos und ohne Zählung, und CrewAI AMP, eine gehostete Control Plane mit visuellem Editor, Tracing und Governance, die auf Anfrage verkauft wird. Alles Folgende betrifft die Bibliothek, denn die ist es, die du installierst.",{"type":118,"level":119,"id":86,"text":87},"heading",2,{"type":111,"content":121},[122],"Die Bibliothek erschien erstmals im Dezember 2023 auf PyPI und wird von CrewAI Inc. offen weiterentwickelt. Version 1.15.23 wurde am 28. September 2026 veröffentlicht, verlangt Python 3.10 bis 3.13, und das Repository hat 59.413 Sterne und 8.655 Forks. Die Installation ist ein einzelnes Wheel von rund 1,2 MB, mit optionalen Extras für Tools, LiteLLM, mem0, Qdrant, Bedrock, Anthropic und A2A-Unterstützung.",{"type":124,"ordered":125,"items":126},"list",false,[127,129,131,133,135,137],[128],"MIT-Lizenz, keine Ausführungsgrenze und keine Laufzeitabhängigkeit von LangChain oder einem anderen Agent-Framework.",[130],"Zwei Ebenen: Flows, die State und Ausführungsreihenfolge besitzen, und Crews, also Gruppen von Agenten, die Aufgaben ausführen.",[132],"Ein Agent ist ein Prompt mit Attributen: Rolle, Ziel und Backstory, dazu optional eine Tool-Liste, ein LLM und ein Memory-Scope.",[134],"Prozesse sind sequenziell oder hierarchisch. Der hierarchische braucht ein Manager-LLM und delegiert Arbeit über Modellaufrufe.",[136],"Ergebnisse können Text, JSON oder ein Pydantic-Modell sein, was der saubere Weg zurück in Anwendungscode ist.",[138],"MCP-Server binden sich über crewai-tools an Agenten an, per stdio, SSE oder Streamable HTTP.",{"type":118,"level":119,"id":89,"text":90},{"type":111,"content":141},[142,143,147,148,151,152,155,156,159,160,163,164,167,168,170],"Ein Flow ist eine Klasse von Methoden, die per Dekorator verdrahtet werden. ",{"tag":144,"children":145},"code",[146],"@start()"," markiert die Einstiegspunkte, ",{"tag":144,"children":149},[150],"@listen()"," bindet eine Methode an das Ergebnis einer anderen, ",{"tag":144,"children":153},[154],"@router()"," lenkt die Ausführung in einen von mehreren Zweigen, und ",{"tag":144,"children":157},[158],"and_"," sowie ",{"tag":144,"children":161},[162],"or_"," kombinieren Bedingungen. Das State-Objekt ist ein Pydantic-Modell, die Form der Daten zwischen den Schritten wird also deklariert und nicht erraten, und ",{"tag":144,"children":165},[166],"flow.plot()"," rendert den Graphen. Sind mehrere ",{"tag":144,"children":169},[146],"-Methoden gleichzeitig erfüllt, laufen sie parallel.",{"type":172,"src":173,"alt":174,"wide":175,"caption":176},"image","\u002Fimages\u002Fblog\u002Fcrewai\u002Fdiagram-7.webp","Wo die Modellaufrufe entstehen Vier Kästen in einer Reihe: ein Flow für State und Reihenfolge, ein Crew für Aufgaben und Prozess, ein Agent aus Rolle, Ziel und Backstory und das Sprachmodell hinter der Provider-API. Ein Pfeil führt die Crew-Ausgabe zurück in den Flow-State. In einer zweiten Reihe stehen Memory mit Speichern und Abrufen sowie Tools wie MCP-Server, APIs und Code.",true,"Die Pipeline ist billig, das Framework nicht: Jeder Kasten ist ein weiterer Prompt, den das Modell lesen muss, und die Kästen unter der Linie sind genau der Overhead, den ein normales Skript nicht hätte.",{"type":111,"content":178},[179],"Innerhalb eines Flow-Schritts baut ein Crew den Prompt zusammen: Rolle, Ziel und Backstory jedes Agenten werden jeder Aufgabe vorangestellt, die Aufgabenbeschreibung wird interpoliert, und die Ausgabe einer Aufgabe wird Kontext der nächsten. Ein Agent läuft standardmäßig bis zu 20 Iterationen, wiederholt zweimal bei Fehlern und fasst Nachrichten zusammen, um im Kontextfenster zu bleiben. Darauf muss man schauen. Mit den Standardwerten ist ein Crew aus vier Aufgaben vier lange Prompts, bevor überhaupt delegiert wird, und ein Crew mit Memory addiert pro Abruf einen Embedding-Aufruf plus einen Modellaufruf zum Analysieren und Konsolidieren.",{"type":118,"level":119,"id":92,"text":93},{"type":111,"content":182},[183,184,187,188,190,191,194,195,198,199,202,203,206,207,210,211,214,215,217,218,221],"Die CLI ist der schnelle Weg hinein. ",{"tag":144,"children":185},[186],"uv tool install crewai"," legt ein ",{"tag":144,"children":189},[4],"-Binary in den Pfad, ",{"tag":144,"children":192},[193],"crewai create crew \u003Cname>"," erzeugt ein JSON-first-Projekt mit ",{"tag":144,"children":196},[197],"agents\u002F*.jsonc"," und ",{"tag":144,"children":200},[201],"crew.jsonc",", und ",{"tag":144,"children":204},[205],"crewai create flow \u003Cname>"," erzeugt ein Flow-Projekt. ",{"tag":144,"children":208},[209],"crewai install"," löst Abhängigkeiten über uv auf, ",{"tag":144,"children":212},[213],"crewai run"," führt den Einstiegspunkt aus, und ",{"tag":144,"children":216},[19]," öffnet einen Terminal-Browser für den Speicher. Das Flag ",{"tag":144,"children":219},[220],"--classic"," stellt das ältere Layout aus Python-Klasse plus YAML wieder her.",{"type":144,"code":223},"from crewai import Agent, Crew, Process, Task\nfrom crewai.flow import Flow, listen, start\nfrom pydantic import BaseModel\n\n\nclass ReportState(BaseModel):\n    topic: str = \"agent memory\"\n    brief: str = \"\"\n\n\nclass ReportFlow(Flow[ReportState]):\n    @start()\n    def pick_topic(self):\n        self.state.topic = \"agent memory\"\n\n    @listen(pick_topic)\n    def research(self):\n        analyst = Agent(\n            role=\"Research analyst\",\n            goal=f\"Collect verifiable facts about {self.state.topic}\",\n            backstory=\"You read primary sources and quote them.\",\n            llm=\"openai\u002Fgpt-4o-mini\",\n        )\n        task = Task(\n            description=\"Write a brief on {topic}.\",\n            expected_output=\"Five bullets, each with a source URL.\",\n            agent=analyst,\n        )\n        crew = Crew(agents=[analyst], tasks=[task], process=Process.sequential)\n        self.state.brief = crew.kickoff(inputs={\"topic\": self.state.topic}).raw\n\nReportFlow().kickoff()",{"type":111,"content":225},[226,227,198,230,233],"Das kostet im Normalfall höchstens zwei Modellaufrufe: einen für die Reasoning- und Tool-Schleife des Agenten, einen für die endgültige Antwort. Kommt ein zweiter Agent, ein Manager oder Memory dazu, steigt die Zahl schnell, weshalb ",{"tag":144,"children":228},[229],"crew.usage_metrics",{"tag":144,"children":231},[232],"flow.usage_metrics"," die ersten beiden Dinge sind, die hinter ein Dashboard gehören.",{"type":235,"variant":236,"title":237,"body":238},"callout","note","Telemetrie ist standardmäßig aktiv",[239],[240,241,244,245,248],"Anonyme Nutzungstelemetrie wird gesendet, solange ",{"tag":144,"children":242},[243],"CREWAI_DISABLE_TELEMETRY"," nicht gesetzt ist: Paket- und Python-Version, Betriebssystem, Anzahl der Agenten und Aufgaben, Prozessart, ob Memory und Delegation aktiv sind, das Modell, die Agentenrollen und die Namen der Tools. Prompts, Backstories und Modellantworten bleiben außen vor. Der gegenteilige Schalter ist ",{"tag":144,"children":246},[247],"share_crew=True"," an einem Crew, das Aufgabenbeschreibungen, Backstories, Kontext und Ausgabe freigibt.",{"type":118,"level":119,"id":95,"text":96},{"type":111,"content":251},[252,253,256,257,260],"Memory wurde zu einer einzigen ",{"tag":144,"children":254},[255],"Memory","-Klasse zusammengefasst. Die Einträge sind Vektoren in LanceDB unter ",{"tag":144,"children":258},[259],".crewai\u002Fmemory",", sortiert nach einem Mix aus semantischer Ähnlichkeit, Aktualität mit 30 Tagen Halbwertszeit und einem Importance-Score, den das Modell beim Speichern vergibt. Beim Abruf gibt es zwei Tiefen: shallow ist eine reine Vektorsuche mit rund 200 ms und ohne Modellaufruf, deep analysiert zuerst die Anfrage und läuft nur, wenn die Anfrage länger als 200 Zeichen ist. Mit aktiviertem Memory extrahiert ein Crew aus jeder Aufgabenausgabe Fakten und holt vor jeder Aufgabe Kontext.",{"type":124,"ordered":125,"items":262},[263,265,267,269],[264],"Der Speicher ist standardmäßig lokal in LanceDB, und das Backend ist ein Protokoll, lässt sich also ersetzen.",[266],"Standard-Embedder ist OpenAI text-embedding-3-large mit 3.072 Dimensionen, Standard-Analyse-Modell gpt-4o-mini. Beides ist konfigurierbar.",[268],"Knowledge-Quellen sind ein eigener Mechanismus: Sie landen in ChromaDB-Collections mit einer Relevanzschwelle von 0,35 und drei Dokumenten pro Abfrage.",[270],"Schreibvorgänge laufen in einem Hintergrund-Thread und der Abruf wartet auf sie, so geht am Ende eines Laufs nichts verloren, aber die Analyse kostet trotzdem Tokens.",{"type":111,"content":272},[273],"Memory ist außerdem der Teil, den man vor der Freigabe durch eine Datenschutzprüfung lesen sollte. Die Dokumentation sagt klar, dass der Inhalt der Einträge zur Analyse von Scope, Kategorie und Importance an das konfigurierte LLM geht, weshalb alles Vertrauliche ein lokales Modell auf beiden Seiten braucht, für das LLM und für den Embedder.",{"type":235,"variant":275,"title":276,"body":277},"warn","Embedding-Dimensionen prüfen",[278],[279,280,283,284,287,288,291,292,295],"Der Standard-Embedder für Memory ist ",{"tag":144,"children":281},[282],"text-embedding-3-large"," mit 3.072 Dimensionen. Ein älterer Store mit ",{"tag":144,"children":285},[286],"text-embedding-3-small"," oder ",{"tag":144,"children":289},[290],"text-embedding-ada-002"," und 1.536 Dimensionen scheitert beim Lesen. Dokumentierte Abhilfen sind ",{"tag":144,"children":293},[294],"crewai reset-memories -m",", das Löschen des Speicherverzeichnisses oder ein explizit gesetztes älteres Modell, bis der Store migriert ist.",{"type":118,"level":119,"id":98,"text":99},{"type":111,"content":298},[299],"Die Bibliothek bewegt sich schnell. Stabile Versionen erschienen am 9., 16. und 28. September 2026, und Dev-Pre-Releases erscheinen täglich, Pinning ist für alles Langlebige also nicht optional. Das Repository hat 570 offene Issues, und dieselbe Distribution trägt inzwischen die Open-Source-Laufzeit und den Client für die gehostete Plattform, weshalb ein Changelog-Eintrag einen SQLite-Fix neben einer Plattformfunktion enthalten kann.",{"type":118,"level":301,"id":302,"text":303},3,"observability","Observability",{"type":111,"content":305},[306],"Das eingebaute Tracing verdient einen zweiten Blick. Es ist standardmäßig aus und getrennt von der Telemetrie konfigurierbar, aber das Ziel ist CrewAIs eigenes Backend: Es braucht ein kostenloses AMP-Konto, eine authentifizierte CLI, und beim ersten Lauf fragt der Prozess, ob der Execution-Trace geteilt werden darf. Traces enthalten Prompts, Eingaben und Ausgaben, und der lokale Puffer hält bis zu 1.000 Spans, bevor die ältesten fallen. Für selbst gehostete Setups sind die OpenTelemetry-Integrationen die bessere Voreinstellung, und die Dokumentation liefert fertige Wege für Langfuse, Arize Phoenix, Braintrust, Datadog, MLflow, Opik, Patronus, Portkey, Weave und Galileo.",{"type":124,"ordered":125,"items":308},[309,315,324,336],[310,311,314],"Setze ",{"tag":144,"children":312},[313],"CREWAI_DISABLE_TELEMETRY=1"," wenn du keinen Grund hast, anonyme Nutzungsdaten an den Anbieter zu senden.",[316,317,198,320,323],"Tracing fragt beim ersten Lauf im Terminal nach Zustimmung und verwirft den Puffer, wenn niemand antwortet; ",{"tag":144,"children":318},[319],"crewai traces enable",{"tag":144,"children":321},[322],"crewai traces disable"," ändern das später.",[325,328,329,198,332,335],{"tag":144,"children":326},[327],"kickoff_async()"," wickelt nur den synchronen Lauf in einen Thread. ",{"tag":144,"children":330},[331],"akickoff()",{"tag":144,"children":333},[334],"akickoff_for_each()"," sind die nativen Async-Wege und die richtige Wahl unter Last.",[337,340,341,344,345,348],{"tag":144,"children":338},[339],"@persist"," schreibt den Flow-State standardmäßig in eine lokale SQLite-Datenbank. ",{"tag":144,"children":342},[343],"restore_from_state_id"," forkt einen Lauf aus einem gespeicherten Snapshot, während ",{"tag":144,"children":346},[347],"kickoff(inputs={\"id\": ...})"," den Original fortsetzt.",{"type":118,"level":301,"id":350,"text":351},"guardrails","Guardrails",{"type":111,"content":353},[354],"Task-Guardrails gibt es in zwei Formen. Ein Python-Callable bekommt die Aufgabenausgabe und liefert ein Urteil, während ein einfacher String zu einem LLM-Guardrail wird, der die Ausgabe mit dem Modell des Agenten bewertet. Retries sind standardmäßig drei, ein nie erfüllter Guardrail kann die Aufgabenkosten also verdreifachen, bevor irgendetwas eskaliert wird. Guardrails prüfen Ausgaben; sie sind keine Grenze um Werkzeuge, und eine Prompt-Injection im Ergebnis eines Tools kommt direkt durch.",{"type":118,"level":301,"id":356,"text":357},"licence-and-cost","Lizenz und Kosten",{"type":111,"content":359},[360],"Die Lizenz ist der einfache Teil. CrewAI ist MIT ohne Ausführungsgrenze, und der einzige Kostenbeitrag des Frameworks selbst ist der Modellverkehr, den seine eigenen Features erzeugen. Das bezahlte Produkt ist CrewAI AMP: ein kostenloser Basic-Plan mit 50 Workflow-Ausführungen pro Monat und eine Enterprise-Stufe, die fallweise kalkuliert wird.",{"type":362,"head":363,"rows":370},"table",[364,366,368],[365],"Was du betreibst",[367],"Preis",[369],"Was enthalten ist",[371,378,384],[372,374,376],[373],"CrewAI OSS",[375],"Kostenlos",[377],"Keine Ausführungsgrenze. Modellaufrufe, Tools und eigene Infrastruktur zahlst du selbst.",[379,381,382],[380],"CrewAI AMP Basic",[375],[383],"50 Workflow-Ausführungen pro Monat, visueller Editor, GitHub-Sync, Tracing und OpenTelemetry.",[385,387,389],[386],"CrewAI AMP Enterprise",[388],"Individuelles Angebot",[390],"SSO, RBAC, Workload Identity, PII-Redaktion, eigene VPC oder On-Prem, 45 Tage Onboarding.",{"type":118,"level":119,"id":101,"text":102},{"type":111,"content":393},[394],"Die Schwächen sind strukturell und sollten vor jedem Vergleich stehen. Jede Abstraktionsebene ist ein Prompt: Rolle, Ziel und Backstory werden jeder Aufgabe vorangestellt, der Kontext wächst also mit dem Crew, und die Standardwerte des Frameworks, zwanzig Iterationen, drei Guardrail-Retries und Memory-Analyse beim Speichern und beim Abruf, werden separat abgerechnet. Delegation und der hierarchische Manager sind die schlimmsten Posten, denn jeder Hop ist ein weiterer Modellaufruf, dessen einzige Aufgabe es ist zu entscheiden, wer als Nächstes arbeitet. Python ist die einzige Laufzeit, in einer Kategorie, in der die umgebende Anwendung oft TypeScript ist. Und außerhalb der bezahlten Plattform stützt sich Debugging auf Log-Ausgaben, was schwächer ist als eine Graph-Laufzeit, die einen fehlgeschlagenen Knoten wiederholen kann.",{"type":362,"head":396,"rows":405},[397,399,401,403],[398],"Framework",[400],"Wie Arbeit verdrahtet wird",[402],"Kosten pro Aufgabe",[404],"Debugging",[406,414,423],[407,408,410,412],[24],[409],"Rollen und Aufgaben; ein Flow hält State und Reihenfolge",[411],"Am höchsten: Delegation, Memory-Analyse und Guardrail-Retries addieren Modellaufrufe",[413],"AMP-Traces brauchen ein Konto; OpenTelemetry-Hooks für Langfuse, Phoenix, Braintrust, MLflow",[415,417,419,421],[416],"LangGraph",[418],"Expliziter Graph, typisierter State, Checkpoints",[420],"Am niedrigsten: Routing ist normales Python",[422],"LangSmith-Traces, Replay ab jedem Knoten",[424,426,428,430],[425],"AutoGen",[427],"Konversatorische Teams mit Mustern und Abbruchbedingungen",[429],"Hoch und offen, wenn keine Turn-Limits gesetzt sind",[431],"AgentChat-Logging; GraphFlow ergänzt einen gerichteten Graphen",{"type":111,"content":433},[434],"LangGraph ist das bessere Werkzeug für eine feste Produktionspipeline mit Schleifen und Checkpoints, und es gewinnt bei den Kosten, weil Routing normales Python ist. AutoGen ist das bessere Werkzeug für offene Konversation. CrewAI gewinnt dort, wo es zählt, wenn das System an jemanden übergeben werden muss, der kein Engineer ist: Das Vokabular ist eine Stellenbeschreibung, und die JSONC- oder YAML-Konfiguration ist lesbar. Die eigene Dokumentation des Anbieters enthält einen Migrationsleitfaden von LangGraph zu CrewAI und Vergleichs-Notebooks, was man vor einem Vertrag wissen sollte.",{"type":118,"level":119,"id":104,"text":105},{"type":111,"content":437},[438],"CrewAI ist ein gutes Default für Teams, die agentenförmigen Code wollen, ohne einen Graphen von Hand zu verdrahten, und ein schlechtes Default überall dort, wo die Token-Rechnung die bindende Größe ist. Das Framework ist solide, seine Dokumentation ist besser als die der Wettbewerber, und die Flow-Ebene verdient ihren Platz für sich genommen. Der Preis dafür ist, dass Autonomie als Modellaufrufe ausgedrückt wird, und das Framework macht sie gern für dich.",{"type":124,"ordered":175,"items":440},[441,443,445,447,449],[442],"Nimm es, wenn die Pipeline weitgehend linear ist und der teure Teil ein oder zwei offene Schritte sind. Halte den Crew klein und lass den Flow die Logik tragen.",[444],"Nimm es, wenn Nicht-Engineers die Konfiguration lesen oder bearbeiten müssen, denn eine Rolle, ein Ziel und eine YAML-Datei sind leichter zu prüfen als ein Knotengraph.",[446],"Nimm es nicht für eine feste Hochlast-Pipeline, in der jeder Hop ein normaler Funktionsaufruf ist. Der Koordinations-Overhead kauft Flexibilität, die eine solche Pipeline nie nutzt.",[448],"Nimm es nicht, wenn du ab Tag eins Checkpoint-Replay und Kosten pro Knoten brauchst, ohne entweder die Plattform zu bezahlen oder OpenTelemetry selbst anzuschließen.",[450],"Miss, bevor du es behältst: Setze usage_metrics in der ersten Woche hinter ein Dashboard und vergleiche den Crew mit denselben Schritten als reinen Flow.",{"type":235,"variant":275,"title":452,"body":453},"Der Preis der Hilfe",[454],[455],"Ein hierarchischer Crew mit Memory und LLM-Guardrails kann mehr Tokens für Entscheiden und Erinnern ausgeben als für die eigentliche Arbeit. Das ist das Design, kein Defekt. Plane das ein oder schalte die Features ab.",{"type":118,"level":119,"id":107,"text":108},{"type":124,"ordered":175,"items":458},[459],[460,463,465,467,469,471,473,475,477],{"tag":461,"href":29,"children":462},"a",[28],{"tag":461,"href":32,"children":464},[31],{"tag":461,"href":35,"children":466},[34],{"tag":461,"href":38,"children":468},[37],{"tag":461,"href":41,"children":470},[40],{"tag":461,"href":44,"children":472},[43],{"tag":461,"href":47,"children":474},[46],{"tag":461,"href":50,"children":476},[49],{"tag":461,"href":53,"children":478},[52],[480,539,612,682],{"slug":481,"published":482,"minutes":483,"category":7,"tags":484,"keywords":490,"about":501,"sources":511,"cover":533,"og":534,"expertise":56,"locales":535,"lang":59,"title":536,"description":537,"coverAlt":538},"agent-tool-design-descriptions-errors","2026-10-17",11,[485,486,487,488,489],"AI agents","Tool use","Function calling","MCP","Agent design",[491,492,493,494,495,496,497,498,499,500],"agent tool design","writing tool descriptions for llm","function calling best practices","tool use error handling","mcp tool design","tool calling is_error","how many tools should an agent have","tool search defer_loading","agent computer interface","llm tool schema design",[502,505,508],{"name":503,"url":504},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":506,"url":507},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":509,"url":510},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[512,515,518,521,524,527,530],{"title":513,"url":514},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":516,"url":517},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":519,"url":520},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":522,"url":523},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":525,"url":526},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":528,"url":529},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":531,"url":532},"OpenAI API Docs: Function calling","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ffunction-calling","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fog.jpg",[58,59,60],"Tools für KI-Agenten gestalten: Namen, Beschreibungen, Schemas und Fehlermeldungen","Agent-Tools, die richtig gewählt und aufgerufen werden: aufgabenorientierte Tools, Beschreibungen, Schemas, kompakte Antworten und verwertbare Fehlermeldungen.","Ein Sockel mit drei Schlitzen; über dem mittleren steht ein passend breiter Block, daneben zwei Blöcke falscher Breite.",{"slug":540,"published":482,"minutes":483,"category":7,"tags":541,"keywords":547,"about":560,"sources":570,"cover":606,"og":607,"expertise":56,"locales":608,"lang":59,"title":609,"description":610,"coverAlt":611},"coding-agents-legacy-codebase-migration",[542,543,544,545,546],"Legacy migration","Coding agents","Strangler fig","Testing","Code review",[548,549,550,551,552,553,554,555,556,557,558,559],"legacy code migration ai","coding agent legacy codebase","strangler fig pattern ai","characterization tests legacy code","ai code migration review","agent assisted refactoring","legacy modernization coding agent","differential testing migration","shadow traffic migration","ai code review gate","test harness before migration","llm code migration",[561,564,567],{"name":562,"url":563},"Legacy code","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLegacy_code",{"name":565,"url":566},"Characterization test","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCharacterization_test",{"name":568,"url":569},"Strangler fig pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStrangler_fig_pattern",[571,574,576,579,582,585,588,591,594,597,600,603],{"title":572,"url":573},"Martin Fowler: Strangler Fig (2024)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",{"title":575,"url":566},"Wikipedia: Characterization test",{"title":577,"url":578},"Google Research: Accelerating code migrations with AI (2024)","https:\u002F\u002Fresearch.google\u002Fblog\u002Faccelerating-code-migrations-with-ai\u002F",{"title":580,"url":581},"Ziftci et al.: Migrating Code At Scale With LLMs At Google (arXiv 2504.09691)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":583,"url":584},"Anthropic: Effective harnesses for long-running agents (2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":586,"url":587},"Anthropic: Redesigning source control at Anthropic (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fredesigning-source-control",{"title":589,"url":590},"METR: Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity","https:\u002F\u002Fmetr.org\u002Fblog\u002F2025-07-10-early-2025-ai-experienced-os-dev-study\u002F",{"title":592,"url":593},"Chand et al.: Why Industry Migrates and When It Trusts LLMs (ESEM 2026)","https:\u002F\u002Fdrops.dagstuhl.de\u002Fentities\u002Fdocument\u002F10.4230\u002FLIPIcs.ESEM.2026.85",{"title":595,"url":596},"Li et al.: Environment-in-the-Loop: Rethinking Code Migration with LLM-based Agents (arXiv 2602.09944)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2602.09944",{"title":598,"url":599},"AWS: Amazon Q Developer just reached a $260 million dollar milestone (2024)","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdevops\u002Famazon-q-developer-just-reached-a-260-million-dollar-milestone\u002F",{"title":601,"url":602},"OpenAI: Why SWE-bench Verified no longer measures frontier coding capabilities (2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fwhy-we-no-longer-evaluate-swe-bench-verified\u002F",{"title":604,"url":605},"GitHub Docs: About GitHub Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcoding-agent\u002Fabout-coding-agent","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fog.jpg",[58,59,60],"Legacy-Codebase mit Coding-Agenten migrieren: ein Strangler-Fig-Playbook","Wie Coding-Agenten eine Legacy-Migration tragen: Characterization-Tests zuerst, ein Seam pro Task, Review-Gates und differentielle Verifikation.","Ein Stapel Schichten, bei dem die obersten zwei durch neue ersetzt werden, daneben eine Naht und ein Haken.",{"slug":613,"published":482,"minutes":614,"category":7,"tags":615,"keywords":619,"about":631,"sources":641,"cover":676,"og":677,"expertise":56,"locales":678,"lang":59,"title":679,"description":680,"coverAlt":681},"background-agents-async-pr-workflow",12,[543,616,617,546,618],"Pull requests","CI","Automation",[620,621,622,623,624,625,626,627,628,629,630],"background coding agent","async coding agent","cloud coding agent pull request","copilot coding agent limits","codex cloud tasks","claude code cloud sessions","jules coding agent limits","agent pull request review","coding agent sandbox","agent CI gating","cost per merged pull request",[632,635,638],{"name":633,"url":634},"Software agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_agent",{"name":636,"url":637},"Pull request","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_version_control",{"name":639,"url":640},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[642,643,646,649,652,655,658,661,664,667,670,673],{"title":604,"url":605},{"title":644,"url":645},"GitHub Docs: Risks and mitigations for Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcloud-agent\u002Frisks-and-mitigations",{"title":647,"url":648},"OpenAI Developers: Codex cloud environments","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcloud\u002Fenvironments",{"title":650,"url":651},"Anthropic: Use Claude Code in the cloud","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fclaude-code-on-the-web",{"title":653,"url":654},"Google Jules: Limits and plans","https:\u002F\u002Fjules.google\u002Fdocs\u002Fusage-limits\u002F",{"title":656,"url":657},"Google Jules: Getting started","https:\u002F\u002Fjules.google\u002Fdocs\u002F",{"title":659,"url":660},"GitHub Docs: About protected branches","https:\u002F\u002Fdocs.github.com\u002Fen\u002Frepositories\u002Fconfiguring-branches-and-merges-in-your-repository\u002Fmanaging-protected-branches\u002Fabout-protected-branches",{"title":662,"url":663},"GitHub Docs: Models and pricing for GitHub Copilot","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fcopilot-billing\u002Fmodels-and-pricing",{"title":665,"url":666},"OpenAI Developers: Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":668,"url":669},"Ehsani et al.: Where Do AI Coding Agents Fail? An Empirical Study of Failed Agentic Pull Requests in GitHub (MSR 2026, arXiv 2601.15195)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.15195",{"title":671,"url":672},"Peralta et al.: Why Are Agentic Pull Requests Merged or Rejected? An Empirical Study (MSR 2026, arXiv 2605.22534)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.22534",{"title":674,"url":675},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fdora.dev\u002Fdora-report-2025","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fog.jpg",[58,59,60],"Coding-Agenten im Hintergrund: Pull Requests, Queues und Review","Wie asynchrone Coding-Agenten Tasks einreihen, in Sandboxes laufen, Draft-PRs öffnen und CI passieren. Grenzen, Kosten, Review und Fehlerbilder.","Eine Karte in einer Ablage fächert sich zu fünf Feldern auf, alle Pfeile führen zu einer Seite hinter einem Tor.",{"slug":683,"published":684,"minutes":6,"category":7,"tags":685,"keywords":691,"about":703,"sources":711,"cover":744,"og":745,"expertise":56,"locales":746,"lang":59,"title":747,"description":748,"coverAlt":749},"context-rot-compaction-long-running-agents","2026-10-16",[686,687,688,689,690],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[692,693,694,695,696,697,698,699,700,701,702],"context rot","context rot LLM","compaction AI agents","context engineering","long-running agents context window","Claude compaction API","context editing clear tool results","OpenAI responses compaction","lost in the middle LLM","agent context management","sub-agents context isolation",[704,707,710],{"name":705,"url":706},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":708,"url":709},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":503,"url":504},[712,715,718,721,724,726,729,732,735,738,741],{"title":713,"url":714},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":716,"url":717},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":719,"url":720},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":722,"url":723},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":725,"url":584},"Anthropic: Effective harnesses for long-running agents (Nov 2025)",{"title":727,"url":728},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":730,"url":731},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":733,"url":734},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":736,"url":737},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":739,"url":740},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":742,"url":743},"Cognition: Don't Build Multi-Agents","https:\u002F\u002Fcognition.ai\u002Fblog\u002Fdont-build-multi-agents","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fog.jpg",[58,59,60],"Context Rot bei langlaufenden Agenten: Leeren, Compaction, Memory und Sub-Agenten","Warum die Genauigkeit von LLMs mit wachsendem Kontext sinkt und wie Leeren, Compaction, Notizen und Sub-Agenten lange Agentenläufe stabil halten.","Eine kleine Presse drückt einen hohen Blätterstapel zu einem kurzen, zwei Notizen zweigen ab.",1792261158216]