DeepSeek thinking models work as reasoning models through DashScope
September 23, 20261 min read
Set reasoning_model=DashScope(id="deepseek-v4-pro") on an Agno agent, and the reasoning step now runs. Agno used to decide it wasn't a native reasoning model, log a warning and skip that step. The same ID on the DeepSeek class worked.
The DeepSeek check in Agno requires the DeepSeek class itself, so it never matches DashScope. The OpenAILike check in is_openai_reasoning_model() accepted deepseek-r1 and two MiniMax families. It now also matches IDs containing deepseek-reasoner, deepseek-v3.1, deepseek-v3.2 or deepseek-v4, the same families the DeepSeek check already knows. The match ignores case.
ReasoningManager.is_native_reasoning_model() returns these values for DashScope models (real output):
Before Now
deepseek-v4-pro False True
deepseek-v3.2 False True
deepseek-v3.1-terminus False True
deepseek-reasoner False True
deepseek-r1 True True
deepseek-chat False Falsedeepseek-chat has no thinking mode, so it stays a regular model and Agno's detection order for non-reasoning IDs is unchanged.
See the DashScope examples, and learn more about reasoning models in the documentation.
Frequently asked questions
Agno recognized DeepSeek thinking-mode IDs only on the DeepSeek model class. Through an OpenAILike provider such as DashScope, it accepted only deepseek-r1, so deepseek-v4-pro failed detection and Agno skipped the reasoning step. Agno now recognizes those IDs on any OpenAILike provider.
Any ID containing deepseek-r1, deepseek-reasoner, deepseek-v3.1, deepseek-v3.2 or deepseek-v4, matched case-insensitively. deepseek-chat is not a reasoning model.





