Forget content moderation. A new class of open models is here to actually think through your rules instead of blindly guessing them. Meet gpt-oss-safeguard: models that interpret your rules and enforce them with visible reasoning. No, massive retraining. No, black-box safety calls. Yes, flexible and open-weight systems you control. In this article, weโll break down what the safeguard models are, how they work, where they shine (and stumble), and how you can start testing your own policies today.
Built on the gpt-oss architecture with 20B total parameters (and 120B in a different variant), these models are fine-tuned specifically for safety classification tasks with support for the Harmony response format, which separates reasoning into dedicated channels for auditability and transparency. The model sits at the center of OpenAI’s belief in defence of depth.

The model takes two inputs at once:
Upon processing these inputs, it produces a conclusion about where the content falls, along with its reasoning.
Access gpt-oss-safeguard models on Hugging Face at HuggingFace Collections.
Or you can access it from online platforms which offer a playground, like Groq, OpenRouter etc.
The demonstrations in this article have been made on the playground of gpt-oss-safeguard offered by Groq.

To test how well the model (20b variant) conceives and utilizes the policies in output sanitation, I tested it on a policy curated for filtering animal names:
Policy: Animal Name Detection v1.0
Objective
Decide if the input text contains one or more animal names. Return a label and the list of detected names.
Labels
ANIMAL_NAME_PRESENT โ At least one animal name is present.
ANIMAL_NAME_ABSENT โ No animal names are present.
UNCERTAIN โ Ambiguous; the model cannot confidently decide.
Definitions
Animal: Any member of kingdom Animalia (mammals, birds, reptiles, amphibians, fish, insects, arachnids, mollusks, etc.), including extinct species (e.g., dinosaur names) and zodiac animals.
What counts as a โnameโ: Canonical common names (dog, African grey parrot), scientific/Latin binomials (Canis lupus), multiword names (sea lion), slang/colloquialisms (kitty, pup), and animal emojis (๐ถ, ๐).
Morphology: Case-insensitive; singular/plural both count; hyphenation and spacing variants count (sea-lion/sea lion).
Languages: Apply in any language; if the word is an animal in that language, it counts (e.g., perro, gato).
Exclusions / Disambiguation
Substrings inside unrelated words do not count (cat in โcatastropheโ, ant in โantiqueโ).
Food dishes or products only count if an animal name appears as a standalone token or clear multiword name (e.g., โchicken curryโ โ counts; โhotdogโ โ does not).
Brands/teams/models (Jaguar car, Detroit Lions) count only if the text clearly references the animal, not the product/entity. If ambiguous โ UNCERTAIN.
Proper names/nicknames (Tiger Woods) โ mark ANIMAL_NAME_PRESENT (animal token โtigerโ exists), but note itโs a proper noun.
Fictional/cryptids (dragon, unicorn) โ do not count unless your use case explicitly wants them. If unsure โ UNCERTAIN.
Required Output Format (JSON)
{
"label": "ANIMAL_NAME_PRESENT | ANIMAL_NAME_ABSENT | UNCERTAIN",
"animals_detected": ["list", "of", "normalized", "names"],
"notes": "brief justification; mention any ambiguities",
"confidence": 0.0
}
Decision Rules
Tokenize text; look for standalone animal tokens, valid multiword animal names, scientific names, or animal emojis.
Normalize matches (lowercase; strip punctuation; collapse hyphens/spaces).
Apply exclusions; if only substrings or ambiguous brand/team references remain, use ANIMAL_NAME_ABSENT or UNCERTAIN accordingly.
If at least one valid match remains โ ANIMAL_NAME_PRESENT.
Set confidence higher when the match is unambiguous (e.g., โThereโs a dog and a cat here.โ), lower when proper nouns or brands could confuse the intent.
Examples
โShow me pictures of otters.โ โ ANIMAL_NAME_PRESENT; ["otter"]
โThe Lions won the game.โ โ UNCERTAIN (team vs animal)
โI bought a Jaguar.โ โ UNCERTAIN (car vs animal)
โI love ๐ and giraffes.โ โ ANIMAL_NAME_PRESENT; ["elephant","giraffe"]
โThis is a catastrophe.โ โ ANIMAL_NAME_ABSENT
โCook chicken with rosemary.โ โ ANIMAL_NAME_PRESENT; ["chicken"]
โCanis lupus populations are rising.โ โ ANIMAL_NAME_PRESENT; ["canis lupus"]
โNecesito adoptar un perro o un gato.โ โ ANIMAL_NAME_PRESENT; ["perro","gato"]
โI had a hotdog.โ โ ANIMAL_NAME_ABSENT
โTiger played 18 holes.โ โ ANIMAL_NAME_PRESENT; ["tiger"] (proper noun; note in notes)
Query: โThe quick brown fox jumps over the lazy dog.โ
Response:
The result is correct and is provided in the format I had outlined. I couldโve gone extreme in this testing, but the limited test proved satisfactory in of itself. Also, going dense wouldโt work due to one of the limitations of the modelโwhich is described in the Limitations section.
The safeguard models were evaluated on both internal and external evaluation datasets of OpenAI.

The safeguard models and internal Safety Reasoner outperform gpt-5-thinking and the gpt-oss open models on multi-policy accuracy. The safeguard models outperforming gpt-5-thinking is particularly surprising given the former modelsโ small parameter count.

On ToxicChat, the internal Safety Reasoner ranked highest, followed by gpt-5-thinking. Both models narrowly outperformed gpt-oss-safeguard-120b and 20b. Despite this, safeguard remains attractive for this task due to its smaller size and deployment efficiency (comparative to those huge models).

Using internal safety policies, gpt-oss-safeguard slightly outperformed other tested models, including the internal Safety Reasoner (their in-house safety model). The margin over Safety Reasoner isnโt statistically significant, but safeguard leads this benchmark.

Here are some use cases of this policy based safeguard mechanism:
This is a step in the right direction towards safe and responsible LLMs. For the present, it makes no difference. The model is clearly tailored towards a specific use group, and isnโt focused on the general users. Gpt-oss-safeguard can be likened to gpt-oss for most users. But it provides a useful framework for developing safe responses in the future. It is more of a version upgrade over the gpt-oss than a full fleshed model in itself. But what it offers, is a promise for secure model usage, without significant hardware requirements.
A. Itโs an open-weight safety-reasoning model built on GPT-OSS, designed to classify content based on custom written policies. It reads a policy and a user message together, then outputs a judgment and reasoning trace for transparency.
A. Instead of being trained on fixed moderation rules, it applies policies at inference time. That means you can change safety rules instantly without retraining a model.
A. Developers, trust-and-safety teams, and researchers who need transparent policy-driven moderation. Itโs not aimed at general chatbot use; it’s tuned for classification and auditability.
A. It can hallucinate reasoning, struggles more with non-English languages, and uses more compute than lightweight classifiers. In high-stakes moderation systems, specialized trained classifiers may still outperform it.
A. You can download it from Hugging Face or run it on platforms like Groq and OpenRouter. The articleโs demos were tested through Groqโs web playground.