Skip to content

Necromancer

I ahve built a agentic fraud detection sysgtem which uses 3 agents to flag the chained fraud transaction which is the ost effective fraud trick.

Core trick

XGBoost flags suspicious account clusters, a Gemini agent runs graph-traversal code to trace fund hops, and a judge rejects weak traces.

Tags

Description

I ahve built a agentic fraud detection sysgtem which uses 3 agents to flag the chained fraud transaction which is the ost effective fraud trick. UPI Fraud Investigation Agents — a multi-agent system that investigates suspected UPI mule-account fraud, and is designed to distrust its own conclusions. Three agents run in a loop: Detector — an XGBoost model (trained on the public IBM AML dataset) flags suspicious account clusters. It's tuned recall-first: it catches ~75% of mule transactions, at the cost of about 1 in 4 flags being a false alarm. Investigator — a Gemini managed agent that writes and runs its own graph-traversal code in a cloud sandbox, tracing the fund flow hop by hop. Judge — a Gemini agent that critiques the trace against explicit evidence criteria. Weak traces get rejected and sent back for re-investigation (capped at 3 passes); genuinely ambiguous cases get handed to a human rather than guessed at.
vedanntttt/agentic-fraud-detection★ 10 forksPythonCreated Jul 11, 2026 · last push Jul 11, 2026

README excerpt

# UPI Fraud Investigation Agents

A multi-agent system that autonomously investigates suspected UPI
mule-account fraud — and refuses to accept its own weak conclusions.

- **Detector** flags suspicious account clusters (backed by an AML scoring
  model — see prior-work note below). Deliberately tuned **recall-first**.
- **Investigator** (Gemini managed agent, Interactions API) writes and
  executes its own graph-traversal code in a cloud sandbox to trace the
  fund flow hop by hop.
- **Judge** (Gemini, structured JSON verdict) critiques the trace against
  explicit evidence criteria. Weak traces are **rejected and sent back**
  for re-investigation; genuinely ambiguous cases are **handed to a human**
  instead of guessed at. The loop is hard-capped at 3 passes.

## Prior work vs. hackathon work

**Prior work (declared):** the fraud-scoring model behind the Detector — an
XGBoost detector trained on the public IBM AML dataset (HI-Small) — plus that
dataset itself. Prior research this system builds on; it was not trained at
the event.

Held-out test metrics (positive class = fraud, evaluated at natural imbalance
— fraud is 0.27% of transactions, so **AUC-PR is the honest headline**, not
accuracy):

| | |
|---|---|
| AUC-PR | **0.7548** |
| AUC-ROC | 0.9915 |
| precision | 0.7483 |
| recall | 0.7272 |
| F1 | 0.7376 |

Threshold (0.8838) is selected on the **validation** split targeting 75%
recall; the test set is then scored **once** at that fixed threshold. Test
recall lands at 

Team