Multi-Agent Banking Support System with Durable Human Approval
An agent that can spend the bank's money — so most of the engineering went into making sure it can't do that by itself.
- Supervisor–worker agent system over a 180-page corpus of published UAE retail-banking policy documents; a lightweight classifier routes intent to policy-retrieval, account and remediation workers, with per-node retries and a hard turn budget.
- Durable human-in-the-loop gate on all irreversible financial actions — the agent emits a typed, cited ActionProposal that a reviewer approves, edits or rejects; the graph checkpoints to Postgres and resumes mid-node after arbitrary delay or process restart. Execution is idempotent and fully audit-logged.
- Made the safety boundary architectural rather than prompt-based — the executor accepts only typed proposals carrying a valid approval record, so a compromised model can propose but cannot act.
- Hybrid BM25 + vector retrieval with semantic re-ranking, and clause-level chunking with parent-section expansion; cut incorrect fee retrieval from 21% to 6% versus semantic-only search on a fee-lookup scenario set.
- Defended against prompt injection via tool outputs — transaction memo fields are attacker-controlled — by isolating tool results in untrusted state and screening them on the same path as user input.
21%6%
Incorrect fee retrieval vs. semantic-only search