-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
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).