A personalized voice companion creates an uncomfortable trade-off: users do not want to repeat themselves, but they also do not want a misheard sentence to become a permanent “fact.”

That tension is often hidden by calling conversation history memory. The implementation then retrieves old text, inserts it into a prompt, and trusts the LLM to interpret it correctly.

A safer design gives memory to the application, not the model:

The model may propose a typed fact.

The companion must ask whether it should remember that fact.