Skip to content
Changelog

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    False

deepseek-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.

Shipped around the same time