I Built an AI Money Agent That's Structurally Incapable of Touching the Money
Executive Teardown
TL;DR
- Sable has no cloud backend: every financial record lives in on-device SQLite, so privacy is a topology, not a policy.
- Every model function call is a dry run rendered as a Review & Confirm card - the human commits, so a hallucination's blast radius is one dismissible card.
- Serialized writes, a daily local RAG Morning Briefing, and offline-first design make the trust model production-real.
- The propose/confirm pattern transfers to any enterprise domain where data wants AI leverage but cannot tolerate AI authority.
Architecture
Sable is a React Native app with no cloud backend. Every debt, every payment, every balance lives in on-device SQLite - full stop. When the AI layer needs context ("how is my spending pacing this month?"), it queries the local database. What crosses the network to the model is a distilled, minimal context - never the ledger.
Most products bolt privacy on as a policy. Sable has it as a topology: there is no server to breach because there is no server. The agent uses OpenAI function calling - but every function call is a dry run. When the model decides "log a โน5,000 payment against the car loan," that intent renders as a Review & Confirm card in the UI. The model's output is a proposal object; the database mutation only executes when a human taps confirm.
Trust Boundaries
Trust boundary #1: the data never leaves Sable. Trust boundary #2: the model proposes, the human commits. An LLM hallucination in Sable can produce, at worst, a card you dismiss. It can never produce a wrong number in your ledger.
Production-Ready
What makes a local-first AI agent production-real?
- Serialized writes: a queue funnels every SQLite mutation through one at a time, eliminating the write-lock contention that plagues on-device databases.
- A daily local RAG job: each morning the agent reads the on-device ledger and delivers a proactive Morning Briefing to the lock screen - spend pacing, upcoming obligations, anomalies - without a single byte of financial data leaving the phone.
- Offline-first by default: the app is fully functional in airplane mode; the AI layer is an enhancement, not a dependency.
Beyond Finance
Every enterprise deploying agents faces Sable's problem in costume: healthcare records, legal documents, internal financials - data that wants AI leverage but cannot tolerate AI authority. The propose/confirm boundary and the local-context pattern transfer directly: give the model read access to distilled context, render its intents as reviewable artifacts, and reserve the commit for a human or a deterministic policy.
The Author
I built the reference implementation into a product I use every day - the full breakdown is on Sable's product page.
Comments
No comments yet. Start the discussion.