Agent pool
What it is
An agent pool is a named collection of agents that execute jobs. In Azure Pipelines you assign a job to a pool with pool:; the job then runs on any available agent in that pool.
Why it exists
Pipelines need compute to execute steps. Instead of pinning each job to one machine, a pool lets Azure Pipelines choose an available agent that meets the job’s requirements. A pool can contain Microsoft-hosted or self-hosted agents, but it is not itself a VM image.
Key ideas
- Microsoft-hosted agents run in the built-in
Azure Pipelinespool.vmImage: ubuntu-latestselects an image; it is not the name of a pool. Each job receives a fresh VM, which is discarded after that job. - Self-hosted pools contain agents that you register and maintain. They offer more control, but your organization is responsible for the machines, security, and capacity.
- In Azure DevOps Services, agent pools are organization-scoped and can be shared with projects. Pool permissions and pipeline permissions control which projects and pipelines may use them.
- One agent runs one job at a time. More eligible agents can increase concurrent jobs, subject to the available parallel-job capacity.
- GitHub Actions equivalent: runners (GitHub-hosted or self-hosted) chosen via
runs-on:.
Exam notes
- Syntax:
pool: { vmImage: 'ubuntu-latest' }selects a Microsoft-hosted image;pool: mySelfHostedPoolselects a named self-hosted pool. - Demand/
demands:— self-hosted agents can declare capabilities (e.g.dotnet), letting jobs pick capable agents. - Hosted pool names/
vmImagevalues are common exam items.
Related
self-hosted-agent · azure-pipelines · jobs-steps
📘 Source: Microsoft Learn — Create and manage agent pools, checked 2026-09-17.