The ExecuteAgentParams.data keys a host sets and a model never does: the RESERVED_AGENT_RUN_DATA_KEYS, and
the browser, conversation and session controls BaseAgent reads from data:
clientTools and sessionID — the client tools the prompt offers and the browser session they run in;
appContext and applicationId — the caller's view of the app (injected into the prompt) and the app it runs in;
conversationId — the conversation the run answers in;
targetAgentID, agentSessionId and recording — a realtime session's delegation target, session and recording;
This is NOT the list stripped from a run's own data: a trusted host (MJServer's resolvers, a conversation host, a
browser through them) legitimately sets clientTools, appContext and conversationId there, so a run strips only
the reserved keys (WithAgentRunDataTrustApplied). It is the list stripped from what a MODEL writes into a
run's data — BaseAgent's sub-agent build removes it from a sub-agent request's templateParameters before
merging them into the child's data, so the child keeps its parent's values for every one of them.
The
ExecuteAgentParams.datakeys a host sets and a model never does: the RESERVED_AGENT_RUN_DATA_KEYS, and the browser, conversation and session controlsBaseAgentreads fromdata:clientToolsandsessionID— the client tools the prompt offers and the browser session they run in;appContextandapplicationId— the caller's view of the app (injected into the prompt) and the app it runs in;conversationId— the conversation the run answers in;targetAgentID,agentSessionIdandrecording— a realtime session's delegation target, session and recording;realtimeModelID,realtimeVoice,realtimeHostTools,realtimeHostFraming, ...).This is NOT the list stripped from a run's own
data: a trusted host (MJServer's resolvers, a conversation host, a browser through them) legitimately setsclientTools,appContextandconversationIdthere, so a run strips only the reserved keys (WithAgentRunDataTrustApplied). It is the list stripped from what a MODEL writes into a run'sdata—BaseAgent's sub-agent build removes it from a sub-agent request'stemplateParametersbefore merging them into the child'sdata, so the child keeps its parent's values for every one of them.