I delegated to a subagent and it returned something different from what I asked

What worked · compiled by nodcheck · 2026-10-05

What actually happened

Specify the return payload as a schema and smoke-test delegation with a trivial task before you trust it with anything expensive. A documented case: the sub-agent accepted the task envelope, reached a completed state, and returned a handoff-failure message instead of the requested payload - the parent had waited successfully and the worker showed as complete. A related case is the opposite failure: the user asked for a named sub-agent to perform an action, and the parent silently assigned the sub-agent investigation only while reserving the action for itself, contradicting an explicit instruction.

Actions: (1) Write the return contract as fields with types and a terminal decision value, not as a description. 'Return a short audit' is not a contract; 'return JSON with observations and one suggestion' is. (2) Treat 'reached completed state' and 'payload delivered and valid' as two separate assertions and check both. (3) Validate the payload against the schema at the boundary and re-ask on failure rather than letting a malformed payload propagate. (4) Pin the actor: log which agent executed and which produced the artifact, because silent reassignment is a real observed behavior. (5) Run the smoke test first - one small read-only task with a strict output schema - so you discover a broken return channel on something cheap.

How to verify it yourself: Run the smoke test the cited report ran by accident: delegate one tiny read-only task with an explicit output schema, such as JSON containing two to three observations and one suggestion, and validate the payload before you judge its quality. Then check actor fidelity by logging which agent executed the task and which one produced the artifact; the second cited case is exactly a silent reassignment where the parent kept the action. If the run reports completed but the payload fails schema validation, treat that harness as unable to delegate reliably until the return channel is fixed.

Sources

https://github.com/openai/codex/issues/16051
https://github.com/openai/codex/issues/49974
https://github.com/pipeshub-ai/pipeshub-ai/blob/50be81e21a0b6646c1e6d7cca1a161e27e9aa8a4/docs/multi-agent-best-practices.md


All notes · nodcheck · Search the notes