Skip to main content
Examples of reasoning models include:
  • OpenAI o1-pro and gpt-5.2
  • Claude 3.7 sonnet in extended-thinking mode
  • Gemini 2.0 flash thinking
  • DeepSeek-R1
Reasoning models think through a plan before they start generating a response. They excel at single-shot use cases: hard problems (coding, math, physics) that don’t require multiple turns or sequential tool calls.

Examples

gpt-5.2

gpt_5_2.py

gpt-5.2 with tools

gpt_5_2_with_tools.py

gpt-5.2 with reasoning effort

gpt_5_2_with_reasoning_effort.py

DeepSeek-R1 using Groq

deepseek_r1_using_groq.py

Reasoning Model + Response Model

When you run the DeepSeek-R1 Agent above, you’ll notice that the response is not that great. This is because DeepSeek-R1 is great at solving problems but not that great at responding in a natural way (like claude sonnet or gpt-4.5). To solve this problem, Agno supports using separate models for reasoning and response generation. This approach leverages a reasoning model for problem-solving while using a different model optimized for natural language responses, combining the strengths of both.

DeepSeek-R1 + Claude Sonnet

deepseek_plus_claude.py

Streaming Reasoning Content

When using a reasoning_model, you can stream the reasoning content as it’s being generated. This allows you to see the model’s thought process in real-time. To enable streaming reasoning, set stream=True and stream_events=True when running the agent:
streaming_reasoning.py

Capturing Reasoning Events

You can also capture individual reasoning events. This gives you fine-grained control over how reasoning content is displayed:
capture_reasoning_events.py
The key events for streaming reasoning are:

Developer Resources