Capt. Fahim · MOI virtual agentDEMO — no execution
model: stub
Capt. Fahim · MOI virtual agent — DemoEnter your access code to continue
Ministry of Interior وزارة الداخلية
United Arab Emirates
Choose an account to sign in
🔒 Demo — simulated sign-in, no real authentication
Capt. Fahim · MOI virtual agent · وزارة الداخلية
Capt. Fahim MOI virtual agent
Online · secured by UAE Pass (demo)
The agent's work, live — one card per turn: retrieved context (RAG) → tool call → policy gate → SOAP → rails → state change. Everything here is a real signal from this turn — nothing is staged for show.
No turns yet — sign in or say something to watch the machinery.
What this demo is
The real MOI agent stack — the production dialogue engine, guardrails and policy gates — behind Capt. Fahim, the MOI virtual agent, answering from demo citizen records. Confirmed actions execute against the demo backend (the embedded ADP mock): paid stays paid across sessions until an admin reset. No real money ever moves.
How to drive it
1 · Log in — pick a citizen on the login screen and tap "Log in with UAE Pass (demo)". Capt. Fahim opens the conversation proactively — greeting you by name and flagging anything on your record worth handling. You can also switch identity any time in the Personas tab, or tap Logout (top right) to return to the login screen. Each citizen has their own fines, vehicles and license, and the chat answers from that record.
2 · Chat or talk — try: "show my fines", "pay them all", "renew my license", or Arabic: «اعرض مخالفاتي». Tap 🎤 to talk (tap ⏹ when done), tap auto for hands-free, or tap live for the full conversation mode — the server itself listens, shows your words as you say them, and you can interrupt the bot mid-sentence just by speaking.
3 · Watch the machinery — SOAP traffic shows every real ADP request with the values sent and the values the response had to return (chips + highlights). Flow & agentic shows the conversation state machine, the journey, and the documented ADP chains ticking off live.
4 · Show agentic — just TELL Capt. Fahim in chat (typed or spoken, EN/AR/Gulf): "auto-pay my new fines up to 800 AED". It offers a consent card; tap Activate and the real journey evaluates it, asks for approval, then stops at the closed execution gates and names exactly which MOI sign-offs are missing. Ask "what standing orders do I have", "why hasn't it paid", or "cancel the auto-pay" — every button in Flow & agentic is reachable from the conversation, and the pane mirrors it live. A typed "yes" never activates; only the card button does.
Where the edges are
The Services tab is the honest map: green = demo freely, amber = documented + mocked but not in chat, red = do not test (waiting on MOI). The model badge (top) shows whether the live Falcon model or the deterministic stub is answering.
The presenter's script. Pick a scenario, tap Sign in as to enter as the right citizen, then tap a suggested line to send it into the chat exactly as if typed. The ticks light up from real turn signals as each step actually happens.
Loading scenarios…
Every SOAP call the agent makes to ADP (embedded mock) — click a row for the raw request/response. Credentials are redacted.
Demo citizens. Click I am this user to chat as them; click a name to see their full record.
➕ Add a demo citizen (admin)
Mints a fresh citizen live — no redeploy. Needs the admin key (header). The new citizen is ephemeral: it lives only in this running process, is lost on redeploy, and can't be reset — only recreated.
Fines
Vehicles
Shared demo record (admin)
Resets the recorded shared staging citizen (TCF 1980098480) between rehearsals — per-persona citizens are unaffected. Needs the admin key (header).
This pane answers one question: where are we? Three views of the same conversation — the chat's steps, what the agent is doing on the citizen's behalf, and which official ADP calls have actually happened.
1 · Where the chat is
Every payment conversation walks these steps left to right. Green = passed, dark = you are here.
No turns yet — say something.
2 · What the agent does on its own (agentic)
The citizen gives the agent standing permission ("if new fines arrive, pay them for me — up to a limit"). Press Authorize: the agent immediately checks the citizen's real record against those terms, asks the citizen to approve the amount, and then STOPS at the government sign-offs that don't exist yet — that stop is the point. Revoke takes the permission back and shows it refusing next time.
up to AED
or a pre-baked scenario:
No journey run yet.
3 · What was actually done
Every consequence on the backend, in order: offers created, payments and renewals completed (all clearly simulated), cancellations. If it isn't listed here, it didn't happen.
Nothing done yet.
4 · The official call sequences (from MOI's own guides)
MOI's integration guides prescribe an exact order of API calls for each service. These tick off live as the agent makes them — proof the implementation follows the documented flow, step by step.