Inspiration
Scammers rotate phone numbers within hours, so blocklists are always a step behind. The script stays the same, though: a fake bank alert, an unpaid toll, a grandchild in jail who needs bail. We built Detour to catch the script.
What it does
- Decoys (NVIDIA): Nemotron agents play decoy personas (like "Linda, 71") on decoy lines and pull the story out of each scam conversation: who it pretends to be, what it asks for, how it wants to be paid.
- Validation: rules the model can't overrule check every story: prompt-injection scan, verified-business allowlist (poisoning defense), and corroboration from 2 decoy lines before anyone is warned.
- On the phone (T-Mobile): a tiny matcher runs on the customer's phone and warns, clears, or marks a message unsure. Only the verdict leaves the phone, never the message.
- Learning loop: when the phone is unsure and the customer consents, a redacted copy goes to a Nemotron rescue agent that investigates with tools (story map, allowlist, sender registration). A skill forge proposes new words, and a 4-check gate tests them before they ship: fixes the miss, no false alarms on known-good texts, no numbers/links/everyday words, survives a poisoning probe. The next copy of the scam is caught on the phone with no cloud call.
- Money (PNC): a 360° financial-health view (Cash Runway, Bill Coverage, Debt & Credit, Scam Exposure), a 60-day forecast, what-ifs, and a Nemotron coach whose dollar figures are checked against tool results. Script Mirror: when Linda goes to send $3,000 with Zelle, her PNC app shows the scammers' actual script our decoys captured, plus what the payment would do to her account. Banks usually question the victim, who has been coached. We show her the coaching itself.
How we built it
FastAPI backend; vanilla JavaScript front end with the phone matcher running in the browser (parity-tested against the Python version); Nemotron (nvidia/nemotron-3.5-lightning-30b-a3b) through NVIDIA's OpenAI-compatible API with tool calling and JSON output; a deterministic finance engine; live / record / replay / mock modes, labeled in the UI.
Results (live Nemotron run)
- Held-out built-in set: Detour caught 12/12 scams vs 1/12 for a number blocklist, 0/6 false alarms.
- Campaign replay: the teaching loop cut hosted model calls 60% (25 → 10).
- Harder generated set: 8/16 caught with 6/14 false alarms. That is still a weak spot and we report it.
Challenges
Keeping the model from teaching the phone bad rules (that's why the gate exists), keeping message text off the server, and labeling every simulated part honestly.
What's next
Real carrier signals (CAMARA APIs, sender registration), a native phone build, and a pilot on real payment flows.
What's real and what's simulated
All data is synthetic. Scam traffic, decoy lines, the phone, sender registration and the bank customer are simulated. The agent pipeline, Nemotron calls, validator, gate, matcher and finance engine are real.
Built With
- css
- fastapi
- html
- javascript
- nvidia-nemotron
- nvidia-nim
- openai
- python