最近千问请我喝奶茶,我想了想,还是写一篇OpenClaw接入千问的文章,来帮忙宣传下,毕竟是真金白银请我喝的奶茶。废话不多说,上干货(本文基于真实调试过程整理,不是文档复述,而是可直接跑通的实战方案

本教程适合人群

  • 想在本地运行 OpenClaw Gateway
  • 希望使用阿里云千问(Qwen)而非 OpenAI
  • 遇到「模型无回复 / Unauthorized / 配置不生效」等问题

一、环境准备

在开始之前,请确保你具备以下环境:

  • Node.js:v22 或更高
  • 包管理器:推荐 pnpm
  • 千问 API Key
从  https://dashscope.console.aliyun.com/apiKey 获取

一般以 sk- 开头

二、安装 OpenClaw

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install

安装完成后,不要急着启动,关键在于配置。

三、核心配置:openclaw.json(重点)

OpenClaw 的所有核心行为,都由 openclaw.json 决定。

3.1 配置文件位置(非常关键)

推荐放在项目目录下,例如:

.openclaw-data/
  └── openclaw.json

后面启动时我们会显式指定这个目录。


3.2 千问完整配置模板

⚠️ 请务必直接填写真实 API Key,不要用环境变量占位符

{
  "meta": {
    "version": "1.0.0"
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "qwen-portal/qwen-plus"
      },
      "models": {
        "qwen-portal/qwen-plus": {}
      },
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  },
  "models": {
    "providers": {
      "qwen-portal": {
        "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api": "openai-completions",
        "apiKey": "sk-xxxxxxxxxxxxxxxx",
        "models": [
          {
            "id": "qwen-plus",
            "name": "Qwen Plus",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 128000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "gateway": {
    "mode": "local",
    "auth": {
      "token": "moltx-local-dev"
    }
  },
  "plugins": {
    "entries": {
      "qwen-portal-auth": {
        "enabled": true
      }
    }
  }
}

四、几个必踩的坑(提前告诉你)

1️⃣ baseUrl 配错 = 模型“空回复”

❌ 错误示例:

https://portal.qwen.ai/v1

这是 OAuth / Portal 接口
用 API Key 调用时,模型会直接返回空内容。

✅ 正确写法:

https://dashscope.aliyuncs.com/compatible-mode/v1

2️⃣ API Key 用环境变量,很容易不生效

很多人会写成:

"apiKey": "${DASHSCOPE_API_KEY}"

如果你不是 100% 确认运行时环境变量已注入,
强烈建议直接写死 Key(至少在本地调试阶段)。


3️⃣ Gateway Token 是必须的(否则 Web UI 无法连接)

你只要在 gateway.auth.token 里写了 token:

"token": "qianwen-local-dev"

那 Web UI 必须填同一个值,否则必然:

Unauthorized: gateway token missing

五、启动 OpenClaw Gateway(推荐方式)

5.1 先清理旧进程

pkill -9 -f openclaw-gateway || true

5.2 指定配置目录启动(重点)

OPENCLAW_STATE_DIR=xxxx/openclaw/.openclaw-data \
nohup pnpm openclaw gateway run \
  --bind loopback \
  --port 18789 \
  --force \
  > gateway.log 2>&1 &

⚠️ 不指定 OPENCLAW_STATE_DIR
OpenClaw 会默认读 ~/.openclaw,你改的配置完全不会生效


5.3 验证是否启动成功

tail -n 20 gateway.log

看到以下信息基本就稳了:

  • listening on ws://127.0.0.1:18789
  • agent model: qwen-portal/qwen-plus

六、Web UI 连接方法

  1. 打开浏览器访问:
  2. http://localhost:18789
  3. 如果显示 Disconnected / Unauthorized
  4. 点击左下角 Settings
  5. 填入 Gateway Token:
qianwen-local-dev
  1. 保存后自动重连

七、常见问题速查(FAQ)

Q1:模型不报错但不回内容?

99% 是 baseUrl 配错


Q2:一直 Unauthorized?

Web UI 没填 Gateway Token


Q3:改了配置完全没效果?

启动时没指定 OPENCLAW_STATE_DIR

八、总结

因为默认配置目录在~/.openclaw, 我用的是trae帮忙跑的,trae是用trae-sandbox环境,需要很多申请很多的权限,我索性就把配置目录设置在项目的根目录下,一切正常运行。跑起来就很舒服了,千问背后的大模型是阿里云百炼,有高额度(1000k)的免费token。
每个问题大概消耗12k 的token,如下图

问题的答案也很精准

我问北京的天气,openclaw会先用Brave API key去web_seach,发现本地没有配置,就自动用mac系统的命令行查询(如下截图)

curl -s "wttr.in/Beijing?format=2"

欢迎关注我,我会持续输出openclaw 的相关教程,每个都是干货。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐