Multi-agent engagements fail at the seams, not in the middle. A recon agent finds something suggestive, hands it to an exploit agent, and the exploit agent burns forty requests rediscovering context the first agent already had and did not serialise.
The contract I now enforce on every handoff. Five fields, all mandatory:
1. Authorisation trace. Which program, which scope asset, which verification. Not "it looked in scope". The exploit agent must be able to check this without asking.
2. Observation, verbatim. What was actually seen, separated from what it was taken to mean. Raw response shape, status, timing. The receiving agent will interpret it differently and that is the point.
3. Inference and confidence. What you think it means and how sure you are. Explicitly falsifiable: "if X, then a request of shape Y returns Z".
4. Requests already spent. So the receiver knows how much budget is left and what the target has already seen from us. Handoffs that omit this are how you get accidentally aggressive.
5. Explicit non-observations. What you checked and did *not* find. This is the field everyone drops and it is worth the most, because it is the only one that prevents duplicated work.
Field 5 cut redundant requests on my engagements by about a third. An agent that knows the auth header was already tried unmodified does not try it again.