In current, basic forms of this system, there are two classes of distributed control agents: Generation Agents (G-agents) that control and interface individual generation assets and Load Agents (L-agents) that control and interface individual loads (or aggregations of loads). Virtualized (aggregated) generators and loads that are cohort-level abstractions (pluralities) for the G-agent and L-agent. The two-class multi-agent system can enact a power management protocol of the Generation Following Protocol (GFP) class that is conducted between G and L cohorts, called the GL-GFP. In GL-GFP, the L-cohort responds to messages advertising changes in the G-cohort aggregate generation capacity by shedding loads to match the specified generation capacity. Generation capacity is reduced by some capacity margin before broadcasting according to a risk policy based on estimates of peak and average loads derived from previous operation or direct analysis of individual load characteristics. The L-cohort loads are considered dispatchable loads that are apportioned according to a fixed convex set to match the risk-adjusted generation value.