Qianfan is Baidu's MaaS platform: a unified, OpenAI-compatible API that routes requests to many models behind a single endpoint and API key. Apus ships it as the official external plugin @openclaw/qianfan-provider.

Property Value
Provider qianfan
Auth QIANFAN_API_KEY
API OpenAI-compatible (openai-completions)
Base URL https://qianfan.baidubce.com/v2
Default model qianfan/deepseek-v4-pro

Install plugin

Install the official plugin:

apus plugins install @openclaw/qianfan-provider

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

Getting started

Create a Baidu Cloud account

Sign up or log in at the [Qianfan Console](https://console.bce.baidu.com/qianfan/ais/console/apiKey) and ensure you have Qianfan API access enabled.

Generate an API key

Create a new application or select an existing one, then generate an API key. Baidu Cloud keys use the `bce-v3/ALTAK-...` format.

Run onboarding

```bash
apus onboard --auth-choice qianfan-api-key
```

Non-interactive runs read the key from `--qianfan-api-key <key>` or
`QIANFAN_API_KEY`. Onboarding writes the provider config, adds the
`QIANFAN` alias for the default model, and sets `qianfan/deepseek-v4-pro`
as the default model when none is configured.

Verify the model is available

```bash
apus models list --provider qianfan
```

Built-in catalog

Model ref Input Context Max output Reasoning Notes
qianfan/deepseek-v4-pro text 1,000,000 393,216 Yes Current DeepSeek flagship
qianfan/ernie-5.1 text 128,000 65,536 No Latest ERNIE text flagship
qianfan/ernie-5.0 text, image 128,000 65,536 Yes Current multimodal and thinking model
qianfan/deepseek-v3.2 text 128,000 32,768 No Deprecated onboarding compatibility default; replaced by deepseek-v4-pro
qianfan/ernie-5.0-thinking-preview text, image 128,000 65,536 Yes Deprecated alias; replaced by ernie-5.0

The catalog is static; there is no live model discovery.

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.

You only need to override models.providers.qianfan when you need a custom base URL or model metadata.

Config example

This example explicitly selects the current DeepSeek flagship, which is also the model onboarding sets as the default.

{
  env: { vars: { QIANFAN_API_KEY: "bce-v3/ALTAK-..." } },
  agents: {
    defaults: {
      model: { primary: "qianfan/deepseek-v4-pro" },
      models: {
        "qianfan/deepseek-v4-pro": { alias: "QIANFAN" },
      },
    },
  },
  models: {
    providers: {
      qianfan: {
        baseUrl: "https://qianfan.baidubce.com/v2",
        api: "openai-completions",
        models: [
          {
            id: "deepseek-v4-pro",
            name: "DeepSeek V4 Pro",
            reasoning: true,
            input: ["text"],
            cost: {
              input: 1.771957,
              output: 3.543915,
              cacheRead: 0.147663,
              cacheWrite: 0,
            },
            contextWindow: 1000000,
            maxTokens: 393216,
          },
        ],
      },
    },
  },
}

Model refs use the qianfan/ prefix (for example qianfan/deepseek-v4-pro).

Transport and compatibility
Qianfan runs through the OpenAI-compatible transport path, not native OpenAI request shaping. Standard OpenAI SDK features work, but provider-specific parameters may not be forwarded.
Troubleshooting
- Ensure your API key starts with `bce-v3/ALTAK-` and has Qianfan API access enabled in the Baidu Cloud console.
- If models are not listed, confirm your account has the Qianfan service activated.
- Only change the base URL if you use a custom endpoint or proxy.

Related

Model selection

Choosing providers, model refs, and failover behavior.

Configuration reference

Full Apus configuration reference.

Agent setup

Configuring agent defaults and model assignments.

Qianfan API docs

Official Qianfan API documentation.