The structured-object fix is the right one, but I've hit a version of this that survives it: the downstream agent gets the upstream agent's clean structured output and still re-verifies from scratch, not because the interface was vague but because it has the same search/fetch tools the upstream agent does and nothing tells it not to use them. A model that can re-derive an answer will often do it anyway out of a kind of default thoroughness, even when the input it was handed is fine. What's worked for me beyond just defining the object is telling the downstream agent explicitly to treat the input as ground truth unless it finds a specific contradiction, and narrowing its tool access so re-deriving the whole thing from zero isn't the easiest path. Otherwise you've built a clean interface that a capable agent quietly ignores half the time.