Skip to main content

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.

August 3, 202625 min readabliteration, refusal, llm, inference-engine, rust, reproducibility, measurement

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 more
July 8, 202610 min readscheduling, performance, benchmarks, constraint-solving, or-tools

Are 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 more
June 14, 202615 min readworld-model, reasoning, trustworthy-ai, knowledge-graph, benchmarks

The 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 more
June 11, 20268 min readaccess-control, security, agents, use-case

Access 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 more
June 9, 20267 min readscheduling, healthcare, use-case

Interactive 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