Skip to main content
More tools

QwenPaw

Open-source personal AI assistant from the AgentScope team

It supports local and cloud deployment, and integrates with QwenCloud via Token Plan Individual, Token Plan Team Edition, or pay-as-you-go.
When using qwen4-max-preview, 1.1.x defaults to max_tokens=8192; raise it in generate_kwargs.max_tokens. For 2.2.x, setting it explicitly is also recommended.

Install QwenPaw

Use the pip package or one-click installation script. For Docker, desktop app, or ModelScope online runtime, see the QwenPaw official documentation.
  • pip install
  • One-click script
Requires Python 3.10 ~ 3.13:
pip install qwenpaw
qwenpaw init --defaults
qwenpaw app
After launch, visit http://127.0.0.1:8088/ to open QwenPaw Console.

Quick Start

1

Get an API key

Get the API key for your billing plan:
2

Configure the model

qwenpaw models config
Follow the prompts to select a provider, paste the API key, and select a model. Provider mapping:
  • Token Plan: Aliyun Token Plan (aliyun-tokenplan)
  • Pay-as-you-go: DashScope (dashscope)
3

Verify

qwenpaw task -i "Hello"
A status: success response confirms the configuration.

Configure in the Console

You can also configure it in the Console: start QwenPaw and open QwenPaw Console at http://127.0.0.1:8088/.
1

Configure the provider

Go to Settings > Models and configure the provider for your billing plan:
  • Token Plan
  • Pay-as-you-go
Select the built-in Aliyun Token Plan provider and enter your Token Plan Individual or Team Edition API key.
2

Select or add a model

Common models are preconfigured. To add one, click Add Model and enter a model ID:
  • Token Plan: a text generation model supported by Individual or Team Edition
  • Pay-as-you-go: for example, qwen3.8-max or qwen3.8-flash
3

Set the default model

Go to Settings > Models > Default LLM, select a model, and click Save. The dropdown in the top-right of the chat page switches the provider and model for the current session.

Configure with a configuration file

In addition to the options above, you can also connect using a configuration file.
1

Open or create the configuration file

~/.qwenpaw.secret/providers/custom/<provider-id>.json
2

Write the configuration

  • Token Plan Individual
  • Token Plan Team Edition
  • Pay-as-you-go
{
  "id": "qwencloud-token-plan-personal",
  "name": "QwenCloud",
  "base_url": "https://token-plan.maas.qwencloudapi.com/compatible-mode/v1",
  "api_key": "YOUR_API_KEY",
  "chat_model": "OpenAIChatModel",
  "models": [
    {
      "id": "auto",
      "name": "Auto",
      "supports_image": false,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "qwen4-max-preview",
      "name": "Qwen4 Max Preview",
      "supports_image": true,
      "max_tokens": 131072,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "qwen3.8-max",
      "name": "Qwen3.8 Max",
      "supports_image": true,
      "max_tokens": 131072,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "qwen3.8-flash",
      "name": "Qwen3.8 Flash",
      "supports_image": true,
      "max_tokens": 131072,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "qwen3.7-max",
      "name": "Qwen3.7 Max",
      "supports_image": false,
      "max_tokens": 131072,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "qwen3.7-plus",
      "name": "Qwen3.7 Plus",
      "supports_image": true,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "qwen3.6-flash",
      "name": "Qwen3.6 Flash",
      "supports_image": true,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "deepseek-v4.1-flash",
      "name": "DeepSeek V4.1 Flash",
      "supports_image": true,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "deepseek-v4.1-flash-1017",
      "name": "DeepSeek V4.1 Flash 1017",
      "supports_image": true,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "deepseek-v4-pro",
      "name": "DeepSeek V4 Pro",
      "supports_image": false,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "deepseek-v4-pro-0813",
      "name": "DeepSeek V4 Pro 0813",
      "supports_image": false,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "deepseek-v4-flash-0731",
      "name": "DeepSeek V4 Flash 0731",
      "supports_image": false,
      "max_tokens": 65536,
      "max_input_length": 1000000,
      "generate_kwargs": {}
    },
    {
      "id": "glm-5.3",
      "name": "GLM-5.3",
      "supports_image": false,
      "max_tokens": 16384,
      "max_input_length": 202752,
      "generate_kwargs": {}
    },
    {
      "id": "glm-5.2",
      "name": "GLM-5.2",
      "supports_image": false,
      "max_tokens": 16384,
      "max_input_length": 202752,
      "generate_kwargs": {}
    }
  ],
  "is_custom": true
}

FAQ

Error codes

Troubleshoot by billing plan:

Error 401 Incorrect API key provided

Possible causes:
  • API Keys are not interchangeable across the three billing plans. Make sure the API Key and Base URL come from the same plan.
  • The pay-as-you-go API Key and Base URL are in different regions.

Context length exceeded during long conversations or tool calls

On the provider Settings page for that model, expand Advanced Configuration and adjust generation parameters such as max_tokens in JSON format, then save:
{
  "temperature": 0.7,
  "top_p": 0.9,
  "max_tokens": 4096
}
QwenPaw - QwenCloud