Items marked (preview) in this article are currently in public preview. This preview is provided without a service-level agreement, and we don’t recommend it for production workloads. Certain features might not be supported or might have constrained capabilities. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.
Agent manifests (
agent.manifest.yaml) and standalone agent definitions (agent.yaml) are deprecated. As of the Foundry azd extensions (azure.ai.agents 1.0.0-beta.1), all hosted agent configuration lives in a single azure.yaml. See Author azure.yaml for hosted agents and azure.yaml reference for hosted agents.AgentManifest, AgentDefinition, agent.manifest.yaml, and agent.yaml is retained for reference and is superseded by azure.yaml. The schema isn’t specific to one tool. The Azure Developer CLI (azd) and the Microsoft Foundry Toolkit for Visual Studio Code both use it.
The schema appears in two file contexts with distinct naming conventions:
agent.manifest.yamlis an AgentManifest, a parameterized template that template authors and samples publish. Theazd ai agent init -mcommand reads it.agent.yamlis an AgentDefinition, the concrete configuration thatazd ai agent initwrites into your project atsrc/<agent>/agent.yaml. This is the file you edit day to day.
azure.yaml, which describes how to provision and deploy Azure resources. For the azure.yaml reference, see azure.yaml reference for hosted agents.
Schema types
AgentDefinition
An AgentDefinition is a concrete specification of an agent that’s ready to run. It describes a single agent instance with a specific configuration and no{{ parameter }} template placeholders.
Every AgentDefinition has a kind field that determines the agent type.
A generated AgentDefinition can still contain
${VAR_NAME} references. These are azd environment variable placeholders, not part of the AgentSchema specification. They let a single definition file work across multiple azd environments by resolving values from each environment’s .azure/<env>/.env file at deploy time.
AgentManifest
An AgentManifest is a parameterized template for creating agents dynamically. It wraps an AgentDefinition as itstemplate field and adds:
parameters: values that are prompted or injected at creation time, using{{ parameter }}substitution syntax.resources: external dependencies such as model deployments, toolboxes, or connections.
azd ai agent init, you typically point at a manifest, either by selecting a template or providing a URL. The init process prompts for parameter values and generates an AgentDefinition.
ContainerAgent
A ContainerAgent is an AgentDefinition withkind: hosted. It extends the base definition with container-specific fields and is the template inside an AgentManifest when you build a hosted agent.
When to use a manifest or a definition
Most developers start from a manifest through
azd ai agent init and then work with the generated definition. Template authors and sample publishers are the primary creators of manifests.
Top-level fields
The reference below documents the manifest fields, which are a superset of the definition fields.template (ContainerAgent)
Thetemplate field defines the hosted container agent.
protocols
For the full protocol specification, see Hosted agent runtime contract.
environment_variables
${ } syntax references azd environment variables from .azure/<env>/.env.
Don’t declare
FOUNDRY_PROJECT_ENDPOINT in environment_variables. The platform injects it automatically into hosted containers, and azd ai agent run sets it for local development. Declaring it here is redundant and risks shadowing the platform value.parameters
Parameters are prompted duringazd ai agent init. Use secret: true for sensitive values.
resources
Resources define what the agent needs. The shapes below describe what manifests declare and whatazd ai agent init writes into your project. After init, manage the same project-scoped resources at runtime with direct CLI commands: azd ai connection, azd ai toolbox, azd ai skill, and azd ai routine.
The schema doesn’t include a skills field. The
azd ai agent init, azd ai agent run, and azd up commands don’t auto-download skills. Manage skills as project-level resources with azd ai skill and wire them into your agent runtime yourself.Model resource
Connection resource
Toolbox resource
tools entries (built-in capabilities like web-search or code-interpreter), connections (project connections such as a remote-tool MCP server or a search index), and skills (references to existing project skills). The tools slot is declared up front in the manifest. Add connections and skill references incrementally with azd ai toolbox connection add and azd ai toolbox skill add.
Complete example
Variable substitution
Substitution happens in two layers: manifest parameters resolve at init time, and environment variables resolve at run or deploy time. One definition file can then work across all yourazd environments.