Настройка стандартных ресурсов агента

Настройка стандартного агента использует управляемые клиентом одноклиентные ресурсы Azure для хранения состояния агента и содержания всех данных агента под вашим контролем. Используйте стандартную настройку, если требуется полный суверенитет данных, соответствие корпоративным политикам безопасности или изоляция уровня проекта.

В этой настройке:

  • Состояния агента (беседы, ответы) хранятся в собственных Azure ресурсах.
  • Вы обеспечиваете полный контроль над размещением данных и доступом.

Совет

Более простую настройку, использующую управляемые Microsoft ресурсы, см. в разделе Настройка среды и выберите базовую настройку агента.

Необходимые условия

Обзор ресурсов

Важно

Стандартные настройки требуют использования ресурсов BYO, чтобы все данные агента оставались в вашем клиенте Azure:

Ресурс То, что он хранит
служба хранилища Azure (хранилище файлов BYO) Файлы, отправленные разработчиками и конечными пользователями
Поиск с использованием ИИ Azure (поиск BYO) Векторные хранилища, созданные агентом
Azure Cosmos DB (хранилище потоков BYO) Сообщения, журнал бесед и метаданные агента

Все данные, обработанные службой агента Foundry, автоматически хранятся в состоянии покоя в этих ресурсах, что помогает соответствовать требованиям по соблюдению корпоративных стандартов безопасности.

Требования к пропускной способности Cosmos DB

Ваш аккаунт Azure Cosmos DB для NoSQL должен иметь совокупную пропускную способность не менее 3000 RU/с. Поддерживаются как режим с обеспеченной пропускной способностью, так и бессерверный режим.

Стандартная настройка поставляет три контейнера в учетной записи Cosmos DB, каждый из которых требует 1000 ЕЗ/с:

Контейнер Цель
thread-message-store Беседы конечных пользователей
system-thread-message-store Внутренние системные сообщения
agent-entity-store Метаданные агента (инструкции, средства, имя)

Для нескольких проектов в одной учетной записи Foundry, умножьте на число проектов. Например, для двух проектов требуется не менее 6000 ЕЗ/с (3 контейнера × 1000 ЕЗ/с × 2 проекта).

изоляция данных на уровне проекта

Стандартная настройка обеспечивает изоляцию данных уровня проекта по умолчанию. В вашей учетной записи хранения автоматически создаются два контейнера объектного хранилища: один для файлов и один для промежуточных системных данных (блоки, встраивания). Три контейнера подготовлены в учетной записи Cosmos DB: один для потоков пользователей, один для системных сообщений и один для данных конфигурации агента, таких как инструкции, инструменты и имена. Это поведение по умолчанию снижает сложность установки, сохраняя строгие границы данных между проектами.

Хосты возможностей

Узлы возможностей — это подресурсы как в учетной записи, так и в проекте, которые обеспечивают взаимодействие со службой агента.

  • Узел возможностей учетной записи: имеет пустое тело запроса, за исключением параметра capabilityHostKind="Agents".
  • Хост возможностей Project: Указывает ресурсы для хранения состояния агента, либо под управлением Microsoft мультитенантные (базовая настройка), либо ресурсы, принадлежащие одному клиенту (стандартная настройка). Модуль возможностей проекта действует как настройки проекта.

Ограничения

  • Невозможно обновить хост возможностей после его установки для проекта или учетной записи.

Пошаговое развертывание ресурсов

Примечание

Портал Foundry в настоящее время поддерживает только базовую настройку агента. Чтобы настроить стандартного агента, выполните настройку вручную или используйте шаблон Bicep, описанный в этом разделе.

Подготовка вручную

Выполните следующие действия, чтобы вручную подготовить все ресурсы, необходимые для настройки стандартного агента. Допустите около 30–45 минут для полного процесса подготовки.

Этап 1. Создание зависимых ресурсов

  1. Создайте или повторно используйте следующие ресурсы. Вы можете создать новые ресурсы или передать идентификатор ресурса существующих:
    • Azure Cosmos DB для учетной записи NoSQL
    • учетная запись служба хранилища Azure
    • ресурс Поиск с использованием ИИ Azure
    • Ресурс Azure Key Vault (используется для управления секретами и строками подключения в инфраструктуре агента)
    • [Необязательно] Ресурс приложение Azure Insights
    • [Необязательно] Ресурс Foundry, который уже существует

Этап 2. Создание ресурсов и подключений фабрики

  1. Создайте ресурс Microsoft Foundry.
  2. Создание подключений на уровне учетной записи:
    • Создайте подключение учетной записи к ресурсу Application Insights.
  3. Разверните модель gpt-4o или другую модель, совместимую с агентом.
  4. Создайте проект.
  5. Создание подключений к проекту:
    • [Если предоставлено] Подключение проекта к ресурсу Foundry.
    • Подключение проекта к учетной записи служба хранилища Azure.
    • Подключение проекта к ресурсу Поиск с использованием ИИ Azure.
    • Подключение проекта к учетной записи Cosmos DB.

Этап 3: Назначение ролей управляемой идентификации проекта

Управляемое удостоверение проекта включает управляемое удостоверение, назначаемое системой (SMI), и управляемое удостоверение, назначаемое пользователем (UMI).

  1. Назначьте следующие роли управляемому удостоверению проекта (для SMI):
    • Оператор Cosmos DB на уровне учетной записи для ресурса Cosmos DB.
    • Участник учетной записи хранения на уровне аккаунта для ресурса учетной записи хранения.

Этап 4. Настройка узлов возможностей

  1. Настройте узел возможностей учетной записи с пустым разделом свойств.
  2. Настройте хост возможностей проекта с подключениями к Cosmos DB, служба хранилища Azure и поиску с использованием искусственного интеллекта.

Этап 5. Назначение разрешений на детализированные ресурсы

  1. Назначьте управляемое удостоверение проекта (SMI и UMI) на следующие роли в указанных областях ресурсов:
    • Поиск с использованием ИИ Azure (назначьте до или после создания хоста возможностей):
      • Автор данных поискового индекса
      • Участник службы поиска
    • Контейнер Хранилище BLOB-объектов Azure: <workspaceId>-azureml-blobstore
      • Участник данных хранилища BLOB-объектов
    • Контейнер Хранилище BLOB-объектов Azure: <workspaceId>-agents-blobstore
      • Владелец данных хранилища BLOB-объектов
    • Cosmos DB для базы данных NoSQL: enterprise_memory
      • Встроенный вкладчик данных в Cosmos DB
      • Область: уровень базы данных для покрытия всех контейнеров (не требуется назначение отдельных ролей для конкретного контейнера).

Этап 6. Предоставление доступа разработчику

  1. Назначьте всем разработчикам, которым необходимо создать или изменить агентов в проекте, роль Azure AI User на уровне проекта.

Используйте шаблон Bicep

Используйте существующую учетную запись Azure OpenAI, учетную запись служба хранилища Azure, учетную запись Azure Cosmos DB для NoSQL или ресурс Поиск с использованием ИИ Azure, указав полный идентификатор ресурса Azure Resource Manager (ARM) в файле шаблона агента standard.

Использование существующего ресурса OpenAI Azure

  1. Выполните действия, описанные в разделе "Настройка среды" , чтобы получить идентификатор ресурса учетной записи Foundry Tools.

  2. В файле шаблона стандартного агента замените следующий заполнитель:

    existingAoaiResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{serviceName}
    

Использование существующей учетной записи служба хранилища Azure для хранения файлов

  1. Войдите в Azure CLI и выберите подписку с учетной записью хранения:

    az login
    
  2. Выполните следующую команду, чтобы получить идентификатор ресурса учетной записи хранения:

    az storage account show --resource-group <your-resource-group> --name <your-storage-account> --query "id" --output tsv
    

    Выходные данные — это значение aiStorageAccountResourceID, которое необходимо в шаблоне.

  3. В файле шаблона стандартного агента замените следующий заполнитель:

    aiStorageAccountResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}
    

Используйте существующую учетную запись Azure Cosmos DB для NoSQL для хранения потоков

Для каждой учетной записи Foundry создается база данных Azure Cosmos DB для NoSQL. Требования к пропускной способности и масштабирование нескольких проектов см. в разделе "Требования к пропускной способности Cosmos DB".

Примечание

Недостаточная пропускная способность в запросах в секунду (RU/s) в учетной записи Cosmos DB приводит к сбоям в подготовке узла возможностей во время развертывания.

  1. Войдите в Azure CLI и выберите подписку с учетной записью Cosmos DB:

    az login
    
  2. Выполните следующую команду, чтобы получить идентификатор ресурса учетной записи в Azure Cosmos DB:

    az cosmosdb show --resource-group <your-resource-group> --name <your-cosmosdb-account> --query "id" --output tsv
    

    Выходные данные — это значение cosmosDBResourceId, которое необходимо в шаблоне.

  3. В файле шаблона стандартного агента замените следующий заполнитель:

    cosmosDBResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{cosmosDbAccountName}
    

Использование существующего ресурса Поиск с использованием ИИ Azure

  1. Войдите в Azure CLI и выберите подписку с помощью ресурса поиска:

    az login
    
  2. Выполните следующую команду, чтобы получить идентификатор ресурса Поиск с использованием ИИ Azure:

    az search service show --resource-group <your-resource-group> --name <your-search-service> --query "id" --output tsv
    
  3. В файле шаблона стандартного агента замените следующий заполнитель:

    aiSearchServiceResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}
    

Проверка настройки

После завершения подготовки убедитесь, что программа установки работает правильно:

  1. На портале Azure перейдите к проекту Foundry и убедитесь, что все подключения (storage, Cosmos DB, AI Search) отображаются в параметрах проекта.
  2. Убедитесь, что состояние хоста возможностей отображается как Успешно и для учетной записи, и для проекта.
  3. Проверьте назначения ролей, перейдя на страницу управления доступом (IAM) каждого ресурса и подтвердив, что управляемое удостоверение проекта имеет ожидаемые роли.
  4. Создайте агент тестирования для подтверждения сквозной функциональности.

Устранение распространенных проблем

Симптом Причина Разрешение
CapabilityHostProvisioningFailed или состояние узла возможностей показывает Сбой Недостаточно пропускной способности Cosmos DB Убедитесь, что учетная запись Cosmos DB имеет по крайней мере 3000 RU/с (1000 RU/с для каждого контейнера × 3 контейнеров). Для нескольких проектов умножайте число проектов.
403 Forbidden Когда агент считывает или записывает файлы Отсутствующие назначения ролей хранилища Убедитесь, что управляемое удостоверение проекта содержит участника данных BLOB-объектов хранилища для <workspaceId>-azureml-blobstore контейнера и владельца данных BLOB-объектов хранилища для контейнера <workspaceId>-agents-blobstore.
SearchIndexNotFound или 403 в операциях поиска Отсутствующие роли поиска Убедитесь, что управляемое удостоверение проекта имеет роли Search Index Data Contributor и Search Service Contributor в ресурсе Поиск с использованием ИИ Azure.
AuthorizationFailed при создании или редактировании агентов Недостающая роль пользователя Назначьте разработчику роль пользователя Azure ИИ в рамках проекта.
Запрос на обновление к хосту возможностей возвращает 400 BadRequest Обновление не поддерживается Узлы хостов не могут быть обновлены после создания. Удалите и повторно создайте проект, если необходимы изменения конфигурации.