Skip to content

Step 8 — The Channels

Step 8 · Conversation

The interface is the whole experience. A capable agent reached through an awkward interface is worse than a modest one reached naturally.

My design goal: the household should talk to it the way they talk to a person, in an app they already have open.

  1. Pick the app your household already lives in for family conversation. Not a new app. Adoption is the whole battle.
  2. Pick a second channel for operational output — summaries, alerts, links, system messages.
  3. Keep one thread per person, and one per group. Not a new conversation per request.
  4. Address it by name in group chats, and make it answer only when addressed.
  5. Text first. Voice is a garnish, not the interface.
NeedWhat mattersMy choice
Family conversationEveryone already uses itA messaging app the household lives in
Operational channelThroughput, links, notifications, logsA second app, used only for this

The reason is simple: the family channel should stay calm. Summaries, alerts and system chatter belong somewhere a person looks deliberately, not in the middle of a family conversation.

This is the decision that matters most and is least obvious.

The agent keeps one continuing conversation per person, and one per group — not a new chat per request. It remembers the thread of what has been discussed, the way a colleague does.

One person ──> one thread, always it remembers what was just discussed
A group ──> one thread, always it can see what the household said
Me ──> one operational thread summaries, alerts, drafts

What that buys: “move it to Thursday” makes sense to the agent, because it knows what it refers to. Without continuity, every message has to be a complete instruction, and you start writing like a programmer.

Nobody should learn syntax to ask for something.

What I sayWhat I should not have to say
“Can you move Thursday’s appointment to the same time next week?”/calendar move --event 4712 --weeks 1
“What have I got on this weekend?”list events --start fri --end sun
“That parcel — anything?”track parcel --id 88213 --status

Absorbing ambiguity is most of what an agent is. When a request is genuinely ambiguous, it asks a short question rather than picking one. Guessing is the failure mode that erodes trust fastest.

A household group chat is the most useful and most dangerous surface.

It answers only when addressed by name. Otherwise it observes. This is not something I compromise on: an agent that replies to everything becomes the reason people stop using the group.

It routes rather than broadcasts. Something said to one person is not automatically repeated to the group.

It does not send the same thing twice across surfaces. If it exists in the family thread, it does not need to appear in mine.

ContentWhere it goesStyle
Household logistics, family thingsThe family channelWarm, brief, plain text
Operational output, summaries, alertsMy channelDenser, links, tables where useful
Anything sensitiveNever a group. One person onlyDirect, minimal
Credentials or secretsNever in a message log at allA different mechanism entirely

One rule about formatting: anything the household reads casually is written as plain text, not formatted markup. Nobody wants asterisks around their reminder.

Voice works and it is a pleasure, and it is not the primary interface.

I use it sparingly — a spoken note alongside a screen, or a short exchange when typing is inconvenient. Everything spoken is harder to review, harder to search and impossible to skim, so text stays the durable form.

  • Every household member can reach it, and it can reach them
  • In a group it waits to be addressed — tested
  • It remembers what was said earlier in the same thread
  • It asks when a request is ambiguous rather than guessing
  • Nothing sensitive has ever appeared in a group thread

Step 9 — Memory and the wiki.