Proactive AI without surveillance
Proactive AI means the assistant surfaces something useful without being asked: a morning summary, a nudge before an event, a close to the day. It does not require surveillance, because everything genuinely useful can be derived from data the user already handed the system, like their calendar and task list. The line between helpful and creepy is drawn by data provenance and predictability, not by how smart the feature is.
What proactive means, and what it does not require
A reactive assistant answers when asked. A proactive one notices: it tells you the day is heavy before you ask, flags the meeting that starts in forty minutes, and closes the evening with what is left. This is the difference between a tool and a presence, and it is most of why a companion feels like a companion.
The common assumption is that noticing requires watching: location trails, mic access, browsing history, behavioral profiles. It does not. A calendar the user filled in, a task list the user wrote, reminders the user set, and a weather lookup for a city the user chose are enough to build every moment described on this page. The assistant is not discovering anything about you. It is reading back, at the right time, what you already told it. Proactivity is a scheduling problem over consented data, not a collection problem.
The three natural moments of a day
Most of the value of proactive attention concentrates in three moments, and all three can be computed from explicit data alone.
- Arrival: one calm line when you first show up for the day. What is on, when the first thing starts, what is due, what the weather is doing. Once, not repeatedly.
- Coming up: a small nudge when a real event is about to start, close enough to act on and far enough to matter. A strip in the interface, not an alarm.
- End of day: a plain close after the working day winds down. What is still open, or the honest observation that nothing is.
Notice what is absent: no engagement bait between the moments, no artificial reasons to open the app, no summary of things you did not ask it to track. The moments follow the shape of a human day, and then the assistant is quiet.
The line between proactive and creepy
Users do not experience a single creepiness threshold; they experience a provenance question. When an assistant says something, the user instantly and unconsciously asks: how does it know that? If the answer is obvious (I put that meeting in the calendar), the moment lands as care. If the answer is opaque (how does it know I was there, or that I looked at that?), the same sentence lands as surveillance, no matter how helpful it was.
| Pattern | Data source | How it lands |
|---|---|---|
| Your 2pm starts in 40 minutes | The calendar entry you created | Helpful; provenance is obvious |
| Three tasks are still open today | The task list you wrote | Helpful; you gave it the list |
| Leaving now beats the traffic on your usual route | Continuous location history | Creepy unless location was explicitly and knowingly shared |
| You seemed stressed on today's call | Inferred affect from audio | Creepy; the user never handed over their tone of voice for analysis |
The rule that falls out: a proactive line is safe when the user can predict, before reading it, every fact it could possibly contain. Predictability is a stricter and more honest bar than consent buried in a settings page.
Consent and quiet-by-default patterns
A proactive layer that respects its user follows a small set of enforceable patterns rather than a vibe:
- Derive only from explicit data. Every proactive line must trace to a record the user created or a source the user connected on purpose.
- Render in place before you interrupt. A line inside the app's own day view costs the user nothing; a push notification spends their attention. Earn the second only after the first proves trustworthy.
- Cap the frequency structurally. An arrival line that can only appear once per day cannot become nagging, because the cap is code, not restraint.
- Go quiet on missing data. No data means no moment. An empty day gets an honest empty line or silence, never filler.
- Show provenance. Say where the line came from, on the line itself, so the user never has to wonder.
- No synthetic emotion or streaks. Do not tell users how they feel, and do not invent gamified reasons to return.
How Violet's moments layer does it
Violet is a private AI companion, currently pre-launch, and her companion app implements exactly this design in a small module called moments. Every claim below is how the shipped code behaves, not an aspiration.
- Three moments only: an arrival line once per local day, a coming-up strip when a real event starts within the next 60 minutes, and an end-of-day line after 18:00 local time.
- All three render inside the Today view. In this phase there are no popups and no notifications at all.
- Every line is derived from the real payload of the user's own day (events, tasks, reminders, weather) or the module stays quiet. Nothing is invented, no fake sentiment, no streaks.
- An empty day gets the honest line: Nothing scheduled. The day is open.
- The end-of-day card carries a small provenance tag reading: from your real day, nothing invented. It is suppressed entirely when there is no real data to ground it.
- The arrival line is capped at once per day by a local marker on the device, and the Trust panel names that marker in plain words.
- The moment the client is signed out or the connection is lost, the moments go quiet: nothing renders, nothing errors, no stale lines linger.
When proactivity is the wrong choice
Even fully consented proactivity is not always right. Some data is appropriate to store and answer questions about, but wrong to raise unprompted: patterns touching health, relationships, or money deserve the user's initiative, not the assistant's. Some hours are wrong regardless of content; a proactive layer that speaks at 2am has failed whatever it says. And some users simply want a tool, not a presence. The honest design treats silence as the default state and every proactive line as something that must justify itself, which also means the feature can be turned down to nothing without breaking the product.
Common mistakes
- Escalating to push notifications first and earning trust later, instead of the reverse.
- Letting proactivity become an engagement mechanic: streaks, re-engagement nudges, and guilt lines dressed up as care.
- Surfacing inferred facts (location patterns, mood guesses) alongside explicit ones, which poisons the provenance of everything else.
- Filling empty days with filler because the product cannot tolerate saying nothing.
- Hiding what the proactive layer reads, so users cannot predict what it might say next.
- Treating time zones casually: a day boundary or an evening threshold computed in the wrong zone delivers the right line at the wrong moment.
Questions
Can an AI assistant be proactive without listening or tracking?
Yes. A morning summary, a pre-event nudge, and an end-of-day close can all be computed from a calendar, task list, and reminders the user entered themselves, plus a weather lookup for a chosen place. Proactivity is timing over consented data; surveillance is a design choice, not a requirement.
Does Violet send push notifications?
Not in the current phase. Violet's moments render only inside the app's Today view: an arrival line, a coming-up strip, and an end-of-day close. There are no popups and no notifications, and the layer goes quiet entirely when there is no real data or no connection. Violet is pre-launch.
What makes a proactive AI feature feel creepy?
Opaque provenance. When users cannot trace a proactive line to data they knowingly shared, the line implies hidden watching, and it reads as surveillance regardless of intent. The safe bar is predictability: the user should be able to guess everything the assistant could possibly say before it says it.