What Is a RAGET Situational Question Hallucination Attack?
A RAG-evaluation test case that probes hallucination on context-conditional questions where the right answer depends on user-supplied facts like region, tier, or time.
What Is a RAGET Situational Question Hallucination Attack?
A RAGET situational-question hallucination attack is a structured test case in the RAGET evaluation taxonomy that probes a RAG system with questions whose correct answer depends on user context. The user might ask “I’m on EU enterprise — when does my refund window expire?” The corpus has rules for both tiers and regions; the right answer is conditional on the situation. The attack succeeds when the system answers generically, swaps which condition applies, or hallucinates a synthesis that no chunk supports — the canonical test for corpora with jurisdictional, tier, or temporal rules.
Why It Matters in Production LLM and Agent Systems
Most enterprise RAG systems serve corpora full of conditional rules — refund policies that vary by region, SLA tiers that vary by contract level, tax rules that vary by jurisdiction, drug guidelines that vary by patient cohort. A bot that ignores conditions gives wrong answers that look authoritative. The regulatory, financial, and reputational damage of a confidently wrong situational answer is higher than that of a refusal.
The pain is concrete. A SaaS company’s support bot answers SLA questions correctly for the dominant customer tier and confidently wrong for the minority tier — until a customer complains and the screenshot lands in marketing’s lap. A pharma RAG system answers a dosing question without conditioning on patient age and the safety team has to file an FDA-relevant incident report. A financial services bot answers a fee question correctly for US customers and wrong for EU customers, exposing the company to GDPR-adjacent complaints.
The shape of the failure is subtle. The retriever often pulls the right chunk — the one that contains the conditional rule. The model reads the chunk, locates the relevant clause, and chooses the wrong branch. Retrieval-layer evals miss it; only grounding and faithfulness evals against the specific user context catch it.
How FutureAGI Handles RAGET Situational-Question Attacks
FutureAGI’s approach is to construct a situational-question cohort that explicitly varies user context across test cases and to score every response with context-aware evaluators. Teams generate paired test cases with synthetic-data-generation — same question, different user contexts, different correct answers — load them into a Dataset, and attach Faithfulness, ContextRelevance, HallucinationScore, MultiHopReasoning, and ChunkAttribution via Dataset.add_evaluation(). The eval reports per-context pass-rate so a regression that affects one tier or region surfaces immediately.
Concretely: a SaaS support team running on traceAI-llamaindex builds a 300-pair situational-question dataset that varies tier, region, and time. After a model upgrade, Faithfulness holds steady at 0.86 globally but drops to 0.62 on the EU-tier cohort. The drill-down reveals the new model summarises the conditional clause in a way that loses the regional qualifier. The team adjusts the prompt to require explicit citation of the relevant condition, re-runs the eval, and the EU-tier cohort recovers. In production, a post-guardrail runs Faithfulness weighted by user-context attributes — flagging responses where the cited chunk does not contain the user’s specific condition. FutureAGI surfaces the per-cohort regression and the runtime context-mismatch signal.
How to Measure or Detect It
Situational-question RAG hallucination needs context-aware grading:
Faithfulness: 0–1 score for whether the answer is supported by retrieved chunks under the user’s specific context.ContextRelevance: scores whether retrieved chunks actually match the user-context-conditioned question.HallucinationScore: composite signal that compares the response to the reference-correct answer for the given context.MultiHopReasoning: catches situational answers that require condition-then-rule synthesis.ChunkAttribution: surfaces the specific clause the response cited; mismatches between cited clause and user context flag failures.- Per-context-cohort eval-fail-rate: the regression dashboard sliced by the conditioning dimension.
from fi.evals import Faithfulness, ContextRelevance, HallucinationScore
faith = Faithfulness()
ctx = ContextRelevance()
hallu = HallucinationScore()
result = faith.evaluate(
input="I'm on EU enterprise — when does my refund window expire?",
output=generated_answer,
context=retrieved_chunks,
)
print(result.score, result.reason)
Common Mistakes
- One eval cohort that ignores user context. Pass-rate looks fine globally and hides catastrophic per-cohort regressions.
- Letting user context live only in the prompt without entering eval. Eval has to know the conditioning dimensions to score correctly.
- Trusting
Faithfulnessalone. A confident answer can be faithful to one chunk but wrong for the user’s situation; pair withMultiHopReasoning. - No
post-guardrailon context-sensitive routes. Route situational queries through a runtime grounding check before serving. - Skipping retest after corpus updates. A new policy clause can change the right answer for a single cohort and silently regress.
Frequently Asked Questions
What is a RAGET situational-question hallucination attack?
It is a RAG-evaluation test case from the RAGET taxonomy that probes whether a RAG system hallucinates on context-conditional questions where the answer depends on user-supplied facts like region, account tier, or jurisdiction.
How is it different from a complex-question attack?
Complex questions test multi-hop synthesis across the corpus. Situational questions test whether the system correctly conditions on user context — same corpus, different right answer depending on who is asking.
How does FutureAGI catch RAGET situational-question failures?
FutureAGI runs Faithfulness, ContextRelevance, and HallucinationScore on every RAG response, with situational test cases that vary user context as part of the regression eval gating each release.