[{"data":1,"prerenderedAt":980},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Fai\u002Fmulti-agent-orchestration-von-einzelnen-llm-aufrufen-zu-systemen":13},{"i18nKey":4,"paths":5},"ai-008-2026-08",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fai\u002Fmulti-agent-orchestration-von-einzelnen-llm-aufrufen-zu-systemen","\u002Fen\u002Fai\u002Fmulti-agent-orchestration-single-llm-call-to-production-systems","\u002Fes\u002Fai\u002Forquestracion-multi-agente","\u002Ffr\u002Fai\u002Fmulti-agent-orchestration","\u002Fit\u002Fai\u002Fmulti-agent-orchestration-una-singola-chiamata-llm","\u002Fru\u002Fai\u002Fmulti-agentnoe-orkestrir","\u002Ftr\u002Fai\u002Fmulti-agent-orchestration-tek-llm-cagrisindan-sistemlere",{"_path":6,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":974,"_id":975,"_source":976,"_file":977,"_stem":978,"_extension":979},"ai",false,"","Multi-Agent-Orchestrierung: Von einzelnen LLM-Aufrufen zu Produktionssystemen","Agent SDKs, Tool Use und parallele\u002Fserielle Topologien transformieren LLMs in produktive Systeme. Token-Kosten, Latenz und Zuverlässigkeitsausgleich.","2026-08-08",[21,22,23,24,25],"multi-agent","llm-orchestration","tool-use","agent-sdk","produktions-ai",9,"Roibase",{"type":29,"children":30,"toc":962},"root",[31,39,46,66,118,125,138,143,193,199,204,229,262,302,308,313,318,423,428,433,439,444,771,784,790,795,800,808,821,826,832,837,842,956],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Ein einzelner LLM-Aufruf reicht nicht mehr aus. 2026 basieren die meisten Production-AI-Systeme auf parallelen Agent-Topologien, Tool-Chaining und Fallback-Mechanismen. Anstatt einen einzelnen Prompt an Claude Sonnet 3.5 oder GPT-4o zu senden, führen Sie jetzt 4–5 spezialisierte Agents seriell oder parallel für dieselbe Aufgabe aus – und das ist keine Hype, sondern hat messbare Engineering-Gründe: 37 % niedrigere Token-Kosten, durchschnittliche Latenz-Gewinne von 2,1 Sekunden und 12 % weniger Halluzinationen (Anthropic 2026 Benchmark-Daten). Multi-Agent-Orchestrierung ist der neue Standard, um LLMs produktionsreif zu machen.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"der-bruchpunkt-in-der-architektur-von-agent-sdks",[44],{"type":37,"value":45},"Der Bruchpunkt in der Architektur von Agent SDKs",{"type":32,"tag":33,"props":47,"children":48},{},[49,51,57,59,64],{"type":37,"value":50},"2023–2024 arbeiteten Agent-Frameworks auf der Grundlage eines einzelnen „intelligenten Agents\": Prompt senden, Tools nutzen, Loop schließen. LangChain, AutoGPT, BabyAGI – alle folgten dem monolithischen ReAct-Loop. Ab Ende 2025 zeigt sich ein grundlegender Wandel in Agent SDKs von Anthropic, OpenAI und Cohere: Die ",{"type":32,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":37,"value":56},"Orchestrierungsschicht",{"type":37,"value":58}," ist jetzt im SDK integriert. Anstatt einen einzelnen Agent zu definieren, entwerfen Sie einen ",{"type":32,"tag":52,"props":60,"children":61},{},[62],{"type":37,"value":63},"agentic graph",{"type":37,"value":65}," – jeden Node als spezialisiertes Modell oder Tool, jede Kante als conditional Routing. Diese Architektur brachte messbare Verbesserungen:",{"type":32,"tag":67,"props":68,"children":69},"ul",{},[70,81,91],{"type":32,"tag":71,"props":72,"children":73},"li",{},[74,79],{"type":32,"tag":52,"props":75,"children":76},{},[77],{"type":37,"value":78},"Token-Ökonomie:",{"type":37,"value":80}," Anstatt großen Context zu allen Agents zu transportieren, speisen Sie nur relevante Teile in relevante Nodes. Beispiel: In einer 50k-Token-Kundenservice-Konversation analysiert der „Sentiment-Classification\"-Node nur die letzten 200 Tokens, während der „Response-Generation\"-Node den vollständigen Context plus Knowledge-Base-Retrieval kombiniert. Gesamter Token-Verbrauch: monolithischer Ansatz 150k (3 Iterationen × 50k), orchestriert 87k (42 % Reduktion).",{"type":32,"tag":71,"props":82,"children":83},{},[84,89],{"type":32,"tag":52,"props":85,"children":86},{},[87],{"type":37,"value":88},"Latenz-Parallelisierung:",{"type":37,"value":90}," In seriellen Aufrufen wartet jeder Agent auf die Ausgabe des vorherigen (5 Agents × 800ms = 4 Sekunden). In parallelen Topologien laufen unabhängige Tasks gleichzeitig: Search-Retrieval + Web-Scraping + strukturierte Datenextraktion in 3 separaten Agents parallel, dann aggregiert ein Aggregator-Node die Ergebnisse. Gesamtlatenz: 1,2 Sekunden (längster Agent + 200ms Overhead).",{"type":32,"tag":71,"props":92,"children":93},{},[94,99,101,108,110,116],{"type":32,"tag":52,"props":95,"children":96},{},[97],{"type":37,"value":98},"Spezialisierte Prompting:",{"type":37,"value":100}," Jeder Agent hat ein anderes System-Prompt, Temperatur, Stop-Sequenz. Der „Legal Compliance Checker\"-Agent läuft mit ",{"type":32,"tag":102,"props":103,"children":105},"code",{"className":104},[],[106],{"type":37,"value":107},"temperature=0.0",{"type":37,"value":109}," und 500 Token max_tokens, während der „Creative Ad Copy\"-Agent mit ",{"type":32,"tag":102,"props":111,"children":113},{"className":112},[],[114],{"type":37,"value":115},"temperature=0.9",{"type":37,"value":117}," und 1500 Tokens arbeitet. Im monolithischen System sind solche Tradeoffs im Einstellen-Prompt unmöglich.",{"type":32,"tag":119,"props":120,"children":122},"h3",{"id":121},"tool-use-schicht-jenseits-von-function-calling",[123],{"type":37,"value":124},"Tool-Use-Schicht: Jenseits von Function Calling",{"type":32,"tag":33,"props":126,"children":127},{},[128,130,136],{"type":37,"value":129},"Anthropic's Tool-Use-Update von Ende 2025 Q4 führte das Konzept „Computer Use\" ein – der Agent kann jetzt Terminal-Befehle ausführen, Browser anklicken, Dateisystem-Operationen durchführen. In Production bedeutet das: Ihr LLM kann Selenium WebDriver starten, sich in ein CRM einloggen, Daten abrufen und in BigQuery schreiben, dann ein dbt-Modell triggern und Looker-Dashboard aktualisieren. All dies sind 5 Nodes im Agent Graph: ",{"type":32,"tag":102,"props":131,"children":133},{"className":132},[],[134],{"type":37,"value":135},"authenticate → scrape → transform → load → trigger",{"type":37,"value":137},".",{"type":32,"tag":33,"props":139,"children":140},{},[141],{"type":37,"value":142},"Aber diese Freiheit bringt neue Probleme mit sich:",{"type":32,"tag":144,"props":145,"children":146},"ol",{},[147,165,175],{"type":32,"tag":71,"props":148,"children":149},{},[150,155,157,163],{"type":32,"tag":52,"props":151,"children":152},{},[153],{"type":37,"value":154},"Sicherheitsgrenze:",{"type":37,"value":156}," Wenn Sie einem Agent Terminal-Zugang geben, wie verhindern Sie, dass er ",{"type":32,"tag":102,"props":158,"children":160},{"className":159},[],[161],{"type":37,"value":162},"rm -rf \u002F",{"type":37,"value":164}," ausführt? SDKs bieten Sandbox-Umgebungen (Docker-Container, Netzwerk-Isolation), aber in Production kostet das 300–500ms Overhead.",{"type":32,"tag":71,"props":166,"children":167},{},[168,173],{"type":32,"tag":52,"props":169,"children":170},{},[171],{"type":37,"value":172},"Tool-Selection-Genauigkeit:",{"type":37,"value":174}," Wenn Ihr Agent auf 47 Tools zugreifen kann, wie lernt er, welches Tool wann aufzurufen ist? Prompt Engineering mit Few-Shot-Beispielen (je 2–3 Beispiele pro Tool = 800 Token Overhead), oder ein Fine-tuned Router-Modell (kleines spezialisiertes BERT\u002FT5-Modell). Fine-Tuning ist 23 % schneller als Few-Shot, aber mit initialem Setup-Aufwand.",{"type":32,"tag":71,"props":176,"children":177},{},[178,183,185,191],{"type":32,"tag":52,"props":179,"children":180},{},[181],{"type":37,"value":182},"Fallback-Kette:",{"type":37,"value":184}," Was passiert, wenn ein Tool-Aufruf fehlschlägt? API Rate Limit, Timeout, Authentifizierungsfehler. In Roibase-Projekten folgen wir dem Standard-Pattern: Primary Tool → Secondary Tool → Manual Intervention Webhook. Beispiel: ",{"type":32,"tag":102,"props":186,"children":188},{"className":187},[],[189],{"type":37,"value":190},"Google_Search_API → Bing_Search_API → Slack_alert_to_human",{"type":37,"value":192},". Diese Kette ist in den Graph-Kanten mit Conditional Routing definiert.",{"type":32,"tag":40,"props":194,"children":196},{"id":195},"parallele-vs-serielle-topologie-der-latenz-cost-tradeoff",[197],{"type":37,"value":198},"Parallele vs. Serielle Topologie: Der Latenz-Cost-Tradeoff",{"type":32,"tag":33,"props":200,"children":201},{},[202],{"type":37,"value":203},"Beim Entwerfen eines agentic Graphs stehen zwei grundlegende Patterns zur Wahl:",{"type":32,"tag":33,"props":205,"children":206},{},[207,212,214,220,222,227],{"type":32,"tag":52,"props":208,"children":209},{},[210],{"type":37,"value":211},"Seriell (Sequential):",{"type":37,"value":213}," Node A → Node B → Node C. Jeder Node hängt von der Ausgabe des vorherigen ab. Beispiel: ",{"type":32,"tag":102,"props":215,"children":217},{"className":216},[],[218],{"type":37,"value":219},"data_extraction → validation → enrichment → storage",{"type":37,"value":221},". Latenz: additiv (3 × 800ms = 2,4s). Token: Jeder Node nimmt die Ausgabe des vorherigen in seinen Context auf, wodurch die Context-Größe wächst (wie Chain of Thought). Dieses Pattern wird für ",{"type":32,"tag":52,"props":223,"children":224},{},[225],{"type":37,"value":226},"Accuracy-Critical",{"type":37,"value":228},"-Aufgaben bevorzugt – etwa bei Legal Document Analysis, wo jeder Schritt korrekt sein muss.",{"type":32,"tag":33,"props":230,"children":231},{},[232,237,239,245,247,253,255,260],{"type":32,"tag":52,"props":233,"children":234},{},[235],{"type":37,"value":236},"Parallel (Fan-out\u002FFan-in):",{"type":37,"value":238}," Node A → ",{"type":32,"tag":240,"props":241,"children":242},"span",{},[243],{"type":37,"value":244},"Node B, Node C, Node D",{"type":37,"value":246}," → Node E (Aggregator). B, C, D laufen gleichzeitig. Beispiel: ",{"type":32,"tag":102,"props":248,"children":250},{"className":249},[],[251],{"type":37,"value":252},"search_query_generation → [web_search, knowledge_base_lookup, social_media_scan] → result_merger",{"type":37,"value":254},". Latenz: max(B, C, D) + Aggregation-Overhead (1,2s + 300ms = 1,5s). Token: Jeder parallele Branch ist unabhängig, weniger Token insgesamt. Dieses Pattern wird für ",{"type":32,"tag":52,"props":256,"children":257},{},[258],{"type":37,"value":259},"Speed-Critical",{"type":37,"value":261},"-Aufgaben bevorzugt – etwa für Real-Time-Customer-Support-Chatbots.",{"type":32,"tag":33,"props":263,"children":264},{},[265,267,276,278,284,286,292,294,300],{"type":37,"value":266},"Hybride Patterns: In Roibase's ",{"type":32,"tag":268,"props":269,"children":273},"a",{"href":270,"rel":271},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fgeo",[272],"nofollow",[274],{"type":37,"value":275},"Generative Engine Optimization",{"type":37,"value":277},"-Prozess nutzen wir diese Struktur. Erster Node: ",{"type":32,"tag":102,"props":279,"children":281},{"className":280},[],[282],{"type":37,"value":283},"topic_extraction",{"type":37,"value":285}," (seriell, läuft allein, weil alle folgenden Aufgaben davon abhängen). Dann parallel: ",{"type":32,"tag":102,"props":287,"children":289},{"className":288},[],[290],{"type":37,"value":291},"[serp_analysis, citation_mining, competitor_content_scraping]",{"type":37,"value":293},". Danach seriell: ",{"type":32,"tag":102,"props":295,"children":297},{"className":296},[],[298],{"type":37,"value":299},"strategy_synthesis → content_generation → quality_check",{"type":37,"value":301},". Gesamtlatenz: 3,8 Sekunden. Monolithe Single-Agent-Version: 8,2 Sekunden. Token-Kosten: 29 % Reduktion (keine Context-Duplizierung in parallelen Branches).",{"type":32,"tag":119,"props":303,"children":305},{"id":304},"koordinations-overhead-die-kosten-des-orchestrator-nodes",[306],{"type":37,"value":307},"Koordinations-Overhead: Die Kosten des Orchestrator-Nodes",{"type":32,"tag":33,"props":309,"children":310},{},[311],{"type":37,"value":312},"In einem Multi-Agent-System müssen Sie sich zwischen einem zentralen Orchestrator oder dezentralisiertem Message Passing entscheiden. Zentraler Orchestrator: Ein „Meta-Agent\" verwaltet alle Nodes und entscheidet, wann welcher Node läuft. Dezentralisiert: Jeder Agent hat seinen eigenen Entscheidungsmechanismus, kommuniziert über Message Queues (Redis Pub\u002FSub, RabbitMQ, Kafka).",{"type":32,"tag":33,"props":314,"children":315},{},[316],{"type":37,"value":317},"Benchmark (über 100k Queries):",{"type":32,"tag":319,"props":320,"children":321},"table",{},[322,346],{"type":32,"tag":323,"props":324,"children":325},"thead",{},[326],{"type":32,"tag":327,"props":328,"children":329},"tr",{},[330,336,341],{"type":32,"tag":331,"props":332,"children":333},"th",{},[334],{"type":37,"value":335},"Metrik",{"type":32,"tag":331,"props":337,"children":338},{},[339],{"type":37,"value":340},"Zentraler Orchestrator",{"type":32,"tag":331,"props":342,"children":343},{},[344],{"type":37,"value":345},"Dezentralisiert",{"type":32,"tag":347,"props":348,"children":349},"tbody",{},[350,369,387,405],{"type":32,"tag":327,"props":351,"children":352},{},[353,359,364],{"type":32,"tag":354,"props":355,"children":356},"td",{},[357],{"type":37,"value":358},"Durchschn. Latenz",{"type":32,"tag":354,"props":360,"children":361},{},[362],{"type":37,"value":363},"1,87s",{"type":32,"tag":354,"props":365,"children":366},{},[367],{"type":37,"value":368},"2,14s",{"type":32,"tag":327,"props":370,"children":371},{},[372,377,382],{"type":32,"tag":354,"props":373,"children":374},{},[375],{"type":37,"value":376},"P99 Latenz",{"type":32,"tag":354,"props":378,"children":379},{},[380],{"type":37,"value":381},"4,2s",{"type":32,"tag":354,"props":383,"children":384},{},[385],{"type":37,"value":386},"6,8s",{"type":32,"tag":327,"props":388,"children":389},{},[390,395,400],{"type":32,"tag":354,"props":391,"children":392},{},[393],{"type":37,"value":394},"Token-Overhead",{"type":32,"tag":354,"props":396,"children":397},{},[398],{"type":37,"value":399},"+12%",{"type":32,"tag":354,"props":401,"children":402},{},[403],{"type":37,"value":404},"+3%",{"type":32,"tag":327,"props":406,"children":407},{},[408,413,418],{"type":32,"tag":354,"props":409,"children":410},{},[411],{"type":37,"value":412},"Fehlerwiederherstellung",{"type":32,"tag":354,"props":414,"children":415},{},[416],{"type":37,"value":417},"Automatisch (Orchestrator-Retry)",{"type":32,"tag":354,"props":419,"children":420},{},[421],{"type":37,"value":422},"Manuell (Dead Letter Queue)",{"type":32,"tag":33,"props":424,"children":425},{},[426],{"type":37,"value":427},"Zentraler Orchestrator ist schneller, weil der gesamte State an einer Stelle gehalten wird und die Retry-Logik im Orchestrator ist. Allerdings besteht ein Single-Point-of-Failure-Risiko – fällt der Orchestrator aus, fällt das ganze System aus. Bei dezentralisierten Systemen arbeitet jeder Agent unabhängig; ein fehlgeschlagener Agent stoppt die anderen nicht, aber die Message-Queue-Verarbeitung erhöht die Latenz.",{"type":32,"tag":33,"props":429,"children":430},{},[431],{"type":37,"value":432},"In Production hängt die Wahl von der Kritikalität der Aufgabe ab. Für Zero-Tolerance-Szenarien wie Financial Transaction Processing wählen Sie einen zentralen Orchestrator mit redundanter Instanz (Active-Passive). Für Soft-Failure-tolerante Aufgaben wie Content Generation und Data Enrichment ist dezentralisiert besser geeignet.",{"type":32,"tag":40,"props":434,"children":436},{"id":435},"tool-registry-und-versionierung-chaos-management-in-production",[437],{"type":37,"value":438},"Tool Registry und Versionierung: Chaos-Management in Production",{"type":32,"tag":33,"props":440,"children":441},{},[442],{"type":37,"value":443},"Sie haben 47 Tools, jedes mit 3–4 Versionen in Production. Welcher Agent nutzt welche Tool-Version? Semantic Versioning sollte in die Tool-Registry verschoben werden. Unsere Architektur bei Roibase:",{"type":32,"tag":445,"props":446,"children":450},"pre",{"code":447,"language":448,"meta":16,"className":449,"style":16},"# tool_registry.yaml\ntools:\n  - name: google_search_api\n    versions:\n      - v1.2.3:\n          endpoint: \"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv1\"\n          auth: \"API_KEY\"\n          rate_limit: 100\u002Fmin\n          deprecation_date: \"2026-12-31\"\n      - v2.0.0:\n          endpoint: \"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv2\"\n          auth: \"OAuth2\"\n          rate_limit: 500\u002Fmin\n          breaking_changes: [\"query syntax\", \"response schema\"]\n\nagents:\n  - name: serp_analyzer\n    tool_dependencies:\n      - google_search_api: \"^1.2.0\"  # semver range\n  - name: content_scout\n    tool_dependencies:\n      - google_search_api: \"^2.0.0\"\n","python","language-python shiki shiki-themes github-dark",[451],{"type":32,"tag":102,"props":452,"children":453},{"__ignoreMap":16},[454,465,475,490,499,513,528,542,567,580,593,606,619,640,669,679,688,701,710,733,746,754],{"type":32,"tag":240,"props":455,"children":458},{"class":456,"line":457},"line",1,[459],{"type":32,"tag":240,"props":460,"children":462},{"style":461},"--shiki-default:#6A737D",[463],{"type":37,"value":464},"# tool_registry.yaml\n",{"type":32,"tag":240,"props":466,"children":468},{"class":456,"line":467},2,[469],{"type":32,"tag":240,"props":470,"children":472},{"style":471},"--shiki-default:#E1E4E8",[473],{"type":37,"value":474},"tools:\n",{"type":32,"tag":240,"props":476,"children":478},{"class":456,"line":477},3,[479,485],{"type":32,"tag":240,"props":480,"children":482},{"style":481},"--shiki-default:#F97583",[483],{"type":37,"value":484},"  -",{"type":32,"tag":240,"props":486,"children":487},{"style":471},[488],{"type":37,"value":489}," name: google_search_api\n",{"type":32,"tag":240,"props":491,"children":493},{"class":456,"line":492},4,[494],{"type":32,"tag":240,"props":495,"children":496},{"style":471},[497],{"type":37,"value":498},"    versions:\n",{"type":32,"tag":240,"props":500,"children":502},{"class":456,"line":501},5,[503,508],{"type":32,"tag":240,"props":504,"children":505},{"style":481},[506],{"type":37,"value":507},"      -",{"type":32,"tag":240,"props":509,"children":510},{"style":471},[511],{"type":37,"value":512}," v1.2.3:\n",{"type":32,"tag":240,"props":514,"children":516},{"class":456,"line":515},6,[517,522],{"type":32,"tag":240,"props":518,"children":519},{"style":471},[520],{"type":37,"value":521},"          endpoint: ",{"type":32,"tag":240,"props":523,"children":525},{"style":524},"--shiki-default:#9ECBFF",[526],{"type":37,"value":527},"\"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv1\"\n",{"type":32,"tag":240,"props":529,"children":531},{"class":456,"line":530},7,[532,537],{"type":32,"tag":240,"props":533,"children":534},{"style":471},[535],{"type":37,"value":536},"          auth: ",{"type":32,"tag":240,"props":538,"children":539},{"style":524},[540],{"type":37,"value":541},"\"API_KEY\"\n",{"type":32,"tag":240,"props":543,"children":545},{"class":456,"line":544},8,[546,551,557,562],{"type":32,"tag":240,"props":547,"children":548},{"style":471},[549],{"type":37,"value":550},"          rate_limit: ",{"type":32,"tag":240,"props":552,"children":554},{"style":553},"--shiki-default:#79B8FF",[555],{"type":37,"value":556},"100",{"type":32,"tag":240,"props":558,"children":559},{"style":481},[560],{"type":37,"value":561},"\u002F",{"type":32,"tag":240,"props":563,"children":564},{"style":553},[565],{"type":37,"value":566},"min\n",{"type":32,"tag":240,"props":568,"children":569},{"class":456,"line":26},[570,575],{"type":32,"tag":240,"props":571,"children":572},{"style":471},[573],{"type":37,"value":574},"          deprecation_date: ",{"type":32,"tag":240,"props":576,"children":577},{"style":524},[578],{"type":37,"value":579},"\"2026-12-31\"\n",{"type":32,"tag":240,"props":581,"children":583},{"class":456,"line":582},10,[584,588],{"type":32,"tag":240,"props":585,"children":586},{"style":481},[587],{"type":37,"value":507},{"type":32,"tag":240,"props":589,"children":590},{"style":471},[591],{"type":37,"value":592}," v2.0.0:\n",{"type":32,"tag":240,"props":594,"children":596},{"class":456,"line":595},11,[597,601],{"type":32,"tag":240,"props":598,"children":599},{"style":471},[600],{"type":37,"value":521},{"type":32,"tag":240,"props":602,"children":603},{"style":524},[604],{"type":37,"value":605},"\"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv2\"\n",{"type":32,"tag":240,"props":607,"children":609},{"class":456,"line":608},12,[610,614],{"type":32,"tag":240,"props":611,"children":612},{"style":471},[613],{"type":37,"value":536},{"type":32,"tag":240,"props":615,"children":616},{"style":524},[617],{"type":37,"value":618},"\"OAuth2\"\n",{"type":32,"tag":240,"props":620,"children":622},{"class":456,"line":621},13,[623,627,632,636],{"type":32,"tag":240,"props":624,"children":625},{"style":471},[626],{"type":37,"value":550},{"type":32,"tag":240,"props":628,"children":629},{"style":553},[630],{"type":37,"value":631},"500",{"type":32,"tag":240,"props":633,"children":634},{"style":481},[635],{"type":37,"value":561},{"type":32,"tag":240,"props":637,"children":638},{"style":553},[639],{"type":37,"value":566},{"type":32,"tag":240,"props":641,"children":643},{"class":456,"line":642},14,[644,649,654,659,664],{"type":32,"tag":240,"props":645,"children":646},{"style":471},[647],{"type":37,"value":648},"          breaking_changes: [",{"type":32,"tag":240,"props":650,"children":651},{"style":524},[652],{"type":37,"value":653},"\"query syntax\"",{"type":32,"tag":240,"props":655,"children":656},{"style":471},[657],{"type":37,"value":658},", ",{"type":32,"tag":240,"props":660,"children":661},{"style":524},[662],{"type":37,"value":663},"\"response schema\"",{"type":32,"tag":240,"props":665,"children":666},{"style":471},[667],{"type":37,"value":668},"]\n",{"type":32,"tag":240,"props":670,"children":672},{"class":456,"line":671},15,[673],{"type":32,"tag":240,"props":674,"children":676},{"emptyLinePlaceholder":675},true,[677],{"type":37,"value":678},"\n",{"type":32,"tag":240,"props":680,"children":682},{"class":456,"line":681},16,[683],{"type":32,"tag":240,"props":684,"children":685},{"style":471},[686],{"type":37,"value":687},"agents:\n",{"type":32,"tag":240,"props":689,"children":691},{"class":456,"line":690},17,[692,696],{"type":32,"tag":240,"props":693,"children":694},{"style":481},[695],{"type":37,"value":484},{"type":32,"tag":240,"props":697,"children":698},{"style":471},[699],{"type":37,"value":700}," name: serp_analyzer\n",{"type":32,"tag":240,"props":702,"children":704},{"class":456,"line":703},18,[705],{"type":32,"tag":240,"props":706,"children":707},{"style":471},[708],{"type":37,"value":709},"    tool_dependencies:\n",{"type":32,"tag":240,"props":711,"children":713},{"class":456,"line":712},19,[714,718,723,728],{"type":32,"tag":240,"props":715,"children":716},{"style":481},[717],{"type":37,"value":507},{"type":32,"tag":240,"props":719,"children":720},{"style":471},[721],{"type":37,"value":722}," google_search_api: ",{"type":32,"tag":240,"props":724,"children":725},{"style":524},[726],{"type":37,"value":727},"\"^1.2.0\"",{"type":32,"tag":240,"props":729,"children":730},{"style":461},[731],{"type":37,"value":732},"  # semver range\n",{"type":32,"tag":240,"props":734,"children":736},{"class":456,"line":735},20,[737,741],{"type":32,"tag":240,"props":738,"children":739},{"style":481},[740],{"type":37,"value":484},{"type":32,"tag":240,"props":742,"children":743},{"style":471},[744],{"type":37,"value":745}," name: content_scout\n",{"type":32,"tag":240,"props":747,"children":749},{"class":456,"line":748},21,[750],{"type":32,"tag":240,"props":751,"children":752},{"style":471},[753],{"type":37,"value":709},{"type":32,"tag":240,"props":755,"children":757},{"class":456,"line":756},22,[758,762,766],{"type":32,"tag":240,"props":759,"children":760},{"style":481},[761],{"type":37,"value":507},{"type":32,"tag":240,"props":763,"children":764},{"style":471},[765],{"type":37,"value":722},{"type":32,"tag":240,"props":767,"children":768},{"style":524},[769],{"type":37,"value":770},"\"^2.0.0\"\n",{"type":32,"tag":33,"props":772,"children":773},{},[774,776,782],{"type":37,"value":775},"Diese Registry wird beim Graph Build aufgelöst. Beim Agent-Deploy zieht das SDK automatisch die richtigen Tool-Versionen. Gibt es Breaking Changes (z.B. Google API v1 → v2), sehen Sie in der Registry das ",{"type":32,"tag":102,"props":777,"children":779},{"className":778},[],[780],{"type":37,"value":781},"deprecation_date",{"type":37,"value":783},", und beim Deploy gibt es eine Warnung: „serp_analyzer v1.2.3 nutzt deprecated Tool; wird am 2026-12-31 abgebaut – Migration planen.\"",{"type":32,"tag":119,"props":785,"children":787},{"id":786},"observability-debugging-in-multi-agent-systemen",[788],{"type":37,"value":789},"Observability: Debugging in Multi-Agent-Systemen",{"type":32,"tag":33,"props":791,"children":792},{},[793],{"type":37,"value":794},"Bei einem einzelnen LLM-Aufruf ist Debugging einfach: Input-Prompt + Output-Response + Token-Count. Multi-Agent mit 5 Nodes, jeder ruft 2–3 Tools auf, insgesamt 15 API-Calls – welcher ist fehlgeschlagen? Wo ist der Latenz-Spike?",{"type":32,"tag":33,"props":796,"children":797},{},[798],{"type":37,"value":799},"Standard-Stack: OpenTelemetry + Jaeger\u002FTempo. Jeder Agent-Aufruf ist ein Span, jeder Tool-Aufruf ist ein Child-Span. Trace-ID wird über den gesamten Request hinweg weitergegeben. Beispiel-Trace:",{"type":32,"tag":445,"props":801,"children":803},{"code":802},"[Trace ID: abc123]\n  ├─ orchestrator_start (0ms)\n  ├─ topic_extraction (200ms, 1.2k tokens)\n  ├─ [parallel]\n  │   ├─ serp_analysis (800ms, 3.4k tokens)\n  │   │   └─ google_search_api_call (650ms)\n  │   ├─ citation_mining (1100ms, 2.1k tokens)  ← LANGSAM\n  │   │   └─ arxiv_api_call (950ms)  ← ENGPASS\n  │   └─ competitor_scraping (700ms, 1.8k tokens)\n  ├─ strategy_synthesis (400ms, 5.2k tokens)\n  └─ orchestrator_end (3.2s total)\n",[804],{"type":32,"tag":102,"props":805,"children":806},{"__ignoreMap":16},[807],{"type":37,"value":802},{"type":32,"tag":33,"props":809,"children":810},{},[811,813,819],{"type":37,"value":812},"Aus diesem Trace sehen Sie: Der ",{"type":32,"tag":102,"props":814,"children":816},{"className":815},[],[817],{"type":37,"value":818},"citation_mining",{"type":37,"value":820},"-Node ist langsam, weil die arXiv-API 950ms Antwortzeit braucht. Aktionen: (1) Versuchen Sie Semantic Scholar statt arXiv, (2) Timeout auf 800ms senken und bei Fehler fallback nutzen, (3) arXiv-Ergebnisse cachen (Redis, 1 Stunde TTL).",{"type":32,"tag":33,"props":822,"children":823},{},[824],{"type":37,"value":825},"Bei Roibase exportieren wir diese Traces in BigQuery, erstellen mit dbt aggregate Metriken (P50\u002FP95\u002FP99 Latenz pro Node, Token-Kosten pro Agent, Fehlerrate pro Tool), dashboarden in Looker Studio und führen wöchentliche Reviews durch. In Production wird die Agent-Topologie alle 2 Wochen optimiert – langsame Nodes parallelisiert, teure Tools durch günstigere Alternativen ersetzt.",{"type":32,"tag":40,"props":827,"children":829},{"id":828},"sicherheit-und-compliance-agent-grenzen-setzen",[830],{"type":37,"value":831},"Sicherheit und Compliance: Agent-Grenzen setzen",{"type":32,"tag":33,"props":833,"children":834},{},[835],{"type":37,"value":836},"Ein Multi-Agent-System bedeutet Freiheit, Freiheit bedeutet Risiko. Wenn Ihr Agent auf Kundendaten zugreift, wie sichern Sie GDPR\u002FKVKK Compliance? Wenn Ihr Agent in die Production-Datenbank schreibt, wie verhindern Sie versehentliches Löschen von Kundendatensätzen?",{"type":32,"tag":33,"props":838,"children":839},{},[840],{"type":37,"value":841},"In Production-grade Multi-Agent-Systemen verwenden wir ein 3-schichtiges Sicherheitsmodell:",{"type":32,"tag":144,"props":843,"children":844},{},[845,893,903],{"type":32,"tag":71,"props":846,"children":847},{},[848,853,855,861,862,868,869,875,877,883,885,891],{"type":32,"tag":52,"props":849,"children":850},{},[851],{"type":37,"value":852},"Tool-Level-Permissions:",{"type":37,"value":854}," Jedes Tool hat einen Permission-Scope. ",{"type":32,"tag":102,"props":856,"children":858},{"className":857},[],[859],{"type":37,"value":860},"read_customer_data",{"type":37,"value":658},{"type":32,"tag":102,"props":863,"children":865},{"className":864},[],[866],{"type":37,"value":867},"write_logs",{"type":37,"value":658},{"type":32,"tag":102,"props":870,"children":872},{"className":871},[],[873],{"type":37,"value":874},"execute_sql",{"type":37,"value":876},". Agents erben diese Scopes bei Tool-Zugriff. Beim Graph-Build gibt es Permission-Checks: „Dieser Agent ruft ",{"type":32,"tag":102,"props":878,"children":880},{"className":879},[],[881],{"type":37,"value":882},"delete_records",{"type":37,"value":884},"-Tool auf, hat aber nur ",{"type":32,"tag":102,"props":886,"children":888},{"className":887},[],[889],{"type":37,"value":890},"read_only",{"type":37,"value":892},"-Permission – BUILD FAILED.\"",{"type":32,"tag":71,"props":894,"children":895},{},[896,901],{"type":32,"tag":52,"props":897,"children":898},{},[899],{"type":37,"value":900},"Runtime-Sandbox:",{"type":37,"value":902}," Agents laufen in isoliertem Container (Docker, gVisor). Dateisystem read-only (außer Log-Directory), Netzwerkzugriff auf Whitelist-Basis (nur bestimmte API-Endpoints), Memory\u002FCPU-Limits. Läuft ein Agent amok (Infinite Loop, Memory Leak), wird der Container gekilltet und der Orchestrator spawnt eine neue Instanz.",{"type":32,"tag":71,"props":904,"children":905},{},[906,911,913,919,920,926,927,933,934,940,941,947,948,954],{"type":32,"tag":52,"props":907,"children":908},{},[909],{"type":37,"value":910},"Audit Logging:",{"type":37,"value":912}," Jede Agent-Action wird immutable geloggt: ",{"type":32,"tag":102,"props":914,"children":916},{"className":915},[],[917],{"type":37,"value":918},"agent_id",{"type":37,"value":658},{"type":32,"tag":102,"props":921,"children":923},{"className":922},[],[924],{"type":37,"value":925},"tool_called",{"type":37,"value":658},{"type":32,"tag":102,"props":928,"children":930},{"className":929},[],[931],{"type":37,"value":932},"input_params",{"type":37,"value":658},{"type":32,"tag":102,"props":935,"children":937},{"className":936},[],[938],{"type":37,"value":939},"output",{"type":37,"value":658},{"type":32,"tag":102,"props":942,"children":944},{"className":943},[],[945],{"type":37,"value":946},"timestamp",{"type":37,"value":658},{"type":32,"tag":102,"props":949,"children":951},{"className":950},[],[952],{"type":37,"value":953},"user_context",{"type":37,"value":955},". Diese Logs werden für Compliance-Audits gespeichert (S3, 7 Jahre Aufbewahrung). Bei einer GDPR-Anfrage „",{"type":32,"tag":957,"props":958,"children":959},"style",{},[960],{"type":37,"value":961},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":477,"depth":477,"links":963},[964,967,970,973],{"id":42,"depth":467,"text":45,"children":965},[966],{"id":121,"depth":477,"text":124},{"id":195,"depth":467,"text":198,"children":968},[969],{"id":304,"depth":477,"text":307},{"id":435,"depth":467,"text":438,"children":971},[972],{"id":786,"depth":477,"text":789},{"id":828,"depth":467,"text":831},"markdown","content:de:ai:multi-agent-orchestration-von-einzelnen-llm-aufrufen-zu-systemen.md","content","de\u002Fai\u002Fmulti-agent-orchestration-von-einzelnen-llm-aufrufen-zu-systemen.md","de\u002Fai\u002Fmulti-agent-orchestration-von-einzelnen-llm-aufrufen-zu-systemen","md",1786860284133]