Route, gate, match, triage.Scored in one pass, with calibrated confidence.

lod reads your data and a question, and returns a probability for each option you supplied, plus how confident it is that the right answer is on your list at all. Nothing is generated, so there is nothing to parse.

Try it: should the agent run this?

A coding agent proposes a shell command. lod reads the environment and your written policy and weighs the three things the harness can do. This request comes from a task family held out of training.

agent guardrail · held-outidle

the agent wants to run

question

options · your policy text for each

    show the full request

    lod-lille says

    One forward pass over all three options at once.

    What is lod?

    A pair of small models that choose from a list, and tell you how sure they are.

    What you can build

    Anything that ends in picking from a list. Pick one to see what you would send, and how both models did on that kind of task in held-out testing.

    Measured on work it has never seen

    Accuracy, calibration and error rates come from the test split: 139,543 questions over 447 tasks whose families never appear in training. Both models answer the same questions.

    Quick start

    Plain transformers; the scoring code ships with the weights. Name your options, say what each one means, and read back probabilities.

    score.py
    from transformers import AutoModel model = AutoModel.from_pretrained(    "thefloydd/lod-lille-0.6B", trust_remote_code=True).eval() answer = model.score(    state={"order": "3 parcels, 14.2 kg, Oslo, due Friday"},    questions={"service": {        "type": "choice",        "instructions": "Which shipping service fits this order?",        "criteria": {"express_air": "1-2 days, up to 30 kg",                     "ground":      "3-5 days, up to 70 kg",                     "postal":      "4-7 days, up to 20 kg"}}},)# answer["answers"]["service"] -> choice, probabilities, confidence
    • lod-lille 0.6BQwen3-0.6B-Base + LoRA · runs on a CPU · 70.9% test accuracy
    • lod-stor 4BQwen3-4B-Base + LoRA · one GPU · 78.9% test accuracy · same code: swap in thefloydd/lod-stor-4B

    FAQ

    Is lod a language model?

    It starts from a Qwen3 base model with the language-model head replaced by a scoring head. It scores the options you supply and never generates text.

    What if the right answer isn't on my list?

    lod can only rank your options. A separate confidence head reads the shortlist and the whole distribution, so a missing answer shows up as low confidence even when one option looks likely.

    How many options can I send?

    There is no cap. Tested up to 256 in one question. When the options do not fit beside the state, they are scored in shards against the state encoded once; options are independent, so that gives the same answer as one pass. Very long lists are harder: on test questions with 129 or more options, lod-lille is right 28.8% of the time.

    How long can my input be?

    Up to 32,768 tokens: the state is read up to 30,720, and the state plus the questions of one pass up to 32,768. A state over the budget is rejected, never cut silently, unless you ask for truncation. Measured on states up to 30,000 tokens.

    Where is it weakest?

    Multi-hop chains and ranking, document structure, scheduling and allocation, and reasoning puzzles: lod-lille is right less than half the time there. lod-stor does better on all four, most on multi-hop and ranking (70.6% against 30.3%). Calibration holds on average but can be far off for a single task. Both models are English only.

    Where do I get it, and under what licence?

    Now. The weights are on Hugging Face (lod-lille-0.6B, lod-stor-4B) and the code, training recipes and corpus pipeline are on GitHub, all under Apache-2.0. The training corpus comes from third-party sources, each under its own licence.