Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создавайте, тестируйте и развертывайте рабочие процессы Hosted Foundry Agent с помощью расширения Microsoft Foundry для Visual Studio Code. Размещенные рабочие процессы позволяют нескольким агентам работать в последовательности, каждый из которых имеет собственную модель, инструменты и инструкции.
Перед началом работы создайте агента в службе агентов Foundry с использованием расширения. Затем можно добавить размещенные рабочие процессы в этот агент.
В этой статье описывается создание проекта рабочего процесса, его выполнение локально, визуализация выполнения и его развертывание в рабочей области Foundry.
Предпосылки
- проект Foundry с развернутой моделью или ресурсом Azure OpenAI.
- Расширение Microsoft Foundry для Visual Studio Code установлено.
- Управляемое удостоверение проекта с назначенными ролями Azure ИИ User и AcrPull. Также назначьте роль
acrPullуправляемому удостоверению проекта Foundry, в котором планируется развернуть хост-агент. - Поддерживаемый регион для размещенных агентов.
- Python 3.10 или более поздней версии.
- .NET 9 SDK или более поздней версии.
Создание рабочего процесса для размещенного агента
Расширение Foundry для Visual Studio Code можно использовать для создания рабочих процессов управляемых агентов. Размещенный рабочий процесс агента — это последовательность агентов, которые работают вместе для выполнения задачи. Каждый агент в рабочем процессе может иметь собственную модель, средства и инструкции.
Откройте палитру команд (CTRL+SHIFT+P).
Выполните следующую команду:
>Microsoft Foundry: Create a New Hosted Agent.Выберите язык программирования.
Выберите папку, в которой нужно сохранить новый рабочий процесс.
Введите имя проекта рабочего процесса.
Новая папка создается с необходимыми файлами для проекта ваших размещенных агентов, включая образец файла кода, чтобы облегчить вам начало работы.
Установка зависимостей
Установите необходимые зависимости для проекта размещенного агента. Зависимости зависят от языка программирования, выбранного при создании project.
Создайте виртуальную среду.
python -m venv .venvВключите виртуальную среду.
# PowerShell ./.venv/Scripts/Activate.ps1 # Windows cmd .venv\Scripts\activate.bat # Unix/MacOS source .venv/bin/activateУстановите следующий пакет:
pip install azure-ai-agentserver-agentframework
Перейдите в каталог project и выполните следующую команду, чтобы получить необходимые пакеты NuGet:
dotnet restore
Локальное выполнение размещенного рабочего процесса
Пример проекта рабочего процесса создает .env файл с необходимыми переменными среды. Создайте или обновите env-файл с помощью учетных данных Foundry:
AZURE_AI_PROJECT_ENDPOINT=https://<your-resource-name>.services.ai.azure.com/api/projects/<your-project-name>
AZURE_AI_MODEL_DEPLOYMENT_NAME=<your-model-deployment-name>
Это важно
Никогда не закрепляйте файл .env в систему управления версиями. Добавьте его в .gitignore файл.
Аутентификация хостингового агента
Пример размещенного агента проходит проверку подлинности с помощью DefaultAzureCredential. Настройте среду разработки для предоставления учетных данных с помощью одного из поддерживаемых источников, например:
- Azure CLI (
az login) - Вход в учетную запись Visual Studio Code
- вход в учетную запись Visual Studio
- Переменные среды для субъекта-службы (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
Подтвердите проверку подлинности локально, выполнив команды Azure CLI az account show или az account get-access-token перед выполнением примера.
Размещенный агент можно запустить в интерактивном режиме или в режиме контейнера.
Запуск размещенного агента в интерактивном режиме
Нажмите клавишу F5 в VS Code, чтобы начать отладку. Кроме того, можно использовать меню отладки VS Code:
- Откройте представление "Запуск и отладка " (CTRL+SHIFT+D/ CMD+SHIFT+D)
- Выберите "Отладка локального HTTP-сервера рабочего процесса" в раскрывающемся списке
- Нажмите зеленую кнопку "Начать отладку " (или нажмите клавишу F5)
Это приведет к следующему:
- Запуск HTTP-сервера с включенной отладкой
- Откройте инспектор агента AI Toolkit для интерактивного тестирования
- Позволяет задавать точки останова и проверять выполнение рабочего процесса в режиме реального времени.
Запуск размещенного агента в режиме контейнера
Подсказка
Откройте локальную площадку перед запуском агента контейнера, чтобы обеспечить правильность функций визуализации.
Чтобы запустить размещенный агент в режиме контейнера:
- Откройте палитру команд кода Visual Studio и выполните команду
Microsoft Foundry: Open Container Agent Playground Locally. - Выполните
main.py, чтобы инициализировать размещённый контейнеризованный агент. - Отправьте запрос агенту через интерфейс игровой площадки. Например, введите запрос, например: "Создайте лозунг для нового электрического внедорожника, который доступен и весело ездить".
- Просмотрите ответ агента в интерфейсе детской площадки.
Пример рабочего процесса проект создает .env файл с необходимыми переменными среды. Создайте или обновите env-файл с помощью учетных данных Foundry:
Настройте переменные среды на основе операционной системы:
$env:AZURE_AI_PROJECT_ENDPOINT="https://<your-resource-name>.services.ai.azure.com/api/projects/<your-project-name>" $env:AZURE_AI_MODEL_DEPLOYMENT_NAME="your-deployment-name"
Аутентификация хостингового агента
Пример размещенного агента проходит проверку подлинности с помощью DefaultAzureCredential. Настройте среду разработки для предоставления учетных данных с помощью одного из поддерживаемых источников, например:
- Azure CLI (
az login) - вход в учетную запись в Visual Studio Code
- вход в учетную запись Visual Studio
- Переменные среды для субъекта-службы (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
Подтвердите проверку подлинности локально, выполнив команды Azure CLI az account show или az account get-access-token перед выполнением примера.
Размещенный агент можно запустить в интерактивном режиме или в режиме контейнера.
Запуск размещенного агента в интерактивном режиме
Запустите размещенный агент непосредственно для разработки и тестирования:
dotnet restore
dotnet build
dotnet run
Запуск размещенного агента в режиме контейнера
Подсказка
Откройте локальную площадку перед запуском агента контейнера, чтобы обеспечить правильность функций визуализации.
Чтобы запустить агент в режиме контейнера, выполните следующие действия.
- Откройте палитру команд кода Visual Studio и выполните команду
Microsoft Foundry: Open Container Agent Playground Locally. - Выполните следующую команду, чтобы инициализировать контейнеризованный размещенный агент.
dotnet restore dotnet build dotnet run - Отправьте запрос агенту через интерфейс игровой площадки. Например, введите запрос, например: "Создайте лозунг для нового электрического внедорожника, который доступен и весело ездить".
- Просмотрите ответ агента в интерфейсе детской площадки.
Визуализация выполнения процесса облачного агента
Расширение Foundry для Visual Studio Code предоставляет график выполнения в режиме реального времени, показывающий, как агенты в рабочем процессе взаимодействуют и сотрудничают. Включите наблюдаемость в проекте для использования этой визуализации.
Включите визуализацию в рабочих процессах, добавив следующий фрагмент кода:
from agent_framework.observability import setup_observability
setup_observability(vs_code_extension_port=4319) # Default port is 4319
Добавьте следующую ссылку на csproj-файл:
<ItemGroup>
<PackageReference Include="OpenTelemetry" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.10" />
</ItemGroup>
Обновите программу, чтобы включить следующий фрагмент кода:
using System.Diagnostics;
using OpenTelemetry;
using OpenTelemetry.Logs;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
var otlpEndpoint =
Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4319";
var resourceBuilder = OpenTelemetry
.Resources.ResourceBuilder.CreateDefault()
.AddService("WorkflowSample");
var s_tracerProvider = OpenTelemetry
.Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resourceBuilder)
.AddSource("Microsoft.Agents.AI.*") // All agent framework sources
.SetSampler(new AlwaysOnSampler()) // Ensure all traces are sampled
.AddOtlpExporter(options =>
{
options.Endpoint = new Uri(otlpEndpoint);
options.Protocol = OpenTelemetry.Exporter.OtlpExportProtocol.Grpc;
})
.Build();
Мониторьте и визуализируйте рабочий процесс агента хостинга.
Чтобы отслеживать и визуализировать выполнение размещенного рабочего процесса агента в режиме реального времени:
Откройте палитру команд (CTRL+SHIFT+P).
Выполните следующую команду:
>Microsoft Foundry: Open Visualizer for Hosted Agents.
Откроется новая вкладка в VS Code для отображения графа выполнения. Визуализация обновляется автоматически по мере выполнения рабочего процесса, чтобы отобразить поток между агентами и их взаимодействием.
Конфликты портов
Для конфликтов портов можно изменить порт визуализации, задав его в параметрах расширения Foundry. Чтобы сделать это, выполните следующие действия.
- В левой боковой панели VS Code выберите значок шестеренки, чтобы открыть меню параметров.
- Выберите
Extensions>Microsoft Foundry Configuration. - Найдите параметр
Hosted Agent Visualization Portи измените его на доступный номер порта. - Перезапустите VS Code, чтобы применить изменения.
Изменение порта в коде
Измените порт визуализации, задав FOUNDRY_OTLP_PORT переменную среды. Обновите порт наблюдаемости в workflow.py файле соответствующим образом.
Например, чтобы изменить порт на 4318, используйте следующую команду:
export FOUNDRY_OTLP_PORT=4318
Обновите номер порта в workflow.py конфигурации наблюдаемости:
setup_observability(vs_code_extension_port=4318)
Подсказка
Чтобы включить дополнительные сведения об отладке, добавьте enable_sensitive_data=True параметр в функцию setup_observability .
Для любых конфликтов портов измените порт визуализации, задав FOUNDRY_OTLP_PORT переменную среды. Обновите конечную точку OTLP в программе соответствующим образом.
Например, чтобы изменить порт на 4318, используйте следующую команду:
$env:FOUNDRY_OTLP_PORT="4318"
В программе обновите конечную точку OTLP, чтобы использовать новый номер порта:
var otlpEndpoint =
Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4318";
Разверните размещенного агента
После локального тестирования размещенного агента разверните его в рабочей области Foundry, чтобы другие участники команды и приложения могли использовать его.
Это важно
Убедитесь, что вы предоставляете необходимые разрешения для развертывания размещенных агентов в рабочей области Foundry, как указано в предварительных требованиях. Возможно, вам потребуется работать с администратором Azure, чтобы получить необходимые назначения ролей.
- Откройте палитру команд кода Visual Studio и выполните команду
Microsoft Foundry: Deploy Hosted Agent. - Настройте параметры развертывания, выбрав целевую рабочую область, указав файл агента контейнера (
container.py) и определив все другие параметры развертывания по мере необходимости. - После успешного развертывания размещенный агент появится в
Hosted Agents (Preview)разделе дерева расширения Microsoft Foundry. - Выберите развернутого агента, чтобы получить доступ к подробным сведениям и протестировать функциональность с помощью интегрированного интерфейса песочницы.
- Откройте палитру команд кода Visual Studio и выполните команду
Microsoft Foundry: Deploy Hosted Agent. - Настройте параметры развертывания, выбрав целевую рабочую область, указав файл агента контейнера (
<your-project-name>.csproj) и определив все другие параметры развертывания по мере необходимости. - После успешного развертывания размещенный агент появится в
Hosted Agents (Preview)разделе дерева расширения Microsoft Foundry. - Выберите развернутого агента, чтобы получить доступ к подробным сведениям и проверить функциональность с помощью интегрированного интерфейса песочницы.