What it builds
Three things, all useful from day 1
Process maps
One graph per (tenant, domain). Nodes are event types, edges are observed transitions. Incrementally updated every time new events arrive.
Dependencies
Which activity triggers which? Which system feeds into the next? Frequencies, wait times and parallel paths — modelled explicitly.
Deviations
Token-based replay against the Inductive Miner gives a *real* fitness score — not a variant-spread proxy. Deviations are deviations, not measurement errors.
The three-algorithm ensemble
Three miners — one truth
Directly-Follows Graph (DFG)
pm4py.discover_directly_follows_graph counts every observed transition. Fast, deterministic, always available. The base structure the others build on.
Inductive Miner
pm4py.discover_process_tree_inductive → Petri net. Gives a true process model to replay against. This is where the conformance fitness score comes from.
Heuristics Miner
pm4py.discover_petri_net_heuristics — only at ≥ 20 cases. Adds statistical power when the dataset carries it; never on cold start.
The quality-score gate
Not every graph deserves an agent
Every process graph gets a quality score:
≥ 0.85
Auto — an agent is created immediately, no human review required.
0.70 – 0.84
Verified — an agent is created, but flagged for review before the first run.
< 0.70
Wait — confidence too low. More data needed, no agent created yet.
The result: agents are born only when we understand the process well enough to defend every recommendation.