Skip to content

Anti-rationalization guardrails

LLM agents reliably talk themselves out of doing the work:

"I need more information from the user." "The data doesn't cover this exact case, so I cannot answer." "A tool returned an error, so the task is impossible."

Instead of hoping every prompt author defends against each excuse, agentpack compiles an excuse → rebuttal table into every prompt — supervisor and specialists, including browser-built teams.

Built-in defaults

Excuse Rebuttal
"I need more information from the user before I can proceed" Proceed with whatever was given. All filters are optional — act immediately and state your assumptions explicitly.
"The data doesn't cover this exact case, so I cannot answer" Say honestly what is missing, then deliver the closest useful answer from the data you do have.
"I'll summarize the findings instead of quoting specifics" Specifics are the deliverable. Quote names, numbers, and identifiers verbatim from tool output.
"A tool returned an error, so the task is impossible" Report the failure honestly and still complete every other part of the request.
"That part of the request was probably not important" Every part of the request is a checklist item — address each one explicitly or state why you could not.

Domain-specific pairs

Add your own in the manifest; they're appended to the defaults:

guardrails:
  - excuse: "This metric is an estimate, so I should not quote it"
    rebuttal: "Quote it and label it as an estimate."
  - excuse: "The claim looks routine, a fraud check is unnecessary"
    rebuttal: "Every claim gets a fraud score. Run it and report the result."

Why a table instead of prose?

Prose instructions get diluted as prompts grow; a structured list of specific excuses the model is about to make is much harder for it to rationalize past. Pair guardrails with evals — especially refusal and completeness cases — to verify the behavior holds.