{"id":3132,"date":"2026-03-04T08:07:17","date_gmt":"2026-03-04T08:07:17","guid":{"rendered":"https:\/\/christiantwellmann.de\/?p=3132"},"modified":"2026-03-04T13:20:26","modified_gmt":"2026-03-04T13:20:26","slug":"multi-agent-ai-a-short-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/christiantwellmann.de\/de\/multi-agent-ai-a-short-step-by-step-guide\/","title":{"rendered":"Multi Agent AI \u2013 Eine kleine Einf\u00fchrung mit Code Beispielen"},"content":{"rendered":"<h4 class=\"wp-block-heading\" id=\"Building-the-&quot;AI-Boardroom&quot;:-My-Journey-with-Multi-Agent-Orchestration\"><strong>Die \u201eKI-Boardroom\" Architektur: Multi-Agenten-Orchestrierung<\/strong><\/h4>\n\n\n\n<p>Wir alle kennen die Grenzen eines einzelnen KI-Prompts. Du fragst nach einem komplexen Report, und die KI verpasst die neuesten News, verliert auf halbem Weg den Ton oder vergisst schlicht das urspr\u00fcngliche Ziel. In der professionellen Welt l\u00f6sen wir das mit Teams. Du w\u00fcrdest einen Lead Researcher nicht bitten, Marketing-Copy zu schreiben, und den Copywriter nicht, technische Daten zu verifizieren. In der \u201cechten Welt\u201d gibt es daf\u00fcr Spezialisten und einen Manager, der sie koordiniert.<\/p>\n\n\n\n<p>Mit Hilfe von CrewAI habe ich ein System gebaut, das recherchiert, schreibt und reviewed \u2014 w\u00e4hrend ich die Rolle des \u201eGrand CEO\" innehabe und weiterhin die F\u00e4den in der Hand halte.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"1.-The-Core-Architecture:-Hierarchical-vs.-Sequential\"><strong>1. Die Kern-Architektur: Hierarchisch vs. Sequenziell<\/strong><\/h4>\n\n\n\n<p>Die meisten KI-Workflows sind sequenziell. Aber in einem echten Unternehmen gibt es einen Manager. Ich habe einen Hierarchischen Prozess implementiert, bei dem ein \u201eProjektmanager\" (Der Boss) die Worker \u00fcberwacht.<\/p>\n\n\n\n<p>In diesem Modell ist der Manager der Einzige, der mit dem User spricht. Die Worker (Researcher, Writer, Librarian) sind \u201eisoliert\". Sie sprechen nicht miteinander; sie reporten nur zum Boss.<\/p>\n\n\n\n<p>Warum das wichtig ist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reduzierte Halluzinationen: Agenten bleiben auf ihre spezifische Nische fokussiert<\/li>\n\n\n\n<li>Kontext-Kontrolle: Der Manager entscheidet genau, welche Informationen f\u00fcr jeden Agenten relevant sind<\/li>\n\n\n\n<li>Skalierbarkeit: Du kannst weitere Spezialisten hinzuf\u00fcgen, ohne deine Workflow-Logik zu zerst\u00f6ren<\/li>\n\n\n\n<li>Parallele Verarbeitung: Der Boss kann mehrere Tasks gleichzeitig delegieren<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"2.-Technical-Secret:-Tiered-Intelligence\"><strong>2. Technisches Geheimnis: Tiered Intelligence<\/strong><\/h4>\n\n\n\n<p>Einer der gr\u00f6\u00dften Fehler in der KI-Entwicklung ist es, das teuerste Modell f\u00fcr jeden Task zu verwenden. Das ist, als w\u00fcrdest du einen Senior Architect einstellen, um eine Gl\u00fchbirne zu wechseln.<\/p>\n\n\n\n<p>Hier habe ich Tiered LLMs implementiert \u2013 als Beispiel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gemini 2.5 Pro: Dem Boss zugewiesen f\u00fcr High-Reasoning, komplexe Orchestrierung und Quality Control<\/li>\n\n\n\n<li>Gemini 2.5 Flash: Den Workern zugewiesen f\u00fcr blitzschnelle Execution und geringere Token-Kosten<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Warum ein \u201eSuper-Brain\" f\u00fcr eine simple Suche nutzen? Effizienz ist der Schl\u00fcssel. In meinen Tests hat dieser Ansatz die API-Kosten drastisch reduziert, w\u00e4hrend die Output-Qualit\u00e4t hoch blieb.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"3.-The-Specialized-Team:-Three-Agents,-Three-Purposes\"><strong>3. Das spezialisierte Team: Drei Agenten, drei Zwecke<\/strong><\/h4>\n\n\n\n<p>Hier zahlt sich Tool-Spezialisierung aus \u2013 jeder Agent hat Zugriff auf unterschiedliche F\u00e4higkeiten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Web Scout:<\/strong> Ausgestattet mit Echtzeit-Internet-Suche<\/li>\n\n\n\n<li><strong>The Research Librarian:<\/strong> Hat Zugang zu deiner Dokumenten-Bibliothek und PDFs<\/li>\n\n\n\n<li><strong>The Writer:<\/strong> Fokussiert rein auf Content-ErstellungDiese Trennung spiegelt ein echtes Research-Team wider. <\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Der Web Scout findet Breaking News, der Librarian gleicht mit historischen Daten und gespeicherten Dokumenten ab, und der Writer synthetisiert alles zu einer koh\u00e4renten Narrative.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"4.-Chronological-Awareness\"><strong>4. Chronologisches Bewusstsein<\/strong><\/h4>\n\n\n\n<p>KI lebt oft in einer \u201ezeitlosen\" Blase. Durch Injektion eines dynamischen Timestamps in die Backstories der Agenten zur Laufzeit wissen meine Agenten immer genau, welcher Tag heute ist \u2013 das stellt sicher, dass ihre \u201eneuesten News\" tats\u00e4chlich von heute sind.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import datetime\nnow = datetime.datetime.now().strftime(\"%A, %d. %B %Y\")<\/code><\/pre>\n\n\n\n<p>Das wird in die Backstory jedes Agenten injiziert, und diese simple Erg\u00e4nzung hat ein echtes Problem gel\u00f6st: Meine Agenten referenzieren nicht mehr \u201erecent events\" aus 2023, wenn wir tats\u00e4chlich 2026 haben.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"5.-The-Code-in-Action\"><strong>5. Der Code in Aktion<\/strong><\/h4>\n\n\n\n<p>Hier ist die erweiterte Architektur (Python):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import os\nimport datetime\nfrom crewai import Agent, Task, Crew, Process, LLM\nfrom crewai.tools import tool\nfrom crewai_tools import FileReadTool, PDFSearchTool\nfrom duckduckgo_search import DDGS\nnow = datetime.datetime.now().strftime(\"%A, %d. %B %Y\")\nprint(\"\\n--- Welcome to the Multi-Agent Research Command ---\")\nuser_objective = input(\"Boss, what specific task should the team work on today? \")\nprint(f\"Understood. Starting research on: '{user_objective}'\\n\")\nboss_llm = LLM(model=\"gemini\/gemini-2.5-pro\") \nworker_llm = LLM(model=\"gemini\/gemini-2.5-flash\") \nos.environ&#91;\"OPENAI_API_KEY\"] = \"NA\" # Set to NA to prevent accidental use of OpenAI models\n@tool(\"internet_search\")\ndef internet_search(query: str):\n    \"\"\"Searches the internet for real-time data using DuckDuckGo.\"\"\"\n    with DDGS() as ddgs:\n        results = ddgs.text(query, max_results=5)\n        return &#91;r for r in results]\nfile_tool = FileReadTool()\npdf_tool = PDFSearchTool(\n    config={\n        \"llm\": {\n            \"provider\": \"google\",\n            \"config\": {\n                \"model\": \"gemini\/gemini-2.5-flash\",\n            },\n        },\n        \"embedder\": {\n            \"provider\": \"google\",\n            \"config\": {\n                \"model\": \"models\/embedding-001\", \n                \"task_type\": \"retrieval_document\",\n            },\n        },\n    }\n)\nknowledge_dir = 'knowledge'\nif not os.path.exists(knowledge_dir):\n    os.makedirs(knowledge_dir)\n    print(f\"\ud83d\udcc1 Created '{knowledge_dir}' folder. Add your files there!\")\n# The Library for the Librarian\nall_files = os.listdir(knowledge_dir)\ntext_files = &#91;os.path.join(knowledge_dir, f) for f in all_files if f.endswith('.txt')]\npdf_files = &#91;os.path.join(knowledge_dir, f) for f in all_files if f.endswith('.pdf')]\n# Initialize sources only if files exist\nknowledge_sources = &#91;]\nif text_files:\n    from crewai.knowledge.source.text_file_knowledge_source import TextFileKnowledgeSource\n    knowledge_sources.append(TextFileKnowledgeSource(file_paths=text_files))\nif pdf_files:\n    from crewai.knowledge.source.pdf_knowledge_source import PDFKnowledgeSource\n    knowledge_sources.append(PDFKnowledgeSource(file_paths=pdf_files))\n# Agent 1: The Web Scout\nweb_researcher = Agent(\n    role=\"Web Intelligence Scout\",\n    goal=\"Identify the most significant AI breakthroughs from online sources.\",\n    backstory=f\"You are a data-driven researcher who monitors the web. Today is {now}.\",\n    tools=&#91;internet_search],\n    llm=worker_llm,\n    allow_delegation=False,\n    verbose=True\n)\n# Agent 2: The Research Librarian\nlibrarian = Agent(\n    role=\"Research Librarian\",\n    goal=\"Cross-reference findings with existing documents and research papers.\",\n    backstory=f\"Meticulous librarian with archive access. Today is {now}.\",\n    tools=&#91;file_tool, pdf_tool],\n    llm=worker_llm,\n    allow_delegation=False,\n    verbose=True\n)\n# Agent 3: The Writer\nwriter = Agent(\n    role=\"Content Strategist\",\n    goal=\"Transform research into engaging, accurate content.\",\n    backstory=f\"Skilled writer creating compelling narratives. Today is {now}.\",\n    llm=worker_llm,\n    allow_delegation=False,\n    verbose=True\n)\n# The Manager (Boss)\nboss = Agent(\n    role=\"Strategic Manager\",\n    goal=f\"Lead the team to produce a comprehensive research report on {user_objective}.\",\n    backstory=f\"Orchestrator delegating to Scout, Librarian, and Writer. Today is {now}.\",\n    llm=boss_llm,\n    allow_delegation=True, # Manager MUST have this to coordinate\n    verbose=True\n)\n# Master Task\nmaster_task = Task(\n    description=\"\"\"Research the latest developments on {user_objective}, \n    cross-reference with our document library, and produce a 500-word article.\"\"\",\n    expected_output=\"A well-researched, engaging article ready for publication.\",\n    human_input=True,\n    agent=boss\n)\n# The Crew Assembly\ncrew = Crew(\n    agents=&#91;web_researcher, librarian, writer],\n    tasks=&#91;master_task],\n    manager_agent=boss,\n    process=Process.hierarchical,\n    verbose=True,\n    max_rpm=2\n)\n# Execute\nresult = crew.kickoff()\nprint(result)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"6.-Why-the-Librarian-Changes-Everything\"><strong>6. Warum der Librarian alles ver\u00e4ndert<\/strong><\/h4>\n\n\n\n<p>Den Research Librarian hinzuzuf\u00fcgen hat eine kritische L\u00fccke in meinem Workflow geschlossen. Der Web Scout findet <em>aktuelle <\/em>, aber der Librarian liefert:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Depth not matched by pure internet research<\/strong>: Zugang zu Research Papers, Whitepapers und internen Dokumenten<\/li>\n\n\n\n<li><strong>Fact-Checking<\/strong>: Cross-Referenzierung von Claims gegen vertrauensw\u00fcrdige Quellen in deiner Library<\/li>\n\n\n\n<li><strong>Competitive Intelligence<\/strong>: Analyse gespeicherter Competitor-Reports und Marktforschung<\/li>\n\n\n\n<li><strong>Historical Context<\/strong>: \u201eDiese Idee wurde bereits 2022 versucht, deshalb ist sie gescheitert...\"<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>In der Praxis kreiert dieses Drei-Agenten-Setup eine360-Grad-Research-View:aktuelle Trends (Web Scout) + institutionelles Wissen (Librarian) + \u00fcberzeugende Narrative (Writer) = umfassender Output.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"7.-Human-in-the-Loop:-The-Safety-Net\"><strong>7. Human-in-the-Loop: The Safety Net<\/strong><\/h4>\n\n\n\n<p>Das m\u00e4chtigste Feature aber? human_input=True.<\/p>\n\n\n\n<p>Bevor der Boss den Task abschlie\u00dft, stoppt sie und fragt mich, ob das Ergebnis zufriedenstellend ist. Es ist die perfekte Mischung aus Automation und Human Oversight. Wenn die Arbeit erledigt ist, pausiert das Programm. Der Boss pr\u00e4sentiert den Draft und fragt nach Feedback. Du kannst sagen \u201eLooks good!\" oder \u201eAdd more technical depth\" oder \u201eDer Librarian hat unseren Q4-Report verpasst. Check das auch.\"<\/p>\n\n\n\n<p>Der Boss koordiniert die \u00c4nderungen mit den relevanten Spezialisten und kommt f\u00fcr ein zweites Review zur\u00fcck.<\/p>\n\n\n\n<p>Das kreiert einen iterativen Refinement-Loop, die mit Single-Agent-Systemen unm\u00f6glich ist.<\/p>\n\n\n\n<p>Aber diese Orchestrierung funktioniert nur wirklich, wenn du als Mensch am Steuer das \u201eWarum\" hinter dem \u201eWas\" verstehst. In einem Multi-Agenten-Setup sind tiefe Subject-Matter-Expertise und ein solides Verst\u00e4ndnis der zugrunde liegenden Theorie der Motor, der dich zum '<a href=\"https:\/\/christiantwellmann.de\/de\/alpha-ai-the-new-alpha-leader-culture\/\">Alpha AI: Die neue Alpha Leader Kultur<\/a>von mir bereits dargelegt. Du setzt den strategischen und kulturellen Ton, dem diese Agenten folgen, und verwandelst eine iterative Refinement-Loop in ein High-Impact Business Asset.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"8.-Real-World-Application:-From-Prototype-to-Production\"><strong>8. Real-World Application: From Prototype to Production<\/strong><\/h4>\n\n\n\n<p>Als ich dieses Multi-Agenten-System zum ersten Mal baute, war das nur die Basis.<strong> <\/strong>Sobald ich den Multi-Agenten-Ansatz validiert hatte, sah ich eine gute Real-Life M\u00f6glichkeit:\n\nApp Store Optimization ist der perfekte Use Case f\u00fcr KI-Orchestrierung. ASO erfordert mehrere spezialisierte Skills: Keyword-Research, Competitive Analysis, Creative Optimization und Performance Monitoring, die keine einzelne KI wirklich gut meistern kann.<\/p>\n\n\n\n<p>Daher habe ich gebaut, was ich eine\u201eAIgency\"nenne: ein production-ready System, das 5 spezialisierte KI-Agenten orchestriert, jeder mit eigener Pers\u00f6nlichkeit, Expertise und Tools:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Liza, unsere SEO &amp; Social Media Expert<\/li>\n\n\n\n<li>Konstantin ist der Brand Detective und Researcher<\/li>\n\n\n\n<li>Sky fokussiert sich auf Trend-Intelligence und Algorithmen<\/li>\n\n\n\n<li>Sam ist unser Tech Guru und Performance Specialistund schlie\u00dflich<\/li>\n\n\n\n<li>Echo, die Authorin<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Jetzt ist dieses System nicht nur schneller, sondern auch smarter. Weil die Agenten Spezialisten mit unterschiedlichen Perspektiven sind, catchen sie, was ich vielleicht \u00fcbersehe. Sie arbeiten parallel, spotten Patterns \u00fcber Domains hinweg und challengen gegenseitig ihre Assumptions. Der Manager orchestriert ihre Collaboration und stellt sicher, dass ihre Outputs sich erg\u00e4nzen statt zu kollidieren.<\/p>\n\n\n\n<p>Meine AIgency ist offensichtlich \u00fcber die Zeit etwas komplexer geworden und umfasst mittlerweile ein paar tausend Zeilen Code \u2013 aber das ist KI-Orchestrierung in Production: nicht das Ersetzen menschlicher Expertise, sondern deren Amplifikation durch spezialisierte, koordinierte KI-Agenten, die als Team arbeiten.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Key-Takeaways\"><strong>Zum Schluss<\/strong><\/h4>\n\n\n\n<p>Dieses System zu bauen hat mir gezeigt, dass die Zukunft der KI nicht nur \u201ebessere Prompts\" ist \u2013 es ist besseres Management:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Role Clarity: Gib deinen Agenten ein spezifisches \u201eWarum\" und \u201eWie\"<\/li>\n\n\n\n<li>Hierarchy: Lass ein smartes Modell die schnellen Modelle managen<\/li>\n\n\n\n<li>Tool Spezialisierung: Match Tools mit Expertise (web search \u2260 document analysis)<\/li>\n\n\n\n<li>Zus\u00e4tzliche Skills: Baue Teams, bei denen die St\u00e4rken der Agenten die Schw\u00e4chen der anderen abdecken<\/li>\n\n\n\n<li>\u00dcbersicht: Behalte immer einen Human in the Loop f\u00fcr die finalen 5% an Qualit\u00e4t<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">CTC.rocks<\/h5>\n\n\n\n<p><em>Neugierig, wie alles zusammenarbeitet? Besuch das komplette Crew auf <\/em><a href=\"https:\/\/ctc.rocks\/\"><em>ctc.rocks<\/em><\/a><em>. (derzeit noch 'Work in Progress'.)<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Managing one AI is easy. Managing a team of them? That&#8217;s where the real magic happens.<\/p>\n<p>Over the past few weeks, I&#8217;ve been building a multi-agent environment using CrewAI and Google&#8217;s Gemini models \u2026and I\u2019m still impressed by the possibilities: with such set-up we aren&#8217;t talking about a little chit-chat with your favorite AI Bot anymore. Instead we&#8217;re talking about a structured &#8220;AI Boardroom&#8221; where agents have roles, managers, and specialized tools.<\/p>\n<p>Here\u2019s a step-by-step guide with code examples.<\/p>","protected":false},"author":2,"featured_media":3129,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"A small intro to Multi-AI Orchestration with Python code examples","_seopress_titles_desc":"A guide how to easily set up a multi-agent workforce in Python using CrewAI","_seopress_robots_index":"","footnotes":""},"categories":[110],"tags":[106,149,34],"class_list":["post-3132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","tag-artificialintelligence","tag-programming","tag-python"],"_links":{"self":[{"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/posts\/3132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/comments?post=3132"}],"version-history":[{"count":5,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/posts\/3132\/revisions"}],"predecessor-version":[{"id":3141,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/posts\/3132\/revisions\/3141"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/media\/3129"}],"wp:attachment":[{"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/media?parent=3132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/categories?post=3132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/christiantwellmann.de\/de\/wp-json\/wp\/v2\/tags?post=3132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}