Back to work

Hackathon Prototype · Synthetic Data · Agent Workflows

Federated AML Investigation

A prototype exploring coordinated money-laundering investigations across three synthetic banks, using constrained aggregate queries, agent workflows, and inspectable audit records.

The problem

An investigation spanning several institutions can require information that is fragmented across their systems. I used synthetic bank data to explore how agents could coordinate across those boundaries while keeping query permissions, aggregate releases, and audit records explicit.

The product question was how to make that coordination understandable to the person reviewing an investigation. The demo brings together the evidence, message flow, and policy decisions in one interface.

Stack

Python · FastAPIReact + ViteGemini 2.5 (Flash + Pro)Veea Lobster TrapOpenDP · Gaussian noiseEd25519 signed envelopesCloud Run · LiteLLM proxy chainJupyter (nbclient) reportspytest

Architecture

Three synthetic banks and a federation layer

Each bank has transaction-monitoring and investigator roles. Six federation roles coordinate cross-bank analysis, screening, report drafting, auditing, and policy checks. The architecture explores signed messages and replay protection across those boundaries, with a trusted coordinator as a deployment assumption.

Budgeted aggregate queries

Cross-bank aggregate queries use Gaussian noise and a per-requester privacy-budget ledger. The simulation exercises query refusal when a budget is exhausted, making the tradeoff between shared information and privacy constraints visible.

Policy checks at message boundaries

Inter-agent messages route through Veea's Lobster Trap proxy with a custom AML policy pack. Checks cover redaction, declared purpose, and restricted content. Recorded verdicts and hash-chained logs help inspect how a request passed through the prototype.

Investigation reports as inspectable artifacts

Jupyter reports bring together the investigation question, released aggregate statistics, model outputs, and audit records. These artifacts make the reasoning easier to review. Re-running an LLM step can still change its output, so retaining the original evidence and execution record matters.

What the prototype demonstrates

A seeded cross-bank scenario

The demo uses a five-entity structuring ring distributed across three synthetic banks. It illustrates how combining constrained cross-bank signals can reveal a pattern that is incomplete within an individual bank's view. The scenario is a demonstration of the workflow, with real-world detection performance still to be evaluated.

Adversarial probes alongside the workflow

A review surface exercises prompt injection, evidence fabrication, re-identification attempts, audit tampering, privacy-budget exhaustion, and sender impersonation. Showing verdicts and audit records helps identify which controls respond to a probe and where further evaluation is needed.

An interface for inspecting coordination

The prototype combines a swimlane view of the trust domains, message inspectors, and executed-notebook investigation reports. The interface makes coordination and evidence review part of the demonstration, alongside automated tests of the underlying workflows.

Context

Built for the TechEx Intelligent Enterprise Solutions Hackathon (May 2026), Track 1: Agent Security & AI Governance. Findings are limited to the synthetic scenarios and configured controls. Production use would require deployment-specific security, privacy, and compliance evaluation.