Jev Armour (Beta)
A decision-model guard that checks every prompt before your chat model answers.
Jev Armour sits in front of every chat model on TokenRex. When you enable it, your prompt is first judged by Jev — a fast decision model that returns typed judgments instead of text. Jev checks whether the prompt is clear and whether answering it would force the model to invent facts. Unclear prompts come back as a clarifying question before any chat-model tokens are spent; clear prompts go through unchanged; and the finished reply is verified against the prompt, with a warning flag when claims look unsupported. Your prompt text is never rewritten — Jev only decides, and TokenRex acts on the decision.
What you get
- Catches unclear, ambiguous or conflicting prompts before the model guesses
- Returns a clarifying question with no chat-model charge when context is missing
- Adds a short anti-hallucination guard note to risky-but-answerable prompts
- Verifies each finished reply against the prompt and flags unsupported claims
- Fails open: if the guard is unreachable, your request proceeds normally
- One flag on the endpoints you already call — no new SDK, no prompt changes
Common use cases
How it works
- 1Keep your existing callJev Armour works on POST /v1/chat/completions and POST /v1/responses with any chat model.
- 2Add the flagSet "armour": true in the request body. Send stream:false — streaming is not covered in the beta.
- 3Read the armour blockEvery response returns an armour object with the decision: clear, needs_clarification (with a question to ask your user) or unavailable.
- 4Handle warningsWhen armour.warning is "reply_unverified", show the reply with your own caution UI or ask the user to confirm the facts.
Code examples
from openai import OpenAI
client = OpenAI(
api_key="sk-tb-YOUR_KEY",
base_url="https://tokenrex.ai/api/public",
)
resp = client.chat.completions.create(
model="gpt-6-astra",
extra_body={"armour": True}, # Jev Armour (Beta)
messages=[{"role": "user", "content": "Summarise the attached report."}],
)
armour = resp.model_extra.get("armour", {})
if armour.get("status") == "needs_clarification":
print("Ask the user:", armour["question"]) # no chat-model charge
else:
if armour.get("warning") == "reply_unverified":
print("Warning: reply may contain unverified claims")
print(resp.choices[0].message.content)Frequently asked questions
Does Jev Armour change my prompt?
No. Your text is never rewritten. Jev only judges it; TokenRex may add a short guard instruction alongside it, or ask a clarifying question first.
What does it cost?
Armour checks are free during the beta. You only pay the normal chat-model tokens when the model actually answers.
Does it work with streaming?
Not in the beta. Send stream:false (or omit stream) when using Armour; streaming requests with Armour return a clear 400 explaining this.
What happens if the guard is down?
The request proceeds normally with armour.status "unavailable". Armour never silently blocks a request.
Can it block unsafe prompts?
The beta focuses on clarity and hallucination risk, not content moderation. Blocking rules may come later.