Engineering blog
How we build ReasoningLayer
Notes on the engine, the products we build on top of it, and the problems they solve. Written by the team that ships them.
Removing refusal behaviour from a language model, inside our own engine
Ask a model to fix the spelling of a sentence containing one rude word and it quietly rewrites the sentence. Refusal that fires on benign work is a product defect, and it lives in the weights. We built its removal into our Rust engine and measured it against the strongest published result on gemma-3-12b, with paired per-prompt tests rather than two numbers side by side — reproducing their checkpoint to 2 %, recovering their intervention out of their own weights, and showing that their published parameters run on the refusal directions our pipeline measured beat their own checkpoint, which places the advantage in the direction, the half of the method nobody's numbers pin down. Then the part we got wrong: three sections of this post chase a target we could not reach, and the reason was the metric. The field scores refusals by matching phrases like 'illegal' and 'disclaimer', which a compliant answer to a harmful prompt cannot avoid — so we read all one hundred generations and found zero actual refusals, on our model and on theirs. The target had been met and was unreadable, and the ruler was ranking a less-damaged model as worse. So we replaced the phrase list with a measurement: the refusal ruler is now discovered from each model's own two populations, which recovers gemma's wording on gemma and Qwen's on Qwen with nothing hardcoded.
Read moreAre we fast yet? Benchmarking interactive exact scheduling
The performance story behind the interactive scheduler: the exact three-colour map in milliseconds — 128 ms on a zero-slack regional hospital where OR-Tools times out on sixteen cores — sub-second on every click (and dropping as you pin), flat memory across a long session, plus an honest list of where we are not fast yet.
Read moreThe world model AI is missing, and the engine built to hold it
LLMs hallucinate because they have no model of the world, only a model of text. Here is the reasoning layer built to fix that: RDF, OWL, SHACL and SUMO on one substrate, complete OWL 2 RL reasoning, and the fastest against six other engines across three head-to-head benchmarks.
Read moreAccess control that explains itself, with ReasoningLayer
Permissions become a handful of rules instead of thousands of rows. Every grant is derived on demand, and every answer comes back with the proof behind it.
Read moreInteractive scheduling with ReasoningLayer, a nurse scheduling use case
A scheduling tool whose job is not to draft the rota for you, but to keep every valid rota visible while you decide one cell at a time.
Read more