fix: add fast voice-call realtime context

This commit is contained in:
Peter Steinberger
2026-05-01 09:46:40 +01:00
parent 38e03d3af3
commit ef186a06d9
15 changed files with 684 additions and 28 deletions

View File

@@ -1,4 +1,4 @@
13b715c3aac380161ec167bccfcfb902c3231a802a08ab7ca9ef760e0c11913a config-baseline.json
d70e31fd5f36d4b117ffa750fba88072d6714edc245a18d4b0915a2d11ce603a config-baseline.json
0a259216178a582c567d1fa48c5236bff4bbd27c3e6af838ffcd042459ffce3c config-baseline.core.json
da8e055ebba0730498703d209f9e2cfaa1484a83f3240e611dcdd7280e22a525 config-baseline.channel.json
8d41287cd9cb696cf8a5e8810bd731b9eda4af9b0829c6dadae2da56e19dc644 config-baseline.plugin.json
4d017161b4dc986fdc6cc68167fedbd1d415ddbcd66125a872e18aa1769cd182 config-baseline.plugin.json

View File

@@ -210,6 +210,7 @@ Current runtime behaviour:
- Bundled realtime voice providers: Google Gemini Live (`google`) and OpenAI (`openai`), registered by their provider plugins.
- Provider-owned raw config lives under `realtime.providers.<providerId>`.
- Voice Call exposes the shared `openclaw_agent_consult` realtime tool by default. The realtime model can call it when the caller asks for deeper reasoning, current information, or normal OpenClaw tools.
- `realtime.fastContext.enabled` is default-off. When enabled, Voice Call first searches indexed memory/session context for the consult question and returns those snippets to the realtime model within `realtime.fastContext.timeoutMs` before falling back to the full consult agent only if `realtime.fastContext.fallbackToConsult` is true.
- If `realtime.provider` points at an unregistered provider, or no realtime voice provider is registered at all, Voice Call logs a warning and skips realtime media instead of failing the whole plugin.
- Consult session keys reuse the existing voice session when available, then fall back to the caller/callee phone number so follow-up consult calls keep context during the call.