StepFun Step 3.7 Flash on DashScope: The Non-Standard Fields Your Routing Proxy Must Handle
StepFun's Step 3.7 Flash landed on DashScope on May 29 as a multimodal Flash-tier model with optional thinking mode. The operator catch: thinking is toggled via extra_body, not a standard OpenAI parameter — a pattern that breaks naive routing proxies.
Archive item produced with AI assistance from the cited source and published without individual review. Editor of record: Joe Werner.

When a new model lands on DashScope, the routing question is rarely just "should I use it?" It is "does my proxy handle its API surface correctly?" StepFun's Step 3.7 Flash, added to DashScope on May 29, introduces a thinking-mode toggle that sits outside the standard OpenAI chat completions schema — and that gap is where routing proxies quietly break.
What happened
Alibaba Cloud Model Studio added stepfun/step-3.7-flash to its DashScope catalog on May 29, 2026. The model is described as a multimodal reasoning model supplied directly by StepFun (阶跃星辰), positioned as the "Flash tier next-gen flagship" with upgrades across search, agent tasks, coding, and multimodal understanding.
The model is accessible via the standard DashScope OpenAI-compatible endpoint:
base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
model: stepfun/step-3.7-flash
The key API behavior: thinking mode is off by default. To enable it, callers must pass enable_thinking: true inside extra_body. When enabled, the model returns its reasoning trace in a reasoning_content field on the delta, separate from the standard content field. Callers can also control reasoning depth via reasoning_effort with values low, medium, or high.
Why it matters for AI engineering teams
The extra_body pattern is how DashScope (and several other Chinese providers) expose model-specific parameters that have no equivalent in the OpenAI spec. It works fine when you call the API directly with the OpenAI SDK — the SDK passes extra_body fields through to the request body without validation. But it creates a specific failure mode in routing layers.
Most OpenAI-compatible routing proxies strip or ignore unknown top-level request fields. If your proxy forwards the request body but drops extra_body contents, the model receives the call without enable_thinking: true, silently falls back to non-thinking mode, and returns a response that looks correct but is missing the reasoning trace your application expected. There is no error — just a different model behavior.
The reasoning_content field on the response side creates a symmetric problem. If your proxy normalizes responses to the standard OpenAI schema before forwarding them to clients, it may drop reasoning_content entirely. Applications that parse the delta for reasoning traces will receive empty strings.
This is not a StepFun-specific issue. The same pattern applies to Qwen3 models (enable_thinking, thinking_budget), DeepSeek V4 (thinking.type, reasoning_effort), and other DashScope-hosted models that expose thinking controls via non-standard fields. Step 3.7 Flash is the latest addition to this class.
The router/operator angle
For teams routing across DashScope-hosted models, Step 3.7 Flash introduces a decision point that goes beyond model selection:
1. Audit your proxy's extra_body handling. If you are using a routing layer between your application and DashScope, test whether extra_body fields survive the round trip. Send a request with enable_thinking: true and check whether the response includes reasoning_content in the stream deltas. If it does not, your proxy is silently dropping the thinking toggle.
2. Decide whether to expose thinking mode to callers or manage it at the routing layer. There are two valid architectures: let callers pass enable_thinking directly (requires your proxy to pass extra_body through), or have your routing layer inject enable_thinking: true for specific model routes based on task classification. The second approach gives you centralized control but requires your routing config to know which models support the field.
3. Handle reasoning_content in your response normalization. If your proxy normalizes streaming responses, add explicit handling for reasoning_content in delta objects. Decide whether to forward it to clients, strip it, or log it separately for observability. Silently dropping it is the worst outcome — it makes debugging thinking-mode behavior impossible.
4. Consider thinking mode as a routing signal, not just a model feature. Step 3.7 Flash with reasoning_effort: high behaves differently from Step 3.7 Flash with thinking off — different latency, different token cost, different output quality. If you are routing based on task complexity, the thinking toggle is effectively a second routing dimension within the same model. A task that warrants the Flash tier but needs deep reasoning can use reasoning_effort: high; a latency-sensitive task on the same model can leave thinking off.
5. Region constraint: Beijing only. The DashScope docs note that stepfun/step-3.7-flash is currently available only in the China North 2 (Beijing) region and requires a Beijing-region API key. If your routing policy spans DashScope regions, this model cannot be used as a global fallback — it needs a region-specific routing rule.
What TheRouter users should watch or try
The extra_body passthrough problem is a good test case for any routing layer. If you are evaluating whether your current proxy handles DashScope's extended parameter surface correctly:
- Send a test request to
stepfun/step-3.7-flashwithextra_body: { enable_thinking: true }and verify thatreasoning_contentappears in the stream response. - If it does not, check whether your proxy has an explicit
extra_bodypassthrough setting or whether you need to flatten the thinking parameters into the top-level request body for that provider. - For production routing policies, treat thinking-mode models as a distinct tier: they have higher per-token cost when thinking is enabled, higher latency, and a different response schema. Route to them explicitly for tasks that benefit from extended reasoning, not as a drop-in replacement for standard Flash-tier calls.
The broader pattern here is that the Chinese provider ecosystem is converging on a shared thinking-mode API surface — enable_thinking, reasoning_content, reasoning_effort — but the field names and placement vary enough across providers that each one needs explicit handling in your routing config. Step 3.7 Flash is the latest model to join that list.

qwen3.8-max DashScope Routing Policy: Endpoint, Reasoning, and Region Checks
qwen3.8-max DashScope routing policy now starts with region-scoped endpoints, Responses API reasoning, and whether your gateway preserves reasoning_content.

Qwen3.8-Max Is Now DashScope's Top-Tier Model: What the Flagship Upgrade Means for Your Routing Policy
Alibaba's qwen3.8-max lands on DashScope with 2.4T parameters, 1M context, and thinking mode — while qwen3.7-max drops to legacy. Here is what changes for teams routing to Qwen's flagship tier.

DashScope Managed Agents API Goes Commercial: What the New Workspace-Scoped Agent Runtime Means for Your Routing Architecture
Alibaba Cloud's Managed Agents API enters commercial billing on August 17. The workspace-scoped agent runtime introduces a new endpoint namespace and SDK gate every DashScope operator must audit now.