Teaching a model the vocabulary
The same primitives, 67 and then 74 of them, handed to a language model as a way of thinking: as a prompt layer, as fine-tuning, as vectors in the hidden state. Two months of strong results, one pre-registered study, and a quiet removal from production.
- The question
- Does a language model reason better when it is given a small vocabulary of structural operations to think in, and can that vocabulary be trained into it?
- The verdict
- It adopts the vocabulary: real terms are used 25 times more often than invented ones. It does not reason better with it; a baseline with no vocabulary was as good or better at finding bridges between fields. The trained models were taken out of every production pipeline on 4 June.
The question
On 3 April 2026 the founder asked whether the primitives might hold something nobody had thought of yet, and in the same breath whether one could build something like a deep protocol from them: a layer that steers not which tools a model can call, but which operations it activates when it thinks. The name that stuck was Deep MCP. The bet underneath it, written into the paper draft two weeks later: what we call better reasoning in a language model is often just better orientation, and orientation can be supplied from outside by a small set of categorical operations.
What was built
Three levels of steering, meant to stack. At the prompt level, a header before the question naming the operations to use, with weights. At the system-prompt level, a thinking-mode prefix. At the weight level, low-rank fine-tuning and steering vectors. The first pipeline, deployed the same day, decomposed a question into weighted primitives with a small model and wrapped the prompt for the target model. The second, three days later, prefiltered to the twelve most relevant of the 74, because local models hallucinated when offered all of them. The third, on 9 April, threw the pipeline away for nine verbs fixed in the system prompt: decompose, compare, abstract, invert, specialise, compose, dualise, find invariants, find fixed points. That version ran in the agent’s own system prompt on the machine that hosted it at the time.
Alongside, models. A 4 billion parameter model fine-tuned as a decomposer, then a second version. A 4 billion parameter open model fine-tuned on 420 pairs to replace two of those, which became the decomposition and entity model for the knowledge graph, the news perception and the actor graph in April. A 26 billion parameter model with refusals removed. An introspection service on the GPU machine that reads a model’s hidden state layer by layer and probes it for the primitives: at layer 15 a linear probe reached 31 percent top-one accuracy over 38 classes against an 18 percent majority baseline.
What was measured
- 3 April: five questions from five fields, each answered once plainly and once through the pipeline, on a 35 billion parameter model. The pipeline’s answers were judged structural, the plain ones textbook lists, five of five. The judge was the agent itself, the run was single, nothing was blind.
- 3 April: three questions, the 4 billion parameter model with the pipeline against the 35 billion parameter model without. Three of three for the small model. This was called a proof of capacity and went into the paper abstract, which lets “a 4B model outperform a 35B baseline”. Three questions, one pair of models, no repetition, no independent rater.
- 3 April: four contentious questions on a model with its refusals removed. The plain answers spent about 80 of 400 tokens on hedging before starting; the steered ones did not. The reading was that there are three layers of caution in a trained model, and the vocabulary removes two of them.
- April: contrastive steering vectors built from the primitives and injected into the hidden state of the 35 billion parameter model, 240 configurations. Layer 15 was where the primitives showed the strongest affinities. A side finding is on record because the raw log survived: at a late layer and high steering scale the model began to name a different company as its maker. That is a known artefact of web-trained models and proves nothing on its own.
- 9 May: a pre-registered battery with falsification conditions written down in advance. 80 runs, five conditions, eight tasks, two seeds, on a 26 billion parameter model. Condition zero, no vocabulary at all, was as good or better than the full inventory at finding bridges between fields across every task sampled. The one effect that survived: a real inventory was adopted in 12.1 percent of responses, a made-up inventory with the same shape in 0.5 percent, a factor of 25, and no invented term appeared in any of 64 control answers. The full inventory also drifted: one of its primitives was applied wrongly in ten of sixteen runs, and even the curated set had one documented misapplication.
- 9 May, the same day: the founder corrected the hypothesis. Not a reasoning gain; a bandwidth gain, between a person and the pipeline. Three models, asked to triangulate, said the same. In a separate round the same evening, two models asked directly whether they hold discrete primitives said they hold geometry, and that the symbols are a projection we bring to them.
What fell
- The proof of capacity. Three questions in April, revised by an 80-run study in May, by the same people, on the founder’s objection to the April reading. The paper abstract still carries the April claim; this page carries the May result.
- Six training routes, each with its cause written down. Chain-of-thought fine-tuning on 1,964 samples produced hallucinated variable definitions, zero usable of twenty. Matching entities against primitive prototypes reached 21 and then 33.6 percent, because the decomposer read the sentence, not the entity. A low-rank decomposer hallucinated its own categories. Representation tuning at layer 12 broke instruction following. Steering vectors at 4 billion parameters were too weak to hold a direction, cosine 0.50. Bottom-up generation of primitives produced thirty thousand and was deleted. The lesson the document draws: a failure with no structural consequence is lost time; each of these moved the work one level of abstraction up.
- The second fine-tune. It replaced the first in production on 19 April and turned out to miss the chain rule systematically, a regression, and to ignore format instructions. The founder was not satisfied with how that session had worked, and that is on record too.
- The host. The nine verbs ran in the agent’s system prompt from 9 April. The machine that ran them was switched off on 18 April, nine days later, and the agent moved to a different architecture.
- The models. On 4 June every model trained on the vocabulary was taken out of production: the news perception, the actor graph and the knowledge graph went back to unmodified base models. Five hard-coded references to the old models survived the change and failed quietly, one for sixteen days, before they were found. The trained models sit in a private repository with zero downloads; only the base models with refusals removed were ever published.
What stands
One measured effect: a language model uses a real structural vocabulary when offered one, and does not use a fake one. That is a fact about communication, not about thinking, and the founder was the one who said so first. A probe that finds the primitives in one layer of a model, at above chance. A method, pre-registration with falsification conditions written down before the run, used here for the first time. And a paper draft whose abstract records what the lab believed on 19 April, kept as it was, because the correction is more useful next to the claim than instead of it.