cd /news/large-language-models/i-watched-xgrammar-forbid-a-token-wh… · home topics large-language-models article
[ARTICLE · art-59849] src=pub.towardsai.net ↗ pub= topic=large-language-models verified=true sentiment=· neutral

I Watched XGrammar Forbid a Token: What Grammar-Constrained Decoding Actually Does to Your Logits

XGrammar, a grammar-constrained decoding library used by vLLM, SGLang, TensorRT-LLM, and MLC-LLM, masks invalid tokens before the model samples, guaranteeing valid JSON output and eliminating retry loops. Version 0.2.3 of XGrammar was released on PyPI on June 27, 2026, following the 0.2.0 line from May 1.

read1 min views60 publishedJul 15, 2026
I Watched XGrammar Forbid a Token: What Grammar-Constrained Decoding Actually Does to Your Logits
Image: Pub (auto-discovered)

Member-only story

At the very first step of generating a JSON object, I asked XGrammar which of my 15 vocabulary tokens the model was allowed to produce. The answer was one: {

. The other fourteen were masked out before the model ever got to vote on them.

That single number is the whole argument for constrained decoding. If your agent parses model output as JSON, you have almost certainly written a retry loop: call the model, try to json.loads

the result, and on failure re-prompt with "please return valid JSON." Constrained decoding replaces that loop with a guarantee. The model cannot emit a token that would break the grammar, because at each step the invalid tokens are removed from the sampling distribution. There is no malformed output to retry.

XGrammar is the library most inference engines reach for to do this. Version 0.2.3 landed on PyPI on June 27, 2026, the latest in a fast run of releases that started with the 0.2.0 line on May 1. It ships as a structured-output backend inside vLLM, SGLang, TensorRT-LLM, and MLC-LLM. Most developers use it through those engines and never see the mask. This article pulls the mask out into the open, on a CPU, with no model weights and no API key, so you can watch it work token by token.

── more in #large-language-models 4 stories · sorted by recency
── more on @xgrammar 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-watched-xgrammar-f…] indexed:0 read:1min 2026-07-15 ·