Optionala2aRequest-level metadata passed from an incoming A2A request or caller.
OptionalallowIf true, a requireConfirmation gate may be answered by a message that
arrived over A2A.
Off by default: a remote peer is not the human operator, and a peer that can post to the task would otherwise be able to approve a dangerous tool call on the operator's behalf — the thing the gate exists to prevent. Turn it on only where the peer is a trusted relay for a real person: a front-end that renders the prompt and sends back what they chose.
A deliberate divergence from adk-python, which refuses a remote-delivered confirmation outright and offers no way back. The default matches; the option does not exist there.
OptionalcontextContext window compression config. When the running context exceeds
triggerTokens, the server compresses older history to targetTokens.
OptionalenableIf enabled, the model will detect emotions and adapt its responses accordingly.
OptionalinputInput transcription for live agents with audio input from user.
OptionalmaxA limit on the total number of llm calls for a given run.
Valid Values:
Number.MAX_SAFE_INTEGER: The bound on the
number of llm calls is enforced. createRunConfig() throws for
anything larger.OptionaloutputOutput audio transcription config.
OptionalpauseIf true, the agent loop will suspend on ANY tool call, allowing the client to intercept and execute tools (Client-Side Tool Execution).
OptionalplainIf true, a plain-text user reply (e.g. "yes"/"no") may resolve a pending
requireConfirmation tool gate. Off by default so an ordinary chat message
on a web/API surface is never silently reinterpreted as a security
decision; interactive front-ends (e.g. adk run) opt in explicitly.
OptionalproactivityConfigures the proactivity of the model. This allows the model to respond proactively to the input and to ignore irrelevant input.
OptionalrealtimeRealtime input config for live agents with audio input from user.
Optional InternalremoteSet by the A2A executor to record that this run's message came from a remote peer. Not part of the configuration surface: an application setting it by hand is asserting something about the message's provenance that only the transport can know.
Read by the tool-confirmation resume path only. The other two interrupts a
peer can answer — adk_request_credential and adk_request_input — are
answerable by a client by design: a credential is something a client holds,
and an input request asks for data, not for judgement. Confirmation is the
one that asks a specific human to take responsibility for an action, which
is why it is the one a peer cannot stand in for.
OptionalresponseThe output modalities. If not set, it's default to AUDIO.
OptionalsaveWhether or not to save the input blobs as artifacts.
OptionalspeechSpeech configuration for the live agent.
OptionalstreamingHow the response is delivered. Defaults to StreamingMode.NONE,
which emits one event when the turn completes; set
StreamingMode.SSE to receive partial events as the response is
produced. StreamingMode.BIDI is rejected by createRunConfig;
bidirectional streaming is reached through Runner.runLive() instead.
OptionalsupportWhether to support CFC (Compositional Function Calling). Only applicable for StreamingMode.SSE. If it's true. the LIVE API will be invoked. Since only LIVE API supports CFC
WARNING: This feature is experimental and its API or behavior may change in future releases.
Configs for runtime behavior of agents.