Udostępnij przez


Tworzenie przepływów pracy hostowanego agenta w programie Visual Studio Code (wersja zapoznawcza)

Tworzenie, testowanie i wdrażanie hostowanych przepływów pracy agenta Foundry przy użyciu rozszerzenia Microsoft Foundry for Visual Studio Code. Hostowane przepływy pracy umożliwiają współpracę wielu agentów w sekwencji, z których każdy ma własny model, narzędzia i instrukcje.

Przed rozpoczęciem, skomplikuj agenta w usłudze Foundry Agent Service przy użyciu rozszerzenia. Następnie możesz dodać hostowane przepływy pracy do tego agenta.

W tym artykule opisano tworzenie projektu przepływu pracy, uruchamianie go lokalnie, wizualizowanie wykonania i wdrażanie go w obszarze roboczym usługi Foundry.

Wymagania wstępne

  • Środowisko Python w wersji 3.10 lub nowszej.

Tworzenie przepływu pracy hostowanego agenta

Do tworzenia przepływów pracy hostowanych agentów można użyć rozszerzenia Foundry for Visual Studio Code. Przepływ pracy hostowanego agenta to sekwencja agentów, które współpracują ze sobą w celu wykonania zadania. Każdy agent w przepływie pracy może mieć własny model, narzędzia i instrukcje.

  1. Otwórz paletę poleceń (Ctrl+Shift+P).

  2. Uruchom następujące polecenie: >Microsoft Foundry: Create a New Hosted Agent.

  3. Wybierz język programowania.

  4. Wybierz folder, w którym chcesz zapisać nowy przepływ pracy.

  5. Wprowadź nazwę projektu przepływu pracy.

Nowy folder jest tworzony z wymaganymi plikami dla projektu hostowanego agenta, w tym przykładowym plikiem kodu, aby rozpocząć pracę.

Instalowanie zależności

Zainstaluj wymagane zależności dla projektu hostowanego agenta. Zależności różnią się w zależności od języka programowania wybranego podczas tworzenia projektu.

  1. Tworzenie środowiska wirtualnego.

     python -m venv .venv
    
  2. Aktywuj środowisko wirtualne.

    # PowerShell
    ./.venv/Scripts/Activate.ps1
    
    # Windows cmd
    .venv\Scripts\activate.bat
    
    # Unix/MacOS
    source .venv/bin/activate
    
  3. Zainstaluj następujący pakiet:

    pip install azure-ai-agentserver-agentframework
    
  1. Przejdź do katalogu projektu i uruchom to polecenie, aby uzyskać niezbędne pakiety NuGet:

    dotnet restore
    

Uruchamianie hostowanego przepływu pracy lokalnie

Przykładowy projekt przepływu pracy tworzy plik env z niezbędnymi zmiennymi środowiskowymi. Utwórz lub zaktualizuj plik .env za pomocą poświadczeń 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>

Ważna

Nigdy nie zatwierdzaj .env pliku do kontroli wersji. Dodaj go do .gitignore pliku.

Uwierzytelnianie hostowanego agenta

Przykład hostowanego agenta uwierzytelnia się z użyciem DefaultAzureCredential. Skonfiguruj środowisko deweloperskie, aby podać poświadczenia za pośrednictwem jednego z obsługiwanych źródeł, na przykład:

  • Interfejs wiersza polecenia Azure CLI (az login)
  • Logowanie do konta programu Visual Studio Code
  • Logowanie do konta programu Visual Studio
  • Zmienne środowiskowe jednostki usługi (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)

Potwierdź uwierzytelnianie lokalnie, uruchamiając polecenia Azure CLI az account show lub az account get-access-token przed uruchomieniem próbki.

Możesz uruchomić hostowanego agenta w trybie interaktywnym lub w trybie kontenera.

Uruchamianie hostowanego agenta w trybie interaktywnym

Naciśnij klawisz F5 w programie VS Code, aby rozpocząć debugowanie. Alternatywnie możesz użyć menu debugowania programu VS Code:

  1. Otwórz widok Uruchom i debugowanie (Ctrl+Shift+D / Cmd+Shift+D)
  2. Wybierz z listy rozwijanej pozycję "Debuguj lokalny serwer HTTP dla przepływu pracy".
  3. Wybierz zielony przycisk Rozpocznij debugowanie (lub naciśnij klawisz F5)

Spowoduje to:

  1. Uruchamianie serwera HTTP z włączonym debugowaniem
  2. Otwórz AI Toolkit Agent Inspector do testów interaktywnych
  3. Umożliwia ustawienie punktów przerwania i sprawdzenie wykonywania przepływu pracy w czasie rzeczywistym.

Uruchamianie hostowanego agenta w trybie kontenera

Wskazówka

Otwórz lokalny plac zabaw przed uruchomieniem agenta kontenera, aby upewnić się, że wizualizacja działa poprawnie.

Aby uruchomić hostowanego agenta w trybie kontenera:

  1. Otwórz paletę poleceń programu Visual Studio Code i wykonaj Microsoft Foundry: Open Container Agent Playground Locally polecenie .
  2. Wykonaj polecenie main.py , aby zainicjować konteneryzowanego hostowanego agenta.
  3. Prześlij żądanie do agenta za pośrednictwem interfejsu placu zabaw. Na przykład wprowadź monit, taki jak: "Utwórz hasło dla nowego elektrycznego SUV-a, który jest przystępny cenowo i zabawny do jazdy".
  4. Przejrzyj odpowiedź agenta w interfejsie placu zabaw.

Przykładowy projekt przepływu pracy tworzy plik env z niezbędnymi zmiennymi środowiskowymi. Utwórz lub zaktualizuj plik .env za pomocą poświadczeń Foundry.

  1. Skonfiguruj zmienne środowiskowe na podstawie systemu operacyjnego:

    $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"
    

Uwierzytelnianie hostowanego agenta

Przykład hostowanego agenta uwierzytelnia się z użyciem DefaultAzureCredential. Skonfiguruj środowisko deweloperskie, aby podać poświadczenia za pośrednictwem jednego z obsługiwanych źródeł, na przykład:

  • Interfejs wiersza polecenia Azure CLI (az login)
  • Logowanie do konta programu Visual Studio Code
  • Logowanie do konta programu Visual Studio
  • Zmienne środowiskowe jednostki usługi (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)

Potwierdź uwierzytelnianie lokalnie, uruchamiając polecenia Azure CLI az account show lub az account get-access-token przed uruchomieniem próbki.

Możesz uruchomić hostowanego agenta w trybie interaktywnym lub w trybie kontenera.

Uruchamianie hostowanego agenta w trybie interaktywnym

Uruchom hostowanego agenta bezpośrednio na potrzeby programowania i testowania:

dotnet restore
dotnet build
dotnet run

Uruchamianie hostowanego agenta w trybie kontenera

Wskazówka

Otwórz lokalny plac zabaw przed uruchomieniem agenta kontenera, aby upewnić się, że wizualizacja działa poprawnie.

Aby uruchomić agenta w trybie kontenera:

  1. Otwórz paletę poleceń programu Visual Studio Code i wykonaj Microsoft Foundry: Open Container Agent Playground Locally polecenie .
  2. Użyj następującego polecenia, aby zainicjować konteneryzowanego hostowanego agenta.
    dotnet restore
    dotnet build
    dotnet run
    
  3. Prześlij żądanie do agenta za pośrednictwem interfejsu placu zabaw. Na przykład wprowadź monit, taki jak: "Utwórz hasło dla nowego elektrycznego SUV-a, który jest przystępny cenowo i zabawny do jazdy".
  4. Przejrzyj odpowiedź agenta w interfejsie placu zabaw.

Wizualizowanie wykonywania przepływu pracy hostowanego agenta

Rozszerzenie Foundry for Visual Studio Code udostępnia graf wykonania w czasie rzeczywistym, który pokazuje, jak agenci w przepływie pracy współpracują. Włącz możliwość obserwowania w projekcie, aby używać tej wizualizacji.

Włącz wizualizację w przepływach pracy, dodając następujący fragment kodu:

from agent_framework.observability import setup_observability
setup_observability(vs_code_extension_port=4319) # Default port is 4319

Dodaj następujące odwołanie do pliku 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>

Zaktualizuj program w celu uwzględnienia następującego fragmentu kodu:

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();

Monitorowanie i wizualizowanie przepływu pracy hostowanego agenta

Aby monitorować i wizualizować realizację przepływu pracy hostowanego agenta w czasie rzeczywistym:

  1. Otwórz paletę poleceń (Ctrl+Shift+P).

  2. Uruchom następujące polecenie: >Microsoft Foundry: Open Visualizer for Hosted Agents.

Zostanie otwarta nowa karta w programie VS Code, aby wyświetlić graf wykonywania. Wizualizacja automatycznie aktualizuje się w miarę postępu przepływu pracy, aby pokazać przepływ między agentami a ich interakcjami.

Konflikty portów

W przypadku konfliktów portów można zmienić port wizualizacji, ustawiając go w ustawieniach rozszerzenia Foundry. W tym celu wykonaj następujące kroki:

  1. Na lewym pasku bocznym programu VS Code wybierz ikonę koła zębatego, aby otworzyć menu ustawień.
  2. Wybierz pozycję Extensions>Microsoft Foundry Configuration.
  3. Hosted Agent Visualization Port Znajdź ustawienie i zmień je na dostępny numer portu.
  4. Uruchom ponownie program VS Code, aby zastosować zmiany.

Zmienianie portu w kodzie

Zmień port wizualizacji, ustawiając zmienną środowiskową FOUNDRY_OTLP_PORT . Zaktualizuj odpowiednio port obserwowalności w pliku workflow.py.

Aby na przykład zmienić port na 4318, użyj następującego polecenia:

  export FOUNDRY_OTLP_PORT=4318

W workflow.py zaktualizuj numer portu w konfiguracji obserwowalności.

  setup_observability(vs_code_extension_port=4318)

Wskazówka

Aby włączyć więcej informacji o debugowaniu, dodaj enable_sensitive_data=True parametr do setup_observability funkcji.

W przypadku konfliktów portów zmień port wizualizacji, ustawiając zmienną FOUNDRY_OTLP_PORT środowiskową. Odpowiednio zaktualizuj punkt końcowy OTLP w programie.

Aby na przykład zmienić port na 4318, użyj następującego polecenia:

  $env:FOUNDRY_OTLP_PORT="4318"

W programie zaktualizuj punkt końcowy OTLP, aby użyć nowego numeru portu:

var otlpEndpoint =
    Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4318";

Wdrażanie hostowanego agenta

Po przetestowaniu hostowanego agenta lokalnie wdróż go w obszarze roboczym rozwiązania Foundry, aby inni członkowie zespołu i aplikacje mogli z niego korzystać.

Ważna

Upewnij się, że masz uprawnienia niezbędne do wdrażania hostowanych agentów w obszarze roboczym rozwiązania Foundry, zgodnie z wymaganiami wstępnymi. Aby uzyskać wymagane przypisania ról, może być konieczne współdziałanie z administratorem platformy Azure.

  1. Otwórz paletę poleceń programu Visual Studio Code i uruchom Microsoft Foundry: Deploy Hosted Agent polecenie .
  2. Skonfiguruj ustawienia wdrożenia, wybierając docelowy obszar roboczy, określając plik agenta kontenera (container.py) i definiując wszelkie inne parametry wdrożenia zgodnie z potrzebami.
  3. Po pomyślnym wdrożeniu hostowany agent zostanie wyświetlony w Hosted Agents (Preview) sekcji widoku drzewa rozszerzenia Microsoft Foundry.
  4. Wybierz wdrożonego agenta, aby uzyskać dostęp do szczegółowych informacji i funkcji testowania przy użyciu zintegrowanego interfejsu placu zabaw.
  1. Otwórz paletę poleceń programu Visual Studio Code i uruchom Microsoft Foundry: Deploy Hosted Agent polecenie .
  2. Skonfiguruj ustawienia wdrożenia, wybierając docelowy obszar roboczy, określając plik agenta kontenera (<your-project-name>.csproj) i definiując wszelkie inne parametry wdrożenia zgodnie z potrzebami.
  3. Po pomyślnym wdrożeniu hostowany agent zostanie wyświetlony w Hosted Agents (Preview) sekcji widoku drzewa rozszerzenia Microsoft Foundry.
  4. Wybierz wdrożonego agenta, aby uzyskać dostęp do szczegółowych informacji i funkcji testowania przy użyciu zintegrowanego interfejsu placu zabaw.