🦞参考文档

本文介绍Windows10 + Docker Desktop环境下,OpenClaw源码方式的安装过程,以及免费模型(仅注册,不绑卡,个别需梯)的配置,尽量记录了所有细节和遇到的问题(重新使用新版源码tag v2026.2.9跑了一遍)。

本机或云主机,尤其linux环境直接安装,会简单的多

基础环境准备

Docker Desktop

注意安装Docker Desktop时勾选'Use the WSL 2 based engine'之类的,之前玩Dify时安装的Docker Desktop,具体记不得了,在此不细究了

OpenClaw源码

# 下载源码
## 根据自己的git版本使用合适的命令 
## 自行指定需要的分支或tag, 此处为笔者最后一次从头部署选用的tag v2026.2.9
git switch -c v2026.2.9

安装OpenClaw

在源码中我们发现有一个docker-setup.sh,这其实就是直接的docker build & run相关的脚本,但本地使用Git Bash运行时发现,在openclaw-cli onboard阶段,没有办法选中选项,所以采用了拆解该脚本并使用Power Shell逐步运行的方式。如果可以直接运行,可以跳过本段,查看关注的章节。

1. 官方脚本逻辑解析 (docker-setup.sh)

官方推荐的 docker-setup.sh 实际上执行了以下关键动作:

  1. 环境检查:确认 Docker 和 Docker Compose 已安装。
  2. 目录准备:创建配置和工作区持久化目录。
  3. 配置生成:生成唯一的 OPENCLAW_GATEWAY_TOKEN 并写入 .env
  4. 镜像构建:基于本地 Dockerfile 构建 openclaw:local
  5. 交互引导:运行 openclaw-cli onboard 完成初始化。
  6. 服务启动:拉起 openclaw-gateway 容器。

2. Power Shell逐步执行拆解

第一步:构建镜像

# 源码项目目录下执行
docker build -t openclaw:local -f Dockerfile .

第二步:环境初始化

在项目根目录下创建 .env 文件,并设置持久化目录(方便配置管理,避免容器重启丢失诸多信息)。

# 镜像标签,对应脚本中的 $IMAGE_NAME
OPENCLAW_IMAGE=openclaw:local
# 配置文件物理路径,建议使用绝对路径以防 Docker 解析出错
OPENCLAW_CONFIG_DIR=xxx\openclaw\data\config
# AI 工作区物理路径,AI 生成的文件会存在这里
OPENCLAW_WORKSPACE_DIR=xxx\openclaw\data\workspace
# 浏览器访问网关的端口,默认 18789
OPENCLAW_GATEWAY_PORT=18789
# 遗留的旧版协议 桥接端口
# OPENCLAW_BRIDGE_PORT=18790
OPENCLAW_GATEWAY_BIND=lan
# 关键:通信安全 Token,建议用 openssl rand -hex 32 生成,或填入一个长随机串
OPENCLAW_GATEWAY_TOKEN=b02b8387a938bb55990c7b0113799febbdb543c82ab648af6e783e3da54488d6
# 容器内服务共享目录 /home/node 目录持久化(保存全局安装的 npm 包或工具)
OPENCLAW_HOME_VOLUME=openclaw-home
# 指定额外的物理路径挂载
OPENCLAW_EXTRA_MOUNTS=
# 自定义安装额外系统级别依赖包
OPENCLAW_DOCKER_APT_PACKAGES=

在项目根目录下创建 docker-compose.extra.yml 文件(当设置OPENCLAW_HOME_VOLUMEOPENCLAW_EXTRA_MOUNTS时,docker-setup.sh内会生成该文件)

services:
  openclaw-gateway:
    volumes:
      - openclaw_home:/home/node
      - xxx\openclaw\data\config:/home/node/.openclaw
      - xxx\openclaw\data\workspace:/home/node/.openclaw/workspace
  openclaw-cli:
    volumes:
      - openclaw_home:/home/node
      - xxx\openclaw\data\config:/home/node/.openclaw
      - xxx\openclaw\data\workspace:/home/node/.openclaw/workspace

volumes:
  openclaw_home:

第三步:初始化配置 (Onboarding)

💡 务必注意使用powershell或其他可以在命令窗口选择和确认选项的工具。 在引导中,如果选择Manualmode,建议docken环境下选择:Gateway bind: lan, Auth mode: token 本例中选用QuickStartmode,后续步骤可根据需求来选择,或者先选择skip now等待以后再设置。

docker compose run --rm openclaw-cli onboard --no-install-daemon

选择结束后,注意观察Control UI或是Dashboard ready部分显示的Web UI (with token)或是Dashboard link (with token)http://127.0.0.1:18789/#token=xxx/

而在之前的版本中(笔者首次使用的v2026.2.3中,这里是没有token的,而且手动粘贴token到地址栏也没有效果,观察源码其之前对链接中的token直接移除,并未设置到浏览器本地缓存导致disconnected (1008): unauthorized: gateway token mismatch (open the dashboard URL and paste the token in Control UI settings)的web页面提示).

第四步:启动 Gateway 服务

# 直接使用主配置文件启动
# docker compose up -d openclaw-gateway
# 建议方式,利用我们创建的`docker-compose.extra.yml`文件
docker compose -f docker-compose.yml -f docker-compose.extra.yml up -d

第五步:访问Web UI(填写 Token) & 设备配对

笔者当前重新部署的v2026.2.9版本中已无需手动重新查找token并在web页面填写了,直接使用第三步中看到的带token的地址链接访问即可。 若之前v2026.2.3版本,需从.env文件中配置的持久化目录下找到openclaw.json文件中的gateway.auth.token,复制到web页面中Control栏目下Overview菜单页面Gateway Access卡片中的Gateway Token内容。 不清楚.env中的token还有啥用,docker compose 执行时会带入,没有细究,没做多余测试。

页面正常初次访问后,会有disconnected (1008): pairing required提示,接下来就是首次配对的设置

# 1. 查看请求列表,获取结果中`Pending`部分中的`requestID`
## 可能报错`[openclaw] CLI failed: Error: gateway closed (1008): unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)`
## 💡这里之前的版本具体的报错具体记不清楚了,之前尝试直接更改了`openclaw.json`文件中的`gateway.bind`为`lan`、执行`doctor fix`等等...
## 这次的版本改了之后也依旧报错,还有`[openclaw] CLI failed: Error: gateway closed (1008): pairing required`,都是WebSocket Close时异常。
### 后某次重启`docker compose restart openclaw-gateway`后尝试,莫名可以了...,后反复更改`gateway.bind`后重启,依旧都可以。
### 理论`docker compose up`时会带入`.env`运行生效;没做细究,建议可尝试web面多刷新两次,直接容器重启下之类...
docker compose exec openclaw-gateway node dist/index.js devices list
# 2. 批准请求
docker compose exec openclaw-gateway node dist/index.js devices approve <requestID>

配置免费模型

💡 这里介绍的都是经过验证的、官方提供商的、有一定限制的、仅注册登录无需绑卡的免费模型方案,以及一个本地小模型的兜底方案(暂无过多体感),特别推荐Ollama Cloudz.ai两个,体感良好,额度较多,较稳定快速

模型配置相关主要的配置文件及部分关键值含义

💡更多、更详细、更严谨需求请参阅官方文档 https://docs.openclaw.ai/

  • 主配置文件openclaw.json
    • 包含gateway、hooks、agents、messages等配置
    • 使用agents.defaults.model.primary设置默认模型
    • 使用agents.defaults.model.fallbacks设置回退模型,按声明顺序
    • 使用agents.defaults.models设置模型别名,形如:
    {
      "agents": {
        "defaults": {
          "model": {
            "primary": "ollama-cloud/gpt-oss:120b-cloud",
            "fallbacks": [
              "ollama-cloud/qwen3-coder:480b-cloud",
              "ollama-cloud/glm-4.6:cloud",
              "zai/glm-4.7-flash"
            ]
          },
          "models": {
            "openrouter/auto": {
              "alias": "OpenRouter"
            }
          }
      }
    }
    
  • 认证密钥文件agents\main\agent\auth-profiles.json
    • 存放模型提供商apikey,形如:
    {
      "version": 1,
      "profiles": {
        "ollama-local:default": {
          "type": "api_key",
          "provider": "ollama-local",
          "key": "ollama-local"
        }
      }
    }
    
  • 模型文件agents\main\agent\models.json
    • 对于一些特殊(没有直接受OpenClaw支持)的模型提供服务商,在这里配置,形如:
    {
      "providers": {
        "ollama-local": {
          "baseUrl": "http://host.docker.internal:11434/v1",
          "apiKey": "ollama-local",
          "api": "openai-completions",
          "models": [
            {
              "id": "phi4-mini:3.8b",
              "name": "phi4-mini",
              "reasoning": false,
              "input": [
                "text"
              ],
              "cost": {
                "input": 0,
                "output": 0,
                "cacheRead": 0,
                "cacheWrite": 0
              },
              "contextWindow": 200000,
              "maxTokens": 8192
            }
          ]
        }
      }
    }
    
    • 这里主要注意下apiopenai-completions, openai-responses, anthropic-messages

Ollama Local 推荐指数:★★☆☆☆

地址https://ollama.com/,下载即可,可顺带注册登录申请API keys,供Ollama Cloud方案使用 💡 一定要根据自己本地的配置来选择模型;此外选择带有或直接过滤tools标签的模型;之前v2026.2.3版本下了一个,报错not support tools,当前版本未尝试。

# !!! 前提,安装Ollama
# 模型详情页可直接复制对应命令,十分方便
ollama run model_name

💡 也可在openclaw.json直接配置各个项(未尝试,v2026.2.3版本部署时用的这方式,文件两个版本都有这些,但新版默认生成的位置和方式与之前感觉略有差异)agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容(因本地,key随意填写即可):

"ollama-local:default": {
  "type": "api_key",
  "provider": "ollama-local",
  "key": "ollama-local"
}

agents\main\agent\models.json文件中providers标签中添加以下内容:

"ollama-local": {
  "baseUrl": "http://host.docker.internal:11434/v1",
  "apiKey": "ollama-local",
  "api": "openai-completions",
  "models": [
    {
      "id": "phi4-mini:3.8b",
      "name": "phi4-mini",
      "reasoning": false,
      "input": [
        "text"
      ],
      "cost": {
        "input": 0,
        "output": 0,
        "cacheRead": 0,
        "cacheWrite": 0
      },
      "contextWindow": 200000,
      "maxTokens": 8192
    }
  ]
}

Ollama Cloud 推荐指数:★★★★★

地址https://ollama.com/,注册登录申请API keys即可

💡 此处采用的是调用本地Ollama服务接口访问云端模型,记得需要运行下云端模型或者本地Ollama软件使用云端模型随便对话一次

agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容:

"ollama-cloud:default": {
  "type": "api_key",
  "provider": "ollama-cloud",
  "key": "// 此处填写申请的API keys"
}

agents\main\agent\models.json文件中providers标签中添加以下内容:

"ollama-cloud": {
  "baseUrl": "http://host.docker.internal:11434/v1",
  "apiKey": "ollama-cloud",
  "api": "openai-completions",
  "models": [
    {
      "id": "qwen3-coder:480b-cloud",
      "name": "Qwen3-Coder 480B",
      "reasoning": false,
      "input": [
        "text"
      ],
      "cost": {
        "input": 0,
        "output": 0,
        "cacheRead": 0,
        "cacheWrite": 0
      },
      "contextWindow": 200000,
      "maxTokens": 8192
    },
    {
      "id": "gpt-oss:120b-cloud",
      "name": "gpt-oss 120B",
      "reasoning": false,
      "input": [
        "text"
      ],
      "cost": {
        "input": 0,
        "output": 0,
        "cacheRead": 0,
        "cacheWrite": 0
      },
      "contextWindow": 200000,
      "maxTokens": 8192
    }
  ]
}

Qwen 推荐指数:★★★★☆

参考https://docs.openclaw.ai/providers/qwen,提供了两款免费模型:qwen-portal/coder-modelqwen-portal/vision-model;文档介绍是2,000 requests/day,但笔者之前感受貌似不够这个量

# 启用qwen认证插件
docker compose run --rm openclaw-cli plugins enable qwen-portal-auth
# Restart the Gateway after enabling
docker compose restart openclaw-gateway
# 执行后会显示Qwen OAuth,打开里边的链接进行认证
docker compose run --rm openclaw-cli models auth login --provider qwen-portal --set-default
# 设置模型  提供了两个模型,到`agents\main\agent\models.json`或`openclaw.json`(之前v2026.2.3貌似先写这里,后同步到前一个文件)中查看
docker compose run --rm openclaw-cli models set qwen-portal/coder-model

z.ai 推荐指数:★★★★★

地址https://docs.z.ai/guides/overview/quick-start,注册登录申请API Keys即可

💡 这是最简单的一种,同openrouter等这些受OpenClaw支持的AI提供商一样配置简单

agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容即可:

"zai:default": {
  "type": "api_key",
  "provider": "zai",
  "key": "// your API Keys"
}

OpenRouter 推荐指数:★★☆☆☆

地址https://openrouter.ai/,注册登录申请API Keys即可

💡 这是最简单的一种,同z.ai等这些受OpenClaw支持的AI提供商一样

agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容即可:

"openrouter:default": {
  "type": "api_key",
  "provider": "openrouter",
  "key": "// your API Keys"
}

其他模型

siliconflow

调用付费模型DeepSeep-V3正常,但免费模型没有测试成功,在session文件下的对话文件中看到,报'400 status code (no body)'之类的提示

kimi / moonshot

看到相关的"免费"报道,奔着它来的,反正没用上。。。

nvidia

其他感觉够用,看到有说不咋样,就没去尝试了,肤浅了肤浅了

groq、together、 hugging face...

要么已无免费,要么需要绑卡,没有去尝试了