StepFun ships as an external official plugin (@openclaw/stepfun-provider) with two provider ids:

Standard and Step Plan are separate providers with different endpoints and model ref prefixes (stepfun/... vs stepfun-plan/...). Use a China key with the .com endpoints and a global key with the .ai endpoints.

Install plugin

apus plugins install @openclaw/stepfun-provider

Installation applies to a running Gateway automatically; otherwise it takes effect on the next startup. See Apply changes and inspect.

Region and endpoint overview

Endpoint China (.com) Global (.ai)
Standard https://api.stepfun.com/v1 https://api.stepfun.ai/v1
Step Plan https://api.stepfun.com/step_plan/v1 https://api.stepfun.ai/step_plan/v1

Auth env var: STEPFUN_API_KEY

Built-in catalog

Setup saves connection settings and aliases without copying generated catalog rows into your config. Explicit models.mode: "replace" keeps catalog seeding enabled; custom model rows stay intact.

Standard (stepfun):

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

Standard

Best for general-purpose use via the standard StepFun endpoint.

Choose your endpoint region

    | Auth choice                    | Endpoint                     | Region        |
    | -------------------------------- | ----------------------------- | -------------- |
    | `stepfun-standard-api-key-intl` | `https://api.stepfun.ai/v1`  | International |
    | `stepfun-standard-api-key-cn`   | `https://api.stepfun.com/v1` | China          |

Run onboarding

    ```bash
    apus onboard --auth-choice stepfun-standard-api-key-intl
    ```

    China endpoint:

    ```bash
    apus onboard --auth-choice stepfun-standard-api-key-cn
    ```

Non-interactive alternative

    ```bash
    apus onboard --non-interactive --accept-risk --skip-health \
      --auth-choice stepfun-standard-api-key-intl \
      --stepfun-api-key "$STEPFUN_API_KEY"
    ```

Verify models are available

    ```bash
    apus models list --provider stepfun
    ```
Default model: `stepfun/step-3.5-flash`
Alternate model: `stepfun/step-3.7-flash`

Step Plan

Best for the Step Plan reasoning endpoint.

Choose your endpoint region

    | Auth choice                 | Endpoint                                | Region        |
    | ------------------------------ | ------------------------------------------ | -------------- |
    | `stepfun-plan-api-key-intl` | `https://api.stepfun.ai/step_plan/v1`  | International |
    | `stepfun-plan-api-key-cn`   | `https://api.stepfun.com/step_plan/v1` | China          |

Run onboarding

    ```bash
    apus onboard --auth-choice stepfun-plan-api-key-intl
    ```

    China endpoint:

    ```bash
    apus onboard --auth-choice stepfun-plan-api-key-cn
    ```

Non-interactive alternative

    ```bash
    apus onboard --non-interactive --accept-risk --skip-health \
      --auth-choice stepfun-plan-api-key-intl \
      --stepfun-api-key "$STEPFUN_API_KEY"
    ```

Verify models are available

    ```bash
    apus models list --provider stepfun-plan
    ```
Default model: `stepfun-plan/step-3.5-flash`
Alternate models: `stepfun-plan/step-3.7-flash`, `stepfun-plan/step-3.5-flash-2603`

A single auth flow writes region-matched profiles for both stepfun and stepfun-plan, so both surfaces are discovered together after one onboarding run.

Advanced configuration

Full config: Standard provider
```json5
{
  env: { vars: { STEPFUN_API_KEY: "your-key" } },
  agents: { defaults: { model: { primary: "stepfun/step-3.5-flash" } } },
  models: {
    mode: "merge",
    providers: {
      stepfun: {
        baseUrl: "https://api.stepfun.ai/v1",
        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,
          },
          {
            id: "step-3.5-flash",
            name: "Step 3.5 Flash",
            reasoning: true,
            input: ["text"],
            cost: { input: 0.1, output: 0.3, cacheRead: 0.02, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 65536,
          },
        ],
      },
    },
  },
}
```
Full config: Step Plan provider
```json5
{
  env: { vars: { STEPFUN_API_KEY: "your-key" } },
  agents: { defaults: { model: { primary: "stepfun-plan/step-3.5-flash" } } },
  models: {
    mode: "merge",
    providers: {
      "stepfun-plan": {
        baseUrl: "https://api.stepfun.ai/step_plan/v1",
        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,
          },
          {
            id: "step-3.5-flash",
            name: "Step 3.5 Flash",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 65536,
          },
          {
            id: "step-3.5-flash-2603",
            name: "Step 3.5 Flash 2603",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 65536,
          },
        ],
      },
    },
  },
}
```
Notes
- `step-3.7-flash` accepts text and image input through Apus. StepFun's API also supports video, which Apus does not declare as an input modality for StepFun models.
- 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 exposed only on `stepfun-plan`.
- Use `apus models list` and `apus models set <provider/model>` to inspect or switch models.

Related

Model providers

Overview of all providers, model refs, and failover behavior.

Configuration reference

Full config schema for providers, models, and plugins.

Models CLI

How to choose and configure models.

StepFun Platform

StepFun API key management and documentation.