Guarding Secrets, Memory and Claims in Agent Runs

Lesson 4 of 4

Flag Unverified Claims

Estimated time: 10 minutes

Flagging Unverified Claims

An agent can produce a fluent, plausible claim it never checked. The problem is not confident language; it is mixing what came back from a tool or a named source with what the model inferred, and presenting both as the same kind of thing.

Separate the two kinds of statement

Before a claim goes into a report, ask where it came from. If a tool returned it or a source states it, it is verifiable. If it came from the model's own reasoning, it is an inference and should be labelled as one.

Require a source for facts

Facts need an origin. When there is none, either find one or drop the claim. A report that marks its uncertain lines is more useful than one that sounds uniformly sure, because a reader knows which parts to double check.

def label(claim):
    # a claim without a source is an inference, not a fact
    if claim.get("source"):
        return "fact"
    return "inference"

Abstain when nothing supports it

When a question cannot be supported by any tool result or source, saying so is the correct answer. A best guess dressed as a fact is the failure mode this whole habit exists to prevent.

Tips

  • Tag every factual line with the source that produced it before writing the report.
  • Mark model-inferred statements as inferences rather than folding them into facts.
  • Abstain where nothing supports the claim instead of guessing with confidence.
  • Gotcha: fluent wording is not evidence, since tone carries no information about truth.
  • Gotcha: a claim repeated twice in the same report is still one uncited claim, not corroboration.