VOICE / set-voice-reasoning-effort

Voice

Set Speech to Speech reasoning effort

Set Speech to Speech reasoning effort

On session.update, set reasoning.effort to "high" or "none". Default is "high" for complex multi-step instructions, nuanced tone, and ambiguous queries. Set "none" when you want faster, simpler turns without that thinking pass.

Works on voice models such as grok-voice-latest (alias for grok-voice-think-fast-2.0) over wss://api.x.ai/v1/realtime.

import json

await ws.send(json.dumps({
    "type": "session.update",
    "session": {
        "voice": "eve",
        "instructions": "You are a helpful assistant.",
        "reasoning": {
            "effort": "none"
        },
        "turn_detection": {"type": "server_vad"}
    }
}))
ws.send(JSON.stringify({
  type: "session.update",
  session: {
    voice: "eve",
    instructions: "You are a helpful assistant.",
    reasoning: {
      effort: "high"
    },
    turn_detection: { type: "server_vad" }
  }
}));

Pair reasoning.effort with the same session.update block you already use for voice, instructions, and audio settings. You can change it mid-session when a turn needs more or less depth.

Pitfalls

  • Voice accepts only "high" and "none". Text reasoning models use a different set (low / medium / high / xhigh).
  • "high" costs more latency and thinking tokens. Use "none" for short IVR-style prompts where speed matters more.
  • Connect at wss://api.x.ai/v1/realtime?model=grok-voice-latest (or a pinned grok-voice-think-fast-* name) before you send session.update.
  • Console API credits are separate from SuperGrok's weekly pool on grok.com.