Развертывание масштабируемых агентов с Microsoft Foundry
Вспомогательное умение для Урок 16 – Развертывание масштабируемых агентов.
Используйте его, чтобы помочь учащемуся перевести агента от прототипа к масштабируемому, наблюдаемому
производственному развертыванию. Основывайте каждую рекомендацию на содержании урока и
исполняемом блокноте; не придумывайте API Foundry.
Триггеры
Активируйте это умение, когда учащийся хочет:
- Развернуть агента в Microsoft Foundry как хостинг-агента и сделать его версионированным/наблюдаемым.
- Выбрать между паттернами развертывания клиент-хостинг, хостинг-агент и агент-воркфлоу.
- Добавить маршрутизацию моделей, кэширование ответов или ограниченную конкуренцию для контроля задержки и стоимости.
- Добавить пропускной контроль оценки, чтобы плохая версия агента не была выпущена.
- Добавить шаг одобрения человеком в цикле для действий с высоким риском.
- Инструментировать агента с помощью OpenTelemetry для трассировки и производственной наблюдаемости.
- Провести дымовое тестирование развернутого агента как быстрый постразверточный пропускной контроль.
Основная концепция
Производственный агент — это в основном операционный скелет вокруг модели (~80%),
а не сама модель. Сопоставьте каждую рекомендацию с одной из этих областей:
| Область |
Прототип → Производство |
| Хостинг |
блокнот → версионированный хостинг-сервис |
| Идентичность |
ваш az login → управляемая идентичность + scoped RBAC |
| Состояние |
в памяти → внешний поток/хранилище памяти |
| Ошибки |
обратная трассировка → повторные попытки, альтернативы, оповещения |
| Стоимость |
"пару центов" → отслеживается, маршрутизируется, кэшируется, бюджетируется |
| Качество |
визуальная оценка → автоматический пропускной контроль оценки |
| Доверие |
ваше одобрение → политика + человек в цикле |
Паттерны развертывания (выбрать один или комбинировать)
- Клиент-хостинг — цикл рассуждений работает в вашем процессе. Максимальный контроль; вы отвечаете за масштабирование/состояние.
- Хостинг-агент (Foundry Agent Service) — Foundry размещает цикл, хранит потоки, применяет RBAC/безопасность контента, показывает агента в портале. Меньше контроля, значительно меньше операционная нагрузка.
- Агент-воркфлоу — несколько агентов/инструментов, собранных в граф с ветвлениями, узлами одобрения и постоянными контрольными точками.
Жизненный цикл (цикл, который выпускает агента)
create → version → evaluate (gate) → deploy hosted → observe online → collect failures → repeat.
Офлайн-оценка — это пропускной контроль, а не дополнение — версия не выпускается,
если она не проходит порог. Онлайн-наблюдаемость возвращает реальные ошибки
обратно в офлайн-тестовый набор.
Рычаги масштабирования и стоимости (в приоритетном порядке)
- Подберите размер модели по необходимости — используйте самую маленькую модель, которая проходит пропускной контроль оценки.
- Маршрутизируйте по сложности — маленькая/быстрая модель для простых запросов, большая модель для реальных рассуждений (самодельный классификатор или Foundry Model Router).
- Кэширование — обслуживайте почти дублирующие запросы без вызова модели.
- Бесп состояния + ограниченная конкуренция — вынесите состояние; повторять с повторной попыткой по экспоненте.
Основные паттерны для воспроизведения
Покажите учащемуся эти из блокнота
16-python-agent-framework.ipynb:
- Обработчик запросов: кэш → маршрутизировать по сложности → спан трассировки → выполнить → кэш.
- Пропускной контроль оценки: оценить офлайн-тестовый набор; вернуть
pass_rate >= threshold и разворачивать только если истина.
- Одобрение человеком:
@tool(approval_mode="always_require") для действий, например, больших возвратов средств.
- Трассировка: обернуть каждый запрос в
tracer.start_as_current_span(...) и установить атрибуты, например, routed.model, customer.id.
Дымовое тестирование развернутого агента
После развертывания проверьте, что конечная точка действительно отвечает (зеленое развертывание может быть
тихим). Используйте действие AI Smoke Test
через .github/workflows/smoke-test.yml
с каталогом в tests/. Запускатель POSTит каждый
запрос на POST {project_endpoint}/agents/{agent_name}/endpoint/protocols/openai/responses
и проверяет текст ответа. Идентичность должна иметь роль Azure AI User на
уровне проекта Foundry; аудитория токена должна быть https://ai.azure.com/.
Наложите уровни контроля: дымовое тестирование (доступность/ответ, каждый релиз) → оценка офлайн (достаточно хорош для выпуска, перед продвижением) → оценка онлайн (как агент работает в реальности, непрерывно).
Корпоративные меры контроля
- RBAC: дайте каждому хостингу-агенту управляемую идентичность с минимальными привилегиями.
- MCP в производстве: рассматривайте каждый MCP сервер как ненадежную границу — закрепите версию, ограничьте идентичность, валидируйте выводы, ограничьте частоту, никогда не раскрывайте секреты.
Ограничения для помощника
- Предпочитайте канонический паттерн
FoundryChatClient(...) + provider.as_agent(...), используемый по всему курсу.
- Не обещайте результаты живого Azure, которые вы не проверили; рекомендуйте рабочий процесс дымового тестирования для подтверждения развертывания.
- Держите рекомендации по оценке и стоимости связанными: оценка задает нижний предел качества, маршрутизация/кэширование держат стоимость близкой к этому пределу.
Отказ от ответственности:
Этот документ был переведен с использованием сервиса машинного перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.
Source: microsoft/ai-agents-for-beginners → translations/ru/.agents/skills/deploying-scalable-agents/SKILL.md
1---2name: deploying-scalable-agents-223description: Активируйте это умение, когда учащийся хочет: - Развернуть агента в Microsoft Foundry как хостинг-агента и сделать его версионированным/наблюдаемым. - Выбрать между паттернами развертывания клиент-хостинг, хостинг-агент и агент-воркфлоу. - Добавить маршрутизацию моделей, кэширование ответов или ограниченную конкуренцию для контроля задержки и стоимости. - Добавить пропускной контроль оценки, чтобы плохая версия агента не была выпущена.4---5# Развертывание масштабируемых агентов с Microsoft Foundry
6
7> Вспомогательное умение для [Урок 16 – Развертывание масштабируемых агентов](../../../16-deploying-scalable-agents/README.md).
8> Используйте его, чтобы помочь учащемуся перевести агента от прототипа к масштабируемому, наблюдаемому
9> производственному развертыванию. Основывайте каждую рекомендацию на содержании урока и
10> исполняемом блокноте; не придумывайте API Foundry.
11
12## Триггеры
13
14Активируйте это умение, когда учащийся хочет:
15- Развернуть агента в Microsoft Foundry как **хостинг-агента** и сделать его версионированным/наблюдаемым.
16- Выбрать между паттернами развертывания **клиент-хостинг, хостинг-агент и агент-воркфлоу**.
17- Добавить **маршрутизацию моделей**, **кэширование ответов** или **ограниченную конкуренцию** для контроля задержки и стоимости.
18- Добавить **пропускной контроль оценки**, чтобы плохая версия агента не была выпущена.
19- Добавить шаг **одобрения человеком в цикле** для действий с высоким риском.
20- Инструментировать агента с помощью **OpenTelemetry** для трассировки и производственной наблюдаемости.
21- Провести **дымовое тестирование** развернутого агента как быстрый постразверточный пропускной контроль.
22
23## Основная концепция
24
25Производственный агент — это в основном операционный скелет *вокруг* модели (~80%),
26а не сама модель. Сопоставьте каждую рекомендацию с одной из этих областей:
27
28| Область | Прототип → Производство |
29|---------|------------------------|
30| Хостинг | блокнот → версионированный хостинг-сервис |
31| Идентичность | ваш `az login` → управляемая идентичность + scoped RBAC |
32| Состояние | в памяти → внешний поток/хранилище памяти |
33| Ошибки | обратная трассировка → повторные попытки, альтернативы, оповещения |
34| Стоимость | "пару центов" → отслеживается, маршрутизируется, кэшируется, бюджетируется |
35| Качество | визуальная оценка → автоматический пропускной контроль оценки |
36| Доверие | ваше одобрение → политика + человек в цикле |
37
38## Паттерны развертывания (выбрать один или комбинировать)
39
401. **Клиент-хостинг** — цикл рассуждений работает в вашем процессе. Максимальный контроль; вы отвечаете за масштабирование/состояние.
412. **Хостинг-агент (Foundry Agent Service)** — Foundry размещает цикл, хранит потоки, применяет RBAC/безопасность контента, показывает агента в портале. Меньше контроля, значительно меньше операционная нагрузка.
423. **Агент-воркфлоу** — несколько агентов/инструментов, собранных в граф с ветвлениями, узлами одобрения и постоянными контрольными точками.
43
44## Жизненный цикл (цикл, который выпускает агента)
45
46`create → version → evaluate (gate) → deploy hosted → observe online → collect failures → repeat`.
47**Офлайн-оценка — это пропускной контроль, а не дополнение** — версия не выпускается,
48если она не проходит порог. Онлайн-наблюдаемость возвращает реальные ошибки
49обратно в офлайн-тестовый набор.
50
51## Рычаги масштабирования и стоимости (в приоритетном порядке)
52
531. **Подберите размер модели по необходимости** — используйте самую маленькую модель, которая проходит пропускной контроль оценки.
542. **Маршрутизируйте по сложности** — маленькая/быстрая модель для простых запросов, большая модель для реальных рассуждений (самодельный классификатор или Foundry Model Router).
553. **Кэширование** — обслуживайте почти дублирующие запросы без вызова модели.
564. **Бесп состояния + ограниченная конкуренция** — вынесите состояние; повторять с повторной попыткой по экспоненте.
57
58## Основные паттерны для воспроизведения
59
60Покажите учащемуся эти из блокнота
61[`16-python-agent-framework.ipynb`](../../../16-deploying-scalable-agents/code_samples/16-python-agent-framework.ipynb):
62
63- **Обработчик запросов**: кэш → маршрутизировать по сложности → спан трассировки → выполнить → кэш.
64- **Пропускной контроль оценки**: оценить офлайн-тестовый набор; вернуть `pass_rate >= threshold` и разворачивать только если истина.
65- **Одобрение человеком**: `@tool(approval_mode="always_require")` для действий, например, больших возвратов средств.
66- **Трассировка**: обернуть каждый запрос в `tracer.start_as_current_span(...)` и установить атрибуты, например, `routed.model`, `customer.id`.
67
68## Дымовое тестирование развернутого агента
69
70После развертывания проверьте, что конечная точка действительно отвечает (зеленое развертывание может быть
71тихим). Используйте действие [AI Smoke Test](https://github.com/marketplace/actions/ai-smoke-test)
72через [`.github/workflows/smoke-test.yml`](../../../../../.github/workflows/smoke-test.yml)
73с каталогом в [`tests/`](../../../tests/README.md). Запускатель POSTит каждый
74запрос на `POST {project_endpoint}/agents/{agent_name}/endpoint/protocols/openai/responses`
75и проверяет текст ответа. Идентичность должна иметь роль **Azure AI User** на
76уровне проекта Foundry; аудитория токена должна быть `https://ai.azure.com/`.
77
78Наложите уровни контроля: **дымовое тестирование** (доступность/ответ, каждый релиз) → **оценка офлайн** (достаточно хорош для выпуска, перед продвижением) → **оценка онлайн** (как агент работает в реальности, непрерывно).
79
80
81
82## Корпоративные меры контроля
83
84- **RBAC**: дайте каждому хостингу-агенту управляемую идентичность с минимальными привилегиями.
85- **MCP в производстве**: рассматривайте каждый MCP сервер как ненадежную границу — закрепите версию, ограничьте идентичность, валидируйте выводы, ограничьте частоту, никогда не раскрывайте секреты.
86
87## Ограничения для помощника
88
89- Предпочитайте канонический паттерн `FoundryChatClient(...)` + `provider.as_agent(...)`, используемый по всему курсу.
90- Не обещайте результаты живого Azure, которые вы не проверили; рекомендуйте рабочий процесс дымового тестирования для подтверждения развертывания.
91- Держите рекомендации по оценке и стоимости связанными: оценка задает нижний предел качества, маршрутизация/кэширование держат стоимость близкой к этому пределу.
92
93---
94
95<!-- CO-OP TRANSLATOR DISCLAIMER START -->
96**Отказ от ответственности**:
97Этот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.
98<!-- CO-OP TRANSLATOR DISCLAIMER END -->
99
100---
101
102**Source:** [`microsoft/ai-agents-for-beginners`](https://github.com/microsoft/ai-agents-for-beginners) → `translations/ru/.agents/skills/deploying-scalable-agents/SKILL.md`