Workflows

Run Supervisor

Assign an AI agent to a workflow run when you start it. If a step fails mid-change, the supervisor diagnoses the hurdle, researches the vendor documentation, patches that run — never the definition — and resumes it from where it stopped, so a change window ends in a completed change instead of a reschedule.

It's 11:40 p.m. in a scheduled change window. The workflow you rehearsed and got approved is a quarter of the way through, and a step goes red. The pair reports something you weren't expecting, the script that has run fine forty times stops, and everyone on the bridge is looking at the one person who is supposed to know what to do — who is, right now, a deer in headlights. Fixing a script by hand at midnight, on production, with the clock running, is how changes get rescheduled and windows get lost.

A Run Supervisor is the engineer who isn't frozen. It is an AI agent you assign to a workflow run when you start it. It does nothing unless a step fails. When one does, it reads the devices, researches the vendor documentation, proposes the smallest patch that lets the change complete — a corrected parameter, a missing prerequisite step, a documented recovery — applies it to that run (never to the workflow definition), and the run picks up where it stopped. The change completes in‑window. What it learned can be saved as a draft for the next time.

Assigned per run, not per workflow. The supervisor is a choice in the Run dialog. A run with no supervisor behaves exactly as it always has — it fails, and a person retries or fixes by hand. Nothing watches a run you didn't ask it to.


Assign one

  1. Workflows → Run on any static workflow.
  2. Fill in the run inputs as usual, then pick a Supervisor agent (optional; the default is None — run unsupervised). Any agent from the registry (Workflows → AI Agents) can supervise; the good ones carry the device read tools for the vendor in play plus the knowledge tools, and instructions about what a minimal, safe patch looks like.
  3. Start Run. The run page shows Run Supervisor — <agent> with the status assigned. It stays quiet until it's needed.

The agent's autonomy setting decides how much it may do on its own — see Governance below.


What happens when a step fails

Normally a failed step ends the run as failed. With a supervisor assigned, the executor hands the run to the agent instead, and every stage appears as rows on the run page:

  1. Diagnose. The supervisor gets the run's context — the workflow, the failing step's configuration and log, the run variables (secrets redacted), the devices in scope, the steps completed so far — and works it like a dynamic agent: reads the device state with its tools, and researches the exact condition in the vendor documentation (knowledge_search narrowed to the device family, then vendor_doc_fetch on the best result). See Dynamic Agent Workflows — Research on the fly.
  2. Patch. It answers with exactly one typed patch to this run's own copy of the graph:
PatchWhat it does
retryRe‑run the failed step, optionally with corrected configuration — a fixed parameter, a longer timeout, a corrected script in the same config key the step uses.
insert_beforeRun one or more real catalogue steps first (a missing prerequisite), then the failed step again, then continue.
replaceReplace the failed step with one or more catalogue steps, then continue.
skipSkip the failed step — only when it is verifiably unnecessary, and it must say why.
askA question for you, when the decision is genuinely yours (a target, a window, a go/no‑go). The run pauses until you answer.
abortStop, because continuing would be unsafe. The run fails with the diagnosis attached.

Inserted steps are always governed catalogue steps (f5.*, netscaler.*, palo.*, …) with the same configuration keys the failed step uses — never free‑form device commands. The supervisor may not insert a reboot, failover or reload to work around a failure. 3. Govern. Depending on the agent's autonomy, the patch is applied automatically or the run pauses with the proposal and an Apply patch and resume button. 4. Resume. The patched run continues from the patched node — the inserted step runs, the failed step re‑runs, and the rest of the workflow proceeds exactly as designed. Nothing that already succeeded is repeated.


Governance

  • Autonomy decides. Advisory agents only diagnose and propose. Propose + approve agents pause the run with the proposal for your one‑click Apply (or Reject). Autonomous agents apply the patch themselves — only when every device in the run is on a non‑production site and the patch inserts nothing disruptive; anything else falls back to propose + approve. In production, a human clicks.
  • The definition is never touched. Patches land on the run's own graph copy. The workflow you published is unchanged for the next run.
  • A budget. Three interventions per run by default; a run that keeps failing stops with the diagnoses attached rather than looping. Raise it per agent (Workflows > Agents > Max interventions / run, stored as max_interventions in the agent's Advanced config), per run (the Max interventions this run box that appears in the Run dialog once a supervisor is chosen), or platform-wide with the SUPERVISOR_MAX_INTERVENTIONS environment variable. Each intervention's own probe budget is the agent's Max steps, capped at 14 unless max_intervention_steps (Advanced config) or SUPERVISOR_MAX_INTERVENTION_STEPS raises the cap (ceiling 40). The run page shows n of N interventions.
  • Everything is on the run page. The diagnosis steps (every tool call and what came back), the proposal with its rationale, who applied it, and the resumed steps — the same audit trail as the rest of the run.
  • Learn from it. When a supervised run completes, Save the patched run as a draft workflow creates a new draft with the inserted or corrected steps in place, for you to review in the editor and publish if it belongs in the procedure. The hurdle becomes part of the runbook — on your terms.

Worked example: a change window on the lab pair

A static change‑window workflow on the bigip1 / bigip2 pair: pre‑change gate — config In Sync on both units → save UCS on both → confirm Active/Standby → snapshot VS & pool health. The run was started with the Change Window Supervisor agent (read + knowledge tools, propose + approve).

The gate failed at once: the pair reported Changes Pending — a configuration change on the active unit had never been synced. Without a supervisor, that is the deer‑in‑headlights moment. With one:

  1. Diagnosed — read tmsh show cm sync-status on the device (TMOS itself said: Recommended action: Synchronize bigip2 to group ha), then researched the condition in F5's Managing Configuration Synchronization guide ("If the sync status is yellow (Changes Pending)… you must ensure that a config sync operation occurs for the relevant device group.").
  2. Proposed — insert before the failed step, then re‑run it: f5.save_sync targeted at the active unit. Rationale, in its own words: "bigip2 (ACTIVE) holds the latest configuration and shows 'Changes Pending'. F5 vendor documentation and the device's own recommended action both direct a sync from bigip2 to the HA device group… No reboot, failover, or operator decision is required."
  3. Applied with one click — the inserted sync ran on the active unit and reported In Sync, the gate re‑ran and passed on both units, and the run carried on exactly as designed: UCS backups on both units, the Active/Standby check, the health snapshot — completed.

From the failure to the proposal took about a minute; from the failure to a completed change, about four (most of it the backups). The person on the bridge clicked once.


When it can't

The supervisor is bounded by its tools, its research and its budget, and it is instructed to prefer stopping over guessing. If it produces no usable patch, answers abort, or exhausts its interventions, the run fails exactly as an unsupervised run would — with the full diagnosis attached, which is usually most of the work a person would have had to do at midnight anyway.


Related