Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
- Um projeto Foundry com um agente alojado implementado
- A
azure.ai.agentsextensão CLI instalada (ver Quickstart: Otimizar um agente alojado) - Um modelo implementado para avaliação (por exemplo,
gpt-4.1-mini) e um modelo de otimização a partir da lista suportada (por exemplo,gpt-5.1) - O seu agente é compatível com o Otimizador (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 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.
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 emeval.yamlsã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: 2Autenticar:
az login azd auth loginCopie 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.
Guarde o endpoint na sua configuração ao nível
azdde 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 showEsta 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.Execute a otimização com o nome do agente implementado:
azd ai agent optimize --agent "<deployed-agent-name>" --config eval.yamlQuando 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.configdeeval.yaml. Executa o comando de forma interativa para poderes fornecer a instrução base. Não uses--no-promptpara este fluxo. Também é necessário um projetoazdpara 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.yamlTambé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.yamlGuarde 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 |