Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
O otimizador do agente melhora quatro aspectos do agente hospedado: instruções, habilidades, ferramentas e seleção de modelo. Detecta automaticamente quais desses alvos devem ser otimizados com base na configuração base do seu agente.
Este artigo mostra como executar uma otimização, configurar e monitorar a execução e implantar os resultados. Para o que cada destino faz e quando ele é ativado, consulte destinos de otimização. Para configurar as entradas de referência, consulte Preparar seu agente para o otimizador. Para obter uma referência rápida sobre as alterações feitas pelo otimizador, consulte As alterações de cada destino.
Pré-requisitos
- Um projeto da Foundry com um agente hospedado implantado
- A
azure.ai.agentsextensão da CLI instalada (consulte Início Rápido: Otimizar um agente hospedado) - Um modelo implantado para avaliação (por exemplo)
gpt-4.1-minie um modelo de otimização da lista com suporte (por exemplo,gpt-5.1) - Seu agente está preparado para otimização (chamadas
load_config())
Executar uma otimização
Inicie uma execução de otimização com um único comando:
azd ai agent optimize
O otimizador avalia sua linha de base, gera candidatos, os avalia e classifica os resultados. Para o ciclo completo de avaliação e melhoria, consulte Como o otimizador do agente funciona. A execução dos alvos depende da sua configuração de linha de base — ajuste de instruções, aprimoramento de habilidades e otimização de ferramentas são ativados automaticamente quando os arquivos de linha de base correspondentes estão presentes. Consulte as metas de otimização.
Para controlar a execução com um arquivo de configuração, passe um eval.yaml que faça referência ao conjunto de dados, aos avaliadores e às opções:
azd ai agent optimize --config eval.yaml
Para obter o esquema completo eval.yaml , consulte Configurar a execução de otimização.
Direcionar um agente específico
Como a CLI determina o agente depende de se você executa o comando a partir de um projeto azd:
| Contexto | Resolução do agente | Example |
|---|---|---|
Em um projeto azd |
A CLI detecta o serviço de agente hospedado em azure.yaml e resolve o nome do agente implantado com base no ambiente azd atual. Use --agent para selecionar um azure.yaml serviço quando o projeto contiver vários agentes. |
azd ai agent optimize --agent support-service |
Fora de um azd projeto |
O valor --agent ou argumento posicional é o nome do agente Foundry implantado. |
azd ai agent optimize --agent my-support-agent |
Com --config |
O agent.name campo em eval.yaml fornece o nome do agente implantado. Um valor explícito --agent o substitui. |
agent:\n name: my-support-agent |
O nome do agente implantado deve coincidir com o de um agente hospedado no projeto Foundry de destino.
Note
Execute azd ai agent invoke "test" para verificar se o agente responde antes de iniciar a otimização.
Otimizar um agente existente sem arquivos de projeto do AZD
Você pode otimizar um agente hospedado existente sem executar azd ai agent init e sem criar azure.yaml ou um .azure diretório de ambiente. Neste fluxo independente, forneça explicitamente o endpoint do projeto Foundry e o nome do agente implantado.
Verifique se o agente implantado está pronto para o otimizador. Em um diretório de trabalho local, crie o arquivo de instrução, o conjunto de dados, os avaliadores e
eval.yamldescrito em Configurar a execução de otimização.Execute o comando deste diretório de trabalho. Sem um projeto
azd, os caminhos relativos emeval.yamlsão resolvidos direto do diretório de trabalho atual.Para esse fluxo autônomo, omita
agent.config. A CLI solicita a instrução de linha de base quando você executa 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: 2Autenticar:
az login azd auth loginCopie o endpoint do projeto na página Overview do projeto Foundry. Use a URL do ponto de extremidade do projeto, não a ID do recurso Azure.
Salve o ponto de extremidade na configuração de usuário de nível
azdpara que os comandos subsequentes possam resolver o mesmo projeto direto de qualquer diretório:azd ai project set "<project-endpoint>" azd ai project showEsta etapa grava o ponto de extremidade padrão em
~/.azd/config.json. Para obter a ordem completa de resolução e os comandos para inspecionar ou limpar o contexto armazenado, consulte Definir o contexto do projeto Foundry para os comandos do azd.Execute a otimização com o nome do agente implantado:
azd ai agent optimize --agent "<deployed-agent-name>" --config eval.yamlQuando for solicitada a instrução do agente, forneça-a diretamente ou selecione um arquivo como
.agent_configs/baseline/instructions.md.Note
Na visualização atual, uma execução autônoma não expande
agent.configa partir deeval.yaml. Execute o comando interativamente para que você possa fornecer a instrução de linha de base. Não use--no-promptpara esse fluxo. O carregamento habilidade baseada em arquivo e linhas de base de ferramenta também exige um projetoazd.Para um comando único que não deve alterar a configuração no nível do usuário, passe
--project-endpoint:azd ai agent optimize \ --project-endpoint "<project-endpoint>" \ --agent "<deployed-agent-name>" \ --config eval.yamlVocê também pode definir o ponto de extremidade para o shell atual:
export FOUNDRY_PROJECT_ENDPOINT="<project-endpoint>" azd ai agent optimize --agent "<deployed-agent-name>" --config eval.yamlSalve a ID da operação na saída do comando. Como esse fluxo não tem ambiente
azd, a CLI não persiste o último ID da operação localmente. Passe a ID da operação para os comandos de acompanhamento:azd ai agent optimize status <operation-id> --watch azd ai agent optimize list azd ai agent optimize cancel <operation-id>Esses comandos usam o ponto de extremidade salvo por
azd ai project set. Se você usou a forma única--project-endpoint, passe um sinalizador novamente para cada comando subsequente.
Importante
azd ai agent optimize apply requer um projeto azd, porque grava arquivos candidatos em .agent_configs/ e atualiza o serviço do agente em azure.yaml. Se você não quiser criar arquivos de projeto do AZD, examine e implante o candidato vencedor no portal do Foundry.
Configurar a execução de otimização
Configure as execuções de otimização por meio de um eval.yaml arquivo que vincule seu conjunto de dados, avaliadores e opções de execução. O comando azd ai agent eval generate grava esse arquivo para você ou você pode criá-lo manualmente. O otimizador detecta eval.yaml automaticamente na raiz do projeto ou você 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
| Campo | Obrigatório | Descrição |
|---|---|---|
name |
No | Rótulo para a execução da otimização. |
agent.name |
Yes | Nome do agente hospedado implantado que será otimizado. |
agent.kind |
Yes | Tipo de agente. Use hosted. |
agent.version |
No | Versão do agente a ser direcionada. |
agent.model |
Yes | Nome da implantação do modelo de linha de base. |
agent.config |
Condicional | Caminho para o metadata.yaml de a linha de base em um projeto azd. Para um projeto autônomo sem arquivos do AZD, omita esse campo e forneça a instrução interativamente. |
dataset |
Yes | O conjunto de dados a ser usado na avaliação, seja como um arquivo JSONL local (local_uri) ou como um conjunto de dados Foundry registrado (name e version). Consulte Criar um conjunto de dados personalizado. |
validation_dataset |
No | Um conjunto de dados retido usado para validar os resultados. |
evaluators |
Yes | Avaliadores atribuídos a cada tarefa. Consulte Personalizar avaliadores. |
options.eval_model |
Yes | Modelo de chat implantado em produção que atribui pontuações às respostas. Consulte Escolher os modelos de avaliação e otimização. |
options.optimization_model |
Yes | Modelo implantado que gera candidatos. Deve estar na lista com suporte. |
options.max_candidates |
No | Número de candidatos a serem gerados (padrão 5). Veja Definir o número de candidatos. |
options.optimization_config.model_search_space |
No | Implantações de modelo a serem comparadas durante a seleção do modelo. Consulte Avaliar vários modelos. |
Criar o conjunto de dados e os avaliadores separadamente; consulte Criar um conjunto de dados de avaliação e avaliadores. As seções a seguir descrevem as opções de execução.
Escolha os modelos de avaliação e otimização
O otimizador usa dois modelos: um modelo de avaliação que pontua respostas do agente em relação a critérios e um modelo de otimização que gera configurações candidatas. Defina-os em eval.yaml ou use sinalizadores de 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 implantado no seu projeto serve como modelo de avaliação. O modelo de otimização deve ser da lista com suporte. Para funções e modelos com suporte, consulte Modelos.
Importante
O campo optimization_model é obrigatório. Se você não especificá-lo e não passar --optimize-model, a API de otimização retornará um erro. Sempre verifique se ambos os modelos são implantados em seu projeto antes de executar a otimização.
Definir 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 parada.
| Máximo de candidatos | Candidatos | Time | Mais adequado para |
|---|---|---|---|
| 2 | 2 | 5 a 10 min | Experimentos rápidos |
| 5 (padrão) | 5 | 20 a 30 min | Bom equilíbrio |
| 10 | 10 | 30 a 60 min | Exploração completa |
Valores mais altos exploram mais variações, mas demoram mais. O otimizador aprende com os candidatos anteriores, de modo que os candidatos posteriores tendem a pontuar mais alto.
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 vários modelos
Para comparar implantações de modelo em uma única execução, liste-as em optimization_config.model_search_space. O otimizador avalia seu agente com cada modelo em relação ao mesmo conjunto de dados e classifica os resultados por pontuação e custo de token.
# eval.yaml
options:
optimization_config:
model_search_space:
- gpt-4.1
- gpt-4.1-mini
- gpt-4o
Cada modelo listado em model_search_space deve ser implantado em seu projeto do Foundry.
Note
Se a lista incluir a implantação do modelo atual do agente, o otimizador a removerá automaticamente dos candidatos porque a linha de base já representa esse modelo. Se nenhum modelo permanecer após essa remoção, você receberá um erro de validação.
A seleção de modelo ocorre junto com os alvos que são ativados automaticamente a partir da sua linha de base. Uma única execução pode produzir candidatos que combinam instruções, habilidades e descrições de ferramentas aprimoradas com diferentes opções de modelo – você não configura a combinação por conta própria.
Monitorar um trabalho em execução
Uma execução de otimização é assíncrona. Use estes comandos quando um trabalho estiver em execução longa ou você quiser verificar 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>
Capture a ID da operação, a URL do portal, as pontuações e as IDs do candidato na saída da execução. Você também pode monitorar o trabalho no portal do Foundry usando a URL mostrada quando a execução é iniciada.
Se você iniciou o trabalho sem arquivos de projeto do AZD, sempre passe a ID da operação para status e cancel. Os comandos usam o ponto de extremidade de usuário salvo por azd ai project set; caso contrário, inclua --project-endpoint.
Interpretar os resultados
Após a conclusão da otimização, examine a tabela de resultados. Um asterisco (*) marca o melhor candidato. Para obter as colunas da tabela de resultados, detalhes de pontuação, limites de melhoria de pontuação e a exibição do portal, consulte Entender os resultados da otimização.
Implante o vencedor
O fluxo de trabalho recomendado é aplicar a configuração otimizada localmente e, em seguida, implantar:
# Apply the winning candidate locally
azd ai agent optimize apply --candidate <candidate-id>
# Deploy with the optimized config
azd deploy
Então, será feito o download da configuração otimizada para .agent_configs/<candidate_id>/ no seu projeto. Na próxima implantação, seu agente passará a usar as instruções aprimoradas e as descrições das ferramentas.
Como alternativa, você pode implantar diretamente por meio da API (útil para testes rápidos de A/B):
azd ai agent optimize deploy --candidate <candidate-id>
Warning
A implantação direta atualiza o serviço do agente sem alterar seus arquivos locais. Use o apply fluxo de trabalho –>deploy para produção.
Na versão prévia atual, a implantação direta resolve o trabalho de otimização de um ambiente azd. Para uma otimização independente que não tenha um ambiente do AZD, implante o candidato direto do portal do Foundry.
Se todos os candidatos pontuarem abaixo da linha de base, não implante nenhum candidato. A configuração de linha de base permanece ativa.
O que cada alvo altera
O otimizador ativa automaticamente as metas que se aplicam à sua configuração de base. Esta seção serve como referência para as alterações feitas por uma execução. Use a tabela a seguir para prever o que a otimização faz para seu agente:
| Scenario | Target |
|---|---|
| Melhorar a qualidade geral da resposta | Ajuste de instrução |
| Reduzir informações incorretas | Ajuste de instrução |
| Melhorar comportamentos repetíveis (escalonamento, padrões de depuração) | Aprimoramento de habilidades |
| Refinar procedimentos estruturados | Aprimoramento de habilidades |
| Encontre o melhor equilíbrio entre qualidade e custo do modelo | Seleção de modelo |
| Primeira otimização, não sei o que esperar | Todos os alvos aplicáveis são executados automaticamente |
Seu código permanece o mesmo em todos os destinos porque load_config() retorna os valores otimizados automaticamente. Apenas a configuração que o modelo vê é alterada.
Instruções
O otimizador reescreve o prompt do sistema. As melhorias comuns incluem:
- Adicionando restrições explícitas que o prompt original implicava, mas não informava
- Instruções de reestruturação para maior clareza
- Adicionando especificações de formato de saída
- Fortalecendo os limites de escopo e segurança
Por exemplo, um prompt base mínimo como You are a helpful assistant. pode ficar assim:
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
Habilidades
O otimizador refina a descrição, o corpo e os critérios de ativação de cada habilidade, mantendo a finalidade da habilidade intacta. O agente carrega habilidades aprimoradas por meio de load_config(), que as adiciona ao conjunto de instruções. As habilidades usam o formato de Habilidades do Agente aberto. Para saber mais sobre como seu agente carrega habilidades, consulte Prepare seu agente para o otimizador.
Tools
O otimizador refina suas tools.json definições. As melhorias comuns incluem:
- Descrições de função mais claras que ajudam o modelo a saber quando chamar uma ferramenta
- Descrições de parâmetro mais específicas que reduzem argumentos imprecisos
- Restrições adicionadas (enumerações, campos necessários) que impedem entradas inválidas
O código de implementação da ferramenta permanece o mesmo. Somente as definições que o modelo vê mudam.
Models
O otimizador classifica cada modelo candidato por pontuação composta e custo de token, para que você possa escolher a melhor troca de qualidade a custo. Para configurar os candidatos, consulte Avaliar vários modelos.
Solução de problemas
| Problema | Cause | Corrigir |
|---|---|---|
optimize retorna 400 |
A assinatura não está na lista de permissões | Entre em contato com seu representante do Microsoft para solicitar acesso |
could not resolve project endpoint |
Nenhum ponto de extremidade do projeto está disponível em um ambiente azd ou na configuração no nível de usuário |
Executar azd ai project set <project-endpoint>, passar --project-endpoint <project-endpoint>ou definir FOUNDRY_PROJECT_ENDPOINT |
agent name is required |
O comando está em execução fora de um azd projeto e nenhum nome de agente implantado foi fornecido |
Passar --agent <deployed-agent-name> ou fornecer o nome do agente como um argumento posicional |
operation ID is required |
Uma execução autônoma não tem nenhum azd ambiente no qual manter a ID da última operação |
Copiar a ID da operação da saída de otimização e passá-la para status ou cancel |
instruction is required for optimization em uma pasta separada |
Uma execução independente não expande agent.config a partir de eval.yaml na prévia atual |
Executar sem --no-prompt, depois forneça a instrução base diretamente na linha ou selecione o arquivo de instrução |
optimize apply não resolve um serviço de agente |
apply requer um serviço de agente hospedado azure.yaml em um projeto azd |
Implante a versão candidata a partir do portal Foundry ou inicialize um projeto azd antes de usar apply |
| Erro de validação de protocolo | Serviço de agente azure.yaml inválido |
Verifique se o azure.ai.agent serviço inclui kind: hosted e uma protocols: lista |
| Tarefa travada em "em execução" | Problema de serviço | Cancelar com azd ai agent optimize cancel <id> e tentar novamente |
| Não há IDs de candidatos na saída | Trabalho ainda em execução | Aguarde a conclusão ou use --watch |