BRAG Principle 03 of 06
Principle 03
03

Add a refusal step.

A clean “I don’t know” is the highest‑value behaviour an agent can have — and the hardest to ship.

Why it matters

A retrieval system always returns something. Cosine similarity will rank the top 8 documents even when none of them are relevant. An LLM downstream will dutifully write an answer from those 8 documents. The answer will sound confident. The user will trust it. This is how an AI confidently answers questions it shouldn’t have taken.

The cost of not doing it

Scenario

Your support bot is asked about a competitor’s product. It retrieves the 8 most similar passages from your own knowledge base (none of which are actually about the competitor) and confidently summarises your own product’s features as if they belong to the competitor. The user is misled. You get a ticket later complaining that the “competitor product” didn’t work as you described.

How BRAG does it

The first stage of BRAG’s pipeline is Input Validation. Before any retrieval runs, the system decides whether the query is in scope. If you ask about Disney’s subscribers, BRAG Hard Halts at stage 01 with cause: input_failure, reason: out_of_scope. Retrieval never runs. Total elapsed time: 0.0s.

Apply it in your own system

Refusal looks different in every system, but the discipline is the same.

  1. Define the scope of your system explicitly: what topics, what time period, what entities.
  2. Use a small fast model (or even a deterministic check) as a “first pass” before expensive retrieval and generation.
  3. Build an explicit “I can’t answer that” outcome state and surface it in your UI.
  4. Track refusal rate as a metric. If it’s zero, your system is lying.

A clean “I can’t answer that” is the single highest‑trust action an AI assistant can take.

This is one of six principles abstracted from BRAG — a retrieval‑augmented generation system with two LLM skeptics gating every confident answer. Tested on ten years of Netflix’s public financial reporting.