Skip to content

    Back to articles

    6 min read

    Treat agent uncertainty as a review hint

    Uncertainty changes attention, not the standard

    A coding agent’s uncertainty is useful only if it changes where I look, not what I accept. A confident answer is not evidence that a patch is correct, and a hesitant answer is not evidence that it is wrong. I would treat either as a prompt for investigation, then judge the work by what I can inspect and verify.

    The distinction matters because an agent’s statement about its own work is still part of the agent’s output. It might point to an uncertain dependency, an untested edge case, or a section where the implementation diverged from the request. That makes the statement potentially useful for directing a review. But it does not independently establish that the concern is real, or that everything outside the flagged area is sound.

    This is the practical question raised by Anthropic’s Claude Opus 4.8 announcement. Anthropic says early testers found the model more likely to flag uncertainty and less likely to make unsupported claims. The announcement also reports an evaluation in which Opus 4.8 was around four times less likely than its predecessor to leave flaws in its own code unremarked. That is a claim about the model and Anthropic’s evaluation—not a guarantee about a particular patch, repository, or review process.

    I would not turn a self-reported uncertainty label into a quality score. I would use it as a map annotation: useful for deciding where to spend scarce attention, but not a substitute for reading the terrain.

    Ask for a review map, then inspect the work

    A coding agent can make a review easier by separating what it changed from what it could not establish. I would ask it to identify relevant files and behavior, describe the reasoning behind the patch, and name the checks it ran or could not run. The point is not to get a persuasive final summary. It is to make the claims in that summary easy to test against the diff and the repository.

    For example, an agent’s handoff might use a structure like this:

    changed:
      - "Request validation in the endpoint"
    uncertain:
      - "Whether the existing tests cover an empty optional field"
    checks:
      - "Focused test command completed"
    not_checked:
      - "Database behavior against a production-like schema"

    These entries are prompts, not facts. I would verify that the listed files changed, that the test command really ran, and that its result applies to the behavior under review. If the agent says it did not check something, I can decide whether that gap matters. If it says nothing is uncertain, I still need to decide what the patch could break.

    The diff is a better starting point than the confidence of the explanation. I look at what changed, whether the changes match the requested behavior, and whether they introduce new assumptions. Then I use tests to check specific behavior. A passing test gives evidence about the cases it exercises; it cannot prove that an untested requirement or failure mode is handled. A test the agent reports running is not useful evidence until I can see what ran and what passed.

    That is why I would keep the normal review checks intact. The agent can help me find the tricky branch, but it should not get to skip the diff, the relevant tests, or the checks I expect for that kind of change. Confidence should never be a fast lane around those steps.

    Test the usefulness of the signal

    I would treat model-reported uncertainty as a workflow experiment, not a calibrated measurement. The first question is modest: does the signal help a reviewer notice useful areas sooner? To answer that, I would compare flagged concerns with observable evidence: the diff, test coverage, review comments, and issues found during the ordinary review. I would also inspect some unflagged areas. Otherwise, I would only learn whether the model can identify problems it has already pointed out, not whether its silence is informative.

    A useful flag should lead to a concrete check. “I am unsure about this change” is too broad to allocate attention well. “I did not verify how this branch behaves when the optional value is absent” points to a question a reviewer can investigate. If the concern turns out to be irrelevant, that is still useful feedback about the signal’s cost. If the patch contains a defect the agent did not flag, that is a reminder that silence cannot close the review.

    I would record the outcome in ordinary review language rather than assigning the agent a grade. Did the flagged area reveal a real gap? Did the diff expose a problem the agent missed? Did the suggested check add useful coverage, or repeat what existing tests already established? Those observations can guide how I ask for handoffs and where I spend attention. They do not justify treating an uncertainty label as a probability of correctness.

    There are limits to what this experiment can show. A reviewer may find something because the agent flagged it, and may overlook something it did not. The prompt, task, repository, and reviewer all shape the result. A reassuring set of reviews would not establish that a model is calibrated across other changes. I would keep conclusions local: this signal helped or failed to help with this review process, under these conditions.

    Keep the decision with the reviewer

    The most useful workflow is not one where an agent declares its own work safe. It is one where the agent makes its limits and assumptions easier to inspect. Uncertainty can help prioritize attention when it is specific, tied to the patch, and followed by a human check. It becomes dangerous when a confident tone is allowed to stand in for evidence or when a blank uncertainty report is read as approval.

    I would ask the agent to show what it changed, what it checked, and what it could not establish. I would then use the diff, test results, and review findings to make the decision. If those forms of evidence disagree with the agent’s self-assessment, the self-assessment loses.

    That keeps the signal in its proper role: a hint about where to look, never permission to stop looking.

    Drafted with AI assistance, reviewed and edited by Ali.