- Intent classification
- Native classifier first, with a confidence threshold. Below it, and only below it, the request escalates to a language model.
- Slot extraction
- Pulling the typed arguments — dates, amounts, ledger names, entity ids — out of a request so an executor can act on it without free-form generation.
- Tiered model routing
- A free or India-native model in tier one, a paid frontier model as fallback. Routing by detected language and by whether tier one produced valid structured output.
- Constrained execution
- The agent chooses from a fixed catalogue of API operations. It cannot compose an arbitrary call, and every operation is permission-checked against the caller.
- Learned pattern memory
- Confirmed human decisions are stored as reusable patterns, so the same transaction shape is never sent to a model twice. Roughly a hundred of them accumulate per active tenant.
- Document parsing
- Bank and card statements across seven institution-specific adapters plus a universal parser, including password-protected PDFs, with detection before parsing.
- Structured output enforcement
- Every model call returns JSON against a schema. Invalid output is treated as a failed call and falls through to the deterministic path — never surfaced as an answer.
- Graceful degradation
- Timeouts, character caps, bounded history, and a defined safe result on every failure. No AI path in any system we run is allowed to become a hard dependency.