Criar fluxos de trabalho de agentes alojados na extensão Microsoft Foundry Toolkit for Visual Studio Code

Crie, teste e implemente fluxos de trabalho alojados do Foundry Agent utilizando a extensão Microsoft Foundry Toolkit para Visual Studio Code. O kit de ferramentas suporta a criação de agentes a partir de templates, testes locais e depuração com o Agent Inspector para suporte à visualização e rastreamento, bem como a implementação direta para o Foundry Agent Service a partir do VS Code. Os fluxos de trabalho alojados permitem que múltiplos agentes colaborem em sequência, cada um com o seu próprio modelo, ferramentas e instruções.

Antes de começar, crie um agente no Foundry Agent Service usando a extensão. Depois podes adicionar fluxos de trabalho alojados a esse agente.

Este artigo aborda a criação de um projeto de workflow, execução local, visualização da execução e implementação no seu espaço de trabalho Foundry.

Pré-requisitos

  • Um projeto Foundry com um modelo implementado, ou um recurso Azure OpenAI.

  • A extensão Microsoft Foundry Toolkit para Visual Studio Code foi instalada.

  • A identidade gerida do projeto com as funções Foundry User e AcrPull atribuídas. Atribua também a função acrPull à identidade gerida associada ao projeto Foundry onde tenciona implementar o agente alojado.

    Importante

    As funções RBAC do Foundry foram recentemente renomeadas. Foundry User, Foundry Owner, Foundry Account Owner e Foundry Project Manager foram anteriormente nomeados Azure AI User, Azure AI Owner, Azure AI Account Owner e Azure AI Project Manager. Poderá ainda ver os nomes anteriores em alguns locais enquanto esta alteração de nome está a ser implementada. Os IDs das funções e as permissões principais não são alterados por esta mudança de nome.

  • Uma região suportada para agentes alojados.

  • Python 3.13 ou superior.

Criar um fluxo de trabalho de agente alojado

Pode usar a extensão Microsoft Foundry Toolkit for Visual Studio Code para criar fluxos de trabalho de agentes alojados. Um fluxo de trabalho de agente hospedado é uma sequência de agentes que trabalham em conjunto para realizar uma tarefa. Cada agente no fluxo de trabalho pode ter o seu próprio modelo, ferramentas e instruções.

  1. Abra a paleta de comandos (Ctrl+Shift+P).

  2. Executa este comando: >Foundry Toolkit: Create a New Hosted Agent.

  3. Selecione uma linguagem de programação

  4. Escolha um framework, seja o Copilot SDK, o Microsoft Agent Framework ou o seu próprio.

  5. Escolha um protocolo, seja a API de Respostas ou a API de Invocações.

  6. Escolha um modelo da lista.

  7. Selecione o botão "Próximo".

  8. Selecione uma pasta onde queira guardar o seu novo Agente Hospedado.

  9. Para a Configuração do Ambiente, ao selecionar "Saltar por agora" salta a configuração do projeto e modelo do Foundry, o que exige que os configure manualmente no código mais tarde. Selecionar "Configurar com o Microsoft Foundry" preencherá automaticamente as informações do seu projeto e modelo com base no projeto existente do Foundry.

Os ficheiros do seu projeto de agente alojado são gerados na pasta selecionada com base no framework, modelo e linguagem que escolheu para começar. Podes remover ou modificar esse código conforme necessário.

Instalar dependências

Instala as dependências necessárias para o teu projeto de agente alojado. As dependências variam consoante a linguagem de programação que escolheste ao criar o projeto.

  1. Crie um ambiente virtual.

     python -m venv .venv
    
  2. Ativa o ambiente virtual.

    # PowerShell
    ./.venv/Scripts/Activate.ps1
    
    # Windows cmd
    .venv\Scripts\activate.bat
    
    # Unix/MacOS
    source .venv/bin/activate
    
  3. Instale os pacotes necessários:

    pip install -r requirements.txt
    
  1. Vá ao diretório do seu projeto e execute este comando para obter os pacotes NuGet necessários:

    dotnet restore
    

Executa o teu fluxo de trabalho alojado localmente

O projeto de workflow de exemplo cria um ficheiro .env com as variáveis de ambiente necessárias. Crie ou atualize o ficheiro .env com as suas credenciais Foundry:

FOUNDRY_PROJECT_ENDPOINT=https://<your-resource-name>.services.ai.azure.com/api/projects/<your-project-name>

AZURE_AI_MODEL_DEPLOYMENT_NAME=<your-model-deployment-name>

Importante

Nunca comprometas o .env ficheiro no controlo de versões. Adiciona isso ao teu .gitignore ficheiro.

Autentique o seu agente alojado

O exemplo de agente hospedado autentica-se usando DefaultAzureCredential. Configure o seu ambiente de desenvolvimento para fornecer credenciais através de uma das fontes suportadas, por exemplo:

  • CLI do Azure (az login)
  • Início de sessão de conta no Visual Studio Code
  • Início de sessão no Visual Studio
  • Variáveis de ambiente para um principal de serviço (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)

Confirme a autenticação localmente executando os comandos CLI do Azure az account show ou az account get-access-token antes de executar a amostra.

Podes executar o agente Hosted em modo interativo ou contentor.

Coloca o teu agente alojado no Agent Inspector

Prima F5 para iniciar o servidor HTTP local com a depuração ativada. O Foundry Toolkit Agent Inspector abre para testes interativos, e pode definir pontos de interrupção no seu código.

Para executar o servidor sem depuração:

python main.py

O agente ouve em http://localhost:8088/. Envie um prompt de teste com curl (ou qualquer cliente HTTP):

curl -sS -H "Content-Type: application/json" -X POST http://localhost:8088/responses \
    -d '{"input": "Write a haiku about deploying cloud applications.", "stream": false}'

O projeto de workflow de exemplo cria um ficheiro .env com as variáveis de ambiente necessárias. Crie ou atualize o ficheiro .env com as suas credenciais Foundry:

  1. Configura as variáveis do teu ambiente com base no teu sistema operativo:

    $env:FOUNDRY_PROJECT_ENDPOINT="https://<your-resource-name>.services.ai.azure.com/api/projects/<your-project-name>"
    $env:AZURE_AI_MODEL_DEPLOYMENT_NAME="your-deployment-name"
    

Autentique o seu agente alojado

O exemplo de agente hospedado autentica-se usando DefaultAzureCredential. Configure o seu ambiente de desenvolvimento para fornecer credenciais através de uma das fontes suportadas, por exemplo:

  • CLI do Azure (az login)
  • Início de sessão de conta no Visual Studio Code
  • Início de sessão no Visual Studio
  • Variáveis de ambiente para um principal de serviço (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)

Confirme a autenticação localmente executando os comandos CLI do Azure az account show ou az account get-access-token antes de executar a amostra.

Podes executar o agente Hosted em modo interativo ou contentor.

Execute o seu agente alojado em modo interativo

Execute o agente Alojado diretamente para desenvolvimento e teste:

dotnet restore
dotnet build
dotnet run

Execute o seu agente hospedado em modo contentor

Dica

Abra o playground local antes de iniciar o agente do container para garantir que a visualização funcione corretamente.

Para executar o agente em modo contentor:

  1. Abra a Paleta de Comandos Visual Studio Code e execute o comando Foundry Toolkit: Open Container Agent Playground Locally.
  2. Utilize o seguinte comando para inicializar o agente alojado contentorizado.
    dotnet restore
    dotnet build
    dotnet run
    
  3. Envie um pedido ao agente através da interface do playground. Por exemplo, introduza um prompt como: "Crie um slogan para um novo SUV elétrico que seja acessível e divertido de conduzir."
  4. Veja a resposta do agente na interface do playground.

Visualizar a execução do fluxo de trabalho do agente alojado

A extensão Microsoft Foundry Toolkit for Visual Studio Code fornece um gráfico de execução em tempo real que mostra como os agentes do seu fluxo de trabalho interagem e colaboram. Ative a observabilidade no seu projeto para usar esta visualização.

Adicione a seguinte referência ao seu ficheiro 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>

Atualize o seu programa para incluir o seguinte excerto de código:

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

Monitorize e visualize o fluxo de trabalho do seu agente hospedado

Para monitorizar e visualizar a execução do seu fluxo de trabalho de agente alojado em tempo real:

  1. Abra a paleta de comandos (Ctrl+Shift+P).

  2. Executa este comando: >Foundry Toolkit: Open Visualizer for Hosted Agents.

Abre-se um novo separador em VS Code para mostrar o gráfico de execução. A visualização atualiza-se automaticamente à medida que o seu fluxo de trabalho avança, para mostrar o fluxo entre os agentes e as suas interações.

Conflitos portuários

Para conflitos de porta, podes alterar a porta de visualização definindo-a nas definições da extensão Microsoft Foundry Toolkit para o Visual Studio Code. Para isso, siga estes passos:

  1. Na barra lateral esquerda do VS Code, selecione o ícone de engrenagem para abrir o menu de definições.
  2. Seleciona Extensions>Microsoft Foundry Configuration.
  3. Localiza a Hosted Agent Visualization Port definição e muda-a para um número de porta disponível.
  4. Reiniciar o VS Code para aplicar as alterações.

Alterar porta no código

Para quaisquer conflitos de porta, altere a porta de visualização definindo a FOUNDRY_OTLP_PORT variável de ambiente. Atualize o endpoint OTLP no seu programa em conformidade.

Por exemplo, para mudar a porta para 4318, use este comando:

  $env:FOUNDRY_OTLP_PORT="4318"

No seu programa, atualize o endpoint OTLP para usar o novo número de porta:

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

Implementar o agente alojado

Depois de testares o teu agente alojado localmente, implementa-o no teu espaço de trabalho Foundry para que outros membros da equipa e aplicações possam usá-lo.

Importante

Certifique-se de que concede as permissões necessárias para implementar agentes Alojados no seu espaço de trabalho Foundry, conforme indicado nos Pré-requisitos. Pode ser necessário trabalhar com o seu administrador do Azure para obter as atribuições de funções necessárias.

  1. Abra a Paleta de Comandos e selecione Foundry Toolkit: Deploy Hosted Agent. Será aberta uma visualização web de implantação.
  2. Para "Método de Implementação", selecione Código ou Contentor.
  3. Ao implementar com "Code", em "Package Mode", selecione Remoto ou Local.
  4. Se implementar com "Contentor", selecione uma das seguintes opções: Default ACR, Custom ACR ou Customer ACR Image.
  5. O "Nome do Agente" deve ser preenchido automaticamente.
  6. Selecione o botão "Próximo".
  7. Esta página "Rever e Implementar" deverá ser totalmente preenchida automaticamente.
  8. Selecione o botão "Implementar".
  9. Abra a Paleta de Comandos Visual Studio Code e execute o comando Foundry Toolkit: Deploy Hosted Agent.
  1. Abra a Paleta de Comandos Visual Studio Code e execute o comando Foundry Toolkit: Deploy Hosted Agent.
  2. Para "Método de Implementação", selecione Código ou Contentor.
  3. Ao implementar com "Code", em "Package Mode", selecione Remoto ou Local.
  4. Se implementar com "Contentor", selecione uma das seguintes opções: Default ACR, Custom ACR ou Customer ACR Image.
  5. O "Nome do Agente" deve ser preenchido automaticamente.
  6. Selecione o botão "Próximo".
  7. Esta página "Rever e Implementar" deverá ser totalmente preenchida automaticamente.
  8. Selecione o botão "Implementar".