Início Rápido: Otimizar um agente hospedado (versão prévia)

Importante

O Otimizador de Agente está atualmente em versão prévia. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Neste início rápido, você implanta o agente de exemplo de otimização, executa o otimizador de agentes para melhorar suas instruções e implanta o candidato vencedor.

Para obter os conceitos por trás de cada etapa e do caminho completo de ponta a ponta, consulte o fluxo de trabalho de otimização.

Pré-requisitos

Antes de começar, você precisa de:

  • azd CLI (CLI do desenvolvedor do Azure).

  • CLI do Azure para autenticação.

  • A extensão microsoft.foundry para azd (0.1.40-preview ou posterior da dependência azure.ai.agents):

    azd ext install microsoft.foundry
    

    Se já estiver instalado, atualize:

    azd ext upgrade microsoft.foundry
    
  • CLI do Azure para autenticação.

  • Python 3.10 ou posterior.

  • Os pacotes de Python usados neste caminho:

    pip install "azure-ai-projects>=2.4.0" azure-ai-agentserver-optimization azure-identity python-dotenv
    
  • Um projeto do Foundry existente que já contém o agente hospedado, o conjunto de dados registrado e o avaliador que você deseja usar para otimização.

Dica

Se você não tiver o Foundry Toolkit, instale-o no Visual Studio Code Marketplace. O Foundry Toolkit reúne seus recursos do Foundry, o catálogo de modelos, a implantação de agentes hospedados e os ambientes de teste, além do Agent Optimization, no Visual Studio Code. Recarregue Visual Studio Code se solicitado e entre no Azure. Para obter um tour pela extensão, consulte Work with the Microsoft Foundry Toolkit for Visual Studio Code extension.

  • Um host para agente de codificação com a Microsoft Foundry Skill instalada.

  • CLI do Azure e CLI do Azure para Desenvolvedores (AZD) instalados e autenticados:

    az login
    azd auth login
    
  • A extensão microsoft.foundry para AZD. Instale-o antes de iniciar o fluxo de trabalho:

    azd ext install microsoft.foundry
    

    Se ele já estiver instalado, atualize-o:

    azd ext upgrade microsoft.foundry
    
  • Sua assinatura do Azure deve estar na lista de permissões para o otimizador do agente. Entre em contato com seu representante Microsoft para solicitar acesso.

Note

Atualmente, o otimizador de agentes está em versão preliminar.

Etapa 1: Criar o projeto

Inicialize um novo projeto do modelo de exemplo de otimização:

mkdir my-agent && cd my-agent
azd ai agent init -m https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/bring-your-own/responses/optimization-customer-support/azure.yaml .

Esse modelo importa o exemplo de Suporte ao Cliente de Otimização, um agente hospedado Python pronto para otimização que usa a abordagem bring-your-own e o protocolo Responses. Representa um agente de suporte eletrônico do consumidor que lida com consultas de pedidos, retornos, declarações de garantia, solução de problemas, reclamações, recomendações e escalonamento. A instrução de linha de base deliberadamente mínima torna as melhorias da otimização de instrução e da descoberta de habilidades fáceis de comparar.

O exemplo chama load_config() para carregar a configuração base ou a configuração candidata e inclui .agent_configs/baseline/, eval.yaml, conjuntos de dados de avaliação completos e rápidos, configuração de contêiner e o manifesto de implantação do Foundry. O fluxo interativo importa esses arquivos e solicita que você informe sua assinatura do Azure, a região e as configurações de implantação do modelo.

Dica

Se você já tiver um projeto de agente existente, consulte Tornar o otimizador do agente pronto para adicionar suporte à otimização.

Se você já tiver um projeto do Foundry, adicione -p <project-resource-id> para usar recursos existentes como destino.

Para otimizar um agente já implantado sem executar azd ai agent init ou criar azure.yaml e .azure arquivos, ignore esta etapa de criação de projeto e siga Otimizar um agente existente sem arquivos de projeto do AZD.

Etapa 2: Provisionar e implantar

Autenticar e provisionar os recursos de Azure:

az login
azd auth login
azd provision

O provisionamento leva aproximadamente dois minutos e cria uma conta do Foundry, um projeto, Registro de Contêiner do Azure e implantações de modelo.

Implante o agente:

azd deploy

Teste a implantação:

azd ai agent invoke "What is 2+2?"

Etapa 3: gerar o pacote de avaliação e otimizar

Gere um conjunto de dados de avaliação e avaliadores para seu agente:

azd ai agent eval generate

Esta etapa cria eval.yaml, um conjunto de dados de teste e avaliadores de pontuação com base nas instruções do agente. O otimizador usa esses arquivos para medir o aprimoramento.

Execute o otimizador:

azd ai agent optimize --max-candidates 2

A CLI solicita que você selecione um modelo de otimização. Para ignorar o prompt, passe-o diretamente:

azd ai agent optimize --max-candidates 2 --optimize-model gpt-5

A CLI detecta seu agente a partir de azure.yaml e usa o eval.yaml gerado automaticamente. Com dois candidatos, a otimização normalmente é concluída em cerca de 8 minutos. O progresso em tempo real é mostrado:

Optimizing agent "customer-support-py"...
  Config: eval.yaml
  Baseline saved to .agent_configs/baseline/metadata.yaml
  Job ID: opt_162bd0f09....
  Status: pending
  Portal: <OPTIMIZATION-JOB-URL>

Use a URL do portal para monitorar seu trabalho no portal do Foundry.

O modelo de avaliação pontua cada resposta (qualquer modelo de conclusão de chat funciona). O modelo de otimização (--optimize-model) gera candidatos aprimorados e deve ser da lista com suporte (família gpt-5 ou DeepSeek). Você também pode definir optimization_model em options: em eval.yaml para evitar passar o sinalizador a cada vez.

Etapa 4: Implementar a versão vencedora

A estrela (*) na saída indica o melhor candidato. Aplique a configuração otimizada localmente e implante:

azd ai agent optimize apply --candidate <candidate-id>
azd deploy

O apply comando baixa a configuração .agent_configs/<candidate_id>/ otimizada e atualiza sua azure.yaml para usar as novas instruções. O comando deploy coloca o agente otimizado em produção por meio da implantação de código.

Invoque seu agente para verificar a melhoria:

azd ai agent invoke "What is your return policy?"

Você também pode executar a avaliação para confirmar a melhoria da pontuação:

azd ai agent eval run

Caminho do SDK do Python

Use as etapas a seguir se quiser executar o otimizador de Python em vez do fluxo de trabalho da CLI do Desenvolvedor Azure descrito anteriormente.

Esse caminho pressupõe que você já tenha os seguintes recursos em um projeto de Foundry existente:

  • Um agente hospedado para otimização.
  • Um conjunto de dados de treinamento registrado.
  • Um avaliador registrado.

Ao contrário do fluxo do Azure Developer CLI descrito anteriormente, a abordagem com o SDK do Python não cria a estrutura de um projeto nem gera eval.yaml, um conjunto de dados ou avaliadores para você. Se você quiser que o exemplo crie esses ativos automaticamente, use azd ai agent eval generate primeiro.

1. Criar um .env arquivo

Crie uma pasta de trabalho e adicione um .env arquivo com estes valores:

FOUNDRY_PROJECT_ENDPOINT=<your-project-endpoint>
FOUNDRY_AGENT_NAME=<your-hosted-agent-name>
DATASET_NAME=<your-registered-dataset-name>
EVALUATOR_NAME=<your-registered-evaluator-name>
DATASET_VERSION=1
POLL_INTERVAL_SECONDS=10
EVAL_MODEL=<your-eval-model-deployment-name>
OPTIMIZATION_MODEL=<your-optimization-model-deployment-name>

Execute o script nessa mesma pasta de trabalho para load_dotenv() poder carregar o .env arquivo automaticamente. Se você preferir executá-lo de outro diretório, defina os mesmos valores em seu ambiente de shell primeiro.

Use o ponto de extremidade exato do projeto na página visão geral do projeto do Foundry. O script Python envia sua primeira solicitação imediatamente. Se FOUNDRY_PROJECT_ENDPOINT for apenas um espaço reservado ou apontar para o projeto errado, a execução falhará com ResourceNotFound: The project does not exist.

Defina EVAL_MODEL e OPTIMIZATION_MODEL como nomes de implantação que já existem no seu projeto do Foundry, e não apenas nomes de famílias de modelos. Por exemplo, se a implantação do seu projeto se chamar gpt-4.1-mini ou DeepSeek-V3.2, use esse nome exato da implantação em .env.

2. Executar o trabalho de otimização

Crie um arquivo nomeado optimize_hosted_agent.py na mesma pasta que .env:

import os
import time

from azure.ai.agentserver.optimization import load_config
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
  OptimizationAgentIdentifier,
  OptimizationEvaluatorRef,
  OptimizationJob,
  OptimizationJobInputs,
  OptimizationOptions,
  OptimizationReferenceDatasetInput,
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv

load_dotenv()

endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
agent_name = os.environ["FOUNDRY_AGENT_NAME"]
dataset_name = os.environ["DATASET_NAME"]
evaluator_name = os.environ["EVALUATOR_NAME"]
dataset_version = os.environ.get("DATASET_VERSION", "1")
eval_model = os.environ.get("EVAL_MODEL", "gpt-4o")
optimization_model = os.environ.get("OPTIMIZATION_MODEL", "gpt-5")
poll_interval_seconds = int(os.environ.get("POLL_INTERVAL_SECONDS", "10"))

optimization_config = load_config() # Reads agent optimization config from .agent_configs/baseline/metadata.yaml

with (
  DefaultAzureCredential() as credential,
  AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
):
  job = OptimizationJob(
    inputs=OptimizationJobInputs(
      agent=OptimizationAgentIdentifier(agent_name=agent_name),
      train_dataset=OptimizationReferenceDatasetInput(
        name=dataset_name,
        version=dataset_version,
      ),
      evaluators=[OptimizationEvaluatorRef(name=evaluator_name)],
      options=OptimizationOptions(
        max_candidates=2,
        eval_model=eval_model,
        optimization_model=optimization_model,
        optimization_config={
          "system_prompt": optimization_config.instructions,
          **({"tools": optimization_config.tool_definitions} if optimization_config.tool_definitions else {}),
          **({"skills": optimization_config.skills} if optimization_config.has_skills else {}),
        }
      ),
    )
  )
  poller = project_client.beta.agents.begin_create_optimization_job(job=job)

  print(f"Optimization job started, waiting for completion...")
  while not poller.done():
    print(f"\tstatus=`{poller.status()}`")
    time.sleep(poll_interval_seconds)

  result = poller.result()

  if result:
    print(f"Baseline candidate: {result.baseline}")
    print(f"Best candidate: {result.best}")

    for candidate in result.candidates or []:
      print(
        f"{candidate.name}: candidate_id={candidate.candidate_id}, "
        f"avg_score={candidate.avg_score:.4f}, "
        f"avg_tokens={candidate.avg_tokens:.0f}"
      )

Executar o script:

python optimize_hosted_agent.py

Quando a tarefa é concluída com sucesso, o script imprime o candidato vencedor e o candidate_id.

Ao contrário de azd ai agent optimize, o fluxo do SDK Python não cria um arquivo .agent_configs/baseline/metadata.yaml local. Os metadados do trabalho de otimização permanecem no objeto retornado job e na resposta do serviço Foundry, incluindo o candidato à linha de base, o melhor candidato e a lista de candidatos pontuados.

3. Aplicar a opção vencedora

Se você também estiver trabalhando no projeto local azd usado no fluxo da CLI acima, aplique o candidato vencedor usando o candidate_id retornado pelo script Python:

azd ai agent optimize apply --candidate <candidate-id>
azd deploy

Se você só precisar inspecionar o resultado, use as pontuações dos candidatos e os identificadores de avaliação impressos pelo script para revisar a configuração vencedora no Foundry antes de promovê-la.

Executar a otimização no VS Code

O Foundry Toolkit inclui uma experiência de Otimização de Agente nativa para agentes hospedados implantados. No playground do agente, você pode iniciar uma execução de otimização, comparar candidatos com a linha de base, inspecionar as alterações de configuração e implantar o melhor candidato.

Etapa 1: Selecionar um agente hospedado implantado

  1. Selecione o Foundry Toolkit na Barra de Atividades.
  2. Em Meus Recursos, selecione Agentes.
  3. Se você tiver um agente hospedado implantado, selecione-o para abrir o playground do agente hospedado.
  4. Se você não tiver um agente hospedado implantado, conclua o caminho do VS Code no Início Rápido: Implantar seu primeiro agente hospedado. Após a conclusão da implantação, retorne aos Agentes e selecione o novo agente hospedado.

Etapa 2: iniciar uma execução de otimização

  1. Selecione a guia Otimizar , que está marcada como Visualização.

Captura de tela de um agente hospedado no Foundry Toolkit com a guia Otimizar visualização selecionada e o botão Nova Otimização disponível.

  1. Selecione Nova Otimização.

  2. Em Selecionar Workspace, escolha o workspace que contém o código do agente hospedado selecionado:

    • Selecione Espaço de trabalho atual se o espaço de trabalho atual contiver o código do agente e o arquivo azure.yaml.
    • Selecione Procurar... para abrir o espaço de trabalho que contém o código do agente.

    O Foundry Toolkit usa os arquivos de workspace para preparar a otimização e aplicar um candidato ao serviço correspondente azure.ai.agent .

Captura de tela do prompt Selecionar Workspace no Foundry Toolkit mostrando o workspace atual e as opções Procurar para localizar o código do agente hospedado.

  1. O Foundry Toolkit abre o GitHub Copilot Chat e envia uma solicitação ao Agent Optimizer preenchida com o tipo, o nome e o endpoint do projeto Foundry do agente selecionado.

  2. Responda às quatro perguntas de otimização no Copilot Chat:

    Entrada O que fornecer
    Métricas de avaliação Insira as métricas ou os avaliadores a serem usados. Se você não os tiver, escolha se deseja executar azd ai agent eval generate ou usar os padrões internos do otimizador.
    Dataset Selecione o conjunto de dados de otimização. Se você não tiver um, escolha se deseja executar azd ai agent eval generate ou usar os padrões internos do otimizador.
    Máximo de candidatos Insira o número máximo de candidatos a serem gerados, como 2.
    Modelo de otimização Selecione uma implantação existente nos modelos de otimização com suporte.

GitHub Copilot aguarda essas entradas antes de iniciar a otimização. A solicitação gerada orienta o Copilot a usar exclusivamente o fluxo de trabalho Agent Optimizer da habilidade Microsoft Foundry e os comandos da CLI do Azure Developer. Ele não usa ferramentas do MCP do Foundry. Copilot:

  • Inspeciona o código do agente no espaço de trabalho selecionado.
  • Inicializa um ambiente do AZD a partir dos valores existentes de azure.yaml e .env, caso o projeto ainda não tenha um.
  • Conecta o agente para otimização e implanta o agente hospedado atualizado.
  • Cria eval.yaml na pasta de serviço do agente.
  • Inicia a otimização depois de examinar e aprovar as alterações de arquivo e os comandos propostos.

Depois que o Copilot submeter o trabalho, volte para a guia Otimizar. A execução aparece em Execuções de otimização. A tabela mostra o ID da execução, o status, a contagem de candidatos, a pontuação de referência, a melhor pontuação e a hora de criação.

Etapa 3: Comparar e implantar o melhor candidato

  1. Quando a execução for bem-sucedida, selecione-a em Execuções de Otimização.
  2. Compare as pontuações Baseline e Melhor. Examine os detalhes da Pontuação de cada candidato e selecione Exibir alterações para inspecionar as alterações de configuração.
  3. Se o melhor candidato melhorar na linha de base, selecione Implantar o melhor candidato para atualizar o agente atual. Para implantá-lo como um novo agente ou alterar as configurações de implantação, selecione Implantar personalizado .

Note

Se todos os candidatos tiverem pontuação inferior à referência, não implemente nenhum candidato. Mantenha o agente atual e revise as configurações de conjunto de dados ou otimização antes de executar o otimizador novamente.

Captura de tela de uma execução de otimização concluída no Foundry Toolkit comparando a linha de base e os candidatos gerados, com pontuações, alterações de configuração e opções de implantação.

Executar a otimização com o Microsoft Foundry Skill

Use este caminho em qualquer host para agentes de codificação que ofereça suporte à Microsoft Foundry Skill, como o GitHub Copilot no Visual Studio Code, o Copilot CLI ou o Claude Code. A skill resolve o contexto do agente a partir de azure.yaml, carrega seu fluxo de trabalho do Agent Optimizer e mantém a aplicação candidata e a implantação sujeitas a gates de revisão.

Etapa 1: Abrir o workspace do agente

Abra uma pasta vazia no host do agente de codificação. Confirme se a microsoft-foundry habilidade está disponível. Se a habilidade não estiver disponível, consulte Usar a habilidade Microsoft Foundry em agentes de codificação.

Etapa 2: Peça à habilidade que execute o Agent Optimizer

Envie este prompt ao seu agente de codificação:

Use the Microsoft Foundry Skill to run the Agent Optimizer workflow for a
Python hosted agent. If this workspace doesn't contain an agent, initialize the
customer support optimization sample from this template:
https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/bring-your-own/responses/optimization-customer-support/azure.yaml
Resolve the AZD environment and hosted-agent service, verify that the agent is
optimizer-ready, and deploy and invoke the baseline. Generate and show me the
evaluation dataset, evaluators, and eval.yaml before running optimization.
Verify that the project has a supported optimization model deployment, then run
Agent Optimizer with two candidates. Stop after reporting the operation ID,
portal URL, candidate IDs, and scores. Don't apply or deploy a candidate yet.

O agente de codificação pode solicitar que você selecione uma assinatura, região, projeto do Foundry, serviço de agente, modelo de avaliação ou modelo de otimização quando não puder resolver esses valores do workspace. Examine os arquivos gerados e os recursos que geram custos antes de aprovar quaisquer alterações ou comandos.

Etapa 3: Promover e implantar um candidato aprovado

Depois de examinar os resultados da otimização, envie este prompt de acompanhamento:

Recommend the best optimization candidate and explain the score improvement.
Summarize the candidate changes before applying anything. After I approve the
candidate, apply it locally, show the source diff, and stop again before
deployment. After I approve deployment, run azd deploy, invoke the agent with
"What is your return policy?", and rerun the evaluation to confirm the
improvement.

A habilidade usa azd ai agent optimize apply --candidate <candidate-id> para que você possa revisar a configuração otimizada localmente. Ele é implantado somente após a aprovação e, em seguida, invoca e avalia o agente hospedado atualizado.

Limpar os recursos

Se o fluxo de trabalho tiver criado recursos por meio do projeto do AZD, exclua os recursos provisionados quando terminar de experimentar:

azd down --force --purge

Dica

Por quê --purge? As contas do Foundry usam exclusão temporária por padrão. Sem --purge, o nome do recurso permanece reservado por 48 horas e o reprovisionamento com o mesmo nome falha.

Solução de problemas

Problema Cause Corrigir
azd ai agent optimize comando não encontrado Extensão muito antiga Execute azd ext upgrade microsoft.foundry para obter a versão prévia 0.1.40 ou posterior.
optimization_model is required Em execução no modo não interativo sem um modelo configurado Adicione --optimize-model gpt-5 ao comando ou defina optimization_model: gpt-5options: em eval.yaml. No modo interativo, a CLI solicita a seleção do modelo.
Script Python falha com KeyError: 'DATASET_NAME' ou outra variável ausente O script não carrega o .env arquivo ou a variável está ausente Execute o script da mesma pasta .envou exporte os valores necessários no shell antes de executar python optimize_hosted_agent.py.
Script Python falha com ResourceNotFound: The project does not exist FOUNDRY_PROJECT_ENDPOINT não aponta para um projeto de Foundry existente Copie o endpoint do projeto da página Overview do projeto no Foundry e atualize FOUNDRY_PROJECT_ENDPOINT em .env.
Script Python falha com Optimization model deployment '<name>' not found OPTIMIZATION_MODEL não é o nome de um modelo implantado no seu projeto Foundry Use o nome exato da implantação em Build>Implantações, como uma família gpt-5 existente ou uma implantação do DeepSeek em seu projeto.
A seção Otimizar não aparece para um agente hospedado O Foundry Toolkit é mais antigo que a versão 1.6.4 ou o agente selecionado não é um agente hospedado implantado Atualize o Foundry Toolkit, recarrege Visual Studio Code e reabra o agente implantado na guia Agentes.
O Copilot Chat do GitHub não é aberto depois que você seleciona o workspace GitHub Copilot não está instalado, não está disponível para sua conta ou o modo de agente está desabilitado Configure o GitHub Copilot no Visual Studio Code, habilite o modo agente e selecione Nova Otimização novamente.
O Foundry Toolkit não pode aplicar o melhor candidato ao workspace atual O workspace não contém um azure.yaml serviço cujo nome corresponde ao agente hospedado implantado Abra o espaço de trabalho que contém o código do agente selecionado e o serviço azure.ai.agent correspondente e tente novamente.
O agente de codificação não consegue localizar o agente hospedado A pasta errada está aberta ou azure.yaml não define um azure.ai.agent serviço Abra a pasta de projeto do AZD que contém azure.yamle, em seguida, peça ao agente de codificação para resolver o serviço de agente hospedado novamente.
O agente de programação interrompe antes de aplicar ou implantar uma versão candidata A habilidade do Otimizador de Agente requer revisão antes das alterações de origem e da implantação Examine as pontuações do candidato e a diferença local e, em seguida, aprove explicitamente a etapa de aplicação ou implantação.
A pontuação de otimização é 0 ou muito baixa A avaliação contém muitas linhas com erro Abra o link Eval nos resultados. Corrija a geração de resposta ou os erros do avaliador e execute novamente.
azd provision falha devido a erro de cota A assinatura não possui capacidade suficiente Tente uma região diferente ou solicite um aumento de cota.

O que você aprendeu

Neste guia de início rápido, você:

  • Implantou o agente de exemplo de otimização usando o modelo de suporte ao cliente.
  • Executei o otimizador de agente usando a CLI do desenvolvedor Azure, Python SDK, Visual Studio Code ou o Microsoft Foundry Skill.
  • Implantou o candidato vencedor e verificou a melhoria.

Próximas Etapas