Skip to content

Expose save_live_blob as /run_live query parameter #4707

@fparga

Description

@fparga

Is your feature request related to a specific problem?

The /run_live WebSocket endpoint exposes only a subset of RunConfig fields as query parameters (modalities, proactive_audio, enable_affective_dialog, enable_session_resumption). The save_live_blob field, which controls whether audio artifacts are persisted for live sessions, is not exposed, so there is no way to enable blob saving for live sessions without forking or monkey-patching the endpoint.

Describe the Solution You'd Like

Add save_live_blob: bool = Query(default=False) to the run_agent_live function signature in adk_web_server.py, and pass it through to the RunConfig() constructor. This follows the exact same pattern used for the other query parameters added in #4263.

Impact on your work

Without this parameter we have to maintain a fork override of the entire endpoint just to flip one boolean. This is fragile: any upstream changes to /run_live require us to re-sync the override.

Willingness to contribute

Yes, happy to submit a PR.


Describe Alternatives You've Considered

We currently override the /run_live route in our custom server wrapper: extract the AdkWebServer instance from the upstream closure, remove the original route, and re-register a copy with the extra parameter. This works but is brittle (breaks if the closure layout changes) and duplicates ~60 lines of upstream code.

Proposed API / Implementation

Two-line change in adk_web_server.py:

# In run_agent_live signature, add after enable_session_resumption:
    save_live_blob: bool = Query(default=False),

# In RunConfig() constructor, add:
    save_live_blob=save_live_blob,

Additional Context

save_live_blob already exists on RunConfig and is fully supported by the live runner. It just needs to be wired through the HTTP layer. Related: #4263 (which added the same pattern for proactivity/affective dialog parameters).

Metadata

Metadata

Labels

live[Component] This issue is related to live, voice and video chatneeds review[Status] The PR/issue is awaiting review from the maintainer

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions