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
Os itens marcados como visualização neste artigo estão atualmente em versão prévia. Essa visualização é fornecida sem um contrato de nível de serviço e Microsoft não recomenda 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.
Note
Manifestos do agente (agent.manifest.yaml) e definições de agente autônomo (agent.yaml) são preteridos. A partir das extensões do Foundry azd (azure.ai.agents 1.0.0-beta.1), toda a configuração do agente hospedado reside em um único azure.yaml. Consulte Author azure.yaml para obter agentes hospedados e referência azure.yaml para agentes hospedados.
A especificação AgentSchema é um padrão aberto para definir agentes de IA. Ao criar agentes hospedados, você trabalha principalmente com três tipos de esquema de nível superior: AgentDefinition, AgentManifest e ContainerAgent. Esse modelo de esquema herdado paraAgentManifest, , AgentDefinitionagent.manifest.yamle agent.yaml é mantido para referência e é substituído por azure.yaml. O esquema não é específico para uma ferramenta. A CLI do Desenvolvedor Azure (azd) e o Microsoft Foundry Toolkit para Visual Studio Code usá-lo.
O esquema aparece em dois contextos de arquivo com convenções de nomenclatura distintas:
-
agent.manifest.yamlé um AgentManifest, um modelo parametrizado usado por exemplos herdados. A inicialização atualazd ai agent init -trequer umazure.yamldocumento de projeto e rejeita wrappers AgentManifest. -
agent.yamlé um AgentDefinition, a configuração concreta que a inicialização herdada escreveu em seu projeto emsrc/<agent>/agent.yaml.
Ambos os arquivos descrevem o que é um agente: seu modelo, ferramentas, protocolos, ambiente e recursos. Isso é diferente de azure.yaml, que descreve como provisionar e implantar recursos Azure. Para obter a azure.yaml referência, consulte a referência azure.yaml para agentes hospedados.
Tipos de esquema
AgentDefinition
Um AgentDefinition é uma especificação concreta de um agente que está pronto para ser executado. Ele descreve uma única instância de agente com uma configuração específica e sem {{ parameter }} espaços reservados de modelo.
Cada AgentDefinition tem um kind campo que determina o tipo de agente.
| Variante | Description |
|---|---|
prompt |
Um agente baseado em prompt configurado apenas por meio de instruções. |
hosted |
Um agente em contêineres implantado como uma imagem de contêiner. |
workflow |
Um agente de orquestração que coordena outros agentes. |
Um AgentDefinition gerado ainda pode conter ${VAR_NAME} referências. Esses são azd espaços reservados de variável de ambiente, não fazem parte da especificação AgentSchema. Eles permitem que um único arquivo de definição funcione em vários azd ambientes resolvendo valores do arquivo de cada ambiente no momento da .azure/<env>/.env implantação.
AgentManifest
Um AgentManifest é um modelo parametrizado para criar agentes dinamicamente. Ele encapsula um AgentDefinition como seu template campo e adiciona:
-
parameters: valores que são solicitados ou injetados no momento da criação, usando{{ parameter }}a sintaxe de substituição. -
resources: dependências externas, como implantações de modelo, caixas de ferramentas ou conexões.
Use um AgentManifest quando precisar de modelos reutilizáveis ou quiser implantar agentes semelhantes com configurações diferentes. Ao executar azd ai agent init, você normalmente aponta para um manifesto, selecionando um modelo ou fornecendo uma URL. O processo de inicialização solicita valores de parâmetro e gera um AgentDefinition.
ContainerAgent
Um ContainerAgent é um AgentDefinition com kind: hosted. Ele estende a definição base com campos específicos do contêiner e é o template interior de um AgentManifest quando você cria um agente hospedado.
Quando usar um manifesto ou uma definição
| Usar um manifesto quando | Usar uma definição quando |
|---|---|
| Você publica um modelo de agente reutilizável para outras pessoas criarem uma instância. | Você implanta um agente específico de uso único. |
| Você deseja que os usuários configurem o modelo, as ferramentas ou as conexões no momento da inicialização. | Todos os valores de configuração são conhecidos e corrigidos. |
| Você cria um modelo de exemplo ou de início. | Você já executou azd ai agent init e tem uma definição gerada. |
A maioria dos desenvolvedores começa de um manifesto e azd ai agent init , em seguida, trabalha com a definição gerada. Autores de modelos e editores de exemplo são os principais criadores de manifestos.
Campos de nível superior
A referência abaixo documenta os campos de manifesto, que são um superconjunto dos campos de definição.
| Field | Tipo | Obrigatório | Description |
|---|---|---|---|
name |
cadeia | Yes | Nome do manifesto do agente. |
description |
cadeia | No | Descrição do agente. |
metadata |
objeto | No | Metadados adicionais, como tags. |
template |
ContainerAgent | Yes | O modelo de definição do agente. |
parameters |
objeto | No | Parâmetros configuráveis solicitados durante o init. |
resources |
matriz | Yes | Recursos exigidos pelo agente. |
template (ContainerAgent)
O template campo define o agente de contêiner hospedado.
| Field | Tipo | Obrigatório | Description |
|---|---|---|---|
name |
cadeia | Yes | Nome do agente. |
kind |
cadeia | Yes | Deve ser hosted para agentes hospedados. |
protocols |
matriz | Yes | Suporte ao protocolo. |
environment_variables |
matriz | No | Variáveis de ambiente para o contêiner. |
resources |
objeto | No | Recursos de CPU e memória do contêiner. |
image |
cadeia | No | Caminho de imagem de contêiner predefinido. |
dockerfilePath |
cadeia | No | Caminho para o Dockerfile. |
Protocolos
protocols:
- protocol: responses # OpenAI Responses API
version: 2.0.0
| Protocol | Description |
|---|---|
responses |
API de respostas OpenAI. Inclui o gerenciamento de histórico de conversas. |
invocations |
Protocolo de conteúdo personalizado. Nenhum gerenciamento de conversa interno. |
Para obter a especificação completa do protocolo, consulte o contrato de runtime do agente hospedado.
environment_variables
environment_variables:
- name: FOUNDRY_MODEL_NAME
value: ${FOUNDRY_MODEL_NAME}
A ${ } sintaxe faz referência azd a variáveis de ambiente de .azure/<env>/.env.
Note
Não declare FOUNDRY_PROJECT_ENDPOINT em environment_variables. A plataforma injeta-a automaticamente em contêineres hospedados e azd ai agent run a define para desenvolvimento local. Declarar aqui é redundante e corre o risco de sombrear o valor da plataforma.
parameters
Os parâmetros são solicitados durante azd ai agent init. Use secret: true para valores confidenciais.
parameters:
github_pat:
secret: true
description: GitHub Personal Access Token
resources
Os recursos definem o que o agente precisa. As formas abaixo descrevem quais manifestos declaram e o que azd ai agent init grava em seu projeto. Após a inicialização, gerencie os mesmos recursos com escopo de projeto em runtime com comandos diretos da CLI: azd ai connection, , azd ai toolboxe azd ai skillazd ai routine.
Note
O esquema não inclui um campo de habilidades. Os azd ai agent initcomandos e azd ai agent run os azd upcomandos não baixam automaticamente as habilidades. Gerencie habilidades como recursos azd ai skill no nível do projeto e conecte-as ao runtime do agente por conta própria.
Recurso de modelo
resources:
- kind: model
name: chat
id: gpt-4.1-mini
Recurso de conexão
resources:
- kind: connection
name: MyConnection
target: https://api.example.com
category: remoteTool
credentials:
type: CustomKeys
keys:
Authorization: "Bearer {{ my_api_key }}"
Recurso de caixa de ferramentas
resources:
- kind: toolbox
name: agent-tools
description: Agent toolbox
tools:
- name: webSearch
type: builtin
capability: web-search
- name: codeInterpreter
type: builtin
capability: code-interpreter
- name: myMcp
type: connection
connection: "{{ MyConnection }}"
Uma versão da caixa de ferramentas contém três tipos de entradas: entradas brutas tools (recursos internos como web-search ou code-interpreter), connections (conexões de projeto como um servidor MCP de ferramenta remota ou um índice de pesquisa) e skills (referências a habilidades de projeto existentes). O tools slot é declarado antecipadamente no manifesto. Adicionar conexões e referências de habilidades incrementalmente com azd ai toolbox connection add e azd ai toolbox skill add.
Exemplo completo
name: my-web-search-agent
description: An agent with web search and MCP tools
metadata:
tags:
- AI Agent Hosting
template:
name: my-web-search-agent
kind: hosted
protocols:
- protocol: responses
version: 2.0.0
environment_variables:
- name: FOUNDRY_MODEL_NAME
value: ${FOUNDRY_MODEL_NAME}
- name: TOOLBOX_ENDPOINT
value: ${TOOLBOX_ENDPOINT}
parameters:
github_pat:
secret: true
description: GitHub PAT for MCP connection
resources:
- kind: model
name: chat
id: gpt-4.1-mini
- kind: connection
name: GithubMcpConnection
target: https://api.githubcopilot.com/mcp
category: remoteTool
credentials:
type: CustomKeys
keys:
Authorization: "Bearer {{ github_pat }}"
- kind: toolbox
name: agent-tools
description: Web search and GitHub MCP tools
tools:
- name: webSearch
type: builtin
capability: web-search
- name: github
type: connection
connection: "{{ GithubMcpConnection }}"
Substituição de variável
A substituição ocorre em duas camadas: os parâmetros de manifesto são resolvidos no momento da inicialização e as variáveis de ambiente são resolvidas em tempo de execução ou implantação. Um arquivo de definição pode funcionar em todos os seus azd ambientes.
| Sintaxe | Resolvido quando | Pelo que |
|---|---|---|
{{ param_name }} |
azd ai agent init |
Valores de parâmetro de manifesto solicitados pelo usuário. |
${VAR_NAME} |
azd deploy ou azd ai agent run |
azd variáveis de ambiente de .azure/<env>/.env. |