Add Step 3.7 Flash and StepFun Step Plan providers#1903
Conversation
Add step-3.7-flash.toml for both providers (released 2026-05-29, multimodal text/image/video input, 256K context, open weights) plus provider logos.
Add stepfun-step-plan (api.stepfun.com/step_plan/v1) and stepfun-ai-step-plan (api.stepfun.ai/step_plan/v1) providers for the StepFun step-plan reasoning API. Models: step-3.7-flash, step-3.5-flash, step-3.5-flash-2603 in both; step-router-v1 in the .com provider only. All step-plan models omit cost (plan-based billing). Fix stepfun-ai provider to point at the standard api.stepfun.ai/v1 endpoint and overview doc, separating it cleanly from the step-plan API.
|
@lit26
|
- Convert step-3.7-flash China cost from copied global USD to RMB-converted USD (0.185/1.11/0.037 from ¥1.35/8.1/0.27), matching step-3.5-flash convention - Rename providers to disambiguate China vs Global variants
|
Thanks @hengm3467! Addressed in 467363a:
|
|
AUTOMATED REVIEW: This PR is not yet compliant with the model/provider contribution requirements. Please use the available StepFun canonical metadata via All eight of those reasoning model files must explicitly specify The logos for the two new providers, |
- Collapse stepfun/stepfun-ai/*-step-plan model files to base_model refs - Add reasoning_options (effort levels) per model - Add benchmarks and update knowledge date on base step-3.7-flash - Normalize logo.svg viewBox
|
Pushed an update (f55836a):
|
|
Hoping that this will be merged soon - it's annoying that 3.7 isn't available without config changes in Opencode. |
…d-step-3.7-flash # Conflicts: # providers/stepfun-ai/provider.toml # providers/stepfun/models/step-3.7-flash.toml
Merge resolution dropped the reasoning-format documentation comments from stepfun-ai/provider.toml. Restore them (mirroring the China stepfun/provider.toml block, adapted to the global .ai /v1 endpoints) per reviewer request on PR anomalyco#1903.
Output was artificially capped at 65536; StepFun docs set max_tokens default to INF, bounded only by the 256K context window. Raise step-3.7-flash maxTokens to 262144 on both stepfun and stepfun-plan, matching contextWindow. Per models.dev anomalyco/models.dev#1903. step-3.5-flash entries unchanged.
Step Plan endpoint bills per subscription plan, not per token, matching the sibling stepfun-plan/step-3.5-flash and step-3.5-flash-2603 entries which already carry zero cost. Standard stepfun/step-3.7-flash keeps its per-token rate. Per models.dev anomalyco/models.dev#1903, whose step-plan providers omit cost entirely.
# Conflicts: # providers/stepfun/models/step-3.7-flash.toml
# Conflicts: # providers/stepfun-ai/models/step-3.7-flash.toml # providers/stepfun-ai/models/step-3.7-flash.toml~HEAD
| # POST /v1/chat/completions uses top-level `reasoning_effort`; POST /v1/messages | ||
| # uses `output_config.effort`; POST /v1/responses uses `reasoning.effort`. | ||
| # Values are low/medium/high for step-3.7-flash; step-3.5-flash-2603 accepts | ||
| # low/high. Responses supports only step-3.7-flash. Chat returns reasoning at | ||
| # `choices[].message.reasoning` or streamed `choices[].delta.reasoning`; | ||
| # `reasoning_format` is general (default), the latter using `reasoning_content`. |
There was a problem hiding this comment.
the comments document effort as being supported but none of the models specify reasoning options correctly if that is the case?
There was a problem hiding this comment.
The docs match now: effort reasoning_options are declared for the actual reasoning models across all four providers — step-3.7-flash (low/medium/high), step-3.5-flash and step-3.5-flash-2603 (low/high). step-1-32k/step-2-16k are legacy Step 1/Step 2 chat models and step-router-v1 is a dispatcher — none are reasoning models per StepFun's docs, so they're now reasoning = false rather than reasoning = true with empty options
* feat(stepfun): add step-3.7-flash model and make it default * fix(stepfun): set step-3.7-flash cacheRead cost to 0.04 * fix(stepfun): raise step-3.7-flash maxTokens to context limit Output was artificially capped at 65536; StepFun docs set max_tokens default to INF, bounded only by the 256K context window. Raise step-3.7-flash maxTokens to 262144 on both stepfun and stepfun-plan, matching contextWindow. Per models.dev anomalyco/models.dev#1903. step-3.5-flash entries unchanged. * fix(stepfun): zero step-plan step-3.7-flash cost for plan billing Step Plan endpoint bills per subscription plan, not per token, matching the sibling stepfun-plan/step-3.5-flash and step-3.5-flash-2603 entries which already carry zero cost. Standard stepfun/step-3.7-flash keeps its per-token rate. Per models.dev anomalyco/models.dev#1903, whose step-plan providers omit cost entirely. * docs(changelog): note StepFun 3.7 support * style(stepfun): format provider table * fix(stepfun): forward reasoning effort * fix(stepfun): scope reasoning compat to 3.7 * test(stepfun): keep 3.5 reasoning compat unchanged * fix(stepfun): carry off fallback through agent turns * fix(stepfun): use documented token limit field * fix(stepfun): match chat completions contract * chore(stepfun): keep changelog release-owned --------- Co-authored-by: Tianning Li <[email protected]> Co-authored-by: Peter Steinberger <[email protected]>
* feat(stepfun): add step-3.7-flash model and make it default * fix(stepfun): set step-3.7-flash cacheRead cost to 0.04 * fix(stepfun): raise step-3.7-flash maxTokens to context limit Output was artificially capped at 65536; StepFun docs set max_tokens default to INF, bounded only by the 256K context window. Raise step-3.7-flash maxTokens to 262144 on both stepfun and stepfun-plan, matching contextWindow. Per models.dev anomalyco/models.dev#1903. step-3.5-flash entries unchanged. * fix(stepfun): zero step-plan step-3.7-flash cost for plan billing Step Plan endpoint bills per subscription plan, not per token, matching the sibling stepfun-plan/step-3.5-flash and step-3.5-flash-2603 entries which already carry zero cost. Standard stepfun/step-3.7-flash keeps its per-token rate. Per models.dev anomalyco/models.dev#1903, whose step-plan providers omit cost entirely. * docs(changelog): note StepFun 3.7 support * style(stepfun): format provider table * fix(stepfun): forward reasoning effort * fix(stepfun): scope reasoning compat to 3.7 * test(stepfun): keep 3.5 reasoning compat unchanged * fix(stepfun): carry off fallback through agent turns * fix(stepfun): use documented token limit field * fix(stepfun): match chat completions contract * chore(stepfun): keep changelog release-owned --------- Co-authored-by: Tianning Li <[email protected]> Co-authored-by: Peter Steinberger <[email protected]>
Step 1/Step 2 are legacy chat models, not reasoning models, so drop the placeholder reasoning=true/reasoning_options=[]. Give step-3.5-flash the effort low/high options its 2603 snapshot already declares, matching the provider reasoning-HTTP-format comment. Symlinked into stepfun-ai.
…easoning step-3.5-flash on both step-plan providers now declares effort low/high, matching the stepfun/stepfun-ai variants and its own 2603 snapshot. Step Router v1 is a dispatcher, not a reasoning model (per StepFun docs), so reasoning=false.
|
Here is my review: Review: PR #1903 — Add Step 3.7 Flash and StepFun Step Plan providersHard blockers: None ✅All hard blockers from the contribution checklist are satisfied:
Non-blocking recommendations
SummaryWell-structured PR. The |
- Move video modality to base model step-3.7-flash; drop redundant per-provider [modalities] overrides (all 4 providers inherit video) - Add # Reasoning HTTP format comment to both step-plan provider.toml - Move reasoning-effort comments to top of model TOMLs for sync safety - Logo cleanup: drop root fill=none, clipPath rect fill; add trailing newline
|
Reviewed the PR metadata, diff, AGENTS.md, README, schema, sync.md, and the reasoning-options audit guide, then reconstructed the final state of each changed file against the base checkout. No blockers found: the four stepfun providers all ship compliant logos (square
|
# Conflicts: # models/stepfun/step-3.7-flash.toml
Add [interleaved] reasoning_content field to all step-plan model files and normalize to multi-line TOML form matching the direct-API providers. Step-plan comment omits the Responses endpoint clause (no plan Responses endpoint per provider docs).
Action items
|
Global step-plan model docs now point to the .ai/en guides instead of the China .com/zh pages. Links verified live.
|
Thanks for the review — status on each action item: Resolved in the current branch
Cited (PR body updated)
|
Summary
step-3.7-flash.toml+logo.svgforstepfunandstepfun-aiprovidersstepfun-step-planprovider (api.stepfun.com/step_plan/v1) — step-plan reasoning API (zh)stepfun-ai-step-planprovider (api.stepfun.ai/step_plan/v1) — step-plan reasoning API (en)stepfun-aito use standardapi.stepfun.ai/v1endpoint + overview doc (was incorrectly onstep_plan/v1)reasoning = falseonstep-1-32k/step-2-16k(legacy chat models, not reasoning models)Step Plan providers
Step-plan reasoning API (refs: zh, en). Supports
reasoning_effortlow/medium/high.Models:
step-3.7-flash,step-3.5-flash,step-3.5-flash-2603— in both providersstep-router-v1—stepfun-step-plan(.com) onlyAll step-plan models omit
[cost]: billing is plan-based, not per-token.Step 3.7 Flash details
models/stepfun/step-3.7-flash.toml)Sources / citations
step-1-32kandstep-2-16kare legacy non-reasoning chat models and are absent from the reasoning list, hencereasoning = false(they were incorrectlyreasoning = trueondev).0.185 / 1.11 / 0.037are the USD conversions.$0.20in /$1.15out /$0.04cache read per 1M (standardapi.stepfun.ai/v1).2026-03-01— StepFun publishes no official cutoff; this remains an estimate from the model's release/training timeline. Will revise if an authoritative source surfaces.Test plan
bun validatepasses (EXIT 0); all providers load