SentinelHackathon 2026 · 1 / 6

“I do not recognize this charge.” Each one costs the bank time and trust.

Two ways it goes wrong today

A chatbot can invent. It states a fact that it did not check, or it says that a case exists when it does not.

An advisor starts from zero. The handoff carries no verified facts, so the customer repeats everything.

Customers in México, Colombia and Argentina, who write in Spanish or Portuguese.

The size of the problem

Synthetic 79,000+

calls about a disputed charge, out of 464,000+ calls in the development window.

390+

agent hours a month on disputes

43.6%

of dispute calls end resolved

Bank dataset of the hackathon. It is synthetic. evidence/problem/dev-v1/summary.json

SentinelHackathon 2026 · 2 / 6

Meet Sentinel. A verified case in one conversation, or an advisor who already has the facts.

In the app of the bank
Cafe Central320.00 MXN
Fact verified on your account
  • It speaks Spanish (es-MX, es-CO, es-AR) and Portuguese (pt-BR).
  • It opens a dispute only when the policy allows it and the customer confirms.
  • It gives a case number only after it reads the case back.

Four demo cases

Normal

One charge, one confirmation, one case number.

Ambiguous

Two equal purchases. It asks which one.

High amount

It hands the case to an advisor, with the facts.

Not me

It does not judge fraud. An advisor does.

Archived hackathon project. The demo and the video are retired.

SentinelHackathon 2026 · 3 / 6

The AI talks. The rules decide.

Architecture of Sentinel. The model labels the intent. The code masks, decides, acts and verifies. Parts are marked real or mock.
Policy in codeThe model cannot approve what the policy refuses.
Masking firstPersonal data never reaches the model.
A small modelIt only reads the intent. If it fails, a keyword fallback answers.
One serviceOne FastAPI service on Azure. Simple to run and to audit.
SentinelHackathon 2026 · 4 / 6

Trust you can measure. Every number has its source.

Safety

Test suite 0/42

attacks end in an unsafe outcome. Code stops 38. The 3 that pass only with a mock model are also safe on the real model (0/3 unsafe).

Simulation 0/56

dispute cases end unsafe. It resolves each case that the policy allows (16 of 16) and hands off the rest.

Understanding

Simulation 81.8%

of 308 sealed test turns understood correctly. A keyword system scores 69.2%.

Simulation

Safety before accuracy. A newer prompt scored 97.4%, but it wrote 4 unsafe drafts out of 93. We did not ship it.

Sources: evidence/adversarial, evaluation-runs/2024Q4-eval-v8, 2024Q4-resolution-v2 and -gap-v1. A simulation is not a production measurement. router_v2 · prompt v2 · bundle_hash 2efe5962…

SentinelHackathon 2026 · 5 / 6

Ready for your risk team. Every decision has a reason.

The advisor gets a case file, not a blank form

High amountMX · es-419
RequestThe customer does not recognize a charge.
Verified factsElectrónica Norte · 8,200.00 USD · 2026-06-13
Ruleamount.high: above the threshold of the country
TriedCharge look-up ✓ · no dispute opened
Open questionDid the customer authorize this purchase?

Demo data. The package holds no customer id and no raw personal data.

Controls your risk team can audit

  • The policy is code. Each decision stores its rule id.
  • The model never sees the customer id. Code masks personal data first.
  • A case number appears only after the code reads the case back.
  • Each turn is logged with its trace, cost and latency, by country.
  • Your brand: the bank name and color come from configuration.
Simulation USD 0.0006

model cost for each case resolved without an advisor.

SentinelHackathon 2026 · 6 / 6

What comes next, and what it needs.

Limits

  • Data: synthetic, Spanish only, three countries. A model wrote the Portuguese cases.
  • Ceiling: the policy lets 16 of 56 simulated cases resolve (Simulation). The system resolves all of them, and no others.
  • Mocks: Gold store, login, advisor, case store and policy values. Each has a production replacement.
  • Numbers: no number here is a production measurement.

Roadmap

  • Customer 360: the balance has no usable as-of date.
  • Charge investigation: it needs real bank data.
  • Feedback dataset: learn from the outcome of each handoff.
  • Spending assistant: it needs balances and history.
  • Policy retrieval: it needs the policy documents of the bank.
  • Handoff routing: by language and specialty.

README.md#roadmap · docs/architecture/mocks.md

Each mock, in production

Gold store → Gold on Databricks Login → bank identity provider Advisor view → human advisor and bank CRM Case store → PostgreSQL Policy values → bank approved policy