The emphasis here is on the “-er”. It’s tempting to think that if we observe a system undergoing optimization, then there must be some “thing” doing the optimization. However, for most definitions, this does not hold, and does not seem to be a natural way to carve nature at its joints.
Agents are a type of optimizer (assuming they are successful).
If a system’s states have a concept of locality, then we may be able to attribute the system’s optimization to a specific region of the state. Let’s say that there are two states that differ only in a given region. If one of those states leads to an optimizing trajectory and the other doesn’t, then this is good evidence that the optimization can be attributed to that region of the state. Thus it would make sense to call this part of the state an optimizer.
It’s not entirely clear that this observation is sufficient; one could construct examples where changing each part of the state leads to optimization, but changing any bigger collection of parts of the state leads to no optimization. For a related phenomenon, see “synergistic information” in partial information decomposition.
A region of the state that does constitute an optimizer may cease to be an optimizer if it is moved to another region of the state. Similarly, it may fail to produce optimization if its environment (the parts of the state outside it) is changed. How much its environment can be changed while still successfully optimizing could be considered a measure of how robust the optimizer is.