feat(stepfun): add step-3.7-flash model (#88082)

* 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 <litianning@stepfun.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
Tianning Li 2026-07-09 14:14:46 +08:00 committed by GitHub
parent 240ca9dbd7
commit 583ca34bf8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 248 additions and 10 deletions

View file

@ -35,16 +35,18 @@ Auth env var: `STEPFUN_API_KEY`
Standard (`stepfun`):
| Model ref | Context | Max output | Notes |
| ------------------------ | ------- | ---------- | ---------------------- |
| `stepfun/step-3.5-flash` | 262,144 | 65,536 | Default standard model |
| Model ref | Context | Max output | Notes |
| ------------------------ | ------- | ---------- | ------------------------------ |
| `stepfun/step-3.5-flash` | 262,144 | 65,536 | Default standard model |
| `stepfun/step-3.7-flash` | 262,144 | 262,144 | Multimodal image input support |
Step Plan (`stepfun-plan`):
| Model ref | Context | Max output | Notes |
| ---------------------------------- | ------- | ---------- | -------------------------- |
| `stepfun-plan/step-3.5-flash` | 262,144 | 65,536 | Default Step Plan model |
| `stepfun-plan/step-3.5-flash-2603` | 262,144 | 65,536 | Additional Step Plan model |
| Model ref | Context | Max output | Notes |
| ---------------------------------- | ------- | ---------- | ------------------------------ |
| `stepfun-plan/step-3.5-flash` | 262,144 | 65,536 | Default Step Plan model |
| `stepfun-plan/step-3.7-flash` | 262,144 | 262,144 | Multimodal image input support |
| `stepfun-plan/step-3.5-flash-2603` | 262,144 | 65,536 | Additional Step Plan model |
## Getting started
@ -84,6 +86,7 @@ Step Plan (`stepfun-plan`):
</Steps>
Default model: `stepfun/step-3.5-flash`
Alternate model: `stepfun/step-3.7-flash`
</Tab>
@ -122,7 +125,7 @@ Step Plan (`stepfun-plan`):
</Steps>
Default model: `stepfun-plan/step-3.5-flash`
Alternate model: `stepfun-plan/step-3.5-flash-2603`
Alternate models: `stepfun-plan/step-3.7-flash`, `stepfun-plan/step-3.5-flash-2603`
</Tab>
</Tabs>
@ -145,6 +148,36 @@ A single auth flow writes region-matched profiles for both `stepfun` and `stepfu
api: "openai-completions",
apiKey: "${STEPFUN_API_KEY}",
models: [
{
id: "step-3.7-flash",
name: "Step 3.7 Flash",
reasoning: true,
input: ["text", "image"],
thinkingLevelMap: { off: "low", minimal: "low", xhigh: "high", max: "high" },
cost: { input: 0.2, output: 1.15, cacheRead: 0.04, cacheWrite: 0 },
contextWindow: 262144,
maxTokens: 262144,
compat: {
supportsStore: false,
supportsDeveloperRole: false,
supportsUsageInStreaming: false,
supportsReasoningEffort: true,
supportsStrictMode: false,
supportedReasoningEfforts: ["low", "medium", "high"],
maxTokensField: "max_tokens",
reasoningEffortMap: {
off: "low",
none: "low",
minimal: "low",
low: "low",
medium: "medium",
high: "high",
xhigh: "high",
adaptive: "high",
max: "high",
},
},
},
{
id: "step-3.5-flash",
name: "Step 3.5 Flash",
@ -175,6 +208,36 @@ A single auth flow writes region-matched profiles for both `stepfun` and `stepfu
api: "openai-completions",
apiKey: "${STEPFUN_API_KEY}",
models: [
{
id: "step-3.7-flash",
name: "Step 3.7 Flash",
reasoning: true,
input: ["text", "image"],
thinkingLevelMap: { off: "low", minimal: "low", xhigh: "high", max: "high" },
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 262144,
maxTokens: 262144,
compat: {
supportsStore: false,
supportsDeveloperRole: false,
supportsUsageInStreaming: false,
supportsReasoningEffort: true,
supportsStrictMode: false,
supportedReasoningEfforts: ["low", "medium", "high"],
maxTokensField: "max_tokens",
reasoningEffortMap: {
off: "low",
none: "low",
minimal: "low",
low: "low",
medium: "medium",
high: "high",
xhigh: "high",
adaptive: "high",
max: "high",
},
},
},
{
id: "step-3.5-flash",
name: "Step 3.5 Flash",
@ -202,6 +265,8 @@ A single auth flow writes region-matched profiles for both `stepfun` and `stepfu
</Accordion>
<Accordion title="Notes">
- `step-3.7-flash` accepts text and image input through OpenClaw. StepFun's API also supports video, which is not yet a model input modality in OpenClaw.
- Step 3.7 supports `low`, `medium`, and `high` reasoning effort. Because the model has no non-reasoning mode, `/think off` maps to `low`.
- `step-3.5-flash-2603` is currently exposed only on `stepfun-plan`.
- Use `openclaw models list` and `openclaw models set <provider/model>` to inspect or switch models.