The experimental config file is an optional JSON file used to enable experimental features and advanced runtime settings for an agent.
Use it for:- feature flags
- ASR tuning
- conversation control
- debug-oriented options
Location
The file lives at:What it contains
The file is a JSON object. It may be:- flat
- nested
- grouped by feature category
Example
Schema and validation
Available features and their types are defined in a bundled schema file:experimental_config.json against this schema when you run:
poly validate locally. Experimental config that fails validation is not read by the runtime in deployed agents.
Custom schema path
If the bundled schema does not match the schema expected by your Agent Studio environment, you can point validation at a custom schema file by setting theADK_EXPERIMENTAL_CONFIG_SCHEMA_PATH environment variable:
ADK_EXPERIMENTAL_CONFIG_SCHEMA_PATH is set, the ADK uses that file instead of the bundled schema. When the variable is unset or empty, validation falls back to the bundled schema.
Validate before pushingExperimental config can affect runtime behavior in subtle ways. Always run
poly validate locally before pushing changes.When to use it
Use experimental config when you need behavior that goes beyond the standard Agent Studio settings. Common use cases include:ASR and TTS tuning
Adjust speech recognition or speech output behavior beyond the standard channel settings.
Experimental platform features
Enable features before they are generally available.
Conversation control
Tune parameters such as silence handling or chunk size behavior.
Feature reference
The following sections describe notable feature areas available in the schema.Audio enhancement
Configure audio enhancement processing applied to the incoming audio stream before speech recognition. Three providers are available:ai-coustics, dolby, and krisp.
ai-coustics VAD
The ai-coustics enhancer supports a vad (voice activity detection) sub-object for tuning how speech is detected in the audio stream.
Example:
krisp
Krisp provides noise cancellation and voice isolation. Settings include:
Example:
Barge-in
The barge-in section supports additional fields to control how interrupted speech is handled and displayed.Interruption granularity
interruption_granularity controls where the split happens in agent speech when the user barges in.
Interruption display
interruption_display controls how interrupted text appears in Agent Studio msg.Text (and in LLM context if interruption_display_llm is not set).
interruption_display_llm
An optional LLM-specific override for interrupted text display. Accepts the same values as interruption_display. When absent, inherits from interruption_display.
truncate_interrupted_utterances
annotate_interrupted_function_calls
Example:
DTMF
Configure DTMF behavior, including disabling speech recognition for DTMF-only steps. Thedtmf object supports a flow_overrides map where each key is a flow name. Per-flow settings include:
Per-step settings (nested under
steps) include:
Example:
Language switching
Configure automatic language switching behavior.
Example:
Memory
Configure agent memory features, including repeat-caller identification.identifier_source
By default, memory lookups use the caller or callee phone number as the identifier. The identifier_source field lets you supply a custom source instead.
Example:
OpenAI Realtime
Configure behavior for the OpenAI Realtime integration, including transcription settings.set_transcriber_language
Example:
Prompts
Theprompts section supports channel-specific and language-related decorator overrides.
Example:
Webhooks
Configure webhook behavior for deployment events, including custom payload templates.payload_template
The payload_template field controls the JSON body sent to a webhook URL. If omitted, the default deployment payload is sent as-is.
Available placeholder fields:
deployment_idaccount_idproject_idclient_envartifact_versiondeployment_typetimestampuser
{{payload}} to inject the entire deployment payload object at a specific position in the template — for example, when a webhook receiver (such as GitHub’s repository_dispatch) requires nesting under a specific key like client_payload.
When {{payload}} is not present in the template, the deployment payload fields are merged at the top level of the rendered result.
Example — GitHub repository_dispatch:
include_kb_functions_in_flows
Controls whether knowledge base (KB) functions from retrieved RAG topics are shown to the model inside flows.
This setting only affects behavior inside flows. Outside flows, KB functions are always shown. It can be overridden per-flow or per-step.
Best practices
- only set values you actually intend to override
- omit defaults rather than copying them unnecessarily
- validate locally with
poly validatebefore pushing - remove flags that are no longer needed
- treat the file as an advanced override layer, not a dumping ground for ordinary config
Related pages
Agent settings
See where experimental config sits within the broader agent settings area.
Speech recognition
Compare experimental ASR controls with standard voice speech-recognition settings.

