#Openai o3 Responses not showing CoT
1 messages · Page 1 of 1 (latest)
Hi @slender umbra. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
Yes—there are a few documented cases and reasons why you might not see visible reasoning (CoT or summaries) with o3 via the Responses API:
- Reasoning summaries are optional and only returned if you request them. Include reasoning: { summary: "auto" | "detailed" } to opt in (model support varies) (Reasoning summaries).
- Even with summaries enabled, summaries may be omitted if the model didn’t produce enough “material” reasoning tokens in that turn—this is expected behavior noted for o‑series models (Avoid Chain of Thought Prompting).
- There was a recent issue where o3 often returned empty reasoning.summary (especially in longer, multi‑turn flows and when tool calls happened before a final text response). OpenAI rolled back the change; summaries should now appear as expected. If you still see empty summaries, share recent request IDs with support for investigation (Forum: o3 omits reasoning summary).
- If your outputs are being cut off due to max_output_tokens or context limits, you may see incomplete responses without visible output; reserve sufficient space (OpenAI recommends ~25,000 tokens buffer for reasoning + output when experimenting) or raise max_output_tokens (Allocating space for reasoning).
- For best tool-calling performance and continuity of reasoning, pass prior reasoning items by using previous_response_id or by including output items (or encrypted_content) between turns; otherwise you may see degraded behavior in complex flows (How Reasoning Models work, Reasoning Items for Better Performance).
Quick checks:
- Add reasoning: { summary: "auto" } to your request and inspect response.output[0].summary. (Reasoning summaries)
- Ensure you’re not hitting max_output_tokens/context limits (Allocating space).
- In multi‑turn/tool-call flows, carry forward reasoning items (or use include=["reasoning.encrypted_content"]) (Encrypted reasoning items).
- If summaries remain empty despite the above, it may be the known (rolled‑back) issue—send recent request IDs to support (Forum confirmation).