[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699VE4965P004YKGC5EZ0GE":3,"skill-same:01M699VE4965P004YKGC5EZ0GE":48},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M699VE4965P004YKGC5EZ0GE","deploying-scalable-agents",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79423,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fsr\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[18],"deploying scalable agents","2026-11-10 10:12:30",false,"---\nname: deploying-scalable-agents\nlicense: MIT\n---\n# Распоређивање скалабилних агената помоћу Microsoft Foundry\n\n> Помоћна вештина за [Лекцију 16 – Распоређивање скалабилних агената](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Користите је да помогнете ученику да премести агента из прототипа у скалабилно, посматрано\n> продукционо распоређивање. Свака препорука треба да буде заснована на садржају лекције и\n> радном бележнику који се може покретати; не измишљајте Foundry APIје.\n\n## Окидачи\n\nАктивирајте ову вештину када ученик жели да:\n- Распореди агента у Microsoft Foundry као **домаћинског агента** и учини га верзионисаним\u002Fпосматраним.\n- Изабере између образаца распоређивања **client-hosted, hosted-agent и agent-workflow**.\n- Дода моделско рутирање, кеширање одговора или ограничену конкурентност за контролу латенције и трошкова.\n- Дода капију за процену тако да лоша верзија агента не може бити испоручена.\n- Дода корак **одобрења са човеком у петљи** за радње високог ризика.\n- Означи агента са **OpenTelemetry** праћењем ради продукционог посматрања.\n- Направи **smoke-test** распоређеног агента као брзу проверу након распоређивања.\n\n## Основни ментални модел\n\nПродукциони агент је углавном оперативни костур *око* модела (~80%),\nа не сам модел. Сваку препоруку повежите са неким од ових аспеката:\n\n| Аспект | Прототип → Продукција |\n|---------|------------------------|\n| Хостирање | бележник → верзионисани хостовани сервис |\n| Идентификатор | ваш `az login` → управљани идентитет + ограничен RBAC |\n| Стање | у меморији → екстернализована нит\u002Fскладиште меморије |\n| Неуспех | трацебацк → покушаји, враћања, упозорења |\n| Трошак | \"неколико центи\" → праћено, раутирано, кеширано, буџетирано |\n| Квалитет | визуелна провера → аутоматизована капија за процену |\n| Поверење | ви одобрите → политика + човек у петљи |\n\n## Образци распоређивања (изаберите један, или комбинујте)\n\n1. **Client-hosted** — логика петље ради у вашем процесу. Максимална контрола; ви управљате скалирањем\u002Fстањем.\n2. **Hosted agent (Foundry Agent Service)** — Foundry хостира петљу, чува нитове, спроводи RBAC\u002Fбезбедност садржаја, приказује агента на порталу. Мања контрола, знатно мања оперативна површина.\n3. **Agent workflow** — више агената\u002Fалата састављено у граф са разгранатим тачкама, чворовима за одобрење и трајним контролним тачкама.\n\n## Животни циклус (петља која испоручује агента)\n\n`create → version → evaluate (gate) → deploy hosted → observe online → collect failures → repeat`.\n**Офлајн процена је капија, не нешто споља** — верзија се не \nиспоручује ако не прође праг. Онлајн посматрање враћа стварне неуспехе\nу офлајн сет тестова.\n\n## Руковаоци за скалирање и трошкове (по приоритету)\n\n1. **Правилна величина модела** — користите најмањи модел који пролази капију за процену.\n2. **Рутирање по сложености** — мали\u002Fбрзи модел за једноставне захтеве, велики модел за стварно размишљање (DIY класификатор или Foundry Model Router).\n3. **Кеширање** — служите скоро-дупликатне захтеве без позива модела.\n4. **Дизајн без стања + ограничена конкурентност** — екстернализујте стање; поновите са одлагањем.\n\n## Кључни образци за репродукцију\n\nУкажите ученику на ове из бележника\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Обрада захтева**: кеш → рутирај по сложености → праћење успона → изврши → кеширај.\n- **Капија за процену**: оцењујте офлајн сет тестова; враћа `pass_rate >= threshold` и распоређује само ако је истинито.\n- **Људско одобрење**: `@tool(approval_mode=\"always_require\")` за радње као што су велики повраћаји средстава.\n- **Праћење**: умотајте сваки захтев у `tracer.start_as_current_span(...)` и подесите атрибуте као што су `routed.model`, `customer.id`.\n\n## Тестирање новораспоређеног агента\n\nНакон распореда, проверите да ли крајња тачка заиста одговара (зелено распоређивање може и даље бити\nтихо). Користите [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nакцију преко [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\nса каталогом у [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Извршилац шаље сваки \nупит као POST на `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\nи проверява текст одговора. Идентитет треба да има **Azure AI User** улогу на\nFoundry пројектном опсегу; публика токена мора бити `https:\u002F\u002Fai.azure.com\u002F`.\n\nНаслањајте капије: **smoke test** (доступност\u002Fодговор, сваки распоред) → **офлајн\nпроцена** (довољно добра за отпрему, пре промоције) → **онлајн процена** (како\nсе понаша у реалном окружењу, континуирано).\n\n## Контроле у предузећу\n\n- **RBAC**: дајте сваком домаћинском агенту управљани идентитет са најмањим привилегијама.\n- **MCP у продукцији**: третирајте сваки MCP сервер као непоуздану зону — закључајте верзију, ограничите идентитет, проверавајте излазе, ограничите стопу, никада не откривајте тајне.\n\n## Заштитне ограде за асистента\n\n- Преферирајте канонски образац `FoundryChatClient(...)` + `provider.as_agent(...)` који се користи кроз цео курс.\n- Не обећавајте резултате уживо из Azure које нисте проверили; препоручите smoke-test радни ток да потврдите распоређивање.\n- Држите савете за процену и трошкове повезаним: процена поставља под за квалитет, рутирање\u002Fкеширање држе трошкове близу тог пода.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Изјава о одрицању одговорности**:\nОвај документ је преведен коришћењем услуге за аутоматски превод [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Иако тежимо тачности, имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Распоређивање скалабилних агената помоћу Microsoft Foundry\n\n> Помоћна вештина за [Лекцију 16 – Распоређивање скалабилних агената](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Користите је да помогнете ученику да премести агента из прототипа у скалабилно, посматрано\n> продукционо распоређивање. Свака препорука треба да буде заснована на садржају лекције и\n> радном бележнику који се може покретати; не измишљајте Foundry APIје.\n\n## Окидачи\n\nАктивирајте ову вештину када ученик жели да:\n- Распореди агента у Microsoft Foundry као **домаћинског агента** и учини га верзионисаним\u002Fпосматраним.\n- Изабере између образаца распоређивања **client-hosted, hosted-agent и agent-workflow**.\n- Дода моделско рутирање, кеширање одговора или ограничену конкурентност за контролу латенције и трошкова.\n- Дода капију за процену тако да лоша верзија агента не може бити испоручена.\n- Дода корак **одобрења са човеком у петљи** за радње високог ризика.\n- Означи агента са **OpenTelemetry** праћењем ради продукционог посматрања.\n- Направи **smoke-test** распоређеног агента као брзу проверу након распоређивања.\n\n## Основни ментални модел\n\nПродукциони агент је углавном оперативни костур *око* модела (~80%),\nа не сам модел. Сваку препоруку повежите са неким од ових аспеката:\n\n| Аспект | Прототип → Продукција |\n|---------|------------------------|\n| Хостирање | бележник → верзионисани хостовани сервис |\n| Идентификатор | ваш `az login` → управљани идентитет + ограничен RBAC |\n| Стање | у меморији → екстернализована нит\u002Fскладиште меморије |\n| Неуспех | трацебацк → покушаји, враћања, упозорења |\n| Трошак | \"неколико центи\" → праћено, раутирано, кеширано, буџетирано |\n| Квалитет | визуелна провера → аутоматизована капија за процену |\n| Поверење | ви одобрите → политика + човек у петљи |\n\n## Образци распоређивања (изаберите један, или комбинујте)\n\n1. **Client-hosted** — логика петље ради у вашем процесу. Максимална контрола; ви управљате скалирањем\u002Fстањем.\n2. **Hosted agent (Foundry Agent Service)** — Foundry хостира петљу, чува нитове, спроводи RBAC\u002Fбезбедност садржаја, приказује агента на порталу. Мања контрола, знатно мања оперативна површина.\n3. **Agent workflow** — више агената\u002Fалата састављено у граф са разгранатим тачкама, чворовима за одобрење и трајним контролним тачкама.\n\n## Животни циклус (петља која испоручује агента)\n\n`create → version → evaluate (gate) → deploy hosted → observe online → collect failures → repeat`.\n**Офлајн процена је капија, не нешто споља** — верзија се не \nиспоручује ако не прође праг. Онлајн посматрање враћа стварне неуспехе\nу офлајн сет тестова.\n\n## Руковаоци за скалирање и трошкове (по приоритету)\n\n1. **Правилна величина модела** — користите најмањи модел који пролази капију за процену.\n2. **Рутирање по сложености** — мали\u002Fбрзи модел за једноставне захтеве, велики модел за стварно размишљање (DIY класификатор или Foundry Model Router).\n3. **Кеширање** — служите скоро-дупликатне захтеве без позива модела.\n4. **Дизајн без стања + ограничена конкурентност** — екстернализујте стање; поновите са одлагањем.\n\n## Кључни образци за репродукцију\n\nУкажите ученику на ове из бележника\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Обрада захтева**: кеш → рутирај по сложености → праћење успона → изврши → кеширај.\n- **Капија за процену**: оцењујте офлајн сет тестова; враћа `pass_rate >= threshold` и распоређује само ако је истинито.\n- **Људско одобрење**: `@tool(approval_mode=\"always_require\")` за радње као што су велики повраћаји средстава.\n- **Праћење**: умотајте сваки захтев у `tracer.start_as_current_span(...)` и подесите атрибуте као што су `routed.model`, `customer.id`.\n\n## Тестирање новораспоређеног агента\n\nНакон распореда, проверите да ли крајња тачка заиста одговара (зелено распоређивање може и даље бити\nтихо). Користите [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nакцију преко [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\nса каталогом у [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Извршилац шаље сваки \nупит као POST на `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\nи проверява текст одговора. Идентитет треба да има **Azure AI User** улогу на\nFoundry пројектном опсегу; публика токена мора бити `https:\u002F\u002Fai.azure.com\u002F`.\n\nНаслањајте капије: **smoke test** (доступност\u002Fодговор, сваки распоред) → **офлајн\nпроцена** (довољно добра за отпрему, пре промоције) → **онлајн процена** (како\nсе понаша у реалном окружењу, континуирано).\n\n## Контроле у предузећу\n\n- **RBAC**: дајте сваком домаћинском агенту управљани идентитет са најмањим привилегијама.\n- **MCP у продукцији**: третирајте сваки MCP сервер као непоуздану зону — закључајте верзију, ограничите идентитет, проверавајте излазе, ограничите стопу, никада не откривајте тајне.\n\n## Заштитне ограде за асистента\n\n- Преферирајте канонски образац `FoundryChatClient(...)` + `provider.as_agent(...)` који се користи кроз цео курс.\n- Не обећавајте резултате уживо из Azure које нисте проверили; препоручите smoke-test радни ток да потврдите распоређивање.\n- Држите савете за процену и трошкове повезаним: процена поставља под за квалитет, рутирање\u002Fкеширање држе трошкове близу тог пода.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Изјава о одрицању одговорности**:\nОвај документ је преведен коришћењем услуге за аутоматски превод [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Иако тежимо тачности, имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fsr\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents",26019,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners","https:\u002F\u002Faka.ms\u002Fai-agents-beginners","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-07 12:51:12",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill deploying-scalable-agents",{"tool":40,"command":41},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill deploying-scalable-agents",{"tool":43,"command":44},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill deploying-scalable-agents","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fsr\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",true,[],[49,67,78,86,94,99],{"skillNo":50,"name":51,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":64,"publishedAt":19},"01M69A206TRZ8KK0CW0HYJF5V5","testing-course-samples","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[54,59],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[65,66],"testing","testing course samples",{"skillNo":68,"name":69,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":75,"publishedAt":19},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000023","Skill与智能体开发",[76,8,77],"docs","microsoft docs",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M69A1VPZFJQ1HNGTZQ5P3WSC","local-ai-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[84,85],"ai agents","local ai agents",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M69A1S947N7MM6V9JF85S2E7","jupyter-notebook","當使用者要求建立、搭建或編輯 Jupyter 筆記本（`.ipynb`）用於實驗、探索或教學時使用；優先使用隨附範本並執行輔助腳本 `new_notebook.py` 來產生一個乾淨的起始筆記本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fjupyter-notebook\u002FSKILL.md",[],[93],"jupyter notebook",{"skillNo":95,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":19},"01M69A1Q8EXPWKZSQK69V6WF22","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[18],{"skillNo":100,"name":101,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":19},"01M69A1MHZTH3RH9N8VYSYG74X","azure-openai-to-responses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fazure-openai-to-responses\u002FSKILL.md",[],[105],"azure openai to responses"]