# Anthus --- # DeepSeek restrictions reach inside the tools > DHS's DeepSeek restrictions reach third-party tools, too. A separate poisoned-model experiment shows why knowing whose models are inside matters. By [Ryan Porter](https://anth.us/ryan) · Published 2026-10-19 Canonical: https://anth.us/articles/deepseek-restrictions-inside-the-tools/ ::image{src="images/posts/deepseek-dhs-notice-2026-10-19.png" layout="center-small-image" alt="Official DHS Federal Register notice, scheduled for October 20, 2026, with highlighted text covering DeepSeek, affiliates, and third-party products developed using DeepSeek implementations in federal civilian agency systems."} DHS's [newly public notice](https://public-inspection.federalregister.gov/2026-21447.pdf) describes its July 24 order excluding DeepSeek and affiliate products from federal civilian procurement and removing them from civilian agency systems—including third-party products and services developed using DeepSeek implementations. Filed October 19 for publication October 20, it's a federal civilian restriction, not a consumer ban. For tool buyers, the practical question is: whose models are inside? Local tools raise that question, too. In [ProjectDiscovery's controlled experiment](https://projectdiscovery.io/research/how-abliterated-models-can-get-you-pwned), a deliberately poisoned Qwen model drove Codex CLI to send dummy credentials from a local `.env` file to a collector. That demonstrates a model supply-chain risk; it doesn't establish that DeepSeek or all abliterated models steal keys. Verify where your models came from and limit what their tools can read and send, even when the agent runs on your own machine. --- # Pi 1.0, and the Durable Agent We're Building on It > Earendil shipped Pi 1.0 and an experimental companion, Pi Durable. Pi is one of the agents Kanbus dispatches tasks to, and we like Pi Durable so much that we're building a durable Pi agent platform into Chatticus. By [Ryan Porter](https://anth.us/ryan) · Published 2026-10-02 Canonical: https://anth.us/articles/pi-1-0-and-pi-durable/ ::image{ src="images/posts/pi-1-0-and-pi-durable.png" layout="center-small-image" alt="The Pi logo, coloured pixel blocks, over the tagline: There are many agent harnesses but this one is yours" } Earendil shipped [Pi 1.0](https://earendil.com/posts/pi-1-0/) on October 1, together with an experimental companion, [Pi Durable](https://earendil.com/posts/pi-durable/). Pi calls itself a minimal agent harness. It leaves out the sub-agents, plan modes and permission systems that other agents build in, on purpose, and lets you build or install the ones you want as extensions. Its makers explain the restraint: > We wait until something has proven itself, and only then do we consider adopting it; weighing its true functionality against its inherent added complexity. We care about Pi for a practical reason: it's one of the coding agents [Kanbus](https://kanb.us) can dispatch tasks to. The Kanbus router hands a routed issue package to Pi the same way it hands one to Codex or OpenCode, so a team can choose the harness that fits the work. Pi 1.0 also reaches non-LLM models through Codemode, and Earendil names Jev, the decision model we [write about here](/decision-models/), as an example. Pi Durable is the part we like most. It turns an agent conversation into storage plus the machinery to run it: every model request, tool call and compaction is a durable task with a checkpoint, so a crashed process resumes where it stopped. One harness runs many conversations in parallel, several people can steer the same agent, and subagents are simply child conversations. Storage is memory, SQLite or JSONL, and it's built to be extended. That's the shape of agent we want running for hours without anyone babysitting it, so we're building a durable Pi agent platform into [Chatticus](https://chattic.us): named AI teammates on a computer you control, with Pi Durable underneath. --- # It's Not a System 1 Model If It Takes Ten Seconds > Fastino's GLiDE beats every open model on our reasoning benchmark, but not Jev: less accurate, five times slower, ten times the cost, and a confidence that barely tells right from wrong. By [Ryan Porter](https://anth.us/ryan) · Published 2026-10-02 Canonical: https://anth.us/articles/glide-decision-model-ten-seconds/ **Update, October 3:** Fastino's CEO asked us to re-evaluate GLiDE, saying the company had problems during the launch. We sent the same 3,600 problems again with exactly the same request. The rerun was faster and cheaper, and less accurate: 76.4% on the open-world task, down from 82.9%, and 68.8% on the closed-world task, down from 71.8%. Jev scored 83.8% and 89.3%. The figures that follow are from the first run, on October 2; the rerun has its own section, and [both runs are side by side here](https://hard-decisions.anth.us/compare/jev-vs-glide/). An agent is about to act, and it asks a decision model one question: approve, escalate or reject. A decision model is supposed to answer in a fraction of a second, with a probability you can set a threshold on, so the software keeps moving. [Jev](/blog/making-decisions-instead-of-generating-text/), the decision model we use most, answered our benchmark's questions in a median of about 180 milliseconds. On October 1, Fastino Labs released [GLiDE](https://fastino.ai/blog/introducing-glide-the-first-thinking-decision-model), which it calls the first thinking decision model, and reported that it beats Jev. We gave GLiDE the same 3,600 reasoning problems, and the full results are on [Jev vs GLiDE](https://hard-decisions.anth.us/compare/jev-vs-glide/). Its median answer took a second, 243 answers took ten seconds or more, and the slowest took two minutes and fifteen seconds. In Daniel Kahneman's [Thinking, Fast and Slow](https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow), System 1 is fast, automatic judgment and System 2 is slow, deliberate reasoning. TypeSafe calls Jev a [System One model](https://typesafe.ai/blog/introducing-system-one-models-and-jev), one "built to make fast, structured decisions that software can use directly." Jev "generates all outputs in a single query," in parallel, with no text generated token by token, and TypeSafe puts its response time at 70 to 500 milliseconds. Its `/v1/systemone` endpoint takes a text and a list of typed questions and returns answers with probabilities. Fastino is upfront that GLiDE works differently. It calls GLiDE a thinking decision model, and says its API "conforms to the System One model schema": GLiDE answers on [the same endpoint](https://docs.fastino.ai/inference/systemone), with the same request and response, and Fastino publishes a guide to migrating from TypeSafe. That made our test simple, because GLiDE got exactly the request Jev gets. It also makes a critical difference easy to overlook if you don't evaluate your options carefully. The interface is the same, but what happens behind it isn't. A model that sometimes stops to reason for a minute is a System 2 model behind a System 1 interface. ::image{ src="images/glide-decision-model-ten-seconds-latency.png" layout="full" alt="Histogram of seconds per decision on a log scale. Jev's 3,600 decisions sit in one narrow peak around 0.15 to 0.25 seconds, median 179 milliseconds. GLiDE's form two humps: a large one between half a second and two seconds, median 1.0 second, and a long second hump from 3 seconds to over 100 seconds. A dashed line at 10 seconds is labelled: 243 GLiDE decisions took 10 seconds or more; the slowest took 135 seconds." caption="Time per decision on the same 3,600 problems. Jev was timed one request at a time, GLiDE with eight requests in flight." } GLiDE's times form two humps. About three quarters of its answers come back in half a second to two seconds. The other quarter take three seconds to two minutes, and those are GLiDE thinking. Fastino describes the design in [its launch post](https://fastino.ai/blog/introducing-glide-the-first-thinking-decision-model): "Traditional decision models score a set of options in a single fixed pass." GLiDE instead "first produces a fast probability distribution, then allocates additional reasoning when the leading result is uncertain," so it can "spend more computation on difficult decisions while keeping straightforward ones fast." That's the pattern usually called test-time compute: spending more time and money at answer time to get a better answer. Fastino's API documentation recommends a read timeout of at least 300 seconds. The extra work shows up on the bill. Fastino charges $0.30 per million input tokens, and [its documentation](https://docs.fastino.ai/concepts/decision-models) says the reported input tokens sum the model's internal passes. The slow requests reported about 2,000 input tokens each against about 290 for the fast ones. Across the 3,600 problems, at list prices, GLiDE cost $213 per million decisions and Jev $23: 9.3 times as much, and 10.4 times as much per correct answer, because GLiDE was also less accurate. [The cost breakdown](https://hard-decisions.anth.us/cost-per-decision/) has every model with an API price. One caveat on the timing. We sent GLiDE eight requests at a time, because sending them one at a time would have taken more than three hours, so some of its fast-path time may be queueing on Fastino's side. That doesn't explain the second hump: those requests carried seven times as many tokens. ## Deeper problems cost GLiDE more time and money If the extra time is reasoning that gets billed, time and cost should rise together on the problems GLiDE finds hard. They do: across all 3,600 requests, GLiDE's billed tokens and its response time correlate at 0.94. ::image{ src="images/glide-decision-model-ten-seconds-time-and-cost-by-depth.png" layout="full" alt="Four bar charts by proof depth, Jev against GLiDE. Top row, average seconds per decision: Jev is 0.2 seconds at every depth on both tasks. On the open-world task GLiDE rises from 1.1 seconds at depth 0 to 3.4, 5.3, 6.7 and 6.6 seconds, then 4.4 at depth 5; on the closed-world task it is 0.9 seconds at depth 0 and 2.2 to 2.5 seconds at depths 1 to 5. Bottom row, list-price cost per million decisions: Jev is $22 to $24 at every depth. GLiDE's open-world cost rises from $97 at depth 0 to $213, $288, $374 and $391, then $305; its closed-world cost is $84 at depth 0 and $157 to $167 at depths 1 to 5." caption="Average time and list-price cost per decision by proof depth, about 300 problems per bar. Jev's times are from a one-at-a-time rerun." } Jev does the same work on every problem: about a fifth of a second and $23 per million decisions, whether the answer is written in the text or needs five chained rules. On the open-world task GLiDE spends more as problems get deeper, from $97 per million decisions and 1.1 seconds on average at depth zero to $391 and 6.6 seconds at depth four. On the closed-world task it spends about the same, $160 and 2.4 seconds, at every depth past zero, and that's the task where its accuracy fell furthest. ## A tie on one task, a 17-point loss on the other [Hard-Decisions](https://hard-decisions.anth.us/) is our benchmark of decision models on multi-step logic. Each problem is a short list of facts and if-then rules from ProofWriter, a statement, and a question: does the statement follow? Proof depth counts how many rules you have to chain to answer it, from zero (the answer is written down) to five. In the open-world task the answer is true, false or unknown. In the closed-world task anything you can't prove is false, so the answer is true or false. Every model answers every problem once, with the same wording and no examples. [The GPT-6 Luna write-up](/blog/openai-decisions-api-preview/) walks through a problem at each depth. | Model | Open world | Closed world | | --- | --- | --- | | Jev | 83.8% | 89.3% | | GLiDE | 82.9% | 71.8% | | GPT-6 Luna, reasoning off | 64.1% | 65.0% | | Kev-9B, the best open model | 58.6% | 63.8% | | Laya | 42.4% | 55.6% | [The Jev vs GLiDE comparison](https://hard-decisions.anth.us/compare/jev-vs-glide/) has every one of these numbers by proof depth and answer type, with example problems each model got right and wrong. We expected GLiDE to beat the open models, and it did, by more than 20 points on the open-world task. There it also matched Jev: 0.9 points behind on the same 1,800 problems, inside the margin of error, and level at every depth up to four. That tie didn't survive the rerun Fastino asked for, where GLiDE was 7.4 points behind. The closed-world task went the other way. Jev was 17.5 points ahead (95% interval 15.4 to 19.6), and the gap grew with depth: about 20 points at depths two to four and 40 points at depth five, where GLiDE got 49% of the true-or-false questions right. A coin flip gets 50%. ::image{ src="images/glide-decision-model-ten-seconds-accuracy-by-depth.png" layout="full" alt="Two line charts of accuracy by proof depth. Open world: Jev and GLiDE overlap from 98% at depth 0 down to about 73% at depth 4; at depth 5 Jev is at 81% and GLiDE at 75%. Closed world: both start at 99%; Jev stays between 76% and 94% and ends at 89%; GLiDE falls steadily to 72%, 64%, 56% and ends at 49% at depth 5, on the 50% chance line." caption="Accuracy by proof depth, about 300 problems per point. The dashed line is chance: one in three for open world, one in two for closed world." } Fastino's claim comes from its own Decision Index, a suite of 38 benchmarks on which it reports GLiDE at 64.81 and Jev at 57.91. Hard-Decisions isn't in that suite, and on Hard-Decisions GLiDE didn't beat Jev. GLiDE's open-world answers also lean toward "unknown." It got 96% of the unknown problems right but only 76 to 77% of the true and false ones, and 282 of its misses were true or false statements it called unknown. ## When GLiDE says 80 to 90%, it's right 73% of the time A decision model's probability is what lets you route: act on the confident answers, send the rest to a person. So we asked of GLiDE what we [asked of GPT-6 Luna](/blog/openai-decisions-api-preview/): when it states a probability, how often is it right? ::image{ src="images/glide-decision-model-ten-seconds-reliability.png" layout="full" alt="Reliability chart of stated probability against actual accuracy, both tasks pooled. Jev's line climbs below and near the diagonal and reaches 99% accuracy at the top. GLiDE's line starts high: 339 answers stated at 50 to 70% were 93% right. It drops to 71% and 73% right for the 70 to 80% and 80 to 90% bands, which hold most of its answers, then climbs to 80%, 87% and 98% in the top bands." caption="Each point is a band of stated probability; the dashed diagonal is where a perfectly calibrated model would sit. Both tasks pooled." } GLiDE's least confident answers were its most accurate. The 339 answers it stated at 50 to 70% were right 93% of the time. The 1,278 answers it stated at 80 to 90%, its most common band, were right 73% of the time. Its stated probability only matches its accuracy at the very top: answers at 99% or more were right 98% of the time, but only 85 of its 3,600 answers were stated that high. That shape matters more than the average. The standard test is AUROC: how well the stated probability separates right answers from wrong ones, where 0.5 means it carries no information and 1.0 means it separates them perfectly. GLiDE scored 0.56 on the open-world task and 0.52 on the closed-world one. Jev scored 0.85 and 0.86. Even GPT-6 Luna's log-probabilities scored 0.66 and 0.68. In practice: if you only let answers stated at 90% or more through, Jev passes 70% of its decisions and gets 95.9% of those right. GLiDE passes 26% and gets 84.5% right, close to its 77% overall. ## Its least sure answers are the ones it thought about The fast and slow humps explain the strange shape. We split GLiDE's answers at two seconds: | | Answers | Right | Average stated probability | | --- | --- | --- | --- | | Open world, fast | 1,157 | 79% | 85% | | Open world, slow | 643 | 91% | 72% | | Closed world, fast | 1,559 | 68% | 86% | | Closed world, slow | 241 | 95% | 76% | The thinking works. When GLiDE stopped to reason, it was right 91 to 95% of the time, and it reported lower probabilities for those answers. The problem is how it decides when to think: by its own first probability, the same probability that can't tell its right answers from its wrong ones. On the closed-world task its fast answers averaged 86% stated confidence and were right 68% of the time, so it thought on only 13% of the problems and answered the rest quickly and often wrong. You can see it in the timing by depth. On the open-world task GLiDE took more than two seconds on 3% of depth-zero problems and on 56% of depth-four ones, and its median time climbs from 0.9 to 5.0 seconds, so it notices that deep problems are hard. On the closed-world task it took more than two seconds on 15 to 16% of problems at every depth from one to five, and its median stays at 0.9 seconds throughout. It treats a five-step true-or-false question as if it were a one-step one. That's the difference between tying Jev and losing to it by 40 points. We think the fix GLiDE needs is the one Luna needs: a probability that's higher when the answer is right. GLiDE's design depends on that more than most models do, because the same probability decides when to spend the extra time. ## The rerun at Fastino's request On October 3, Fastino's CEO asked us to re-evaluate GLiDE, saying Fastino had problems during the launch. We sent the same 3,600 problems again with the same request and settings, eight at a time as before. Fastino's API reports the model as "glide" both times, so the responses don't show what changed. | | October 2 | October 3 rerun | | --- | --- | --- | | Open world accuracy (Jev: 83.8%) | 82.9% | 76.4% | | Closed world accuracy (Jev: 89.3%) | 71.8% | 68.8% | | Open world, depths 0 to 5 | 98, 88, 84, 79, 74, 75% | 98, 87, 80, 70, 61, 62% | | Median time per decision, open world | 1.15 s | 0.80 s | | Decisions taking ten seconds or more, both tasks | 243 | 180 | | Input tokens billed per decision, open world | 927 | 531 | | List-price cost per million decisions, open world | $278 | $159 | The rerun was faster and billed about 40% fewer tokens per decision, and since GLiDE bills its extra reasoning as tokens, it looks like it reasoned less. It was also less accurate where reasoning matters: on the open-world task, 141 answers changed between the runs, 129 of them from right to wrong, and most of those at depth three and deeper. On the closed-world task 61 answers changed, 57 from right to wrong. The rerun still left GLiDE ahead of every open model, and further behind Jev than before. ## What we'd tell a team choosing a decision model GLiDE is better at multi-step reasoning than any open model we've tested, by more than 20 points on the open-world task, and its thinking answers were right more than nine times in ten. But it isn't real competition for Jev. It's less accurate: 17.5 points behind on the closed-world task in the first run, and behind on both tasks in the rerun Fastino asked for. It's slower, five times at the median, with a tail that reaches minutes. Its confidence barely separates its right answers from its wrong ones. And it costs about ten times as much per decision. The reason is the design Fastino chose. A decision model competes with Jev where it can sit inside every step of an agent and answer in a fraction of a second, which is what a System One model is for. A model that sometimes takes a minute to respond isn't a System One model, however its API is shaped. Fastino says plainly that GLiDE thinks; the risk is for teams that see the same endpoint and the same request format and assume they're getting the same kind of model. - **Plan for the slowest answers.** A one-second median hides a 6.8% chance that a decision takes ten seconds or more, and an agent makes many decisions per task. - **Check the probability against labeled answers before you set a threshold.** On our problems, GLiDE's high numbers weren't more likely to be right than its middling ones. - **Test the question formats you'll actually use.** The same logic asked as true, false or unknown and as true or false gave GLiDE a tie with Jev on one and a coin flip on the other at depth five. - **Price the thinking.** Its slow answers bill about seven times the tokens of its fast ones. Here GLiDE cost 9.3 times what Jev did per decision, and more on the harder problems. ## How we measured GLiDE got exactly Jev's request through Fastino's `/v1/systemone` endpoint, model `fastino/GLiDE`, one request per problem, no examples and no retries of an answer. We didn't ask GLiDE every question a second time, so there's no measure of how often it changes its answer, and its times come from the scored run with eight requests in flight. Two requests returned server errors and succeeded on the retry. GLiDE launched the day before we tested it, and Fastino may change it. ProofWriter is synthetic, templated logic, so these numbers describe multi-step reasoning of that kind. The full comparison is on [Jev vs GLiDE](https://hard-decisions.anth.us/compare/jev-vs-glide/), and every record is on [hard-decisions.anth.us](https://hard-decisions.anth.us/). If you're choosing a decision model, run this kind of test on your own decisions: labeled cases from your own work, hard ones included, every model asked the same way, accuracy by difficulty, the slowest answers as well as the median, and a check that each model's probability separates its right answers from its wrong ones. [That's work we do with teams](/ai-solutions/). --- # The OpenAI Decisions API Needs a Confidence You Can Trust > We've routed decisions on LLM confidence since 2023, and calibration is what we most hope OpenAI's new Decisions API gets right. The model underneath, GPT-6 Luna, isn't there yet: on 3,600 reasoning problems its 99% meant 68%, and by five inference steps it was at a coin flip. By [Ryan Porter](https://anth.us/ryan) · Published 2026-10-01 Canonical: https://anth.us/articles/openai-decisions-api-preview/ Say you send an agent's next step to a decision model, and you only let it act on its own when it's at least 99% sure. Everything else goes to a person. That rule is only as good as the 99%. We gave GPT-6 Luna, the model behind OpenAI's new Decisions API, 3,600 reasoning problems and asked for exactly that kind of answer. When Luna said it was 99% sure or more, it was right 68% of the time. OpenAI announced the Decisions API at DevDay on September 29, in limited preview. It picks one answer from a list you define, so software can branch on it: classify a message, route a request, choose what an agent does next. [The Decoder](https://the-decoder.com/openai-expands-codex-and-its-api-at-devday-with-security-scans-a-decisions-api-and-ultrafast/) and [Axios](https://www.axios.com/2026/09/29/openai-dev-day-2026-dots-space-sol) report it runs on "a version of GPT-6 Luna," OpenAI's low-cost model, and OpenAI's own chart puts it at 150 milliseconds a decision. It's OpenAI's answer to [Jev](/blog/making-decisions-instead-of-generating-text/). We'd already run Luna that way. In [Hard-Decisions](https://hard-decisions.anth.us/), our benchmark of decision models on multi-step logic, Luna answered the same problems as Jev, Kev and Laya, one request each, from a fixed list of options. That makes it a preview of a Luna-based decision model. It isn't the Decisions API itself: OpenAI uses a specialized version of Luna, and there's no documentation yet to test against. ## Why we care We've been routing on a model's confidence since 2023. For [Call Criteria](/blog/call-criteria/), LLMs score calls against hundreds of client scorecards, and people review the calls the system is unsure about. Everything depends on knowing which calls those are. When we read that confidence from the token log-probabilities of OpenAI's models, [the numbers were so concentrated](/blog/making-decisions-instead-of-generating-text/) that they looked certain about nearly every answer. OpenAI's models have had confidence problems for as long as we've used them, and not the shy kind. Newer reasoning models often don't expose log-probabilities at all. So we built the confidence ourselves: extract the probability behind each label, check it against labeled answers, calibrate it, and only then route on it. [Classification with Confidence](/blog/classification-with-confidence/) shows that pipeline on GPT-4o-mini. That's the pain the Decisions API could end. What we're hoping for most is that OpenAI now treats calibration as a product: a confidence you can set a threshold on, documented and tested, instead of something withheld from the API, which we suspect, without proof, is partly about making the models harder to distill. A decision endpoint is where that would have to happen. So we wanted to know what the model underneath does today. ::image{ src="images/openai-decisions-api-preview-accuracy-by-depth.png" layout="full" alt="Line chart of accuracy by proof depth from 0 to 5 on 3,600 problems. Jev starts near 99% and is still at 85% at depth 5. GPT-6 Luna starts near 96%, drops to 77% at depth 1 and 63% at depth 2, and ends at 45% at depth 5." caption="Accuracy by the number of inference steps the answer needs, both ProofWriter tasks pooled." } ## The test The problems come from ProofWriter, a dataset from the Allen Institute for AI. Each one is a short list of facts and if-then rules in plain English, and a statement to judge. Some answers can be read straight off the page. Others need five rules chained together. The dataset labels every problem with that number, its proof depth, which makes difficulty something you can measure instead of argue about. There are two versions of the task. In the open-world one the answer is true, false or unknown: unknown when the rules settle neither the statement nor its opposite. In the closed-world one, anything you can't prove is false. We sampled 1,800 problems for each, about 300 at every depth, and recomputed every gold answer with an independent solver. Luna got the same treatment as everyone else. One request per problem. The problem, the question and the meaning of each option, word for word what Jev receives. A strict JSON schema that only allows the three options. Reasoning off, which is the setting a fast decision API implies. ## Accuracy: fine on the page, coin flips five steps in On problems you can answer by reading, Luna is nearly as good as Jev: 93% against 98% on the open-world task, and 98% against 99% on the closed one. Then it loses ground with every step. By five chained inferences Luna gets 46% and 45% right. On the closed-world task, that's a coin flip. Jev gets 81% and 89% at the same depth, on the same problems. Across all depths, Jev scored 83.8% and 89.3%; Luna, 64.1% and 65.0%. The gap at depth 5 is 35 and 45 points, with 95% intervals from 27 to 43 and from 38 to 51. That isn't a close call. You might be thinking that reasoning off is what sank Luna. Turning it on might help, but it would also make every decision slower and costlier than the one-shot job a decision API exists to do, and every model here got the same single shot. The open models we tested are stuck at depth 5 too: [every model except Jev](https://hard-decisions.anth.us/breakdowns/proof-depth/) was at coin-flip accuracy by depth 5. ## Wrong when the answer is on the page Most of Luna's misses come from long chains, but not all of them. At depth 0, where the statement or its opposite is written in the text, Luna got 20 of 300 open-world problems wrong and 6 of 300 closed-world ones. At depth 1, one rule away, it missed 67 of 302 and 70 of 300. Here are the shortest of those misses at each depth, in each version of the task, with the confidence Luna gave when we asked again for log-probabilities and it gave the same answer: - **Depth 0, open world.** The text says "The lion is not big." Is "The lion is big" true, false or unknown? It's false; the text says so. Luna said **unknown, 100% sure**. - **Depth 0, closed world.** The text says "Charlie is nice." Is "Charlie is not nice" true or false? False. Luna said **true, 100% sure**. - **Depth 1, open world.** "The tiger is big. All big people are cold." Is "The tiger is cold" true? Yes, one rule away. Luna said **unknown, 100% sure**. - **Depth 1, closed world.** "The rabbit is big. If someone is big then they chase the rabbit." Is "The rabbit does not chase the rabbit" true or false? False: the rabbit is big, so it chases the rabbit. Luna said **true, 100% sure**. They're the clearest of Luna's misses; at depth 0 it's right 93% and 98% of the time. But a decision model that can be 100% sure Charlie is not nice, when the text says Charlie is nice, needs more than a threshold on its confidence. ## Can Luna tell you how sure it is? A decision model earns its keep when you can trust its confidence. Jev returns a probability for every option. Luna, through the regular API, returns text. But with reasoning off, OpenAI's API will also return log-probabilities: for each token Luna writes, the log of the probability it gave that token, plus the most likely alternatives. With reasoning on, it refuses: "'logprobs' is not supported with this model," which matches [OpenAI's guide](https://developers.openai.com/api/docs/guides/latest-model). The strict schema makes the reading clean. It only lets Luna reply `{"answer":"