Reasoning reuse: cache the chain of thought, not just the answer
The expensive part of a hard answer is the thinking. Crowkis stores reasoning as a reusable step graph and replays it for the next question that shares its shape, at a fraction of the token cost.
Answer-level caching has a ceiling: it only helps when the final answer transfers verbatim. But on hard queries the tokens go into the reasoning, the step-by-step derivation, the plan, the structured analysis. Two questions can need identical reasoning with different specifics, and answer caching can't see the kinship.
Crowkis parses a chain-of-thought trace into a step DAG, abstracts the specifics into variables, and stores the shape. When a new query matches that shape, it substitutes the new values and only the final synthesis touches the model, roughly 15% of the original token cost.
flowchart TD A["chain-of-thought trace"] --> B["parse into step DAG"] B --> C["abstract specifics to variables"] C --> D["store the reusable shape"] D --> E["new query, same shape"] E --> F["substitute + synthesize, ~15% cost"]
In plain words. The way you solve one amortization problem is the way you solve all of them. Cache the method, swap the numbers.
CTHINK "amortize 12000 over 24mo at 6%" "step1 ... step2 ... payment="
CREUSE "amortize 8000 over 36mo at 5%" # matches the shape, reuses the planMulti-step reasoning is often several times more expensive than a plain answer, which is exactly why reusing it moves the bill more than answer caching alone. It's gated by the same confidence machinery as every other hit, so a reasoning shape only serves where the match clears the bar.
Everyone caches the conclusion. Almost nobody caches the thinking, which is where the tokens actually went.