A governed, closed-loop incident responder — Versus watches your Desk and ServiceNow incident queues, diagnoses each new incident with AI against your live inventory and integrations, and remediates within limits you set per severity.
Diagnostics AutoPilot turns Versus Diagnostics from a tool you open when something breaks into a service that is already working the incident by the time you look. It watches your incident queues, opens a Diagnostic session for every new incident, gathers evidence across your managed devices and integrations, produces an AI root‑cause diagnosis, and — within the tolerance you define per severity — either hands you a ready‑to‑approve remediation workflow or resolves the incident autonomously.
It lives inside the existing Diagnostics workspace. Every incident it picks up becomes an ordinary Diagnostic session you can open, read, and act on — AutoPilot simply drives that flow for you and adds a governance layer on top.
Ships switched off. AutoPilot is inert until an administrator enables it. The two master controls — the live feed and unattended action — both default to off, so nothing changes in your environment until you deliberately turn it on.
AutoPilot reads from two incident sources; you can enable either or both.
| Source | What it reads | Requirements |
|---|---|---|
| Versus Desk | Open incidents (INC‑…) in the built‑in service desk | None — always available |
| ServiceNow | Open records from the incident table | A configured ServiceNow instance (Integrations → Service Now); the instance must be reachable/awake |
Each incident is matched to a device where possible — from a Desk incident's linked configuration item, a ServiceNow cmdb_ci, or by matching a hostname/IP mentioned in the incident text against your inventory. That resolved device is what triage investigates.
Incidents are de‑duplicated on source + number, so an incident is only ever picked up once no matter how many times the feed runs. A look‑back window (default 24 hours) bounds how far back a newly‑enabled feed will reach.
Triage does not ask the model a single question over a fixed snapshot. It runs an iterative investigation: the model reasons as a standing panel of domain experts, forms the most‑likely hypotheses, then confirms or refutes each by calling one read‑only tool at a time and reading the real output — walking the delivery path hop by hop and crossing domains as the evidence leads, exactly the way a NOC/SRE war room works a live incident.
Every incident is worked by the relevant members of a dozen‑plus expert roster:
At each step the agent picks the single probe that most reduces uncertainty, runs it, reads the result, and decides the next move — following the delivery path client → DNS/GSLB → firewall → ADC (virtual server → pool → member) → backend, and jumping domains when a hop is healthy (a "DNS" incident is often really an ADC pool or an expired certificate). It checks for a recent change early, because that is the most common root cause. It keeps going until it can name the root cause with supporting evidence, or it exhausts its step budget (configurable). Nothing it does changes state — the investigation is strictly read‑only; acting on the diagnosis is the governed remediation stage below.
The agent has a read‑only tool for every relevant capability across your managed devices and integrations:
| Group | Tools |
|---|---|
| Connectivity | ping, traceroute, DNS lookup, TCP port check (run from a chosen device) |
| Packet capture | short, bounded live capture using each vendor's native tool — F5 tcpdump, FortiGate diagnose sniffer, Check Point tcpdump, Nexus ethanalyzer, Arista tcpdump (auto-stops after a small packet count); deeper traces via SPAN/tap → the collector tcpdump.capture → PCAP Analysis |
| L2 / L3 | ARP table, routing table, interface status / errors |
| ADC | virtual‑server availability, pool + member up/down, device CPU/mem/disk/throughput, HA & config‑sync state, live per‑vserver stats, object listings (virtuals / pools / nodes / monitors / certs / wide IPs), read‑only tmsh show/list |
| Firewall | session‑table count/utilization, dataplane CPU, HA/failover state, policy rules + hit counts, security rulebase & installed‑policy per gateway (Check Point SMS) |
| Routing | BGP neighbor/summary state, routing table |
| Data‑center fabric (ACI) | APIC fabric health score, leaf/spine node status, APIC cluster health, tenants/EPGs, critical/major faults |
| Inventory | list devices, device info, virtual servers, wide IPs, certificates with expiry |
| Native objects & events | vendor config objects (firewall rules, LB service‑groups/servers, DNS/IPAM networks, neighbors) and device‑native security signals (PAN rule hit counts, F5 XC WAF events, Cloudflare rules), plus per‑device certificate inventory |
| Logs | recent device log lines (optionally pattern‑matched) |
| Integrations | SIEM search + alerts‑for‑device, CrowdStrike EDR host / detections, IPAM lookup, vSphere VM lookup, ServiceNow recent changes + record fetch, cloud load balancers, SCM recent commits |
Each probe runs against the device's own native vendor API — F5 iControl (through the site collector), Citrix NetScaler NITRO, Palo Alto PAN‑OS XML‑API, FortiGate FortiOS REST, Check Point Gaia (clish + cphaprob/cpstat) and the Management Web API (show‑gateways‑and‑servers / show‑access‑rulebase / show‑logs log‑server events), Cisco NX‑API / Arista eAPI, Cisco ACI (APIC REST), A10 aXAPI, Avi and NSX‑T REST, Infoblox WAPI, and the cloud‑WAF/CDN APIs (Cloudflare, F5 Distributed Cloud, and others) — with SSH show as the fallback for CLI devices without a REST driver. Every tool is wrapped, so an unconfigured integration or an unreachable device returns a note the agent reasons about, never an error that stops the investigation.
It still investigates. With no topology to walk, the agent resolves the target device(s) from the incident's linked CI / cmdb_ci / text and from inventory, and probes from there — device health, logs, integration signals, recent changes — reaching a diagnosis (with an honestly lower confidence when the evidence is thin).
A structured, evidence‑backed diagnosis: a classification (domain / subsystem / severity), the most‑likely root cause with a confidence score, per‑expert notes (what each domain concluded), ranked findings, recommended actions (each flagged read‑only vs. state‑changing), and verification steps — plus the full investigation transcript (every probe, its arguments, and the real output) shown on the session, so you can see exactly how the panel reasoned. The agent never invents a device, IP, metric, or change it did not observe.
Configurable. The expert‑panel investigator is on by default, with a step budget you set on the settings page. Turn it off to fall back to a faster single‑shot diagnosis over a fixed evidence snapshot.
This is the heart of AutoPilot: how far Versus may go is your decision, made per severity, in advance. Each severity (P1 highest → P4 lowest) maps to one of four action levels.
| Action level | What Versus does |
|---|---|
| Off | Creates the session but takes no further action |
| Read‑only diagnosis | Runs full AI triage; produces a diagnosis; generates no workflow |
| Diagnose + approve | Diagnoses and generates a remediation workflow, then holds it for a human to approve before anything executes |
| Autonomous remediation | Diagnoses, generates, and executes the remediation workflow with no human in the loop |
The default policy — and the recommended starting point — is:
| Severity | Default action |
|---|---|
| P1 | Autonomous remediation |
| P2 | Diagnose + approve |
| P3 | Diagnose + approve |
| P4 | Read‑only diagnosis |
Two independent switches guard autonomy. "Autonomous remediation" only ever runs unattended when both the per‑severity policy says so and the global master switch is on. With the master switch off, a P1 that is set to "autonomous" is still fully diagnosed and its workflow fully built — it simply waits for your approval like a P2/P3. This lets you run AutoPilot in a supervised mode indefinitely and flip to autonomous only when you trust it.
When the policy calls for action, AutoPilot generates a real, executable workflow on the Versus workflow engine — the same engine your hand‑built workflows run on. The generated workflow is structured in phases:
Because these are ordinary workflows, you can open, edit, re‑run, or back them out exactly like any other — and they inherit the engine's collector routing, so they work against on‑prem devices behind a customer firewall.
Open Diagnostics → AutoPilot (administrator access required). The page is organised into cards:
All changes are versioned: every save records who changed what, so the tolerance policy has its own change history.
A recommended, low‑risk rollout:
You can return to supervised mode at any time by turning the master switch back off; the feed keeps running and keeps generating workflows for approval.
AutoPilot ships with a library of realistic, research‑grounded incident templates spanning application delivery (F5/ADC), DNS/GSLB, firewalls, routing, certificates, cloud WAF/CDN, application‑layer errors, and compute — expandable into a very large number of distinct, parameterised incidents that bind to your real inventory device names.
python manage.py seed_incident_samples --count 200 --to both (also accepts --priority and --domains).This is the fastest way to see the full loop — feed, triage, governance, approval, and (with the master switch on) autonomous remediation — end to end.