Aurora Verdict — Defensible AML Alert Triage
UiPath AgentHack 2026 · Track 2 (Maestro BPMN) · Enterprise / central-bank supervision Grounded in the BIS Innovation Hub's Project Aurora (AML) research.
Inspiration
In anti-money-laundering (AML) operations, an investigator manually assembles evidence from separate systems — KYC, transaction history, sanctions/PEP screening, adverse media — and then records a one-line close reason. A year later, when a regulator or auditor asks "why was this closed?", that one line doesn't hold up. The decision isn't defensible.
Regulators and auditors don't reward throughput — they reward decisions that
survive review years later. We set out to make every escalate-or-close decision
defensible by construction: each one carries a structured, evidence-cited
rationale and a complete, replayable trail from alert → evidence → recommendation
→ human decision → logged outcome.
The problem
- Thin rationale. The recorded reason is a sentence or two — not enough to defend the call later.
- Scattered evidence. Gathering the full picture eats the time meant for judgment.
- Inconsistent calls. Outcomes vary by which analyst is on shift; no reliable second set of eyes.
What it does
Aurora Verdict is a real BPMN process (not a linear pipe) that triages each AML alert and routes it to the right level of human review:
- Gather evidence — a robot assembles customer profile, transaction history, sanctions/PEP screening, and adverse-media results into one structured bundle, where every item has a stable ID.
- Reason and recommend — an LLM agent reads the bundle and produces a risk tier (low / medium / high), a confidence score, and a rationale where every claim is cited by evidence ID.
- Validate before a human sees it — a citation validator confirms every cited ID actually exists in the bundle. An agent that invents a citation is flagged, not trusted. A confidence floor sends anything the agent isn't strongly confident is low up to a human.
- Route proportionally:
- Low risk → auto-dispositioned, but a named supervisor clears the batch in one sign-off after individually reviewing a sampled 5% and all high-value alerts (≥ RM 250,000). No alert is ever silently auto-closed.
- Medium risk → an analyst signs or overrides the recommendation; overriding requires a written reason.
- High risk → maker–checker: a second challenger agent disputes the call before a senior reviewer decides.
- Write the audit record — every decision writes an append-only
DecisionRecordnaming the accountable human, the route taken, the outcome, and any reviewer correction.
Conservative by construction: deterministic red-flag triggers (any sanctions/PEP hit, structuring pattern, or watchlist/high-risk jurisdiction) force the high-risk route regardless of what the agent says. Doubt always resolves upward — protecting against the catastrophic false negative.
How we built it
Seven UiPath projects in one deployable solution (AuroraVerdict.uipx),
backed by Action Center and Data Fabric:
| Component | UiPath product | Role |
|---|---|---|
TriageOrchestrationBpmn |
Maestro BPMN | The spine — orchestrates the whole flow, gateways, loop-back, and human tasks |
TriageAgent |
Agent Builder | LLM reasoning + evidence synthesis with ID-only citations |
ChallengerAgent |
Agent Builder | High-risk second opinion (maker–checker) |
EvidenceGatherApi |
API Workflow | Assembles the IDed evidence bundle |
DecisionGateApi |
API Workflow | Deterministic red-flag check + confidence floor |
AuditWriteApi |
API Workflow | Append-only DecisionRecord writer |
BatchPartitionApi |
API Workflow | Low-risk sampling (5% + all high-value) for batch sign-off |
| Human sign / override / batch sign-off | Action Center | Human-in-the-loop tasks |
| Audit log + case records | Data Fabric | The defensible record store |
Alert ▸ EvidenceGather ▸ TriageAgent ▸ DecisionGate ┬─ low ▸ BatchPartition ▸ batch sign-off ─┐
├─ med ▸ analyst sign / override ──────────┤▸ AuditWrite
└─ high ▸ Challenger ▸ senior review ───────┘
The entire project was built with Claude Code driving the uip CLI — the
named "UiPath for Coding Agents" path — to scaffold, pack, and publish the
solution onto UiPath Automation Cloud.
How we validated it (the riskiest assumption first)
Before building the full orchestration, we tested the one assumption everything rests on: are the agent's cited recommendations actually accurate and audit-defensible — not plausible-sounding mush?
We curated 8 synthetic golden-set scenarios from the public SAML-D dataset (MIT License), each engineered to exercise a specific decision path — clean close, structuring escalation, hallucinated-citation catch, ambiguous escalation, sanctions+PEP, high-risk jurisdiction, and watchlist match — and ran each through the agent, scoring on a 3-point rubric (correct call? citations validated? would it survive an audit?) plus precision/recall against ground-truth labels.
Result: 8/8 exact risk-tier matches (~11.6 s per scenario). The evaluation is fully self-contained in the repo — a judge can read the pre-run outputs with no credentials required.
Challenges we ran into
- Grounding citations structurally. Letting an LLM "cite evidence" invites hallucination. We solved it with ID-only references into a structured bundle plus a validator that flags any unverifiable citation before a human sees it.
- Modeling N-item batch review in BPMN. Sequential per-item iteration with a summary sign-off on the exit branch required a loop-back exclusive gateway with a sentinel variable — a non-obvious BPMN pattern we captured as a build learning.
- Passing ForEach iteration variables into JavaScript activities and accumulating per-iteration results — both required explicit argument wiring that isn't obvious from the designer.
- Solution-pack binding validity. We learned to treat
uip solution packas the binding-validity gate and pre-create entry-points/bindings for API projects.
Accomplishments we're proud of
- A genuine BPMN process with a risk-tier gateway, missing-evidence loop-back, maker–checker gateway, and SLA escalation — not a linear pipeline.
- Hallucination-resistant by design: invented citations fail the rubric (see scenario GS-03).
- No decision closed with no human in the chain — even the high-volume low-risk bucket has a named, accountable signer.
- A hard accuracy number (8/8, with precision/recall) instead of an eyeballed demo.
What we learned
That the defensibility angle is exactly where Maestro and Claude are each strongest: Maestro for human-in-the-loop orchestration with a full trace, and the agent for structured reasoning with verifiable citations. The guardrails (validated citations, conservative tiering, append-only audit) matter more in a regulated context than raw speed.
What's next
- Wire real external sources via Integration Service (adverse-media / notification connectors) as a layered beat.
- A standalone consistency metric across analysts.
- Expand the golden set and report precision/recall at larger scale.
Data & ethics
All scenarios use synthetic data only — drawn from the public SAML-D dataset (MIT License) with an engineered evidence layer that injects synthetic sanctions/PEP hits. No real or anonymized-real customer data is used anywhere.
Built With
- claude-anthropic
- claude-code
- python
- saml-d-dataset
- uipath-action-center
- uipath-agent-builder
- uipath-api-workflows
- uipath-automation-cloud
- uipath-cli
- uipath-data-fabric
- uipath-maestro-bpmn
Log in or sign up for Devpost to join the conversation.