One home assistant, several people, separate memories

A Sunday evening. One of you asks the assistant in the kitchen what is on this week, and it reads out the dentist, the parents’ evening and a lunch the other adult had meant to keep to themselves until they had decided whether to go. Later the ten-year-old asks it to order the game everyone at school is playing, and it does, because the card on the shelf is linked to the account and nobody told it that a child was asking.
Nothing here was malicious and nothing was hacked. The assistant knew the household perfectly well. What it did not have was any idea that a household is several people, each with things that are theirs, sharing a few things on purpose.
The real cause: “the user” was designed as one person
Almost every assistant is built around a single account. One login, one memory, one set of permissions, one voice to answer to. That model is fine on a phone in a pocket. It breaks the moment the assistant lives in a shared room, because a shared room has no single user. The home node that answers in the kitchen is the same node that keeps the long memory for everyone who lives there, and if its memory is one undivided pile, then whatever one person tells it, everyone can ask for. The fix is not a louder “who is speaking?” check. It is a memory that is partitioned by person from the start, with sharing as a deliberate act rather than the default.
Where a shared assistant goes wrong
One memory, many owners. When the household’s facts sit in one store, there is no honest answer to “what do you know about me?” because the answer is “whatever anyone said in this house”. A memory you cannot attribute to a person is a memory nobody can review, correct or delete.
Preferences that bleed. One person wants short answers, one wants the long version, one does not want the news in the morning. A single profile averages them into something that fits nobody, and a preference set by one person silently becomes the rule for all.
Permissions inherited by proximity. If the adult who set up the node can spend money through it, and the node cannot tell who is asking, then anyone in the room can spend money through it. The “asks before anything sensitive” rule only means something when the assistant knows whose yes it needs.
Children treated as small adults. A child’s profile is not an adult’s profile with a spending limit. What may be remembered about a child, who may read it, and what the child may authorise are separate questions, and defaults built for grown-ups answer all three badly.
Shared things that were never declared shared. The family calendar, the shopping list and the heating are shared because everyone assumes so, not because anyone decided. So the line between “ours” and “mine” is drawn by whichever sentence the assistant happened to hear last.
Guests with no profile at all. A visitor talks to the assistant and the words land in somebody’s memory, usually the owner’s. Either the guest’s request is refused as noise, or it is remembered as if the owner had said it. Both are wrong.
What to build instead
KyberBot is pre-launch, and the homepage describes one person’s memory, one person’s keys and one person to answer to. A shared home node has to keep all of that true for each person at once. These are the principles we are designing it by, not features you can switch on today.
One memory per person, under that person’s keys. Each member of the household has their own memory on the node, encrypted with keys they hold, like the hardware key on their own keyring. The node stores several memories; it does not merge them. What the assistant knows about you is something only you can list, export or forget.
Sharing is a named object. The calendar, the shopping list and the house devices are shared because the household declared them shared, each with a list of who may read and who may change. Everything that is not on that list is private by default, including things said in a shared room.
Permissions follow the person, not the room. The policy that says what the assistant may do without asking is per person. When it needs a yes, it needs it from the person whose money, message or account is involved, and from nobody else who happens to be in the kitchen.
Children’s profiles are their own kind. A child’s profile starts with less remembered, more asked, and a named adult who can read the policy and the record. What is kept about a child, and for how long, is decided by that adult and visible to the child, and it loosens as the child grows rather than starting wide open.
Guests get a session, not a memory. Someone visiting can ask for the time, the music or the lights, and nothing they say becomes a fact about anyone who lives there.
A test you can run today
Sit down with the people you live with and the assistant you already share, and try to write three short lists on paper: what it knows that is only mine, what it knows that is ours, and who is allowed to make it spend, send or share. Then ask the assistant to show you where each item on your first list is stored.
If you cannot write the lists at all, the assistant has no notion of a household and it has only one memory with your whole family in it. If you can write them but the assistant cannot show you the split, the lists exist only in your heads, and the assistant will cross them whenever a sentence is ambiguous. KyberBot is being built so that the lists are the structure of the memory itself, not a hope about how it behaves. What “knows you best” means for a single person is in What it means for an assistant to know you best; what the assistant should say out loud in a room full of people is the next post, What the assistant says aloud and what only to you.
- household
- memory
- permissions
- children
- home node