A generic chatbot can tell you what a blood marker means. It can't tell you why yours moved this month, because it has never seen your numbers. That's the gap I wanted to close.
The prompt is rebuilt every turn
The core idea is simple. Before each reply, the app assembles a fresh system prompt from my live data:
- my current or most recent session,
- a summary of my latest blood results and how they've moved,
- my supplies and what's running low,
- and the relevant notes from a small knowledge base.
So the model isn't recalling facts about the world. It's reasoning over a snapshot of my situation, refreshed on every message. Ask it the same question next week and it answers differently, because the data underneath has changed.
Symptom-driven retrieval
The nice part is when a vague symptom maps to a number. If I say "I've been itchy this week," the assistant knows which markers tend to drive that, pulls those from my recent results, and points at the one that actually moved — instead of a textbook paragraph about itching.
That only works because retrieval is keyed off symptoms, not just keywords. The question is fuzzy; the answer is grounded in my own data. That's the combination worth engineering.
Voice, because hands are busy
During a treatment my hands aren't free. So input is voice — sent as inline audio to the model, which for this app beats on-device speech-to-text on accuracy and effort. I talk, it reads my data, it answers.
The pattern, generalised
Strip out the health specifics and this is a function-calling assistant whose context is rebuilt from live application state every turn, with retrieval keyed to intent. That pattern works for any product sitting on structured user data — support, finance, operations. The data changes; the architecture doesn't.
Building assistants that reason over a business's own live data — safely, and grounded in real records — is exactly the kind of work I do at twentytwotensors. If that's a system you need, get in touch.
Next: giving this assistant hands, so it can act in the app instead of only talking.