Home AI Solutions Ready-made Solutions Peers & Simulation RAG & Retrieval Use Cases Frameworks Blog Deutsch Contact Us
Back to the blog

One Terminal, Many People, One Memory

Memory made the assistant better for individual users and quietly worse on the shared terminal, where a preference set by the early shift shaped answers for people who had never expressed it.

The Terminal at the Entrance

One screen, used by roughly forty people across three shifts, with no login because a login at a shared terminal in a plant hall is a badge nobody carries and a password everybody shares.

Our per-user memory therefore had no user. It fell back to a per-device memory, which is a reasonable default that produced a specific and slow failure: a technician working on the older equipment variant set that preference, and the next three people got answers for equipment they were not standing in front of.

Inputuntrusted Guardrailspolicies · pii Agentleast privilege ApprovalhumanActiontraced
Untrusted input arrives — treat it as data, not instructions. 1/4

Why This Was Slow to Notice

The answers were not wrong in any way a metric detects. They were correct for the older variant, sourced, and confidently delivered. Only the person reading them knew they were about the wrong machine, and the natural response to that is to rephrase rather than to report a defect.

Al-Ratrout and colleagues published work in 2026 on identity-aware memory for multi-user dialogue, naming the failure where one person's history shapes another's answers. Having the name helped, because our incident reports had been describing symptoms with no shared vocabulary.

Why We Did Not Identify the Speaker

It was the first proposal and we rejected it. Recognising who is speaking on a shared industrial terminal means either a badge reader nobody wanted to fund or voice identification, which is biometric processing of employees and requires a conversation with the works council that would have taken longer than the project.

It is also solving a harder problem than the one we had. We did not need to know who was asking. We needed the assistant to stop assuming that the last person and the current person are the same person.

Memory scopeOn a shared terminal
Per userUnavailable. There is no user
Per device, persistentThe failure. One shift shapes the next
Per session, cleared on idleWhat we run
Global preferences onlySafe, and almost nothing qualifies

What a Session Is Now

Ninety seconds of inactivity, or an explicit finish, or a change of equipment context. The last one does most of the work: the terminal knows which line it is on, and a question about a different machine starts a new session rather than continuing an old one.

Ninety seconds sounds short and was chosen by watching. The gap between two people using the terminal is almost always longer than that, and the gap between two questions from the same person is almost always shorter, so the boundary lands in the space between them.

What Survives Across Sessions

Almost nothing, and that is the point. Language preference survives, because the terminal is used by a mostly consistent group and getting the language wrong is annoying rather than dangerous. The answer style setting survives for the same reason.

Nothing about equipment, variants, or the work being done survives. Those are exactly the preferences that made the assistant useful for individuals and exactly the ones that cause the failure when the person changes, which is an uncomfortable trade and the correct one on shared hardware.

What We Show

A line at the top of the screen saying what the assistant is currently assuming: older variant, German, short answers. It is visible without being read, and someone who arrives at a terminal mid-session can see that it is not a blank slate.

That line has been reported as useful more often than any other change we made to this interface. People do not read documentation about session boundaries; they do notice a sentence that tells them what the system currently believes.

The Personal Devices Are Different

The handheld devices each belong to a person for a shift and carry per-user memory, because there the identity question has an answer. The same assistant behaves differently depending on the hardware it runs on, which required us to make memory scope a deployment property rather than a system property.

That was a small refactor and it is the piece we would tell someone to build first. Memory scope belongs in configuration, because the same code will end up on hardware with entirely different assumptions about who is holding it.

What We Do Not Claim

We do not claim ninety seconds is a general boundary. It came from watching one terminal in one hall, and a shared screen in an office where people work in longer stretches would need something quite different.

We also do not claim the session boundary removes the problem. Two people using the terminal within ninety seconds of each other, which happens at shift change, still share a session. We show the assumption line partly because we know the boundary is imperfect.

Sources