[{"data":1,"prerenderedAt":1691},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Fai\u002Fmulti-agent-orchestrierung-ein-llm-aufruf-zu-systemen":13},{"i18nKey":4,"paths":5},"ai-008-2026-07",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fai\u002Fmulti-agent-orchestrierung-llm-aufrufe-systeme","\u002Fen\u002Fai\u002Fmulti-agent-orchestration-single-llm-call","\u002Fes\u002Fai\u002Forquestacion-multi-agente-llm","\u002Ffr\u002Fai\u002Forchestration-multi-agent-llm","\u002Fit\u002Fai\u002Forchestrazione-multi-agent-da-una-singola-chiamata-llm","\u002Fru\u002Fai\u002Fmulti-agent-orkestratsiya","\u002Ftr\u002Fai\u002Fmulti-agent-orchestration-tek-llm-cagrisindan-sistemlere",{"_path":14,"_dir":15,"_draft":16,"_partial":16,"_locale":17,"title":18,"description":19,"publishedAt":20,"modifiedAt":20,"category":15,"i18nKey":4,"tags":21,"readingTime":27,"author":28,"body":29,"_type":1685,"_id":1686,"_source":1687,"_file":1688,"_stem":1689,"_extension":1690},"\u002Fde\u002Fai\u002Fmulti-agent-orchestrierung-ein-llm-aufruf-zu-systemen","ai",false,"","Multi-Agent-Orchestrierung: Vom Single-LLM-Call zu Produktionssystemen","Agent-SDKs bis zu parallelen\u002Fseriellen Topologien: Production-grade Multi-Agent-Systeme mit LangGraph, CrewAI und AutoGen aufbauen.","2026-07-20",[22,23,24,25,26],"multi-agent","llm-orchestration","langgraph","crewai","agent-topology",9,"Roibase",{"type":30,"children":31,"toc":1675},"root",[32,40,47,52,63,73,83,99,105,115,308,325,335,540,555,565,731,746,752,916,926,932,937,962,980,1096,1130,1164,1170,1175,1183,1236,1397,1403,1408,1418,1428,1446,1452,1457,1465,1499,1605,1611,1664,1669],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","2023: LLMs konnten \"Tools aufrufen\". 2024: Das Konzept \"Agent\" entstand. 2025: Jeder baute seinen eigenen Agenten. 2026: Die Frage hat sich verschärft – ein Agent genügt nicht mehr, aber sollten 5 Agenten parallel oder seriell laufen? Welcher Agent nutzt welches Tool? Wo lebt die Koordinationslogik? Multi-Agent-Orchestrierung ist das erste ernsthafte Engineering-Problem beim Übergang von LLM-Spielplatz zu Produktionssystemen.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"von-single-agent-zur-topologie-warum-orchestrierung",[45],{"type":38,"value":46},"Von Single Agent zur Topologie: Warum Orchestrierung?",{"type":33,"tag":34,"props":48,"children":49},{},[50],{"type":38,"value":51},"Ein einzelner Agent – etwa Claude Sonnet 3.5 mit 5 Tools – löst viele Szenarien. Doch bei diesen Situationen gerätst Du ins Stocken:",{"type":33,"tag":34,"props":53,"children":54},{},[55,61],{"type":33,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":38,"value":60},"Parallelisierungsbedarf:",{"type":38,"value":62}," Du analysierst eine Marketing-Kampagne. Gleichzeitig: Google Ads API abfragen, Historical Trends in BigQuery berechnen, Conversion-Daten von Shopify holen. Ein Agent macht das sequenziell – insgesamt 12 Sekunden. Drei parallel arbeitende Agenten schaffen es in 4,5 Sekunden. Wenn Latenz kritisch ist, ist Orchestrierung Pflicht.",{"type":33,"tag":34,"props":64,"children":65},{},[66,71],{"type":33,"tag":56,"props":67,"children":68},{},[69],{"type":38,"value":70},"Spezialisierungsbedarf:",{"type":38,"value":72}," Ein Agent schreibt SQL, einer räumt Daten auf, einer generiert Visualisierungs-Code. Jedem Agent gibst Du ein anderes System Prompt, ein anderes Modell (SQL: Sonnet, Code: Opus), einen anderen Retrieval-Kontext. Einem Single Agent zu sagen \"beherrsche SQL UND visuelles Design\" bläht das Context Window auf, Performance sinkt.",{"type":33,"tag":34,"props":74,"children":75},{},[76,81],{"type":33,"tag":56,"props":77,"children":78},{},[79],{"type":38,"value":80},"Sicherheitslagen:",{"type":38,"value":82}," Ein Agent bereinigt eingehende Prompts, einer führt die Geschäftslogik aus, einer validiert den Output. Diese \"Assembly Line\"-Struktur ist in Production unverzichtbar: Multi-Agent-Topologien reduzieren das Risiko fehlerhafter Parameter bei Tool-Nutzung drastisch.",{"type":33,"tag":34,"props":84,"children":85},{},[86,88,97],{"type":38,"value":87},"Bei Roibase's ",{"type":33,"tag":89,"props":90,"children":94},"a",{"href":91,"rel":92},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fverianalizi",[93],"nofollow",[95],{"type":38,"value":96},"Datenanalyse & Insights-Engineering",{"type":38,"value":98},"-Projekten haben wir BigQuery-Query-Zeiten mit parallelen Agent-Strukturen um 60% gesenkt – weil 3 verschiedene Datenquellen gleichzeitig abgefragt werden können.",{"type":33,"tag":41,"props":100,"children":102},{"id":101},"agent-sdks-langgraph-crewai-autogen",[103],{"type":38,"value":104},"Agent-SDKs: LangGraph, CrewAI, AutoGen",{"type":33,"tag":34,"props":106,"children":107},{},[108,113],{"type":33,"tag":56,"props":109,"children":110},{},[111],{"type":38,"value":112},"LangGraph (LangChain-Ökosystem):",{"type":38,"value":114}," Du definierst Agenten als Knoten in einem Directed Graph. Jeder Knoten verwaltet einen \"State\", Kanten definieren Überganslogik. Conditional Routing ist möglich: Falls Agent A \"Daten unvollständig\" meldet → Agent B aufrufen, sonst → Agent C.",{"type":33,"tag":116,"props":117,"children":121},"pre",{"className":118,"code":119,"language":120,"meta":17,"style":17},"language-python shiki shiki-themes github-dark","from langgraph.graph import StateGraph\n\nworkflow = StateGraph(AgentState)\nworkflow.add_node(\"researcher\", research_agent)\nworkflow.add_node(\"writer\", writer_agent)\nworkflow.add_conditional_edges(\n    \"researcher\",\n    lambda state: \"complete\" if state.data_ready else \"retry\"\n)\nworkflow.set_entry_point(\"researcher\")\n","python",[122],{"type":33,"tag":123,"props":124,"children":125},"code",{"__ignoreMap":17},[126,154,164,183,203,221,230,244,283,291],{"type":33,"tag":127,"props":128,"children":131},"span",{"class":129,"line":130},"line",1,[132,138,144,149],{"type":33,"tag":127,"props":133,"children":135},{"style":134},"--shiki-default:#F97583",[136],{"type":38,"value":137},"from",{"type":33,"tag":127,"props":139,"children":141},{"style":140},"--shiki-default:#E1E4E8",[142],{"type":38,"value":143}," langgraph.graph ",{"type":33,"tag":127,"props":145,"children":146},{"style":134},[147],{"type":38,"value":148},"import",{"type":33,"tag":127,"props":150,"children":151},{"style":140},[152],{"type":38,"value":153}," StateGraph\n",{"type":33,"tag":127,"props":155,"children":157},{"class":129,"line":156},2,[158],{"type":33,"tag":127,"props":159,"children":161},{"emptyLinePlaceholder":160},true,[162],{"type":38,"value":163},"\n",{"type":33,"tag":127,"props":165,"children":167},{"class":129,"line":166},3,[168,173,178],{"type":33,"tag":127,"props":169,"children":170},{"style":140},[171],{"type":38,"value":172},"workflow ",{"type":33,"tag":127,"props":174,"children":175},{"style":134},[176],{"type":38,"value":177},"=",{"type":33,"tag":127,"props":179,"children":180},{"style":140},[181],{"type":38,"value":182}," StateGraph(AgentState)\n",{"type":33,"tag":127,"props":184,"children":186},{"class":129,"line":185},4,[187,192,198],{"type":33,"tag":127,"props":188,"children":189},{"style":140},[190],{"type":38,"value":191},"workflow.add_node(",{"type":33,"tag":127,"props":193,"children":195},{"style":194},"--shiki-default:#9ECBFF",[196],{"type":38,"value":197},"\"researcher\"",{"type":33,"tag":127,"props":199,"children":200},{"style":140},[201],{"type":38,"value":202},", research_agent)\n",{"type":33,"tag":127,"props":204,"children":206},{"class":129,"line":205},5,[207,211,216],{"type":33,"tag":127,"props":208,"children":209},{"style":140},[210],{"type":38,"value":191},{"type":33,"tag":127,"props":212,"children":213},{"style":194},[214],{"type":38,"value":215},"\"writer\"",{"type":33,"tag":127,"props":217,"children":218},{"style":140},[219],{"type":38,"value":220},", writer_agent)\n",{"type":33,"tag":127,"props":222,"children":224},{"class":129,"line":223},6,[225],{"type":33,"tag":127,"props":226,"children":227},{"style":140},[228],{"type":38,"value":229},"workflow.add_conditional_edges(\n",{"type":33,"tag":127,"props":231,"children":233},{"class":129,"line":232},7,[234,239],{"type":33,"tag":127,"props":235,"children":236},{"style":194},[237],{"type":38,"value":238},"    \"researcher\"",{"type":33,"tag":127,"props":240,"children":241},{"style":140},[242],{"type":38,"value":243},",\n",{"type":33,"tag":127,"props":245,"children":247},{"class":129,"line":246},8,[248,253,258,263,268,273,278],{"type":33,"tag":127,"props":249,"children":250},{"style":134},[251],{"type":38,"value":252},"    lambda",{"type":33,"tag":127,"props":254,"children":255},{"style":140},[256],{"type":38,"value":257}," state: ",{"type":33,"tag":127,"props":259,"children":260},{"style":194},[261],{"type":38,"value":262},"\"complete\"",{"type":33,"tag":127,"props":264,"children":265},{"style":134},[266],{"type":38,"value":267}," if",{"type":33,"tag":127,"props":269,"children":270},{"style":140},[271],{"type":38,"value":272}," state.data_ready ",{"type":33,"tag":127,"props":274,"children":275},{"style":134},[276],{"type":38,"value":277},"else",{"type":33,"tag":127,"props":279,"children":280},{"style":194},[281],{"type":38,"value":282}," \"retry\"\n",{"type":33,"tag":127,"props":284,"children":285},{"class":129,"line":27},[286],{"type":33,"tag":127,"props":287,"children":288},{"style":140},[289],{"type":38,"value":290},")\n",{"type":33,"tag":127,"props":292,"children":294},{"class":129,"line":293},10,[295,300,304],{"type":33,"tag":127,"props":296,"children":297},{"style":140},[298],{"type":38,"value":299},"workflow.set_entry_point(",{"type":33,"tag":127,"props":301,"children":302},{"style":194},[303],{"type":38,"value":197},{"type":33,"tag":127,"props":305,"children":306},{"style":140},[307],{"type":38,"value":290},{"type":33,"tag":34,"props":309,"children":310},{},[311,316,318,323],{"type":33,"tag":56,"props":312,"children":313},{},[314],{"type":38,"value":315},"Stärken:",{"type":38,"value":317}," Robustes State Management. Distributed Tracing ist einfach – jeder Knoten hat separate Logs. ",{"type":33,"tag":56,"props":319,"children":320},{},[321],{"type":38,"value":322},"Schwächen:",{"type":38,"value":324}," Syntax ist komplex, Callback-Ketten machen Debugging mühsam.",{"type":33,"tag":34,"props":326,"children":327},{},[328,333],{"type":33,"tag":56,"props":329,"children":330},{},[331],{"type":38,"value":332},"CrewAI:",{"type":38,"value":334}," Role-basierte Orchestrierung. Du gibst jedem Agenten eine \"Role\" (Researcher, Analyst, Writer) und eine Task-Liste. Das Framework führt diese sequenziell aus oder forked parallel.",{"type":33,"tag":116,"props":336,"children":338},{"className":118,"code":337,"language":120,"meta":17,"style":17},"from crewai import Crew, Agent, Task\n\nresearcher = Agent(role='Data Researcher', tools=[bigquery_tool])\nanalyst = Agent(role='Analyst', tools=[pandas_tool])\n\ncrew = Crew(agents=[researcher, analyst], process=\"sequential\")\nresult = crew.kickoff()\n",[339],{"type":33,"tag":123,"props":340,"children":341},{"__ignoreMap":17},[342,363,370,421,467,474,523],{"type":33,"tag":127,"props":343,"children":344},{"class":129,"line":130},[345,349,354,358],{"type":33,"tag":127,"props":346,"children":347},{"style":134},[348],{"type":38,"value":137},{"type":33,"tag":127,"props":350,"children":351},{"style":140},[352],{"type":38,"value":353}," crewai ",{"type":33,"tag":127,"props":355,"children":356},{"style":134},[357],{"type":38,"value":148},{"type":33,"tag":127,"props":359,"children":360},{"style":140},[361],{"type":38,"value":362}," Crew, Agent, Task\n",{"type":33,"tag":127,"props":364,"children":365},{"class":129,"line":156},[366],{"type":33,"tag":127,"props":367,"children":368},{"emptyLinePlaceholder":160},[369],{"type":38,"value":163},{"type":33,"tag":127,"props":371,"children":372},{"class":129,"line":166},[373,378,382,387,393,397,402,407,412,416],{"type":33,"tag":127,"props":374,"children":375},{"style":140},[376],{"type":38,"value":377},"researcher ",{"type":33,"tag":127,"props":379,"children":380},{"style":134},[381],{"type":38,"value":177},{"type":33,"tag":127,"props":383,"children":384},{"style":140},[385],{"type":38,"value":386}," Agent(",{"type":33,"tag":127,"props":388,"children":390},{"style":389},"--shiki-default:#FFAB70",[391],{"type":38,"value":392},"role",{"type":33,"tag":127,"props":394,"children":395},{"style":134},[396],{"type":38,"value":177},{"type":33,"tag":127,"props":398,"children":399},{"style":194},[400],{"type":38,"value":401},"'Data Researcher'",{"type":33,"tag":127,"props":403,"children":404},{"style":140},[405],{"type":38,"value":406},", ",{"type":33,"tag":127,"props":408,"children":409},{"style":389},[410],{"type":38,"value":411},"tools",{"type":33,"tag":127,"props":413,"children":414},{"style":134},[415],{"type":38,"value":177},{"type":33,"tag":127,"props":417,"children":418},{"style":140},[419],{"type":38,"value":420},"[bigquery_tool])\n",{"type":33,"tag":127,"props":422,"children":423},{"class":129,"line":185},[424,429,433,437,441,445,450,454,458,462],{"type":33,"tag":127,"props":425,"children":426},{"style":140},[427],{"type":38,"value":428},"analyst ",{"type":33,"tag":127,"props":430,"children":431},{"style":134},[432],{"type":38,"value":177},{"type":33,"tag":127,"props":434,"children":435},{"style":140},[436],{"type":38,"value":386},{"type":33,"tag":127,"props":438,"children":439},{"style":389},[440],{"type":38,"value":392},{"type":33,"tag":127,"props":442,"children":443},{"style":134},[444],{"type":38,"value":177},{"type":33,"tag":127,"props":446,"children":447},{"style":194},[448],{"type":38,"value":449},"'Analyst'",{"type":33,"tag":127,"props":451,"children":452},{"style":140},[453],{"type":38,"value":406},{"type":33,"tag":127,"props":455,"children":456},{"style":389},[457],{"type":38,"value":411},{"type":33,"tag":127,"props":459,"children":460},{"style":134},[461],{"type":38,"value":177},{"type":33,"tag":127,"props":463,"children":464},{"style":140},[465],{"type":38,"value":466},"[pandas_tool])\n",{"type":33,"tag":127,"props":468,"children":469},{"class":129,"line":205},[470],{"type":33,"tag":127,"props":471,"children":472},{"emptyLinePlaceholder":160},[473],{"type":38,"value":163},{"type":33,"tag":127,"props":475,"children":476},{"class":129,"line":223},[477,482,486,491,496,500,505,510,514,519],{"type":33,"tag":127,"props":478,"children":479},{"style":140},[480],{"type":38,"value":481},"crew ",{"type":33,"tag":127,"props":483,"children":484},{"style":134},[485],{"type":38,"value":177},{"type":33,"tag":127,"props":487,"children":488},{"style":140},[489],{"type":38,"value":490}," Crew(",{"type":33,"tag":127,"props":492,"children":493},{"style":389},[494],{"type":38,"value":495},"agents",{"type":33,"tag":127,"props":497,"children":498},{"style":134},[499],{"type":38,"value":177},{"type":33,"tag":127,"props":501,"children":502},{"style":140},[503],{"type":38,"value":504},"[researcher, analyst], ",{"type":33,"tag":127,"props":506,"children":507},{"style":389},[508],{"type":38,"value":509},"process",{"type":33,"tag":127,"props":511,"children":512},{"style":134},[513],{"type":38,"value":177},{"type":33,"tag":127,"props":515,"children":516},{"style":194},[517],{"type":38,"value":518},"\"sequential\"",{"type":33,"tag":127,"props":520,"children":521},{"style":140},[522],{"type":38,"value":290},{"type":33,"tag":127,"props":524,"children":525},{"class":129,"line":232},[526,531,535],{"type":33,"tag":127,"props":527,"children":528},{"style":140},[529],{"type":38,"value":530},"result ",{"type":33,"tag":127,"props":532,"children":533},{"style":134},[534],{"type":38,"value":177},{"type":33,"tag":127,"props":536,"children":537},{"style":140},[538],{"type":38,"value":539}," crew.kickoff()\n",{"type":33,"tag":34,"props":541,"children":542},{},[543,547,549,553],{"type":33,"tag":56,"props":544,"children":545},{},[546],{"type":38,"value":315},{"type":38,"value":548}," Minimales Boilerplate, schnelle Prototypen. ",{"type":33,"tag":56,"props":550,"children":551},{},[552],{"type":38,"value":322},{"type":38,"value":554}," Begrenzte Flexibilität – für Custom Routing musst Du Code ändern.",{"type":33,"tag":34,"props":556,"children":557},{},[558,563],{"type":33,"tag":56,"props":559,"children":560},{},[561],{"type":38,"value":562},"AutoGen (Microsoft):",{"type":38,"value":564}," Conversational Multi-Agent. Agenten \"sprechen\" miteinander, senden sich Nachrichten, antworten. In diesem Pattern ist Orchestrierung implizit – der Nachrichtenfluss definiert die Topologie.",{"type":33,"tag":116,"props":566,"children":568},{"className":118,"code":567,"language":120,"meta":17,"style":17},"from autogen import AssistantAgent, UserProxyAgent\n\nassistant = AssistantAgent(\"assistant\", llm_config={...})\nuser_proxy = UserProxyAgent(\"user\", code_execution_config={...})\n\nuser_proxy.initiate_chat(assistant, message=\"Analyze Q1 data\")\n",[569],{"type":33,"tag":123,"props":570,"children":571},{"__ignoreMap":17},[572,593,600,651,698,705],{"type":33,"tag":127,"props":573,"children":574},{"class":129,"line":130},[575,579,584,588],{"type":33,"tag":127,"props":576,"children":577},{"style":134},[578],{"type":38,"value":137},{"type":33,"tag":127,"props":580,"children":581},{"style":140},[582],{"type":38,"value":583}," autogen ",{"type":33,"tag":127,"props":585,"children":586},{"style":134},[587],{"type":38,"value":148},{"type":33,"tag":127,"props":589,"children":590},{"style":140},[591],{"type":38,"value":592}," AssistantAgent, UserProxyAgent\n",{"type":33,"tag":127,"props":594,"children":595},{"class":129,"line":156},[596],{"type":33,"tag":127,"props":597,"children":598},{"emptyLinePlaceholder":160},[599],{"type":38,"value":163},{"type":33,"tag":127,"props":601,"children":602},{"class":129,"line":166},[603,608,612,617,622,626,631,635,640,646],{"type":33,"tag":127,"props":604,"children":605},{"style":140},[606],{"type":38,"value":607},"assistant ",{"type":33,"tag":127,"props":609,"children":610},{"style":134},[611],{"type":38,"value":177},{"type":33,"tag":127,"props":613,"children":614},{"style":140},[615],{"type":38,"value":616}," AssistantAgent(",{"type":33,"tag":127,"props":618,"children":619},{"style":194},[620],{"type":38,"value":621},"\"assistant\"",{"type":33,"tag":127,"props":623,"children":624},{"style":140},[625],{"type":38,"value":406},{"type":33,"tag":127,"props":627,"children":628},{"style":389},[629],{"type":38,"value":630},"llm_config",{"type":33,"tag":127,"props":632,"children":633},{"style":134},[634],{"type":38,"value":177},{"type":33,"tag":127,"props":636,"children":637},{"style":140},[638],{"type":38,"value":639},"{",{"type":33,"tag":127,"props":641,"children":643},{"style":642},"--shiki-default:#79B8FF",[644],{"type":38,"value":645},"...",{"type":33,"tag":127,"props":647,"children":648},{"style":140},[649],{"type":38,"value":650},"})\n",{"type":33,"tag":127,"props":652,"children":653},{"class":129,"line":185},[654,659,663,668,673,677,682,686,690,694],{"type":33,"tag":127,"props":655,"children":656},{"style":140},[657],{"type":38,"value":658},"user_proxy ",{"type":33,"tag":127,"props":660,"children":661},{"style":134},[662],{"type":38,"value":177},{"type":33,"tag":127,"props":664,"children":665},{"style":140},[666],{"type":38,"value":667}," UserProxyAgent(",{"type":33,"tag":127,"props":669,"children":670},{"style":194},[671],{"type":38,"value":672},"\"user\"",{"type":33,"tag":127,"props":674,"children":675},{"style":140},[676],{"type":38,"value":406},{"type":33,"tag":127,"props":678,"children":679},{"style":389},[680],{"type":38,"value":681},"code_execution_config",{"type":33,"tag":127,"props":683,"children":684},{"style":134},[685],{"type":38,"value":177},{"type":33,"tag":127,"props":687,"children":688},{"style":140},[689],{"type":38,"value":639},{"type":33,"tag":127,"props":691,"children":692},{"style":642},[693],{"type":38,"value":645},{"type":33,"tag":127,"props":695,"children":696},{"style":140},[697],{"type":38,"value":650},{"type":33,"tag":127,"props":699,"children":700},{"class":129,"line":205},[701],{"type":33,"tag":127,"props":702,"children":703},{"emptyLinePlaceholder":160},[704],{"type":38,"value":163},{"type":33,"tag":127,"props":706,"children":707},{"class":129,"line":223},[708,713,718,722,727],{"type":33,"tag":127,"props":709,"children":710},{"style":140},[711],{"type":38,"value":712},"user_proxy.initiate_chat(assistant, ",{"type":33,"tag":127,"props":714,"children":715},{"style":389},[716],{"type":38,"value":717},"message",{"type":33,"tag":127,"props":719,"children":720},{"style":134},[721],{"type":38,"value":177},{"type":33,"tag":127,"props":723,"children":724},{"style":194},[725],{"type":38,"value":726},"\"Analyze Q1 data\"",{"type":33,"tag":127,"props":728,"children":729},{"style":140},[730],{"type":38,"value":290},{"type":33,"tag":34,"props":732,"children":733},{},[734,738,740,744],{"type":33,"tag":56,"props":735,"children":736},{},[737],{"type":38,"value":315},{"type":38,"value":739}," Natürlich für Human-in-the-Loop-Szenarien. ",{"type":33,"tag":56,"props":741,"children":742},{},[743],{"type":38,"value":322},{"type":38,"value":745}," Akzeptanzflow ist nicht-deterministisch – wann Agent A Agent B antwortet, ist unklar.",{"type":33,"tag":41,"props":747,"children":749},{"id":748},"parallele-vs-serielle-topologie-trade-off-matrix",[750],{"type":38,"value":751},"Parallele vs. Serielle Topologie: Trade-off Matrix",{"type":33,"tag":753,"props":754,"children":755},"table",{},[756,790],{"type":33,"tag":757,"props":758,"children":759},"thead",{},[760],{"type":33,"tag":761,"props":762,"children":763},"tr",{},[764,770,775,780,785],{"type":33,"tag":765,"props":766,"children":767},"th",{},[768],{"type":38,"value":769},"Architektur",{"type":33,"tag":765,"props":771,"children":772},{},[773],{"type":38,"value":774},"Latenz",{"type":33,"tag":765,"props":776,"children":777},{},[778],{"type":38,"value":779},"Kosten",{"type":33,"tag":765,"props":781,"children":782},{},[783],{"type":38,"value":784},"Komplexität",{"type":33,"tag":765,"props":786,"children":787},{},[788],{"type":38,"value":789},"Einsatz",{"type":33,"tag":791,"props":792,"children":793},"tbody",{},[794,826,857,887],{"type":33,"tag":761,"props":795,"children":796},{},[797,806,811,816,821],{"type":33,"tag":798,"props":799,"children":800},"td",{},[801],{"type":33,"tag":56,"props":802,"children":803},{},[804],{"type":38,"value":805},"Seriell (Sequential)",{"type":33,"tag":798,"props":807,"children":808},{},[809],{"type":38,"value":810},"Hoch (N×t)",{"type":33,"tag":798,"props":812,"children":813},{},[814],{"type":38,"value":815},"Niedrig (1 LLM pro Durchlauf)",{"type":33,"tag":798,"props":817,"children":818},{},[819],{"type":38,"value":820},"Niedrig",{"type":33,"tag":798,"props":822,"children":823},{},[824],{"type":38,"value":825},"Deterministische Pipelines (Daten → Analyse → Report)",{"type":33,"tag":761,"props":827,"children":828},{},[829,837,842,847,852],{"type":33,"tag":798,"props":830,"children":831},{},[832],{"type":33,"tag":56,"props":833,"children":834},{},[835],{"type":38,"value":836},"Parallel (Fork-Join)",{"type":33,"tag":798,"props":838,"children":839},{},[840],{"type":38,"value":841},"Niedrig (max(t₁, t₂, t₃))",{"type":33,"tag":798,"props":843,"children":844},{},[845],{"type":38,"value":846},"Hoch (N Agenten gleichzeitig)",{"type":33,"tag":798,"props":848,"children":849},{},[850],{"type":38,"value":851},"Mittel",{"type":33,"tag":798,"props":853,"children":854},{},[855],{"type":38,"value":856},"Unabhängige Aufgaben (3 APIs gleichzeitig abfragen)",{"type":33,"tag":761,"props":858,"children":859},{},[860,868,873,877,882],{"type":33,"tag":798,"props":861,"children":862},{},[863],{"type":33,"tag":56,"props":864,"children":865},{},[866],{"type":38,"value":867},"Conditional (DAG)",{"type":33,"tag":798,"props":869,"children":870},{},[871],{"type":38,"value":872},"Variabel",{"type":33,"tag":798,"props":874,"children":875},{},[876],{"type":38,"value":851},{"type":33,"tag":798,"props":878,"children":879},{},[880],{"type":38,"value":881},"Hoch",{"type":33,"tag":798,"props":883,"children":884},{},[885],{"type":38,"value":886},"Dynamische Abläufe (Daten fehlend → X, OK → Y)",{"type":33,"tag":761,"props":888,"children":889},{},[890,898,903,907,911],{"type":33,"tag":798,"props":891,"children":892},{},[893],{"type":33,"tag":56,"props":894,"children":895},{},[896],{"type":38,"value":897},"Conversational",{"type":33,"tag":798,"props":899,"children":900},{},[901],{"type":38,"value":902},"Unvorhersehbar",{"type":33,"tag":798,"props":904,"children":905},{},[906],{"type":38,"value":851},{"type":33,"tag":798,"props":908,"children":909},{},[910],{"type":38,"value":881},{"type":33,"tag":798,"props":912,"children":913},{},[914],{"type":38,"value":915},"Human-in-the-Loop oder Verhandlungen",{"type":33,"tag":34,"props":917,"children":918},{},[919,924],{"type":33,"tag":56,"props":920,"children":921},{},[922],{"type":38,"value":923},"Production-Entscheidung:",{"type":38,"value":925}," Falls die Verarbeitung nicht im kritischen Pfad liegt (z.B. Offline-Report-Generierung), wähle serielle Topologie – Debugging ist einfacher, Kosten niedrig. Falls es ein Latenz-SLA gibt (z.B. Real-time Dashboard), parallelisiere – aber implementiere Retry-Logik von Anfang an, sonst blockiert ein timeout-Fehler alle 3 Agenten.",{"type":33,"tag":41,"props":927,"children":929},{"id":928},"tool-use-koordination-race-conditions-vermeiden",[930],{"type":38,"value":931},"Tool-Use-Koordination: Race Conditions vermeiden",{"type":33,"tag":34,"props":933,"children":934},{},[935],{"type":38,"value":936},"Im Multi-Agent-System ist der häufigste Bug: Zwei Agenten rufen dasselbe Tool mit unterschiedlichen Parametern gleichzeitig auf, einer zerstört den State des anderen.",{"type":33,"tag":34,"props":938,"children":939},{},[940,945,947,953,955,960],{"type":33,"tag":56,"props":941,"children":942},{},[943],{"type":38,"value":944},"Beispiel:",{"type":38,"value":946}," Agent A erstellt ",{"type":33,"tag":123,"props":948,"children":950},{"className":949},[],[951],{"type":38,"value":952},"temp_table_x",{"type":38,"value":954}," in BigQuery, Agent B versucht gleichzeitig ",{"type":33,"tag":123,"props":956,"children":958},{"className":957},[],[959],{"type":38,"value":952},{"type":38,"value":961}," zu lesen – \"Tabelle existiert nicht\"-Fehler. Dieser Race Condition wird auf der Orchestrierungs-Ebene gelöst:",{"type":33,"tag":34,"props":963,"children":964},{},[965,970,972,978],{"type":33,"tag":56,"props":966,"children":967},{},[968],{"type":38,"value":969},"1. Resource Locking:",{"type":38,"value":971}," Wenn Agent A ein Tool nutzt, sperrt der Orchestrator das Tool für andere Agenten. In LangGraph mit ",{"type":33,"tag":123,"props":973,"children":975},{"className":974},[],[976],{"type":38,"value":977},"shared_state",{"type":38,"value":979},":",{"type":33,"tag":116,"props":981,"children":983},{"className":118,"code":982,"language":120,"meta":17,"style":17},"if not state.lock_acquired(\"bigquery\"):\n    return {\"status\": \"waiting\"}\nstate.acquire_lock(\"bigquery\")\nresult = bigquery_tool.run()\nstate.release_lock(\"bigquery\")\n",[984],{"type":33,"tag":123,"props":985,"children":986},{"__ignoreMap":17},[987,1015,1048,1064,1080],{"type":33,"tag":127,"props":988,"children":989},{"class":129,"line":130},[990,995,1000,1005,1010],{"type":33,"tag":127,"props":991,"children":992},{"style":134},[993],{"type":38,"value":994},"if",{"type":33,"tag":127,"props":996,"children":997},{"style":134},[998],{"type":38,"value":999}," not",{"type":33,"tag":127,"props":1001,"children":1002},{"style":140},[1003],{"type":38,"value":1004}," state.lock_acquired(",{"type":33,"tag":127,"props":1006,"children":1007},{"style":194},[1008],{"type":38,"value":1009},"\"bigquery\"",{"type":33,"tag":127,"props":1011,"children":1012},{"style":140},[1013],{"type":38,"value":1014},"):\n",{"type":33,"tag":127,"props":1016,"children":1017},{"class":129,"line":156},[1018,1023,1028,1033,1038,1043],{"type":33,"tag":127,"props":1019,"children":1020},{"style":134},[1021],{"type":38,"value":1022},"    return",{"type":33,"tag":127,"props":1024,"children":1025},{"style":140},[1026],{"type":38,"value":1027}," {",{"type":33,"tag":127,"props":1029,"children":1030},{"style":194},[1031],{"type":38,"value":1032},"\"status\"",{"type":33,"tag":127,"props":1034,"children":1035},{"style":140},[1036],{"type":38,"value":1037},": ",{"type":33,"tag":127,"props":1039,"children":1040},{"style":194},[1041],{"type":38,"value":1042},"\"waiting\"",{"type":33,"tag":127,"props":1044,"children":1045},{"style":140},[1046],{"type":38,"value":1047},"}\n",{"type":33,"tag":127,"props":1049,"children":1050},{"class":129,"line":166},[1051,1056,1060],{"type":33,"tag":127,"props":1052,"children":1053},{"style":140},[1054],{"type":38,"value":1055},"state.acquire_lock(",{"type":33,"tag":127,"props":1057,"children":1058},{"style":194},[1059],{"type":38,"value":1009},{"type":33,"tag":127,"props":1061,"children":1062},{"style":140},[1063],{"type":38,"value":290},{"type":33,"tag":127,"props":1065,"children":1066},{"class":129,"line":185},[1067,1071,1075],{"type":33,"tag":127,"props":1068,"children":1069},{"style":140},[1070],{"type":38,"value":530},{"type":33,"tag":127,"props":1072,"children":1073},{"style":134},[1074],{"type":38,"value":177},{"type":33,"tag":127,"props":1076,"children":1077},{"style":140},[1078],{"type":38,"value":1079}," bigquery_tool.run()\n",{"type":33,"tag":127,"props":1081,"children":1082},{"class":129,"line":205},[1083,1088,1092],{"type":33,"tag":127,"props":1084,"children":1085},{"style":140},[1086],{"type":38,"value":1087},"state.release_lock(",{"type":33,"tag":127,"props":1089,"children":1090},{"style":194},[1091],{"type":38,"value":1009},{"type":33,"tag":127,"props":1093,"children":1094},{"style":140},[1095],{"type":38,"value":290},{"type":33,"tag":34,"props":1097,"children":1098},{},[1099,1104,1106,1112,1114,1120,1122,1128],{"type":33,"tag":56,"props":1100,"children":1101},{},[1102],{"type":38,"value":1103},"2. Namespace Isolation:",{"type":38,"value":1105}," Gib jedem Agenten einen separaten Workspace. Agent A nutzt ",{"type":33,"tag":123,"props":1107,"children":1109},{"className":1108},[],[1110],{"type":38,"value":1111},"workspace_a\u002Ftemp_table",{"type":38,"value":1113},", Agent B ",{"type":33,"tag":123,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":38,"value":1119},"workspace_b\u002Ftemp_table",{"type":38,"value":1121},". In CrewAI über ",{"type":33,"tag":123,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":38,"value":1127},"agent_id",{"type":38,"value":1129},"-Präfixe.",{"type":33,"tag":34,"props":1131,"children":1132},{},[1133,1138,1140,1146,1148,1154,1156,1162],{"type":33,"tag":56,"props":1134,"children":1135},{},[1136],{"type":38,"value":1137},"3. Idempotente Tool-Design:",{"type":38,"value":1139}," Schreib Tools von Anfang an idempotent – zweimal mit denselben Parametern aufgerufen, ohne Konflikt. Nutze ",{"type":33,"tag":123,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":38,"value":1145},"upsert",{"type":38,"value":1147}," oder ",{"type":33,"tag":123,"props":1149,"children":1151},{"className":1150},[],[1152],{"type":38,"value":1153},"create_or_replace",{"type":38,"value":1155}," statt ",{"type":33,"tag":123,"props":1157,"children":1159},{"className":1158},[],[1160],{"type":38,"value":1161},"insert",{"type":38,"value":1163},".",{"type":33,"tag":41,"props":1165,"children":1167},{"id":1166},"observability-agent-traces-verstehen",[1168],{"type":38,"value":1169},"Observability: Agent-Traces verstehen",{"type":33,"tag":34,"props":1171,"children":1172},{},[1173],{"type":38,"value":1174},"In Production laufen 5 Agenten, einer gibt einen Fehler aus – welcher? Tools wie LangSmith, Helicone, Arize sammeln Agent-Level-Traces, aber manuelle Instrumentierung ist unverzichtlich.",{"type":33,"tag":34,"props":1176,"children":1177},{},[1178],{"type":33,"tag":56,"props":1179,"children":1180},{},[1181],{"type":38,"value":1182},"Kritische Metriken:",{"type":33,"tag":1184,"props":1185,"children":1186},"ul",{},[1187,1206,1216,1226],{"type":33,"tag":1188,"props":1189,"children":1190},"li",{},[1191,1196,1198,1204],{"type":33,"tag":56,"props":1192,"children":1193},{},[1194],{"type":38,"value":1195},"Agent Latenz pro Schritt:",{"type":38,"value":1197}," Welcher Agent brauchte wie lange? In parallelen Forks zeigt der ",{"type":33,"tag":123,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":38,"value":1203},"max(latency)",{"type":38,"value":1205}," den Bottleneck.",{"type":33,"tag":1188,"props":1207,"children":1208},{},[1209,1214],{"type":33,"tag":56,"props":1210,"children":1211},{},[1212],{"type":38,"value":1213},"Tool-Call Success Rate:",{"type":38,"value":1215}," Wie oft hat jeder Agent welches Tool aufgerufen? Erfolgsquote unter 95% ist Warnsignal.",{"type":33,"tag":1188,"props":1217,"children":1218},{},[1219,1224],{"type":33,"tag":56,"props":1220,"children":1221},{},[1222],{"type":38,"value":1223},"Retry Count:",{"type":38,"value":1225}," Wie oft hat sich ein Agent selbst wiederholt? Häufige Retries deuten auf fehlerhafte Prompts oder falsche Tool-Spezifikationen hin.",{"type":33,"tag":1188,"props":1227,"children":1228},{},[1229,1234],{"type":33,"tag":56,"props":1230,"children":1231},{},[1232],{"type":38,"value":1233},"State Transition Diagram:",{"type":38,"value":1235}," Bei LangGraph: Von welchem Knoten zu welchem wurde wie oft gewechselt? Unendliche Schleifen sind hier sichtbar.",{"type":33,"tag":116,"props":1237,"children":1239},{"className":118,"code":1238,"language":120,"meta":17,"style":17},"# LangSmith Integration\nfrom langsmith import Client\n\nclient = Client()\nwith client.trace(run_name=\"multi_agent_pipeline\") as run:\n    for agent in agents:\n        with run.create_child(name=agent.name):\n            agent.run()\n",[1240],{"type":33,"tag":123,"props":1241,"children":1242},{"__ignoreMap":17},[1243,1252,1273,1280,1297,1339,1362,1389],{"type":33,"tag":127,"props":1244,"children":1245},{"class":129,"line":130},[1246],{"type":33,"tag":127,"props":1247,"children":1249},{"style":1248},"--shiki-default:#6A737D",[1250],{"type":38,"value":1251},"# LangSmith Integration\n",{"type":33,"tag":127,"props":1253,"children":1254},{"class":129,"line":156},[1255,1259,1264,1268],{"type":33,"tag":127,"props":1256,"children":1257},{"style":134},[1258],{"type":38,"value":137},{"type":33,"tag":127,"props":1260,"children":1261},{"style":140},[1262],{"type":38,"value":1263}," langsmith ",{"type":33,"tag":127,"props":1265,"children":1266},{"style":134},[1267],{"type":38,"value":148},{"type":33,"tag":127,"props":1269,"children":1270},{"style":140},[1271],{"type":38,"value":1272}," Client\n",{"type":33,"tag":127,"props":1274,"children":1275},{"class":129,"line":166},[1276],{"type":33,"tag":127,"props":1277,"children":1278},{"emptyLinePlaceholder":160},[1279],{"type":38,"value":163},{"type":33,"tag":127,"props":1281,"children":1282},{"class":129,"line":185},[1283,1288,1292],{"type":33,"tag":127,"props":1284,"children":1285},{"style":140},[1286],{"type":38,"value":1287},"client ",{"type":33,"tag":127,"props":1289,"children":1290},{"style":134},[1291],{"type":38,"value":177},{"type":33,"tag":127,"props":1293,"children":1294},{"style":140},[1295],{"type":38,"value":1296}," Client()\n",{"type":33,"tag":127,"props":1298,"children":1299},{"class":129,"line":205},[1300,1305,1310,1315,1319,1324,1329,1334],{"type":33,"tag":127,"props":1301,"children":1302},{"style":134},[1303],{"type":38,"value":1304},"with",{"type":33,"tag":127,"props":1306,"children":1307},{"style":140},[1308],{"type":38,"value":1309}," client.trace(",{"type":33,"tag":127,"props":1311,"children":1312},{"style":389},[1313],{"type":38,"value":1314},"run_name",{"type":33,"tag":127,"props":1316,"children":1317},{"style":134},[1318],{"type":38,"value":177},{"type":33,"tag":127,"props":1320,"children":1321},{"style":194},[1322],{"type":38,"value":1323},"\"multi_agent_pipeline\"",{"type":33,"tag":127,"props":1325,"children":1326},{"style":140},[1327],{"type":38,"value":1328},") ",{"type":33,"tag":127,"props":1330,"children":1331},{"style":134},[1332],{"type":38,"value":1333},"as",{"type":33,"tag":127,"props":1335,"children":1336},{"style":140},[1337],{"type":38,"value":1338}," run:\n",{"type":33,"tag":127,"props":1340,"children":1341},{"class":129,"line":223},[1342,1347,1352,1357],{"type":33,"tag":127,"props":1343,"children":1344},{"style":134},[1345],{"type":38,"value":1346},"    for",{"type":33,"tag":127,"props":1348,"children":1349},{"style":140},[1350],{"type":38,"value":1351}," agent ",{"type":33,"tag":127,"props":1353,"children":1354},{"style":134},[1355],{"type":38,"value":1356},"in",{"type":33,"tag":127,"props":1358,"children":1359},{"style":140},[1360],{"type":38,"value":1361}," agents:\n",{"type":33,"tag":127,"props":1363,"children":1364},{"class":129,"line":232},[1365,1370,1375,1380,1384],{"type":33,"tag":127,"props":1366,"children":1367},{"style":134},[1368],{"type":38,"value":1369},"        with",{"type":33,"tag":127,"props":1371,"children":1372},{"style":140},[1373],{"type":38,"value":1374}," run.create_child(",{"type":33,"tag":127,"props":1376,"children":1377},{"style":389},[1378],{"type":38,"value":1379},"name",{"type":33,"tag":127,"props":1381,"children":1382},{"style":134},[1383],{"type":38,"value":177},{"type":33,"tag":127,"props":1385,"children":1386},{"style":140},[1387],{"type":38,"value":1388},"agent.name):\n",{"type":33,"tag":127,"props":1390,"children":1391},{"class":129,"line":246},[1392],{"type":33,"tag":127,"props":1393,"children":1394},{"style":140},[1395],{"type":38,"value":1396},"            agent.run()\n",{"type":33,"tag":41,"props":1398,"children":1400},{"id":1399},"context-window-management-shared-memory-vs-isolated",[1401],{"type":38,"value":1402},"Context Window Management: Shared Memory vs. Isolated",{"type":33,"tag":34,"props":1404,"children":1405},{},[1406],{"type":38,"value":1407},"Im Multi-Agent-System ist Context Window die kritischste Ressource. Wenn 5 Agenten existieren – teilen sie sich das gleiche 128K Token-Fenster, oder kriegt jeder 128K?",{"type":33,"tag":34,"props":1409,"children":1410},{},[1411,1416],{"type":33,"tag":56,"props":1412,"children":1413},{},[1414],{"type":38,"value":1415},"Shared Memory (LangGraph-Default):",{"type":38,"value":1417}," Alle Agenten lesen und schreiben auf das gleiche State-Objekt. Vorteil: Agent A's Ergebnisse fließen automatisch in Agent B. Nachteil: Context-Verschmutzung – Agent C benötigt Daten gar nicht, aber sie füllen das Fenster.",{"type":33,"tag":34,"props":1419,"children":1420},{},[1421,1426],{"type":33,"tag":56,"props":1422,"children":1423},{},[1424],{"type":38,"value":1425},"Isolated Memory + Message Passing:",{"type":38,"value":1427}," Jeder Agent hat seinen eigenen State, teilt nur notwendige Daten als Nachrichten. CrewAI nutzt dieses Pattern. Vorteil: Token-Effizienz ist hoch. Nachteil: Manuelle Serialisierung von Daten nötig.",{"type":33,"tag":34,"props":1429,"children":1430},{},[1431,1436,1438,1444],{"type":33,"tag":56,"props":1432,"children":1433},{},[1434],{"type":38,"value":1435},"Hybrid (empfohlen):",{"type":38,"value":1437}," Shared State enthält nur Metadaten (welcher Agent was wann getan hat), echte Daten landen auf Disk\u002FDB, Agenten kriegen nur References. Beispiel: BigQuery-Result nach GCS schreiben, Agent bekommt ",{"type":33,"tag":123,"props":1439,"children":1441},{"className":1440},[],[1442],{"type":38,"value":1443},"gs:\u002F\u002Fbucket\u002Fresult.parquet",{"type":38,"value":1445},"-Pfad.",{"type":33,"tag":41,"props":1447,"children":1449},{"id":1448},"fehlerbehandlung-was-passiert-wenn-ein-agent-ausfällt",[1450],{"type":38,"value":1451},"Fehlerbehandlung: Was passiert, wenn ein Agent ausfällt?",{"type":33,"tag":34,"props":1453,"children":1454},{},[1455],{"type":38,"value":1456},"In serieller Topologie: Agent 2 fällt, Pipeline stoppt – einfach. In paralleler: Agent B fällt, aber A und C laufen weiter – Dein Report entsteht mit unvollständigen Daten. Auf der Orchestrierungs-Ebene brauchst Du \"Partial Success\"-Logik.",{"type":33,"tag":34,"props":1458,"children":1459},{},[1460],{"type":33,"tag":56,"props":1461,"children":1462},{},[1463],{"type":38,"value":1464},"Strategien:",{"type":33,"tag":1466,"props":1467,"children":1468},"ol",{},[1469,1479,1489],{"type":33,"tag":1188,"props":1470,"children":1471},{},[1472,1477],{"type":33,"tag":56,"props":1473,"children":1474},{},[1475],{"type":38,"value":1476},"Fail-Fast (für Seriell):",{"type":38,"value":1478}," Erster Fehler stoppt alles. Wenn Latenz nicht kritisch, nutze das.",{"type":33,"tag":1188,"props":1480,"children":1481},{},[1482,1487],{"type":33,"tag":56,"props":1483,"children":1484},{},[1485],{"type":38,"value":1486},"Best-Effort (für Parallel):",{"type":38,"value":1488}," Starten so viele Agenten wie möglich, generiere Output auch mit unvollständigen Daten – aber markiere den Output mit \"incomplete\"-Flag.",{"type":33,"tag":1188,"props":1490,"children":1491},{},[1492,1497],{"type":33,"tag":56,"props":1493,"children":1494},{},[1495],{"type":38,"value":1496},"Retry with Fallback:",{"type":38,"value":1498}," Agent A scheitert 3x, Agent A_backup übernimmt (anderes Modell oder anderes Prompt).",{"type":33,"tag":116,"props":1500,"children":1502},{"className":118,"code":1501,"language":120,"meta":17,"style":17},"# LangGraph Retry\nworkflow.add_node(\"agent_a\", agent_a, retry_policy={\"max_attempts\": 3})\nworkflow.add_edge(\"agent_a\", \"agent_a_backup\", condition=\"failed\")\n",[1503],{"type":33,"tag":123,"props":1504,"children":1505},{"__ignoreMap":17},[1506,1514,1562],{"type":33,"tag":127,"props":1507,"children":1508},{"class":129,"line":130},[1509],{"type":33,"tag":127,"props":1510,"children":1511},{"style":1248},[1512],{"type":38,"value":1513},"# LangGraph Retry\n",{"type":33,"tag":127,"props":1515,"children":1516},{"class":129,"line":156},[1517,1521,1526,1531,1536,1540,1544,1549,1553,1558],{"type":33,"tag":127,"props":1518,"children":1519},{"style":140},[1520],{"type":38,"value":191},{"type":33,"tag":127,"props":1522,"children":1523},{"style":194},[1524],{"type":38,"value":1525},"\"agent_a\"",{"type":33,"tag":127,"props":1527,"children":1528},{"style":140},[1529],{"type":38,"value":1530},", agent_a, ",{"type":33,"tag":127,"props":1532,"children":1533},{"style":389},[1534],{"type":38,"value":1535},"retry_policy",{"type":33,"tag":127,"props":1537,"children":1538},{"style":134},[1539],{"type":38,"value":177},{"type":33,"tag":127,"props":1541,"children":1542},{"style":140},[1543],{"type":38,"value":639},{"type":33,"tag":127,"props":1545,"children":1546},{"style":194},[1547],{"type":38,"value":1548},"\"max_attempts\"",{"type":33,"tag":127,"props":1550,"children":1551},{"style":140},[1552],{"type":38,"value":1037},{"type":33,"tag":127,"props":1554,"children":1555},{"style":642},[1556],{"type":38,"value":1557},"3",{"type":33,"tag":127,"props":1559,"children":1560},{"style":140},[1561],{"type":38,"value":650},{"type":33,"tag":127,"props":1563,"children":1564},{"class":129,"line":166},[1565,1570,1574,1578,1583,1587,1592,1596,1601],{"type":33,"tag":127,"props":1566,"children":1567},{"style":140},[1568],{"type":38,"value":1569},"workflow.add_edge(",{"type":33,"tag":127,"props":1571,"children":1572},{"style":194},[1573],{"type":38,"value":1525},{"type":33,"tag":127,"props":1575,"children":1576},{"style":140},[1577],{"type":38,"value":406},{"type":33,"tag":127,"props":1579,"children":1580},{"style":194},[1581],{"type":38,"value":1582},"\"agent_a_backup\"",{"type":33,"tag":127,"props":1584,"children":1585},{"style":140},[1586],{"type":38,"value":406},{"type":33,"tag":127,"props":1588,"children":1589},{"style":389},[1590],{"type":38,"value":1591},"condition",{"type":33,"tag":127,"props":1593,"children":1594},{"style":134},[1595],{"type":38,"value":177},{"type":33,"tag":127,"props":1597,"children":1598},{"style":194},[1599],{"type":38,"value":1600},"\"failed\"",{"type":33,"tag":127,"props":1602,"children":1603},{"style":140},[1604],{"type":38,"value":290},{"type":33,"tag":41,"props":1606,"children":1608},{"id":1607},"production-checklist-multi-agent-system-vor-launch",[1609],{"type":38,"value":1610},"Production Checklist: Multi-Agent-System vor Launch",{"type":33,"tag":1184,"props":1612,"children":1613},{},[1614,1624,1634,1644,1654],{"type":33,"tag":1188,"props":1615,"children":1616},{},[1617,1622],{"type":33,"tag":56,"props":1618,"children":1619},{},[1620],{"type":38,"value":1621},"Token-Budget berechnen:",{"type":38,"value":1623}," 5 Agenten × 10K Token Input × 2K Output × API-Preis = Kosten pro Run. 1000 Runs\u002FTag = Monatsende wie?",{"type":33,"tag":1188,"props":1625,"children":1626},{},[1627,1632],{"type":33,"tag":56,"props":1628,"children":1629},{},[1630],{"type":38,"value":1631},"Latenz-SLA festlegen:",{"type":38,"value":1633}," Wie lange darf jeder Agent maximal dauern? Wenn P95 Latenz >10 Sekunden, brauchst Du Parallelisierung.",{"type":33,"tag":1188,"props":1635,"children":1636},{},[1637,1642],{"type":33,"tag":56,"props":1638,"children":1639},{},[1640],{"type":38,"value":1641},"Rollback-Plan:",{"type":38,"value":1643}," Prompt-Update bei einem Agenten bricht die ganze Pipeline. Versionskontrolle + Canary Deployment sind Pflicht.",{"type":33,"tag":1188,"props":1645,"children":1646},{},[1647,1652],{"type":33,"tag":56,"props":1648,"children":1649},{},[1650],{"type":38,"value":1651},"Human-in-the-Loop Punkt:",{"type":38,"value":1653}," Bei kritischen Entscheidungen (z.B. Budget-Adjustments) Agenten-Output vor Human zeigen, Freigabe einholen.",{"type":33,"tag":1188,"props":1655,"children":1656},{},[1657,1662],{"type":33,"tag":56,"props":1658,"children":1659},{},[1660],{"type":38,"value":1661},"Audit Log:",{"type":38,"value":1663}," Jeder Schritt jedes Agenten – welches Tool mit welchen Parametern, was zurück – als JSON nach S3. Für Compliance unverzichtbar.",{"type":33,"tag":34,"props":1665,"children":1666},{},[1667],{"type":38,"value":1668},"Multi-Agent-Orchestrierung ist LLM Engineering's \"Systemdesign-Kurs\". Du startest mit einem LLM-Aufruf, in Production brauchst Du Topologie, State Management, Retry-Logik, Observability. LangGraph, CrewAI, AutoGen sind Grundgerüste – die eigentliche Arbeit ist, Deine Agenten für den Use Case richtig zu sequenzieren und zu parallelisieren. Prototyp nehmen, Latenz messen, Kosten-Simulation laufen lassen, Topologie wählen. Nie ohne vorherige Tests in Production – zwischen \"läuft\" und \"production-ready\" liegen Welten.",{"type":33,"tag":1670,"props":1671,"children":1672},"style",{},[1673],{"type":38,"value":1674},"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":17,"searchDepth":166,"depth":166,"links":1676},[1677,1678,1679,1680,1681,1682,1683,1684],{"id":43,"depth":156,"text":46},{"id":101,"depth":156,"text":104},{"id":748,"depth":156,"text":751},{"id":928,"depth":156,"text":931},{"id":1166,"depth":156,"text":1169},{"id":1399,"depth":156,"text":1402},{"id":1448,"depth":156,"text":1451},{"id":1607,"depth":156,"text":1610},"markdown","content:de:ai:multi-agent-orchestrierung-ein-llm-aufruf-zu-systemen.md","content","de\u002Fai\u002Fmulti-agent-orchestrierung-ein-llm-aufruf-zu-systemen.md","de\u002Fai\u002Fmulti-agent-orchestrierung-ein-llm-aufruf-zu-systemen","md",1785967477951]