Skip to main content

handoff_release

Returns control of a received handoff back to the originating agent’s visitor. Used by the receiving side of a sibling-agent handoff to finish its work and hand back, rather than waiting for a release token or idle timeout. The tool is only registered when this turn is the receiving side of a sibling-agent handoff — it doesn’t appear on regular conversations or when the agent itself initiated the handoff.

Parameters

Filling return_values

When the originator declared an expected_return schema, your initial context contains an [EXPECTED RETURN SCHEMA] block listing the field names, types, and which are required. Populate return_values with keys matching those names:
Each value is coerced to the declared type — strings to strings, "yes"/"true"/"1" to true for booleans, numeric strings to numbers, etc. Missing required fields are logged but do NOT block the release (best-effort).

Returns

return_values and missing_required are present only when relevant.

What the originator sees

After release, the originator’s chat receives a [Bot resumed — the sibling agent has handed control back. Outcome: resolved. <summary>] system message, with a Returned data: block appended when values were filled. The originator’s LLM reads these on its next turn.

Notes

  • The originator’s bot is bypassed during the handoff — calling this tool is what wakes it back up.
  • If you cannot help, set outcome: "cannot_help" so the originator’s LLM knows to try something else rather than parroting your summary as a final answer.
  • See handoff_request for the originator-side tool and the expected_return schema.