Skip to main content
The reasoning parameter accepts effort and summary fields. Reasoning output appears as dedicated reasoning output items separate from text content.

Prerequisites

  • An Auriko API key
  • Python 3.10+ with the OpenAI SDK (pip install openai) or the Auriko SDK (pip install auriko)
    • OR Node.js 18+ with the OpenAI SDK (npm install openai) or @auriko/sdk (npm install @auriko/sdk)

Set reasoning effort

Set the reasoning effort level:
Effort levels: none, minimal, low, medium, high, xhigh, max, off. Auriko normalizes these levels across providers. See Extensions and Thinking for the provider support table.

Access reasoning summaries

Request reasoning summaries with the summary field (or its alias generate_summary):
Not all models provide reasoning summaries. Check the summary array on the reasoning output item in the response. See Extensions and Thinking for which models support reasoning summaries.

Stream reasoning

Stream reasoning summary events:

Map parameters

Chat CompletionsResponse API
reasoning_effort: "high"reasoning: {effort: "high"}
choices[0].message.reasoning_contentoutput[].type: "reasoning" with summary blocks
reasoning_effort in extra_body (OpenAI SDK)reasoning is a native parameter (OpenAI SDK)
The OpenAI SDK supports reasoning as a top-level parameter on client.responses.create(). You don’t need extra_body for reasoning in the Response API.

Preserve reasoning across turns

Include the full reasoning output item (with encrypted_content if present) in subsequent input. Models use the encrypted content to maintain reasoning context. Omitting it starts reasoning from scratch.
The same pattern applies in TypeScript with await client.responses.create() and spreading response.output. See Extensions and Thinking for effort normalization, provider support, and sampling constraints.