Your marketing coordinator agent is talking with a brand manager who, early in the conversation, says: "Remember our brand voice — never use the word 'revolutionary' and never use exclamation points." Five turns later, the coordinator delegates to a campaign_drafter subagent to write three email subject lines. The drafter produces:
1. "A revolutionary new way to save!" 2. "Don't miss our biggest event yet!" 3. "Transform your weekend!"
What's the most likely cause?
Why did you pick that answer? Two or three sentences. The act of articulating it is what builds the judgment — not the click that follows.
Subagents start with isolated context. They do not see the parent agent's conversation history unless the coordinator explicitly passes it. The brand manager's rules existed in the coordinator's context — but the drafter never received them. The fix is at the coordinator: when delegating, package the relevant constraints (brand voice rules, customer-stated preferences, prior decisions) into the subagent's prompt directly. Treat each subagent invocation as a fresh conversation that needs to be briefed.
Many engineers assume subagents share memory with their parent the way a function shares variables with its caller. They don't — each subagent is its own conversation. There's no "corruption" to fix because no inheritance happened in the first place.
A conflicting system prompt is possible but unlikely without other symptoms. The simpler explanation is that the brand voice rules were never delivered to the drafter at all.
Even the most capable model can't follow rules it doesn't know. This is an information-flow problem disguised as a capability problem — a recurring trap in agent debugging.