We present a ~48M-parameter conversational system, trained from scratch in ~25 GPU-hours on a single consumer GPU (AMD RX 6700 XT), that conducts dialogue entirely in a learned sentence-latent space. No token-level language modeling occurs in its reasoning component at all. A 32.9M-parameter codec encodes text into a sequence of latent "thought vectors" ordered by importance, such that any length-k prefix decodes back to text, making compression ratio a decode-time choice (in our runs byte-perfect at 4:1, readable at 8:1), with a small predictor enabling adaptive compression. A 15.1M-parameter thinker transformer converses directly in this space: past turns become thought prefixes, the thinker predicts the response's thought vectors under a multi-hypothesis winner-take-all objective with cycle-consistency regularization, and the codec decoder renders the reply. The result is coherent, grounded, context-sensitive small talk with follow-up questions and multi-turn reference, from a system orders of magnitude smaller than typical dialogue LLMs — suggesting that conversational competence and token generation are separable concerns. Because the thinker never touches tokens, codecs can in principle be added per language, domain, or modality while the thinker is reused, and added parameters at scale go to reasoning rather than to re-modeling surface statistics. We also describe a persistent sentiment-register failure (cheerful replies to bad news after first recieving good news) that resisted every training-lever intervention and was localized via latent-space diagnostics to a data absence: no training conversation in the corpora we used ever reverses mood mid-dialogue. In-distribution data patching defeated the register probes (contextual error 0.50 → 0.17) but a ten-reversal live-chat battery showed it bought only partial, topic-gated routing — the model reads dense distress vocabulary, not last-turn sentiment. A pre-registered comparison against a parameter-, data-, and compute-matched token LM splits cleanly: the token LM is the better per-turn conversationalist, while the latent system's reply cost and context memory stay flat with conversation depth where the LM's grow — and the matched LM reproduces the same contextual register failure, locating the root cause in the data rather than the architecture. Four separate incidents of models satisfying lexical metrics without the behavior they proxy were caught by transcript audits. The full project — code, configs, training logs, and eval transcripts — is included in the source tarball and also lives at https://github.com/nochinator/thought-vectors (checkpoints on its v1.1.0 release and at https://huggingface.co/nochinator/thought-vectors). An interactive demo: https://huggingface.co/spaces/nochinator/thought-vectors-chat
nochi (Sun,) studied this question.