[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699T4ECSG0QWFTME2FQQEZK":3,"skill-same:01M699T4ECSG0QWFTME2FQQEZK":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},"01M699T4ECSG0QWFTME2FQQEZK","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\u002Fru\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> исполняемом блокноте; не придумывайте API Foundry.\n\n## Триггеры\n\nАктивируйте это умение, когда учащийся хочет:\n- Развернуть агента в Microsoft Foundry как **хостинг-агента** и сделать его версионированным\u002Fнаблюдаемым.\n- Выбрать между паттернами развертывания **клиент-хостинг, хостинг-агент и агент-воркфлоу**.\n- Добавить **маршрутизацию моделей**, **кэширование ответов** или **ограниченную конкуренцию** для контроля задержки и стоимости.\n- Добавить **пропускной контроль оценки**, чтобы плохая версия агента не была выпущена.\n- Добавить шаг **одобрения человеком в цикле** для действий с высоким риском.\n- Инструментировать агента с помощью **OpenTelemetry** для трассировки и производственной наблюдаемости.\n- Провести **дымовое тестирование** развернутого агента как быстрый постразверточный пропускной контроль.\n\n## Основная концепция\n\nПроизводственный агент — это в основном операционный скелет *вокруг* модели (~80%),\nа не сама модель. Сопоставьте каждую рекомендацию с одной из этих областей:\n\n| Область | Прототип → Производство |\n|---------|------------------------|\n| Хостинг | блокнот → версионированный хостинг-сервис |\n| Идентичность | ваш `az login` → управляемая идентичность + scoped RBAC |\n| Состояние | в памяти → внешний поток\u002Fхранилище памяти |\n| Ошибки | обратная трассировка → повторные попытки, альтернативы, оповещения |\n| Стоимость | \"пару центов\" → отслеживается, маршрутизируется, кэшируется, бюджетируется |\n| Качество | визуальная оценка → автоматический пропускной контроль оценки |\n| Доверие | ваше одобрение → политика + человек в цикле |\n\n## Паттерны развертывания (выбрать один или комбинировать)\n\n1. **Клиент-хостинг** — цикл рассуждений работает в вашем процессе. Максимальный контроль; вы отвечаете за масштабирование\u002Fсостояние.\n2. **Хостинг-агент (Foundry Agent Service)** — Foundry размещает цикл, хранит потоки, применяет RBAC\u002Fбезопасность контента, показывает агента в портале. Меньше контроля, значительно меньше операционная нагрузка.\n3. **Агент-воркфлоу** — несколько агентов\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быстрая модель для простых запросов, большая модель для реальных рассуждений (самодельный классификатор или 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). Запускатель POSTит каждый\nзапрос на `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\nи проверяет текст ответа. Идентичность должна иметь роль **Azure AI User** на\nуровне проекта Foundry; аудитория токена должна быть `https:\u002F\u002Fai.azure.com\u002F`.\n\nНаложите уровни контроля: **дымовое тестирование** (доступность\u002Fответ, каждый релиз) → **оценка офлайн** (достаточно хорош для выпуска, перед продвижением) → **оценка онлайн** (как агент работает в реальности, непрерывно).\n\n\n\n## Корпоративные меры контроля\n\n- **RBAC**: дайте каждому хостингу-агенту управляемую идентичность с минимальными привилегиями.\n- **MCP в производстве**: рассматривайте каждый MCP сервер как ненадежную границу — закрепите версию, ограничьте идентичность, валидируйте выводы, ограничьте частоту, никогда не раскрывайте секреты.\n\n## Ограничения для помощника\n\n- Предпочитайте канонический паттерн `FoundryChatClient(...)` + `provider.as_agent(...)`, используемый по всему курсу.\n- Не обещайте результаты живого Azure, которые вы не проверили; рекомендуйте рабочий процесс дымового тестирования для подтверждения развертывания.\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> исполняемом блокноте; не придумывайте API Foundry.\n\n## Триггеры\n\nАктивируйте это умение, когда учащийся хочет:\n- Развернуть агента в Microsoft Foundry как **хостинг-агента** и сделать его версионированным\u002Fнаблюдаемым.\n- Выбрать между паттернами развертывания **клиент-хостинг, хостинг-агент и агент-воркфлоу**.\n- Добавить **маршрутизацию моделей**, **кэширование ответов** или **ограниченную конкуренцию** для контроля задержки и стоимости.\n- Добавить **пропускной контроль оценки**, чтобы плохая версия агента не была выпущена.\n- Добавить шаг **одобрения человеком в цикле** для действий с высоким риском.\n- Инструментировать агента с помощью **OpenTelemetry** для трассировки и производственной наблюдаемости.\n- Провести **дымовое тестирование** развернутого агента как быстрый постразверточный пропускной контроль.\n\n## Основная концепция\n\nПроизводственный агент — это в основном операционный скелет *вокруг* модели (~80%),\nа не сама модель. Сопоставьте каждую рекомендацию с одной из этих областей:\n\n| Область | Прототип → Производство |\n|---------|------------------------|\n| Хостинг | блокнот → версионированный хостинг-сервис |\n| Идентичность | ваш `az login` → управляемая идентичность + scoped RBAC |\n| Состояние | в памяти → внешний поток\u002Fхранилище памяти |\n| Ошибки | обратная трассировка → повторные попытки, альтернативы, оповещения |\n| Стоимость | \"пару центов\" → отслеживается, маршрутизируется, кэшируется, бюджетируется |\n| Качество | визуальная оценка → автоматический пропускной контроль оценки |\n| Доверие | ваше одобрение → политика + человек в цикле |\n\n## Паттерны развертывания (выбрать один или комбинировать)\n\n1. **Клиент-хостинг** — цикл рассуждений работает в вашем процессе. Максимальный контроль; вы отвечаете за масштабирование\u002Fсостояние.\n2. **Хостинг-агент (Foundry Agent Service)** — Foundry размещает цикл, хранит потоки, применяет RBAC\u002Fбезопасность контента, показывает агента в портале. Меньше контроля, значительно меньше операционная нагрузка.\n3. **Агент-воркфлоу** — несколько агентов\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быстрая модель для простых запросов, большая модель для реальных рассуждений (самодельный классификатор или 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). Запускатель POSTит каждый\nзапрос на `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\nи проверяет текст ответа. Идентичность должна иметь роль **Azure AI User** на\nуровне проекта Foundry; аудитория токена должна быть `https:\u002F\u002Fai.azure.com\u002F`.\n\nНаложите уровни контроля: **дымовое тестирование** (доступность\u002Fответ, каждый релиз) → **оценка офлайн** (достаточно хорош для выпуска, перед продвижением) → **оценка онлайн** (как агент работает в реальности, непрерывно).\n\n\n\n## Корпоративные меры контроля\n\n- **RBAC**: дайте каждому хостингу-агенту управляемую идентичность с минимальными привилегиями.\n- **MCP в производстве**: рассматривайте каждый MCP сервер как ненадежную границу — закрепите версию, ограничьте идентичность, валидируйте выводы, ограничьте частоту, никогда не раскрывайте секреты.\n\n## Ограничения для помощника\n\n- Предпочитайте канонический паттерн `FoundryChatClient(...)` + `provider.as_agent(...)`, используемый по всему курсу.\n- Не обещайте результаты живого Azure, которые вы не проверили; рекомендуйте рабочий процесс дымового тестирования для подтверждения развертывания.\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\u002Fru\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\u002Fru\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"]