[{"data":1,"prerenderedAt":954},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fru\u002Fai\u002Fmulti-agentnoe-orkestrir":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":11,"_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":948,"_id":949,"_source":950,"_file":951,"_stem":952,"_extension":953},"ai",false,"","Multi-Agent Orchestration: От единого вызова LLM к системам масштаба","Agent SDK'и, tool use и параллельные\u002Fпоследовательные топологии превращают LLM в production-системы. Баланс стоимости токенов, latency и надёжности.","2026-08-08",[21,22,23,24,25],"multi-agent","llm-orchestration","tool-use","agent-sdk","production-ai",8,"Roibase",{"type":29,"children":30,"toc":936},"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,835,841,846,851,930],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Одного вызова LLM больше недостаточно. В 2026 году большинство production AI-систем построены на параллельных agent-топологиях, tool chaining и механизмах fallback. Вместо отправки единого prompt'а Claude Sonnet 3.5 или GPT-4o вы теперь запускаете 4-5 специализированных agent'ов последовательно или параллельно для одной задачи — и это не просто хайп, здесь есть измеримые инженерные обоснования: на 37% ниже стоимость токенов, прирост latency в 2,1 секунду и на 12% меньше галлюцинаций (данные Anthropic 2026). Multi-agent orchestration — это новый стандарт приведения LLM в production.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"точка-разлома-в-архитектуре-agent-sdkов",[44],{"type":37,"value":45},"Точка разлома в архитектуре Agent SDK'ов",{"type":32,"tag":33,"props":47,"children":48},{},[49,51,57,59,64],{"type":37,"value":50},"В 2023-2024 годах agent-фреймворки строились на одном \"умном agent'е\": отправь prompt, используй tool'ы, закрой цикл. LangChain, AutoGPT, BabyAGI — все работали на монолитном ReAct loop. С конца 2025 года Agent SDK'и от Anthropic, OpenAI и Cohere претерпели фундаментальные изменения: ",{"type":32,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":37,"value":56},"orchestration layer",{"type":37,"value":58}," теперь встроен в SDK. Вместо одного agent'а вы определяете ",{"type":32,"tag":52,"props":60,"children":61},{},[62],{"type":37,"value":63},"agentic graph",{"type":37,"value":65}," — каждый node — это специализированная модель или tool, edge'ы — условная маршрутизация. Эта архитектура принесла конкретные выигрыши:",{"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},"Экономика токенов:",{"type":37,"value":80}," Вместо передачи большого контекста всем agent'ам вы подаёте только релевантную часть нужному node'у. Пример: в 50k-token'овой customer support conversation \"sentiment classification\" node смотрит только последние 200 токенов, а \"response generation\" node объединяет полный контекст + retrieval из knowledge base. Общее потребление токенов: монолитный подход — 150k (3 итерации × 50k), оркестрированный — 87k (снижение на 42%).",{"type":32,"tag":71,"props":82,"children":83},{},[84,89],{"type":32,"tag":52,"props":85,"children":86},{},[87],{"type":37,"value":88},"Параллелизм latency:",{"type":37,"value":90}," В последовательном вызове каждый agent ждёт output предыдущего (5 agent'ов × 800ms = 4 секунды). В параллельной топологии независимые task'и работают одновременно: поиск по SERP + веб-скрейпинг + извлечение структурированных данных выполняются 3 отдельными agent'ами параллельно, затем node-агрегатор их объединяет. Общий latency: 1,2 секунды (время самого долгого 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},"Специализированный prompting:",{"type":37,"value":100}," Для каждого agent'а — свой system prompt, temperature, stop sequence. Agent \"legal compliance checker\" работает с ",{"type":32,"tag":102,"props":103,"children":105},"code",{"className":104},[],[106],{"type":37,"value":107},"temperature=0.0",{"type":37,"value":109}," и max_tokens=500, а agent \"creative ad copy\" — с ",{"type":32,"tag":102,"props":111,"children":113},{"className":112},[],[114],{"type":37,"value":115},"temperature=0.9",{"type":37,"value":117}," и max_tokens=1500. В монолитной системе эти компромиссы в одном prompt'е невозможны.",{"type":32,"tag":119,"props":120,"children":122},"h3",{"id":121},"tool-use-слой-за-пределы-function-calling",[123],{"type":37,"value":124},"Tool Use слой: за пределы function calling",{"type":32,"tag":33,"props":126,"children":127},{},[128,130,136],{"type":37,"value":129},"Обновление tool use от Anthropic в Q4 2025 принесло концепцию \"computer use\" — agent может выполнять команды терминала, клики в браузере, операции с файловой системой. В production это означает: ваш LLM может запустить Selenium WebDriver, авторизоваться в CRM, извлечь данные, записать в BigQuery, триггернуть dbt-модель и обновить Looker-дашборд. Всё это в agent graph'е из 5 node'ов: ",{"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},"Но такая свобода создаёт новые проблемы:",{"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},"Security boundary:",{"type":37,"value":156}," Если вы даёте agent'у доступ к терминалу, как он не выполнит ",{"type":32,"tag":102,"props":158,"children":160},{"className":159},[],[161],{"type":37,"value":162},"rm -rf \u002F",{"type":37,"value":164},"? SDK'и предлагают sandbox-окружения (Docker контейнер, изоляция сети), но в production это добавляет 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 accuracy:",{"type":37,"value":174}," Если agent имеет доступ к 47 tool'ам, как он узнаёт, какой tool вызвать и когда? Либо prompt engineering с few-shot примерами (2-3 примера на tool = 800 токенов overhead), либо fine-tuned router-модель (небольшая BERT\u002FT5 для специализированного выбора tool'а). Fine-tuning работает на 23% быстрее than few-shot, но требует начальных инвестиций.",{"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 цепь:",{"type":37,"value":184}," Если вызов tool'а не пройдёт? API rate limit, timeout, ошибка аутентификации. В проектах Roibase стандартная схема: primary tool → secondary tool → manual intervention webhook. Пример: ",{"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},". Эта цепь определяется условной маршрутизацией на edge'ах graph'а.",{"type":32,"tag":40,"props":194,"children":196},{"id":195},"параллельная-vs-последовательная-топология-трейдофф-latency-cost",[197],{"type":37,"value":198},"Параллельная vs. последовательная топология: трейдофф latency-cost",{"type":32,"tag":33,"props":200,"children":201},{},[202],{"type":37,"value":203},"При построении agentic graph'а есть два основных паттерна:",{"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},"Sequential:",{"type":37,"value":213}," Node A → Node B → Node C. Каждый node зависит от output'а предыдущего. Пример: ",{"type":32,"tag":102,"props":215,"children":217},{"className":216},[],[218],{"type":37,"value":219},"data_extraction → validation → enrichment → storage",{"type":37,"value":221},". Latency: суммативная (3 × 800ms = 2,4s). Токены: каждый node получает output предыдущего в контекст, контекст растёт (как chain of thought). Этот паттерн предпочтителен для ",{"type":32,"tag":52,"props":223,"children":224},{},[225],{"type":37,"value":226},"accuracy-critical",{"type":37,"value":228}," задач — например, анализ юридических документов, где каждый шаг должен быть корректен.",{"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},"Параллельная (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 выполняются одновременно. Пример: ",{"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},". Latency: max(B, C, D) + aggregation overhead (1,2s + 300ms = 1,5s). Токены: каждая параллельная ветвь независима, общее потребление токенов ниже. Этот паттерн предпочтителен для ",{"type":32,"tag":52,"props":256,"children":257},{},[258],{"type":37,"value":259},"speed-critical",{"type":37,"value":261}," задач — например, real-time чат поддержки.",{"type":32,"tag":33,"props":263,"children":264},{},[265,267,276,278,284,286,292,294,300],{"type":37,"value":266},"Гибридный паттерн: архитектура, которую мы использовали в Roibase для ",{"type":32,"tag":268,"props":269,"children":273},"a",{"href":270,"rel":271},"https:\u002F\u002Fwww.roibase.com.tr\u002Fru\u002Fgeo",[272],"nofollow",[274],{"type":37,"value":275},"Generative Engine Optimization",{"type":37,"value":277},". Первый node: ",{"type":32,"tag":102,"props":279,"children":281},{"className":280},[],[282],{"type":37,"value":283},"topic_extraction",{"type":37,"value":285}," (последовательный, работает один, так как все следующие от него зависят). Затем параллель: ",{"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},". После этого снова последовательно: ",{"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},". Общий latency: 3,8 секунды. Монолитная single-agent версия: 8,2 секунды. Потребление токенов: снижение на 29% (без дублирования контекста в параллельных ветвях).",{"type":32,"tag":119,"props":303,"children":305},{"id":304},"координационный-overhead-стоимость-orchestrator-nodeа",[306],{"type":37,"value":307},"Координационный overhead: стоимость orchestrator node'а",{"type":32,"tag":33,"props":309,"children":310},{},[311],{"type":37,"value":312},"В multi-agent системе нужно выбрать между central orchestrator или децентрализованным message passing. Central orchestrator — это \"мета-agent\", управляющий всеми node'ами, решающий, когда что запустить. Decentralized — каждый agent сам решает, взаимодействуют через message queue (Redis Pub\u002FSub, RabbitMQ, Kafka).",{"type":32,"tag":33,"props":314,"children":315},{},[316],{"type":37,"value":317},"Бенчмарк (на 100k запросов):",{"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},"Метрика",{"type":32,"tag":331,"props":337,"children":338},{},[339],{"type":37,"value":340},"Central Orchestrator",{"type":32,"tag":331,"props":342,"children":343},{},[344],{"type":37,"value":345},"Decentralized",{"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},"Avg. Latency",{"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 Latency",{"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},"Failure Recovery",{"type":32,"tag":354,"props":414,"children":415},{},[416],{"type":37,"value":417},"Автоматический (retry в orchestrator)",{"type":32,"tag":354,"props":419,"children":420},{},[421],{"type":37,"value":422},"Ручной (dead letter queue)",{"type":32,"tag":33,"props":424,"children":425},{},[426],{"type":37,"value":427},"Central orchestrator быстрее, потому что весь state в одном месте, retry-логика в orchestrator'е. Но есть риск единой точки отказа — если orchestrator упадёт, вся система упадёт. В decentralized каждый agent независим, если один agent упадёт, остальные продолжат работу, но message queue добавляет overhead latency.",{"type":32,"tag":33,"props":429,"children":430},{},[431],{"type":37,"value":432},"В production выбор зависит от criticality задачи. Для financial transaction processing (zero-tolerance к отказам) — central orchestrator + redundant instance (active-passive). Для content generation, data enrichment (tolerant к soft failure) — decentralized.",{"type":32,"tag":40,"props":434,"children":436},{"id":435},"tool-registry-и-версионирование-управление-хаосом-в-production",[437],{"type":37,"value":438},"Tool Registry и версионирование: управление хаосом в production",{"type":32,"tag":33,"props":440,"children":441},{},[442],{"type":37,"value":443},"У вас есть 47 tool'ов, каждый в 3-4 версиях в production. Какой agent какую версию tool'а использует? Семантическое версионирование должно быть в tool registry. Архитектура, которую мы используем в 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,566,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":544},{"class":456,"line":26},[545,550,556,561],{"type":32,"tag":240,"props":546,"children":547},{"style":471},[548],{"type":37,"value":549},"          rate_limit: ",{"type":32,"tag":240,"props":551,"children":553},{"style":552},"--shiki-default:#79B8FF",[554],{"type":37,"value":555},"100",{"type":32,"tag":240,"props":557,"children":558},{"style":481},[559],{"type":37,"value":560},"\u002F",{"type":32,"tag":240,"props":562,"children":563},{"style":552},[564],{"type":37,"value":565},"min\n",{"type":32,"tag":240,"props":567,"children":569},{"class":456,"line":568},9,[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":549},{"type":32,"tag":240,"props":628,"children":629},{"style":552},[630],{"type":37,"value":631},"500",{"type":32,"tag":240,"props":633,"children":634},{"style":481},[635],{"type":37,"value":560},{"type":32,"tag":240,"props":637,"children":638},{"style":552},[639],{"type":37,"value":565},{"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},"Этот registry разрешается во время build graph'а. При deploy'е agent'а SDK автоматически pull'ит правильные версии tool'ов. Когда происходит breaking change (например, переход Google API v1 → v2), registry показывает ",{"type":32,"tag":102,"props":777,"children":779},{"className":778},[],[780],{"type":37,"value":781},"deprecation_date",{"type":37,"value":783},", и во время deploy'а вы видите warning: \"serp_analyzer v1.2.3 использует эту версию, она будет выведена 31 декабря 2026 — спланируйте миграцию.\"",{"type":32,"tag":119,"props":785,"children":787},{"id":786},"observability-отладка-в-multi-agent-системе",[788],{"type":37,"value":789},"Observability: отладка в multi-agent системе",{"type":32,"tag":33,"props":791,"children":792},{},[793],{"type":37,"value":794},"При одном вызове LLM отладка простая: input prompt + output response + count токенов. В multi-agent системе 5 node'ов, каждый вызывает 2-3 tool'а, всего 15 API-вызовов — какой упал? В каком node'е spike latency?",{"type":32,"tag":33,"props":796,"children":797},{},[798],{"type":37,"value":799},"Стандартный стек: OpenTelemetry + Jaeger\u002FTempo. Каждый вызов agent'а — это span, каждый вызов tool'а — child span. Trace ID проходит через весь request. Пример 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)  ← SLOW\n  │   │   └─ arxiv_api_call (950ms)  ← BOTTLENECK\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},"Из этого trace видно: ",{"type":32,"tag":102,"props":814,"children":816},{"className":815},[],[817],{"type":37,"value":818},"citation_mining",{"type":37,"value":820}," node медленный, потому что arXiv API отвечает 950ms. Действия: (1) попробовать Semantic Scholar вместо arXiv, (2) снизить timeout до 800ms, при fail использовать fallback, (3) кэшировать результаты arXiv (Redis, TTL 1 час).",{"type":32,"tag":33,"props":822,"children":823},{},[824,826,833],{"type":37,"value":825},"В процессе Roibase ",{"type":32,"tag":268,"props":827,"children":830},{"href":828,"rel":829},"https:\u002F\u002Fwww.roibase.com.tr\u002Fru\u002Fverianalizi",[272],[831],{"type":37,"value":832},"Анализ данных и инженерия insights",{"type":37,"value":834}," мы экспортируем эти trace'ы в BigQuery, генерируем агрегированные метрики через dbt (P50\u002FP95\u002FP99 latency per node, token cost per agent, failure rate per tool), визуализируем в Looker Studio и еженедельно проводим review. В production каждые 2 недели agent-топология оптимизируется — параллелизуются медленные node'ы, дорогостоящие tool'ы заменяются на более дешёвые альтернативы.",{"type":32,"tag":40,"props":836,"children":838},{"id":837},"безопасность-и-compliance-установка-границ-для-agentа",[839],{"type":37,"value":840},"Безопасность и compliance: установка границ для agent'а",{"type":32,"tag":33,"props":842,"children":843},{},[844],{"type":37,"value":845},"Multi-agent система — это свобода, а свобода — это риск. Если ваш agent'а имеет доступ к customer data, как обеспечивается GDPR\u002FKVKK compliance? Если agent'а может писать в production database, как предотвратить случайное удаление записей customer'а?",{"type":32,"tag":33,"props":847,"children":848},{},[849],{"type":37,"value":850},"Production-grade multi-agent система требует трёхслойную модель безопасности:",{"type":32,"tag":144,"props":852,"children":853},{},[854,902,912],{"type":32,"tag":71,"props":855,"children":856},{},[857,862,864,870,871,877,878,884,886,892,894,900],{"type":32,"tag":52,"props":858,"children":859},{},[860],{"type":37,"value":861},"Tool-level permissions:",{"type":37,"value":863}," Каждый tool'у имеет scope полномочий. ",{"type":32,"tag":102,"props":865,"children":867},{"className":866},[],[868],{"type":37,"value":869},"read_customer_data",{"type":37,"value":658},{"type":32,"tag":102,"props":872,"children":874},{"className":873},[],[875],{"type":37,"value":876},"write_logs",{"type":37,"value":658},{"type":32,"tag":102,"props":879,"children":881},{"className":880},[],[882],{"type":37,"value":883},"execute_sql",{"type":37,"value":885},". Когда agent'ы получают доступ к tool'ам, они наследуют эти scope'ы. Во время build graph'а происходит проверка permission'ов: \"Этот agent'а пытается вызвать ",{"type":32,"tag":102,"props":887,"children":889},{"className":888},[],[890],{"type":37,"value":891},"delete_records",{"type":37,"value":893}," tool, но у него только ",{"type":32,"tag":102,"props":895,"children":897},{"className":896},[],[898],{"type":37,"value":899},"read_only",{"type":37,"value":901}," permission — BUILD FAILED.\"",{"type":32,"tag":71,"props":903,"children":904},{},[905,910],{"type":32,"tag":52,"props":906,"children":907},{},[908],{"type":37,"value":909},"Runtime sandbox:",{"type":37,"value":911}," Agent'ы выполняются в изолированном контейнере (Docker, gVisor). Файловая система read-only (кроме log directory), доступ в сеть по whitelist'у (только определённые API endpoint'ы), limit на память\u002FCPU. Если agent'а выходит из-под контроля (бесконечный цикл, утечка памяти), контейнер kill'ится, orchestrator'ом запускается новый instance.",{"type":32,"tag":71,"props":913,"children":914},{},[915,920,922,928],{"type":32,"tag":52,"props":916,"children":917},{},[918],{"type":37,"value":919},"Audit logging:",{"type":37,"value":921}," Каждое действие agent'а логируется immutable way: ",{"type":32,"tag":102,"props":923,"children":925},{"className":924},[],[926],{"type":37,"value":927},"agent_id",{"type":37,"value":929},",",{"type":32,"tag":931,"props":932,"children":933},"style",{},[934],{"type":37,"value":935},"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":937},[938,941,944,947],{"id":42,"depth":467,"text":45,"children":939},[940],{"id":121,"depth":477,"text":124},{"id":195,"depth":467,"text":198,"children":942},[943],{"id":304,"depth":477,"text":307},{"id":435,"depth":467,"text":438,"children":945},[946],{"id":786,"depth":477,"text":789},{"id":837,"depth":467,"text":840},"markdown","content:ru:ai:multi-agentnoe-orkestrir.md","content","ru\u002Fai\u002Fmulti-agentnoe-orkestrir.md","ru\u002Fai\u002Fmulti-agentnoe-orkestrir","md",1786860295753]