Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Gli elementi contrassegnati come anteprima in questo articolo sono attualmente in anteprima. Questa anteprima viene fornita senza un contratto di servizio e Microsoft non lo consiglia per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero avere funzionalità limitate. Per ulteriori informazioni, vedere Condizioni supplementari per l'uso delle versioni di anteprima di Microsoft Azure.
Annotazioni
I manifesti dell'agente (agent.manifest.yaml) e le definizioni degli agenti autonomi (agent.yaml) sono deprecati. A partire dalle estensioni Foundry azd (azure.ai.agents 1.0.0-beta.1), tutte le configurazioni dell'agente ospitato si trovano in un singolo azure.yamloggetto . Vedere Creare azure.yaml per gli agenti ospitati e informazioni di riferimento su azure.yaml per gli agenti ospitati.
La specifica AgentSchema è uno standard aperto per la definizione degli agenti di intelligenza artificiale. Quando si compilano agenti ospitati, si lavora principalmente con tre tipi di schema di primo livello: AgentDefinition, AgentManifest e ContainerAgent. Questo modello di schema legacy per AgentManifest, AgentDefinition, agent.manifest.yamle agent.yaml viene conservato per riferimento e viene sostituito da azure.yaml. Lo schema non è specifico di uno strumento. L'interfaccia della riga di comando per sviluppatori Azure (azd) e Microsoft Foundry Toolkit per Visual Studio Code entrambi lo usano.
Lo schema viene visualizzato in due contesti di file con convenzioni di denominazione distinte:
-
agent.manifest.yamlè un AgentManifest, un modello con parametri usato dagli esempi legacy. L'inizializzazione correnteazd ai agent init -trichiede unazure.yamldocumento di progetto e rifiuta i wrapper AgentManifest. -
agent.yamlè un AgentDefinition, la configurazione concreta che l'inizializzazione legacy ha scritto nel progetto insrc/<agent>/agent.yaml.
Entrambi i file descrivono che cos'è un agente: il modello, gli strumenti, i protocolli, l'ambiente e le risorse. Questo valore è diverso da azure.yaml, che descrive come effettuare il provisioning e distribuire le risorse Azure. Per informazioni di azure.yaml riferimento, vedere azure.yaml reference for hosted agents (Informazioni di riferimento su azure.yaml per gli agenti ospitati).
Tipi di schema
AgentDefinition
AgentDefinition è una specifica concreta di un agente pronto per l'esecuzione. Descrive una singola istanza dell'agente con una configurazione specifica e nessun {{ parameter }} segnaposto modello.
Ogni AgentDefinition ha un kind campo che determina il tipo di agente.
| Kind | Descrizione |
|---|---|
prompt |
Un agente basato su prompt configurato solo tramite istruzioni. |
hosted |
Un agente in contenitori distribuito come immagine del contenitore. |
workflow |
Agente di orchestrazione che coordina altri agenti. |
Un AgentDefinition generato può comunque contenere ${VAR_NAME} riferimenti. Si tratta di azd segnaposto di variabili di ambiente, non parte della specifica AgentSchema. Consentono il funzionamento di un singolo file di definizione in più azd ambienti risolvendo i valori del file di ogni ambiente in fase di .azure/<env>/.env distribuzione.
AgentManifest
AgentManifest è un modello con parametri per la creazione dinamica degli agenti. Esegue il wrapping di agentDefinition come campo template e aggiunge:
-
parameters: valori richiesti o inseriti in fase di creazione, usando la{{ parameter }}sintassi di sostituzione. -
resources: dipendenze esterne, ad esempio distribuzioni di modelli, casella degli strumenti o connessioni.
Usare agentManifest quando sono necessari modelli riutilizzabili o si vogliono distribuire agenti simili con configurazioni diverse. Quando si esegue azd ai agent init, in genere si punta a un manifesto selezionando un modello o fornendo un URL. Il processo init richiede i valori dei parametri e genera un AgentDefinition.
ContainerAgent
ContainerAgent è un AgentDefinition con kind: hosted. Estende la definizione di base con campi specifici del contenitore ed è all'interno template di un AgentManifest quando si compila un agente ospitato.
Quando usare un manifesto o una definizione
| Usare un manifesto quando | Usare una definizione quando |
|---|---|
| Si pubblica un modello di agente riutilizzabile per consentire ad altri utenti di creare un'istanza. | Si distribuisce un agente specifico a scopo singolo. |
| Si vuole che gli utenti configurino il modello, gli strumenti o le connessioni in fase di init. | Tutti i valori di configurazione sono noti e fissi. |
| Si compila un modello di esempio o starter. | È già stata eseguita azd ai agent init e si dispone di una definizione generata. |
La maggior parte degli sviluppatori inizia da un manifesto e azd ai agent init quindi usa la definizione generata. Gli autori di modelli e gli editori di esempio sono i creatori principali dei manifesti.
Campi di primo livello
Il riferimento seguente documenta i campi manifesto, che sono un superset dei campi di definizione.
| Field | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string | Sì | Nome del manifesto dell'agente. |
description |
string | No | Descrizione dell'agente. |
metadata |
object | No | Metadati aggiuntivi, ad esempio tags. |
template |
ContainerAgent | Sì | Modello di definizione dell'agente. |
parameters |
object | No | Parametri configurabili richiesti durante init. |
resources |
array | Sì | Risorse richieste dall'agente. |
template (ContainerAgent)
Il template campo definisce l'agente contenitore ospitato.
| Field | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string | Sì | Nome dell'agente. |
kind |
string | Sì | Deve essere hosted per gli agenti ospitati. |
protocols |
array | Sì | Supporto del protocollo. |
environment_variables |
array | No | Variabili di ambiente per il contenitore. |
resources |
object | No | Risorse di CPU e memoria del contenitore. |
image |
string | No | Percorso predefinito dell'immagine del contenitore. |
dockerfilePath |
string | No | Percorso del Dockerfile. |
Protocolli
protocols:
- protocol: responses # OpenAI Responses API
version: 2.0.0
| Protocol | Descrizione |
|---|---|
responses |
API Risposte OpenAI. Include la gestione della cronologia delle conversazioni. |
invocations |
Protocollo payload personalizzato. Nessuna gestione delle conversazioni predefinita. |
Per la specifica completa del protocollo, vedere Contratto di runtime dell'agente ospitato.
environment_variables
environment_variables:
- name: FOUNDRY_MODEL_NAME
value: ${FOUNDRY_MODEL_NAME}
La ${ } sintassi fa riferimento alle azd variabili di ambiente da .azure/<env>/.env.
Annotazioni
Non dichiarare FOUNDRY_PROJECT_ENDPOINT in environment_variables. La piattaforma lo inserisce automaticamente in contenitori ospitati e azd ai agent run lo imposta per lo sviluppo locale. Dichiararlo qui è ridondante e rischia di nascondere il valore della piattaforma.
parameters
I parametri vengono richiesti durante azd ai agent init. Usare secret: true per i valori sensibili.
parameters:
github_pat:
secret: true
description: GitHub Personal Access Token
risorse
Le risorse definiscono le esigenze dell'agente. Le forme seguenti descrivono quali manifesti dichiarano e cosa azd ai agent init scrive nel progetto. Dopo init, gestire le stesse risorse con ambito progetto in fase di esecuzione con comandi diretti dell'interfaccia della riga di comando: azd ai connection, azd ai toolbox, azd ai skille azd ai routine.
Annotazioni
Lo schema non include un campo di competenze. I azd ai agent initcomandi , azd ai agent rune azd up non scaricano automaticamente le competenze. Gestire le competenze come risorse a livello di progetto e azd ai skill collegarle al runtime dell'agente manualmente.
Risorsa modello
resources:
- kind: model
name: chat
id: gpt-4.1-mini
Risorsa di connessione
resources:
- kind: connection
name: MyConnection
target: https://api.example.com
category: remoteTool
credentials:
type: CustomKeys
keys:
Authorization: "Bearer {{ my_api_key }}"
Risorsa casella degli strumenti
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 }}"
Una versione della casella degli strumenti include tre tipi di voci: voci non tools elaborate (funzionalità predefinite come web-search o code-interpreter), connections (connessioni di progetto come un server MCP remoto o un indice di ricerca) e skills (riferimenti alle competenze esistenti del progetto). Lo tools slot viene dichiarato in primo piano nel manifesto. Aggiungere connessioni e riferimenti alle competenze in modo incrementale con azd ai toolbox connection add e azd ai toolbox skill add.
Esempio 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 }}"
Sostituzione di variabili
La sostituzione avviene in due livelli: i parametri manifesto vengono risolti init time e le variabili di ambiente vengono risolte in fase di esecuzione o distribuzione. Un file di definizione può quindi funzionare in tutti gli azd ambienti.
| Sintassi | Risolto quando | Per cosa |
|---|---|---|
{{ param_name }} |
azd ai agent init |
I valori dei parametri del manifesto richiesti dall'utente. |
${VAR_NAME} |
azd deploy oppure azd ai agent run |
azd variabili di ambiente da .azure/<env>/.env. |