Pure dialogue models can not remember, compute accurately, or get things done. A three-layer structure: short-term context, long-term memory, and tool calling — miss any one and it does not work well.
A voice assistant that only chats gets boring within three days. What makes it stick is: it remembers me and can genuinely help me get things done.
The corresponding solution is a three-layer structure: short-term context, long-term memory, and tool calling. Miss one layer and there's an obvious gap in the experience.
Multi-turn conversation context can not be piled up indefinitely. A workable approach is "keep the last few turns verbatim + summarize and compress earlier content," saving tokens while preserving key information. Timing the compression matters: compressing only after hitting the limit loses the details being discussed.
Remembering across sessions "who the user is, what they prefer, where we left off" is usually done with vector retrieval. But the key is not storage — it's the write decision:
A counterintuitive point: More memory isn't better. Irrelevant memories mixed into the context dilute attention, slow responses, and easily lead the model astray.
"Getting things done" depends on tool calling: the model decides which interface to call and what parameters to pass, then organizes the result into natural language for the user. Three engineering points must be handled:
Start with short-term context (the smallest change), then add long-term memory, and connect tools last — because tool calling introduces external uncertainty, and debugging without stable context is extremely painful.
The Xiaozhi voice conversation platform builds these three layers in as native capabilities and supports connecting enterprise systems as skills. If your voice assistant is stuck at the "can chat but can't be used" stage, feel free to contact us.