Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании агентических приложений с помощью платформ с открытым исходным кодом обычно можно управлять множеством перекрестных проблем: контейнеризация, настройка веб-сервера, безопасность, сохраняемость памяти, масштабирование, инструментирование и откат версий. Эти задачи становятся еще более сложными в разнородных облачных средах.
Размещенные агенты в службе агента Foundry решают эти проблемы для пользователей Microsoft Foundry. С помощью этой управляемой платформы можно безопасно развертывать агенты ИИ и управлять ими в большом масштабе. Вы можете использовать пользовательский код агента или предпочтительную платформу агента с оптимизированным развертыванием и управлением.
Когда следует использовать размещенные агенты
Выбирайте размещенных агентов вместо агентов на основе запроса, когда необходимо:
- Приведите собственный код — используйте любую платформу (Agent Framework, LangGraph, семантический ядро или пользовательский код), а не определения только для запроса.
- Используйте пользовательские протоколы — принимайте вебхуки или нагрузку, не относящуюся к OpenAI, с помощью протокола вызовов.
- Управление вычислительными ресурсами — укажите ЦП и память для песочницы агента.
- Запуск рабочих нагрузок с сохранением состояния — сохраняйте файлы и состояние через $HOME и конечную точку /files.
Принцип работы
Вы упаковываете агента в виде образа контейнера и отправляете его в Azure Container Registry. При развертывании служба агентов извлекает образ, подготавливает вычисления, назначает выделенное удостоверение агента Entra и предоставляет выделенную конечную точку. Во время выполнения код агента обрабатывает запросы от клиентов и может вызывать модели Foundry, средства Панели элементов Foundry и подчиненные службы Azure с помощью его удостоверения агента. Платформа обрабатывает масштабирование, сохраняемость состояния сеанса, наблюдаемость и управление жизненным циклом.
Это важно
При использовании размещенных агентов с другими продуктами и службами Майкрософт необходимо прочитать всю соответствующую документацию по таким продуктам и службам, а также понять связанные риски и вопросы соблюдения требований. Если вы используете размещенные агенты с любыми сторонними серверами, агентами, кодом или моделями, которые не являются моделями Azure Direct ("Сторонние системы"), это делается на ваш собственный риск. Сторонние системы — это не Microsoft продукты в соответствии с условиями Microsoft продукта и регулируются собственными условиями лицензии сторонних производителей. Вы несете ответственность за любое использование и связанные расходы. Просмотрите все данные, к которым предоставлен доступ, и полученные из сторонних систем. Помните о сторонних практиках по обработке, совместному использованию, хранению и местоположению данных. Вы несете ответственность за управление тем, будут ли потоки данных выходить за пределы границ соответствия Azure и географических границ вашей организации, а также за любые связанные последствия. Корпорация Майкрософт не несет ответственности за использование сторонних систем, и вы несете ответственность за реализацию собственных ответственных мер по устранению рисков искусственного интеллекта, таких как метапроимпты, фильтры содержимого или другие системы безопасности.
Основные понятия
Размещенные агенты
Размещенные агенты — это агентные контейнерные приложения ИИ, которые выполняются на Агент Сервисе. В отличие от агентов на основе запросов, которые полностью определены с помощью запросов и настройки инструментов на портале Foundry, размещенные агенты представляют собой ваш собственный код, упакованный в контейнер. Вы выбираете платформу, управляете поведением среды выполнения и развертываете образ в управляемой корпорацией Майкрософт инфраструктуре.
Платформа автоматически управляет жизненным циклом контейнера на основе активности, предоставляя ресурсы при создании версии и освобождая их при достижении времени ожидания простоя.
Протоколы: ответы и вызовы
Размещенные контейнеры агентов открывают доступ к одному или обоим из двух протоколов. Каждый протокол предоставляется упрощенной библиотекой, которая обрабатывает HTTP-сервер, проверки работоспособности и интеграцию OpenTelemetry.
Какой протокол следует использовать?
| Сценарий | Протокол | Почему |
|---|---|---|
| Беседный чат-бот или помощник | Ответы | Платформа управляет журналом бесед, событиями потоковой передачи и жизненным циклом сеансов— используйте любой пакет SDK, совместимый с OpenAI, в качестве клиента. |
| Многоэтапный Q&A с помощью RAG или инструментов | Ответы | Встроенная обработка потоков идентификатора беседы и обработки результатов инструментов. |
| Фоновая и асинхронная обработка | Ответы | фоновый режим: true с опросом, управляемым платформой, и отменой — не требуется пользовательский код. |
| Агент, опубликованный в Teams или M365 | Ответы + Активность | Протокол Responses управляет логикой агента; Протокол действий обрабатывает интеграцию канала Teams. |
| Приемник вебхуков (GitHub, Stripe, Jira и др.) | Вызовы | Внешняя система отправляет собственный формат полезных данных— его нельзя изменить в соответствии с /responses. |
| Неконверсационная обработка (классификация, извлечение, пакетная) | Вызовы | Входные данные структурированы, а не сообщение чата. Произвольный JSON на входе, произвольный JSON на выходе. |
| Пользовательский протокол потоковой передачи (AG-UI и т. д.) | Вызовы | AG-UI и другие протоколы пользовательского интерфейса агента не совместимы с OpenAI— вам нужен необработанный элемент управления SSE. |
| Протокольный шлюз (GitHub Copilot, проприетарные системы) | Вызовы | Вызывающий объект имеет собственный протокол, который не сопоставляется с /responses. |
Подсказка
Не уверен? Начните с ответов. Вы всегда можете добавить конечную точку вызовов позже— размещенный агент может поддерживать оба протокола одновременно.
Сравнение протоколов
| Ответы | Вызовы | |
|---|---|---|
| лучше всего подходит для | Для большинства агентов платформа управляет историей бесед, жизненным циклом потоковой передачи и фоновым выполнением. | Агенты, которым необходим полный контроль над HTTP, пользовательские полезные данные или долговременные асинхронные рабочие процессы. |
| Полезная нагрузка | Контракт совместимый с OpenAI для ответов | Произвольный JSON через интерфейс /invocations — вы определяете схему |
| Клиентский пакет SDK | Любой SDK, совместимый с OpenAI (Python, JS, C#), сразу готов к использованию. | Кастомизированный клиент — вы определяете договор |
| Журнал сеансов | Управление платформой через идентификатор беседы | Вы управляете сеансами (в памяти, Cosmos DB и т. д.) |
| Streaming | Управляемый платформой ResponseEventStream с событиями жизненного цикла | Необработанный SSE— вы форматируйте и записываете события напрямую |
| Фоновый / длительно работающий процесс | Встроенная (фоновый режим: true + опрос, управляемый платформой) | Отслеживание задач вручную и пользовательские конечные точки опроса |
Дополнительные протоколы
Размещенные агенты также поддерживают протокол Activity для интеграции каналов Teams и каналов M365 (обычно используется вместе с Responses) и протокол A2A для делегирования от агента к агенту. Все четыре протокола — ответы, вызовы, действия и A2A — могут объединяться в одном агенте.
Удостоверение агента и конечная точка
Каждый размещенный агент, развернутый в проекте Foundry, получает собственное удостоверение агента Entra и выделенную конечную точку, созданные автоматически во время развертывания. Вам не нужно настраивать управляемые идентификаторы или маршрутизацию вручную.
Конечная точка доступна сразу после развертывания. Публикация не требуется для программного доступа:
- Ответы: {project_endpoint}/agents/{name}/endpoint/protocols/openai/v1/responses
- Вызовы: {project_endpoint}/agents/{name}/endpoint/protocols/invocations
Какие конечные точки активны, зависят от протоколов, объявленных в определении версии агента (задайте в agent.yaml при использовании azd или через container_protocol_versions при использовании пакета SDK).
Участвуют две идентификации:
| Identity | Scope | Purpose |
|---|---|---|
| Удостоверение личности агента Entra (каждого агента) | Создается автоматически во время развертывания | Идентификационные данные контейнера агента аутентифицируются в момент выполнения. Используется для вызова модели, доступа к инструментам и подчиненных служб Azure. |
| Управляемое удостоверение проекта (на уровне проекта) | Назначаемое системой в проекте Foundry | Используется платформой для операций инфраструктуры (например, средство чтения репозитория реестра контейнеров в реестре контейнеров). Не идентификатор среды выполнения агента. |
При развертывании с помощью azd необходимая роль RBAC (пользователь Azure AI в области учетной записи) автоматически назначается идентификатору Entra агента. Для внешних ресурсов (например, собственного хранилища Azure) вы назначаете RBAC вручную идентификатору агента Entra.
Сеансы и беседы
Размещенные агенты используют сеансы и беседы для управления состоянием. Как они работают, зависят от протокола.
Сеансы
Идентификатор сеанса определяет логический сеанс с сохраненным состоянием, включая $HOME и файлы, отправленные через конечную точку /files. Платформа предоставляет вычислительные ресурсы по запросу и восстанавливает на них сохранённое состояние.
- Сохранение состояния: содержимое $HOME и /files сохраняется на разных этапах и между периодами простоя. Когда вычисления простаивают и возобновляются (на новой или существующей инфраструктуре), состояние сеанса автоматически восстанавливается.
- Изоляция: каждый сеанс изолирован от других сеансов.
- Автоматический жизненный цикл: сеансы создаются при первом использовании. Платформа автоматически подготавливает и освобождает вычислительные ресурсы.
- Время существования сеанса: сеансы сохраняются до 30 дней. Время ожидания простоя составляет 15 минут. Если в этом окне запрос не поступает, платформа отменяет вычисление и сохраняет состояние сеанса.
- API управления сеансами: вывод списка сеансов, завершение сеансов и отправка или скачивание файлов на сеанс.
Беседы
Идентификатор беседы — это устойчивая запись журнала бесед (сообщения, вызовы инструментов и ответы), хранящаяся в Foundry.
- Сохраняемость. Журнал бесед хранится в Foundry и сохраняется независимо от состояния вычислений.
- Доступ между каналами: пользователи могут получить доступ к той же беседе с игровой площадки, API, Teams или других опубликованных каналов.
Как работают сессии и обсуждения с каждым протоколом
Протокол ответов: идентификатор беседы является основной концепцией. Платформа автоматически управляет журналом бесед и связывает идентификатор сеанса с каждой беседой. Платформа возвращает идентификатор сеанса клиенту, который может использовать его для отправки файлов через конечную точку /files, что делает эти файлы доступными для вычислений беседы.
Протокол вызовов: идентификатор сеанса является основной концепцией. Клиент управляет идентификатором сеанса непосредственно с целью поддержания состояния взаимодействий. Клиент может передать содержимое через конечную точку /files с помощью идентификатора сеанса, чтобы сделать его доступным для сеанса. Нет истории общения, управляемой платформой — вы управляете состоянием в собственном коде.
Жизненный цикл вычислений сеанса
| Государство | Что происходит |
|---|---|
| Активный | Выполняется вычисление. Запросы направляются в него. доступны $HOME и содержимое /files. |
| бездействия | Нет запросов в течение 15 минут. Вычислительные ресурсы деактивированы. Сохраняется состояние сеанса ($HOME, /files). |
| Возобновил | Идентификатор сеанса используется повторно. Платформа обеспечивает новые вычислительные ресурсы и восстанавливает сохраняемое состояние. |
Безопасность и обработка данных
Относитесь к размещённому агенту как к продуктивному коду приложения.
Это важно
Если вы используете службу агентов Foundry для размещения агентов, взаимодействующих с сторонними моделями, серверами или агентами, это выполняется по вашему собственному риску. Мы рекомендуем просматривать все данные, совместно используемые сторонними моделями, серверами или агентами, и понимать сторонние методики хранения и расположения данных. Вы несете ответственность за управление тем, будут ли потоки данных выходить за пределы границ соответствия Azure и географических границ вашей организации, а также за любые связанные последствия.
- Не помещайте секреты в образы контейнеров или переменные среды. Используйте управляемые идентификаторы и подключения и храните конфиденциальные данные в управляемом хранилище секретов. Инструкции см. в разделе Настройка подключения Key Vault.
- Будьте осторожны с средствами и серверами без Microsoft. Если агент вызывает средства, поддерживаемые не Microsoft services, некоторые данные могут передаваться в эти службы. Просмотрите политики совместного использования, хранения данных и местоположения для любой службы, отличной от Microsoft, к которой вы подключаетесь.
Сведения о платформе
Versioning
Каждый вызов для создания версии создает неизменяемую версию агента — моментальный снимок образа контейнера, выделения ресурсов, переменных среды и конфигурации протокола. Развертывания ссылаются на определенную версию. Чтобы обновить агент, создайте новую версию, а платформа развертывает ее. Вы также можете разделить трафик между версиями для канареечного или сине-зеленого развертывания.
Переменные среды — это основной механизм передачи конфигурации в контейнер во время выполнения (например, конечной точки проекта, имени развертывания модели и пользовательских параметров). Они задаются для каждой версии и неизменяемы после создания версии.
Набор инструментов Foundry
Размещенные агенты получают доступ к средствам, управляемым Foundry (интерпретатор кода, веб-поиск, поиск Azure AI, OpenAPI, пользовательские подключения MCP, A2A) через точку доступа MCP Toolbox, подготовленную в вашем проекте Foundry. Код агента подключается к этой конечной точке с помощью стандартных клиентских библиотек MCP— платформа не внедряет средства автоматически. Дополнительные сведения см. в разделе «Curate — набор инструментов на основе намерений в Foundry».
Поддержка языков
Размещенные агенты поддерживают Python и C#. Вы можете использовать любую платформу агента— библиотеки протоколов не зависят от платформы. Примеры с помощью Microsoft Agent Framework, LangGraph и пользовательского кода см. в репозитории foundry-samples.
Размеры песочницы
Песочницы для размещённых агентов поддерживают выделение vCPU и памяти в диапазоне от 0,25 vCPU / 0,5 ГиБ до 2 vCPU / 4 ГиБ.
Частная сеть
Размещенные агенты поддерживают развертывание в ресурсах Foundry, изолированных от сети. Дополнительные сведения см. в разделе "Настройка виртуальных сетей".
Ограничения, цены и доступность (предварительная версия)
В настоящее время размещенные агенты находятся в предварительной версии.
Ограничения во время предварительной версии
| Лимит | Scope | Значение по умолчанию | Adjustable |
|---|---|---|---|
| Максимальное число активных одновременных сеансов | для каждой подписки на регион | 50 | Да, с запросами на квоту в службу поддержки Майкрософт |
Pricing
Выставление счетов за управляемое время выполнения размещения основано на использовании ресурсов ЦП и памяти во время активных сеансов. Сведения о текущих ставках см. на странице цен на Foundry.
Доступность по регионам
Размещенные агенты в настоящее время доступны в следующих регионах:
- Australia East
- Центральная Канада
- северо-центральная часть США
- Центральная Швеция
Замечание
Этот список будет обновлен по мере того, как становятся доступными дополнительные регионы.
Дальнейшие действия
| задачи | Ссылка |
|---|---|
| Создайте и разверните первого размещенного агента | Краткое руководство: Развертывание вашего первого размещенного агента |
| Развертывание с помощью пакета SDK для Foundry | Разверните размещенного агента с помощью Foundry SDK |
| Обновление, удаление, вызов или передача журналов | Управление размещенными агентами |
| Настройка трассировки и мониторинга | Включение трассировки в проекте |
| Оценка производительности агента | Оценщики агентов |
| Публикация в Teams, M365 или пользовательских приложениях | Приложения агента |
| Просмотр примеров кода | Примеры Python · Примеры C# |