Ezra is a personal AI assistant living inside WhatsApp: a Hebrew-speaking agent that manages calendar, Gmail, reminders and project operations through a normal chat. It also acts as the alert hub for the other bots and systems, so everything important lands in one place. It is a single-user private system; this page documents it as an engineering case study.
How it works
You send a regular WhatsApp message and Ezra replies in Hebrew, short and to the point. Behind the scenes it runs an explicit tool registry: Google Calendar across multiple calendars, Gmail in read-and-send mode, reminders that fire back into WhatsApp, forwarded WhatsApp group messages, read-only Google Analytics, plus daily briefing, tasks, voice messages and remembered facts. A whitelist restricts who the bot answers, and sensitive topics like passwords and account numbers are explicitly out of scope.
The engineering story
The design is deliberately anti-framework-magic: FastAPI, direct calls to the model SDK, SQLite, and an explicit tool registry, so every line is readable. The bot's personality, tone, whitelist and scope live in a single spec.json file, making behavior configuration rather than scattered code. The system prompt is split into a stable cached part and a dynamic part, exploiting prompt caching to cut cost on every message.
Stack
- Python + FastAPI webhook server
- Green API as the WhatsApp gateway
- Anthropic's Claude with an explicit tool-use loop
- SQLite for conversations, reminders and facts
- Google OAuth integrations for Calendar, Gmail and Analytics
- Deployed on Render (render.yaml)
Ezra itself is private, but its architecture is the exact template used to build and teach additional WhatsApp agents.