From 4b784e454c247c647a0db5b46b8be8ac79ab0ec5 Mon Sep 17 00:00:00 2001 From: Him188 Date: Sun, 18 Oct 2026 15:15:08 +0900 Subject: [PATCH] docs(agents): document the echo guard setting Adds an Echo guard section to Agents > Build > Configuration: why some echo can still reach the agent in its first seconds, what the guard does for those 3 seconds, the default per channel, and when to turn it off. The config example shows a new agent's echo_guard value (null). Co-Authored-By: Claude Opus 5.5 --- agents/build/configuration.mdx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/agents/build/configuration.mdx b/agents/build/configuration.mdx index b4b2a77..4c869a6 100644 --- a/agents/build/configuration.mdx +++ b/agents/build/configuration.mdx @@ -61,6 +61,22 @@ A short answer such as "yes" normally lands on the fast path. When the agent ask - `high` (**Easy to interrupt**): The agent stops on the caller's first word. - `conversation.interruption_ignore_phrases` (up to 50 entries of 40 characters): Backchannels such as `"uh-huh"` or `"okay"` that never interrupt the agent when the caller says only them. Matching ignores case and punctuation. Send `[]` to clear the list. +### Echo guard + +Callers' devices and the phone network normally cancel the agent's echo, but in a few calls (under 3%) some echo gets through in the agent's first seconds and cuts it off. + +`conversation.echo_guard` (**Echo guard** in the Builder) prevents this. For 3 seconds after the agent first starts talking, the caller can't interrupt it, and what the caller says over the agent is dropped. [Keypad entries](/agents/telephony/keypad#keypad-input) and the [web SDK](/agents/deploy/web-sdk)'s `interrupt()` still work. + +Each [channel](/agents/build/dynamic-variables#system-variables) has its own key. Set it to `true`, `false`, or `null` for the default. + +| Key | Builder label | Default | +|---|---|---| +| `web_voice` | **Web calls**, including [Preview calls](/agents/test/preview-calls) | On | +| `phone_inbound` | **Inbound phone calls** | On | +| `phone_outbound` | **Outbound phone calls** | Off | + +Turn it off if callers should be able to interrupt the agent within those 3 seconds. + ### Call duration `conversation.max_duration_seconds` (60–3600, default `1800`) ends the session automatically when the limit is reached. @@ -120,6 +136,7 @@ curl --request GET "https://api.fish.audio/v1/agent/agents/$AGENT_ID/config" \ "interruptible": true, "interruption_sensitivity": "balanced", "interruption_ignore_phrases": [], + "echo_guard": null, "speculative_response": true, "timezone": "" }