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 pinnedgrok-voice-think-fast-*name) before you sendsession.update. - Console API credits are separate from SuperGrok's weekly pool on grok.com.