Multi-Agent

Control-Loop-Mapped Agent Chain

Give each existing feedback loop in a plant's control chain its own operator agent carrying that loop's control-theoretic context, and resolve their competing proposals with the chain's own deterministic selector logic.

Problem

The default multi-agent shape invents roles for the task and asks a coordinating model to arbitrate between them. Both halves fail here. Roles invented for the task have no relationship to the loops the plant actually runs, so nobody can review the team against an engineered artefact, and the prompt for a general-purpose agent has to carry whole-plant context that only retrieval can supply — which turns a reviewable prompt into a scored guess. Arbitration by a model is worse: contention over a shared manipulated variable already has an answer that came out of a safety analysis, and a coordinating model can at best reproduce that answer and at worst overrule it under load, at a tier too slow to run at every control sample. Measurement shows why the loops cannot simply be handed over: on Skogestad's Column A an ungated agent supervisor beat a Pareto-tuned linear controller on off-nominal target acquisition, at an error ratio of 0.361 at the upper confidence bound, and inverted by a factor of 16.03 on disturbance rejection over the same sixteen-point grid.

Solution

Take the chain diagram as the specification for the team. Every feedback loop in it becomes exactly one operator agent, and that agent's prompt carries the loop's control-theoretic context and nothing else: the controlled variable it defends, the current setpoint and limits, its priority within the chain, the kind of selector it feeds, and the measurements belonging to that loop. Because the scope comes from the diagram rather than from a search over plant documentation, the retrieval problem becomes a prompt an engineer can verify by reading it. At each control sample every agent proposes a value for its own manipulated variable together with a mode and a short rationale. An orchestrator collects the proposals and applies the chain's interaction logic in the order the chain prescribes — MIN and MAX selectors for switching between competing controlled variables, the split-range rule for dividing one manipulated variable, then the override layer — and that step contains no model call, so every constraint conflict resolves deterministically regardless of what the models produced. A proposal that is missing, late, or outside its declared limits is dropped and the base regulatory controller's own output holds the loop, with the substitution flagged. Each agent appends one record per sample carrying the timestamp, measurement, setpoint, requested output, mode, rationale and fallback flag, which gives an auditable trajectory and a logbook written in operator language. A slower advisory tier may use a model to comment on the trajectory or suggest setpoint changes for review, but it never becomes the per-sample arbitrator.

When to use

  • The domain already has a commissioned control-loop topology with a documented priority structure such as selectors, split-range logic or an override layer.
  • Contention over a shared actuator has a safety-derived answer that predates the agent and must not be renegotiated at runtime.
  • Each agent's task can be bounded to one controlled variable and the measurements belonging to its loop.
  • Per-sample records and an operator-readable rationale are needed for audit or for a control campaign logbook.
  • The control cadence is slow enough that one model call per loop fits inside a sample interval.

Open the full interactive page

Diagram, neighbourhood map, code examples, related patterns and full provenance.

Related