Otimizar as instruções, competências, ferramentas e modelos do agente (pré-visualização)

Importante

O Agent Optimizer está atualmente em pré-visualização. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para trabalhos em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos Suplementares de Utilização para Microsoft Azure Previews.

O otimizador de agentes melhora quatro aspetos do seu agente hospedado: instruções, competências, ferramentas e seleção de modelos. Deteta automaticamente quais destes objetivos devem ser otimizados com base na configuração de base do seu agente.

Este artigo mostra como executar uma otimização, configurar e monitorizar a execução, e implementar os resultados. Para saber o que cada alvo faz e quando é ativado, veja Alvos de Otimização. Para configurar as entradas de base, consulte Torne o seu agente compatível com o otimizador. Para uma referência rápida sobre o que o otimizador altera, veja O que cada alvo altera.

Pré-requisitos

Executar uma otimização

Inicie uma execução de otimização com um único comando:

azd ai agent optimize

O otimizador avalia a sua linha de base, gera candidatos, avalia-os e classifica os resultados. Para o ciclo completo de avaliação e melhoria, veja Como funciona o otimizador de agentes. Os alvos executados dependem da sua configuração de base — a afinação de instruções, o aperfeiçoamento de competências e a otimização de ferramentas são ativados automaticamente quando os ficheiros de base correspondentes estão presentes. Ver Metas de Otimização.

Para controlar a execução com um ficheiro de configuração, passe um eval.yaml que faça referência ao seu conjunto de dados, avaliadores e opções:

azd ai agent optimize --config eval.yaml

Para o esquema completo eval.yaml , veja Configurar a execução de otimização.

Destinar um agente específico

A forma como a CLI resolve o agente depende de executares o comando a partir de um azd projeto:

Contexto Resolução do agente Example
Num azd projeto A CLI deteta o serviço de agente alojado a partir de azure.yaml e resolve o nome do agente implementado a partir do ambiente atual azd. Use --agent para selecionar um azure.yaml serviço quando o projeto contém múltiplos agentes. azd ai agent optimize --agent support-service
Fora de um azd projeto O --agent valor ou argumento posicional é o nome do agente Foundry implementado. azd ai agent optimize --agent my-support-agent
Com --config O campo agent.name em eval.yaml fornece o nome do agente implementado. Um valor explícito --agent sobrepõe-se a ele. agent:\n name: my-support-agent

O nome do agente implementado tem de corresponder a um agente hospedado no projeto Foundry de destino.

Note

Execute azd ai agent invoke "test" para verificar se o seu agente responde antes de iniciar a otimização.

Otimizar um agente existente sem ficheiros de projeto AZD

Podes otimizar um agente hospedado existente sem correr azd ai agent init e sem criar azure.yaml um .azure diretório de ambiente. Neste fluxo autónomo, forneça explicitamente o endpoint do projeto Foundry e o nome do agente implementado.

  1. Certifique-se de que o agente implementado está pronto para o otimizador. Num diretório de trabalho local, crie o ficheiro de instruções, o conjunto de dados, os avaliadores e eval.yaml, descritos em Configurar a execução da otimização.

    Executa o comando a partir deste diretório de trabalho. Sem um projeto azd, os caminhos relativos em eval.yaml são resolvidos a partir do diretório de trabalho atual.

    Para este fluxo independente, omita agent.config. A CLI pede a instrução base quando executas o comando:

    # eval.yaml
    agent:
      name: my-support-agent
      kind: hosted
      model: gpt-4.1-mini
    dataset:
      local_uri: ./eval.jsonl
    evaluators:
      - builtin.task_adherence
    options:
      eval_model: gpt-4.1-mini
      optimization_model: gpt-5.1
      max_candidates: 2
    
  2. Autenticar:

    az login
    azd auth login
    
  3. Copie o endpoint do projeto a partir da página de Visão Geral do projeto Foundry. Use o URL do endpoint do projeto, não o ID de recurso do Azure.

  4. Guarde o endpoint na sua configuração ao nível azd de utilizador para que comandos subsequentes possam resolver o mesmo projeto a partir de qualquer diretório:

    azd ai project set "<project-endpoint>"
    azd ai project show
    

    Esta etapa escreve o endpoint padrão em ~/.azd/config.json. Para a ordem completa de resolução e os comandos para inspecionar ou limpar o contexto guardado, veja Definir o contexto do projeto Foundry para os comandos azd.

  5. Execute a otimização com o nome do agente implementado:

    azd ai agent optimize --agent "<deployed-agent-name>" --config eval.yaml
    

    Quando lhe for pedida a instrução para o agente, introduza-a diretamente ou selecione um ficheiro, como .agent_configs/baseline/instructions.md.

    Note

    Na pré-visualização atual, uma execução autónoma não expande agent.config de eval.yaml. Executa o comando de forma interativa para poderes fornecer a instrução base. Não uses --no-prompt para este fluxo. Também é necessário um projeto azd para carregar configurações de base de capacidades e ferramentas baseadas em ficheiros.

    Para um comando pontual que não altere a sua configuração de utilizador, passe --project-endpoint:

    azd ai agent optimize \
      --project-endpoint "<project-endpoint>" \
      --agent "<deployed-agent-name>" \
      --config eval.yaml
    

    Também pode definir o endpoint para o shell atual:

    export FOUNDRY_PROJECT_ENDPOINT="<project-endpoint>"
    azd ai agent optimize --agent "<deployed-agent-name>" --config eval.yaml
    
  6. Guarde o ID da operação na saída do comando. Como este fluxo não tem um ambiente azd, a CLI não guarda localmente o identificador da última operação. Passe o ID da operação nos comandos seguintes:

    azd ai agent optimize status <operation-id> --watch
    
    azd ai agent optimize list
    
    azd ai agent optimize cancel <operation-id>
    

    Estes comandos utilizam o endpoint guardado por azd ai project set. Se usaste o formulário único --project-endpoint , passa novamente a bandeira a cada comando de seguimento.

Importante

azd ai agent optimize apply requer um projeto azd porque escreve ficheiros candidatos em .agent_configs/ e atualiza o serviço do agente em azure.yaml. Se não quiser criar ficheiros de projeto AZD, reveja e implemente o candidato vencedor no portal Foundry.

Configurar a execução da otimização

Configure as execuções de otimização através de um ficheiro eval.yaml que reúne o seu conjunto de dados, os avaliadores e as opções de execução. O comando azd ai agent eval generate escreve este ficheiro por si, ou pode criá-lo manualmente. O otimizador deteta eval.yaml automaticamente na raiz do seu projeto, ou pode passá-lo explicitamente com --config eval.yaml.

# eval.yaml
name: my-optimization              # Optional label for the run
agent:
  name: my-agent                   # Deployed hosted agent name
  kind: hosted
  version: "1"                     # Agent version (optional)
  model: gpt-4.1-mini              # Baseline model deployment
  config: .agent_configs/baseline/metadata.yaml
dataset:
  local_uri: ./eval.jsonl          # A local JSONL file...
  # name: my-foundry-dataset       # ...OR a registered Foundry dataset
  # version: "1"
# validation_dataset:              # Optional held-out dataset
#   name: my-validation-dataset
#   version: "1"
evaluators:
  - builtin.task_adherence         # A built-in evaluator...
  # - name: my-custom-evaluator    # ...or a custom evaluator
  #   version: "1"
  #   local_uri: ./my_evaluator.json
options:
  eval_model: gpt-4.1-mini         # Scores responses
  optimization_model: gpt-5.1      # Generates candidates
  max_candidates: 4
  optimization_config:
    model_search_space:            # Optional: compare model deployments
      - gpt-4.1
Field Obrigatório Descrição
name No Rótulo para a execução de otimização.
agent.name Yes Nome do agente alojado implementado para otimizar.
agent.kind Yes Tipo de agente. Utilize hosted.
agent.version No Versão agente para o alvo.
agent.model Yes Nome de implementação do modelo base.
agent.config Conditional Caminho até à linha metadata.yaml de base num azd projeto. Para um projeto autónomo sem ficheiros AZD, omita este campo e fornece a instrução de forma interativa.
dataset Yes O conjunto de dados a avaliar, como um ficheiro JSONL local (local_uri) ou um conjunto de dados registado da Foundry (name e version). Veja Criar um conjunto de dados personalizado.
validation_dataset No Um conjunto de dados retido usado para validar resultados.
evaluators Yes Os avaliadores aplicaram-se a todas as tarefas. Veja Personalizar avaliadores.
options.eval_model Yes Modelo de chat implementado que avalia as respostas. Veja Escolher os modelos de avaliação e otimização.
options.optimization_model Yes Modelo implementado que gera candidatos. Deve estar na lista de suportes.
options.max_candidates No Número de candidatos a gerar (por predefinição, 5). Veja Definir o número de candidatos.
options.optimization_config.model_search_space No Implementações de modelos para comparar durante a seleção de modelos. Ver Avaliar múltiplos modelos.

Criar o conjunto de dados e os avaliadores separadamente; ver Criar um conjunto de dados de avaliação e avaliadores. As secções seguintes descrevem as opções de execução.

Escolha os modelos de avaliação e otimização

O otimizador utiliza dois modelos: um modelo de avaliação que avalia as respostas dos agentes com critérios e um modelo de otimização que gera configurações candidatas. Defina-os em eval.yaml ou use opções da CLI.

options:
  eval_model: gpt-4.1-mini
  optimization_model: gpt-5.1
azd ai agent optimize --eval-model gpt-4.1-mini --optimize-model gpt-5.1

Qualquer modelo de conclusão de chat implementado no seu projeto funciona como modelo de avaliação. O modelo de otimização deve ser da lista suportada. Para funções e modelos suportados, veja Modelos.

Importante

O optimization_model campo é obrigatório. Se não especificares e não passares --optimize-model, a API de otimização devolve um erro. Verifique sempre que ambos os modelos estão implementados no seu projeto antes de executar a otimização.

Defina o número de candidatos

A max_candidates opção define o número esperado de configurações candidatas para a execução. O otimizador normalmente retorna depois de atingir essa contagem, a menos que a execução pare mais cedo devido a um erro ou outra condição de paragem.

Número máximo de candidatos Candidatos Hora Melhor para
2 2 5 a 10 minutos Experimentos rápidos
5 (padrão) 5 20 a 30 min Bom equilíbrio
10 10 30 a 60 min Exploração aprofundada

Valores mais altos exploram mais variações, mas demoram mais tempo. O otimizador aprende com candidatos anteriores, por isso os candidatos posteriores tendem a obter pontuações mais altas.

Note

Os tempos são aproximados para um conjunto de dados de 3 a 10 tarefas. Conjuntos de dados maiores ou modelos de avaliação mais lentos aumentam a duração da execução.

Avaliar múltiplos modelos

Para comparar implementações de modelos numa única execução, liste-as em optimization_config.model_search_space. O otimizador avalia o seu agente com cada modelo face ao mesmo conjunto de dados e classifica os resultados por pontuação e custo do token.

# eval.yaml
options:
  optimization_config:
    model_search_space:
      - gpt-4.1
      - gpt-4.1-mini
      - gpt-4o

Cada modelo listado abaixo model_search_space deve ser implementado no seu projeto Foundry.

Note

Se a lista incluir a implementação atual do modelo do seu agente, o otimizador remove-a automaticamente dos candidatos porque a linha base já representa esse modelo. Se não restarem modelos após esta remoção, é apresentado um erro de validação.

A seleção de modelos decorre em paralelo com os objetivos que são ativados automaticamente com base na sua configuração de referência. Uma única execução pode gerar candidatos que combinam instruções melhoradas, capacidades e descrições de ferramentas com diferentes opções de modelo; não é necessário configurar essa combinação manualmente.

Monitorizar um trabalho em execução

Uma execução de otimização é assíncrona. Use estes comandos quando um trabalho estiver a durar muito tempo ou quiser verificar o seu progresso:

# Check status and stream progress
azd ai agent optimize status <operation-id> --watch

# List recent optimization jobs
azd ai agent optimize list

# Cancel a running job
azd ai agent optimize cancel <operation-id>

Recolha o ID da operação, o URL do portal, as pontuações e os IDs dos candidatos no resultado da execução. Também pode monitorizar o trabalho no portal Foundry usando o URL mostrado quando a execução começa.

Se iniciaste o trabalho sem ficheiros de projeto AZD, passa sempre o ID da operação para status e cancel. Os comandos utilizam o endpoint ao nível do utilizador guardado por azd ai project set; caso contrário, inclui --project-endpoint.

Interpretar os resultados

Depois de concluída a otimização, reveja a tabela de resultados. Um asterisco (*) indica o melhor candidato. Para as colunas da tabela de resultados, detalhes de pontuação, limiares de melhoria de pontuação e a vista do portal, consulte Compreender resultados de otimização.

Implementar a versão vencedora

O fluxo de trabalho recomendado é aplicar a configuração otimizada localmente e depois implementar:

# Apply the winning candidate locally
azd ai agent optimize apply --candidate <candidate-id>

# Deploy with the optimized config
azd deploy

Isto transfere a configuração otimizada para .agent_configs/<candidate_id>/ no seu projeto. Na próxima implementação, o seu agente utiliza as instruções melhoradas e as descrições das ferramentas.

Em alternativa, podes implementar diretamente através da API (útil para testes rápidos de A/B):

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

Warning

A implementação direta atualiza o serviço do agente sem alterar os seus ficheiros locais. Use o apply fluxo de trabalho ->deploy para produção.

Na pré-visualização atual, o deploy direto resolve o trabalho de otimização a partir de um ambiente azd. Para uma otimização autónoma sem ambiente AZD, implemente a versão candidata através do portal Foundry.

Se todos os candidatos tiverem uma pontuação inferior à linha base, não coloquem nenhum candidato. A configuração base mantém-se ativa.

O que cada alvo altera

O otimizador ativa automaticamente os alvos que se aplicam à sua linha base. Esta secção serve de referência para as alterações introduzidas por uma execução. Use a tabela seguinte para antecipar o que a otimização faz para o seu agente:

Scenario Target
Melhorar a qualidade geral da resposta Afinação de instruções
Reduzir informações incorretas Afinação de instruções
Melhorar comportamentos repetíveis (escalonamento, padrões de depuração) Melhoria de competências
Refinar procedimentos estruturados Melhoria de competências
Encontre o melhor equilíbrio entre o modelo de qualidade e custo Seleção de modelos
Primeira otimização, não sei bem o que esperar Todos os alvos aplicáveis funcionam automaticamente

O teu código mantém-se igual em todos os alvos porque load_config() devolve automaticamente os valores otimizados. Apenas a configuração que o modelo vê muda.

Instruções

O otimizador reescreve o prompt do sistema. Melhorias comuns incluem:

  • Adicionar restrições explícitas que o prompt original sugeria mas não indicava
  • Instruções de reestruturação para maior clareza
  • Adicionar especificações de formatos de saída
  • Reforço dos limites de segurança e âmbito

Por exemplo, um prompt base mínimo como You are a helpful assistant. pode tornar-se no seguinte:

You are a helpful coding assistant. Follow these guidelines:
1. Always include working code examples
2. Explain your reasoning step by step
3. If a question is outside your expertise, say so clearly
4. Use markdown formatting for code blocks
5. Handle edge cases in code examples

Competências

O otimizador refina a descrição, o corpo e os critérios de ativação de cada habilidade, mantendo intacto o propósito da habilidade. O agente carrega competências melhoradas através de load_config(), que as acrescenta ao conjunto de instruções. As competências utilizam o formato aberto de Competências de Agente . Para saber como o seu agente carrega competências, veja Prepare o seu agente para o otimizador.

Tools

O otimizador refina as tuas tools.json definições. Melhorias comuns incluem:

  • Descrições de funções mais claras que ajudam o modelo a saber quando chamar uma ferramenta
  • Descrições de parâmetros mais específicas que reduzem argumentos imprecisos
  • Restrições adicionadas (enums, campos obrigatórios) que impedem entradas inválidas

O código de implementação da ferramenta mantém-se o mesmo. Apenas as definições que o modelo vê mudam.

Models

O otimizador classifica cada modelo candidato por pontuação composta e custo do token, para que possa escolher a melhor troca qualidade-custo. Para configurar os candidatos, consulte Avaliar múltiplos modelos.

Troubleshooting

Problema Motivo Corrigir
optimize retornos 400 Subscrição não incluída na lista de autorizações Contacte o seu representante da Microsoft para solicitar acesso
could not resolve project endpoint Nenhum endpoint do projeto está disponível num ambiente azd ou na configuração de utilizador Execute azd ai project set <project-endpoint>, passe --project-endpoint <project-endpoint> ou defina FOUNDRY_PROJECT_ENDPOINT
agent name is required O comando está a ser executado fora de um projeto azd e não foi fornecido o nome do agente implementado Passe --agent <deployed-agent-name> ou forneça o nome do agente como argumento posicional
operation ID is required Uma execução autónoma não tem ambiente azd onde persistir o ID da última operação Copie o ID da operação da saída de otimização e transmita-o para status ou cancel
instruction is required for optimization numa pasta independente Uma execução autónoma não expande agent.config de eval.yaml na pré-visualização atual Execute sem --no-prompt, depois forneça a instrução base em linha ou selecione o ficheiro de instruções
optimize apply Não é possível resolver um serviço de agente apply requer um azure.yaml serviço de agente hospedado num azd projeto Implemente o candidato no portal Foundry ou inicialize um azd projeto antes de usar apply
Erro de validação do protocolo Serviço de agente inválido azure.yaml Certifique-se de que o serviço azure.ai.agent inclua kind: hosted e uma lista protocols:
Tarefa bloqueada em "execução" Problema de serviço Cancelar com azd ai agent optimize cancel <id> e tentar novamente
Sem IDs de candidatos na saída Tarefa ainda em execução Aguarde até à conclusão ou utilize --watch