飞书/钉钉/QQ 机器人一站式搞定!OpenClaw Docker 部署教程

飞书/钉钉/QQ 机器人一站式搞定!OpenClaw Docker 部署教程

一、概述

OpenClaw-Docker-CN-IM(OpenClaw 中国IM平台整合Docker版本)是一款容器化应用,旨在提供集成中国主流IM平台的AI机器人网关解决方案。该镜像预装并配置了飞书、钉钉、QQ机器人、企业微信等插件,支持通过环境变量灵活配置,实现快速部署与数据持久化。

同时集成了OpenCode AI代码助手、Playwright浏览器自动化工具及中文TTS语音合成功能,适用于需要构建多平台IM机器人的开发者与科研用户。

本指南将详细介绍其Docker部署流程,包括环境准备、镜像拉取、容器配置、功能测试及生产环境优化建议,帮助用户快速实现服务部署与应用。

二、项目简介与核心特性

2.1 项目简介

OpenClaw 中国 IM 插件整合版 Docker 镜像,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国 IM 平台插件,让您可以快速部署一个支持多个中国 IM 平台的 AI 机器人网关。

官方项目地址: https://github.com/justlovemaki/OpenClaw-Docker-CN-IM

国内镜像地址:

2.2 核心特性

  • 🚀 开箱即用:预装所有中国主流 IM 平台插件
  • 🔧 灵活配置:通过环境变量轻松配置各平台凭证
  • 🐳 Docker 部署:一键启动,无需复杂配置
  • 📦 数据持久化:支持配置和工作空间数据持久化
  • 💻 OpenCode AI:内置 AI 代码助手,支持智能代码生成和分析
  • 🎭 Playwright:预装浏览器自动化工具,支持网页操作和截图
  • 🗣️ 中文 TTS:支持中文语音合成(Text-to-Speech)

2.3 支持的平台

2.3.1 IM 平台

  • ✅ 飞书(Feishu/Lark)
  • ✅ 钉钉(DingTalk)
  • ✅ QQ 机器人(QQ Bot)
  • ✅ 企业微信(WeCom)

2.3.2 集成工具

  • ✅ OpenCode AI - AI 代码助手
  • ✅ Playwright - 浏览器自动化
  • ✅ 中文 TTS - 语音合成

推荐搭配:OpenClaw 功能强大但 Token 消耗较大,推荐配合 AIClient-2-API 项目使用,将各大 AI 客户端转换为标准 API 接口,实现无限 Token 调用,彻底解决 Token 焦虑!本项目已支持 OpenAI 和 Claude 两种协议,可直接对接 AIClient-2-API 服务。

三、环境准备

3.1 Docker环境安装

部署OpenClaw-Docker-CN-IM前需确保Docker环境已正确安装。推荐使用以下一键安装脚本(适用于Linux系统):

bash<(wget -qO- https://xuanyuan.cloud/docker.sh)

安装完成后,可通过以下命令验证Docker是否正常运行:

docker--version# 检查Docker版本docker info # 查看Docker系统信息

四、镜像准备

4.1 拉取镜像

使用以下命令通过轩辕镜像访问支持域名拉取最新版本的 OpenClaw-Docker-CN-IM 镜像(拉取后将在配置文件中直接引用,确保镜像有效使用):

docker pull docker.xuanyuan.run/justlikemaki/openclaw-docker-cn-im:latest 

拉取完成后,可通过以下命令验证镜像是否成功下载:

docker images |grep justlikemaki/openclaw-docker-cn-im 

轩辕镜像地址:https://xuanyuan.cloud/zh/r/justlikemaki/openclaw-docker-cn-im

备用拉取命令(直接从Docker Hub拉取):

docker pull justlikemaki/openclaw-docker-cn-im:latest 

五、快速开始(一键部署)

按照以下步骤,可快速启动OpenClaw-Docker-CN-IM服务,无需复杂配置。

5.1 获取配置文件

无需下载配置文件,直接复制以下完整内容,分别创建 docker-compose.yml 和 .env.example 文件(两个文件需放在同一目录下):

5.1.1 docker-compose.yml 完整内容

version: '3.8' services: openclaw-gateway: container_name: openclaw-gateway image: ${OPENCLAW_IMAGE}# 引用.env文件中的镜像配置,默认使用轩辕拉取的镜像 cap_add: - CHOWN - SETUID - SETGID - DAC_OVERRIDE # 可选:指定容器运行 UID:GID(例如 1000:1000)# 默认保持 root 启动,以便 init.sh 自动修复挂载卷权限后再降权运行网关 user: ${OPENCLAW_RUN_USER:-0:0} environment: TZ: Asia/Shanghai HOME: /home/node TERM: xterm-256color # 模型配置 SYNC_MODEL_CONFIG: ${SYNC_MODEL_CONFIG} MODEL_ID: ${MODEL_ID} IMAGE_MODEL_ID: ${IMAGE_MODEL_ID} BASE_URL: ${BASE_URL} API_KEY: ${API_KEY} API_PROTOCOL: ${API_PROTOCOL} CONTEXT_WINDOW: ${CONTEXT_WINDOW} MAX_TOKENS: ${MAX_TOKENS}# 提供商 2 (可选) MODEL2_NAME: ${MODEL2_NAME} MODEL2_MODEL_ID: ${MODEL2_MODEL_ID} MODEL2_BASE_URL: ${MODEL2_BASE_URL} MODEL2_API_KEY: ${MODEL2_API_KEY} MODEL2_PROTOCOL: ${MODEL2_PROTOCOL} MODEL2_CONTEXT_WINDOW: ${MODEL2_CONTEXT_WINDOW} MODEL2_MAX_TOKENS: ${MODEL2_MAX_TOKENS}# 通道配置 TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} FEISHU_APP_ID: ${FEISHU_APP_ID} FEISHU_APP_SECRET: ${FEISHU_APP_SECRET} DINGTALK_CLIENT_ID: ${DINGTALK_CLIENT_ID} DINGTALK_CLIENT_SECRET: ${DINGTALK_CLIENT_SECRET} DINGTALK_ROBOT_CODE: ${DINGTALK_ROBOT_CODE} DINGTALK_CORP_ID: ${DINGTALK_CORP_ID} DINGTALK_AGENT_ID: ${DINGTALK_AGENT_ID} QQBOT_APP_ID: ${QQBOT_APP_ID} QQBOT_CLIENT_SECRET: ${QQBOT_CLIENT_SECRET} NAPCAT_REVERSE_WS_PORT: ${NAPCAT_REVERSE_WS_PORT} NAPCAT_HTTP_URL: ${NAPCAT_HTTP_URL} NAPCAT_ACCESS_TOKEN: ${NAPCAT_ACCESS_TOKEN} NAPCAT_ADMINS: ${NAPCAT_ADMINS}# 企业微信配置 WECOM_TOKEN: ${WECOM_TOKEN} WECOM_ENCODING_AES_KEY: ${WECOM_ENCODING_AES_KEY}# 企业微信多账号配置(JSON 字符串,示例见 .env.example) WECOM_BOTS_JSON: ${WECOM_BOTS_JSON}# 工作空间配置 WORKSPACE: ${WORKSPACE}# Gateway 配置 OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND} OPENCLAW_GATEWAY_PORT: ${OPENCLAW_GATEWAY_PORT} OPENCLAW_BRIDGE_PORT: ${OPENCLAW_BRIDGE_PORT} OPENCLAW_GATEWAY_MODE: ${OPENCLAW_GATEWAY_MODE} OPENCLAW_GATEWAY_ALLOWED_ORIGINS: ${OPENCLAW_GATEWAY_ALLOWED_ORIGINS} OPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH: ${OPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH} OPENCLAW_GATEWAY_DANGEROUSLY_DISABLE_DEVICE_AUTH: ${OPENCLAW_GATEWAY_DANGEROUSLY_DISABLE_DEVICE_AUTH} OPENCLAW_GATEWAY_AUTH_MODE: ${OPENCLAW_GATEWAY_AUTH_MODE}# 插件控制 OPENCLAW_PLUGINS_ENABLED: ${OPENCLAW_PLUGINS_ENABLED} volumes: - ${OPENCLAW_DATA_DIR}:/home/node/.openclaw # 使用匿名卷排除 extensions 目录,使用镜像中预装的插件 - /home/node/.openclaw/extensions ports: - "${OPENCLAW_GATEWAY_PORT}:18789" - "${OPENCLAW_BRIDGE_PORT}:18790" init: true restart: unless-stopped 

5.1.2 .env.example 完整内容

# OpenClaw Docker 环境变量配置示例# 复制此文件为 .env 并修改相应的值# 注意:若使用轩辕镜像拉取的镜像,可将下方OPENCLAW_IMAGE改为 docker.xuanyuan.run/justlikemaki/openclaw-docker-cn-im:latest# Docker 镜像配置(直接引用拉取的镜像,确保镜像有效使用)OPENCLAW_IMAGE=justlikemaki/openclaw-docker-cn-im:latest # 轩辕镜像配置(若已通过轩辕镜像拉取,建议替换上方地址为以下内容)# OPENCLAW_IMAGE=docker.xuanyuan.run/justlikemaki/openclaw-docker-cn-im:latest# 模型配置# 是否自动同步模型配置到 openclaw.json (true/false)# 如果你手动修改了 openclaw.json 中的模型设置,请将其设为 falseSYNC_MODEL_CONFIG=true # 提供商 1 (默认)# 主模型 ID (支持多个,用逗号隔开,第一个将作为默认模型)MODEL_ID=model id# 图片模型 ID (可选,留空则使用 MODEL_ID,支持 provider/model 格式)IMAGE_MODEL_ID=BASE_URL=http://xxxxx/v1 API_KEY=123456# API 协议类型: openai-completions 或 anthropic-messagesAPI_PROTOCOL=openai-completions # 模型上下文窗口大小CONTEXT_WINDOW=200000# 模型最大输出 tokensMAX_TOKENS=8192# 提供商 2 (可选)# MODEL2_NAME=model2# MODEL2_MODEL_ID=model id1,model id2# MODEL2_BASE_URL=http://xxxxx/v1# MODEL2_API_KEY=123456# MODEL2_PROTOCOL=openai-completions# MODEL2_CONTEXT_WINDOW=200000# MODEL2_MAX_TOKENS=8192# Telegram 配置(可选,留空则不启用)TELEGRAM_BOT_TOKEN=# 飞书配置(可选,留空则不启用)FEISHU_APP_ID=FEISHU_APP_SECRET=# 钉钉配置(可选,留空则不启用)DINGTALK_CLIENT_ID=DINGTALK_CLIENT_SECRET=DINGTALK_ROBOT_CODE=DINGTALK_CORP_ID=DINGTALK_AGENT_ID=# QQ 机器人配置(可选,留空则不启用)QQBOT_APP_ID=QQBOT_CLIENT_SECRET=# NapCat (OneBot v11) 配置(可选,留空则不启用)# NapCat 反向 WS 监听端口(NapCat 主动连接到此端口)NAPCAT_REVERSE_WS_PORT=# NapCat HTTP API 地址(可选,用于主动发送消息)NAPCAT_HTTP_URL=# 连接鉴权 Token(与 NapCat 侧保持一致)NAPCAT_ACCESS_TOKEN=# 管理员用户 ID,多个用逗号分隔NAPCAT_ADMINS=# 企业微信配置(可选,留空则不启用)# 方式1:单账号(兼容旧格式),会自动同步为 channels.wecom.defaultWECOM_TOKEN=WECOM_ENCODING_AES_KEY=# 方式2:多账号(Multi-Bot)JSON,支持 bot1/bot2... 独立配置(会与现有配置深度合并)# 注意:.env 中 JSON 需要写成单行# 示例:{"bot1":{"token":"t1","encodingAesKey":"k1","agent":{"corpId":"wwxxx","corpSecret":"s1","agentId":1000001}},"bot2":{"token":"t2","encodingAesKey":"k2","agent":{"corpId":"wwxxx","corpSecret":"s2","agentId":1000002}}}WECOM_BOTS_JSON=# 工作空间配置(不要更改)WORKSPACE=/home/node/.openclaw/workspace # 挂载目录配置(按实际更改)# OpenClaw 数据目录(包含配置文件、工作空间等所有数据)OPENCLAW_DATA_DIR=~/.openclaw # 可选:容器启动用户 UID:GID# 默认 0:0(root)用于 init.sh 自动修复挂载目录权限,再降权为 node 启动服务# 如需与宿主机用户对齐,可设置为 1000:1000 或 Linux 上的 $(id -u):$(id -g)OPENCLAW_RUN_USER=0:0 # Gateway 配置## 网关 token,用于认证(按实际更改)OPENCLAW_GATEWAY_TOKEN=123456OPENCLAW_GATEWAY_BIND=lan OPENCLAW_GATEWAY_PORT=18789OPENCLAW_BRIDGE_PORT=18790OPENCLAW_GATEWAY_MODE=local # 允许的 Origin 域,多个用逗号隔开OPENCLAW_GATEWAY_ALLOWED_ORIGINS=http://localhost # 允许不安全认证(如 http),可选 true/falseOPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH=true # 危险:禁用设备认证(如在 Docker 环境中无法获取设备信息),可选 true/falseOPENCLAW_GATEWAY_DANGEROUSLY_DISABLE_DEVICE_AUTH=false # 插件全局控制OPENCLAW_PLUGINS_ENABLED=true 

5.2 配置环境变量

复制环境变量模板并编辑,至少配置AI模型相关参数,同时确认镜像配置与拉取的轩辕镜像一致:

# 复制环境变量模板cp .env.example .env 
# 编辑配置文件(推荐使用nano或vim)nano .env 

5.2.1 最小配置示例

环境变量说明示例值
MODEL_IDAI 模型名称gpt-4
BASE_URLAI 服务 API 地址https://api.openai.com/v1
API_KEYAI 服务 API 密钥sk-xxx…
OPENCLAW_IMAGE镜像地址(轩辕镜像)docker.xuanyuan.run/justlikemaki/openclaw-docker-cn-im:latest

提示:IM 平台配置为可选项,可以先启动服务,后续再配置需要的平台。

5.3 启动服务

docker-compose up -d

5.4 查看日志

docker-compose logs -f

5.5 停止服务

docker-compose down 

六、详细配置指南

6.1 AI 模型配置

本项目支持 OpenAI 协议和 Claude 协议两种 API 格式,可直接对接 AIClient-2-API 服务。

推荐模型:推荐使用 gemini-3-flash-preview 模型,该模型具有超大上下文窗口(1M tokens)、快速响应速度和优秀的性价比,非常适合作为 OpenClaw 的后端模型。

6.1.1 基础配置参数

参数说明默认值
MODEL_ID模型名称model id
BASE_URLProvider Base URLhttp://xxxxx/v1
API_KEYProvider API Key123456
API_PROTOCOLAPI 协议类型openai-completions
CONTEXT_WINDOW模型上下文窗口大小200000
MAX_TOKENS模型最大输出 tokens8192

6.1.2 协议类型说明

协议类型适用模型Base URL 格式特殊特性
openai-completionsOpenAI、Gemini 等需要 /v1 后缀-
anthropic-messagesClaude不需要 /v1 后缀Prompt Caching、Extended Thinking

6.1.3 配置示例

  1. OpenAI 协议(Gemini 模型)
MODEL_ID=gemini-3-flash-preview BASE_URL=http://localhost:3000/v1 API_KEY=your-api-key API_PROTOCOL=openai-completions CONTEXT_WINDOW=1000000 MAX_TOKENS=8192 
  1. Claude 协议(Claude 模型)
MODEL_ID=claude-sonnet-4-5 BASE_URL=http://localhost:3000 API_KEY=your-api-key API_PROTOCOL=anthropic-messages CONTEXT_WINDOW=200000 MAX_TOKENS=8192 

6.1.4 AIClient-2-API 配置补充

前置准备:启动 AIClient-2-API 服务,在 Web UI (http://localhost:3000) 配置至少一个提供商,记录配置文件中的 API Key。

如需指定特定提供商,可修改 Base URL:

# Kiro 提供的 Claude (OpenAI 协议) BASE_URL=http://localhost:3000/claude-kiro-oauth/v1 # Kiro 提供的 Claude (Claude 协议) BASE_URL=http://localhost:3000/claude-kiro-oauth # Gemini CLI (OpenAI 协议) BASE_URL=http://localhost:3000/gemini-cli-oauth/v1 # Antigravity (OpenAI 协议) BASE_URL=http://localhost:3000/gemini-antigravity/v1 

6.2 Gateway 配置

参数说明默认值
OPENCLAW_GATEWAY_TOKENGateway 访问令牌123456
OPENCLAW_GATEWAY_BIND绑定地址lan
OPENCLAW_GATEWAY_PORTGateway 端口18789
OPENCLAW_BRIDGE_PORTBridge 端口18790

6.3 工作空间配置

参数说明默认值
WORKSPACE工作空间目录/home/node/.openclaw/workspace

6.4 IM 平台配置

6.4.1 飞书配置

  1. 获取飞书机器人凭证
  • 在 飞书开放平台 创建自建应用
  • 添加应用能力-机器人
  • 在凭证页面获取 App ID 和 App Secret
  • 开启所需权限(见下方)⚠️ 重要
  • 配置事件订阅(见下方)⚠️ 重要
  1. 必需权限(租户级别)
权限范围说明
im:message消息发送和接收消息(核心权限)
im:message.p2p_msg:readonly私聊读取发给机器人的私聊消息
im:message.group_at_msg:readonly群聊接收群内 @机器人 的消息
im:message:send_as_bot发送以机器人身份发送消息
im:resource媒体上传和下载图片/文件
im:chat.members:bot_access群成员获取群成员信息
im:chat.access_event.bot_p2p_chat:read聊天事件读取机器人单聊事件
  1. 推荐权限(租户级别)
权限范围说明
contact:user.employee_id:readonly用户信息获取用户员工 ID(用于用户识别)
im:message:readonly读取获取历史消息
application:application:self_manage应用管理应用自我管理
application:bot.menu:write机器人菜单配置机器人菜单
event:ip_listIP 列表获取飞书服务器 IP 列表
  1. 可选权限(租户级别)
权限范围说明
aily:file:readAI 文件读取读取 AI 助手文件
aily:file:writeAI 文件写入写入 AI 助手文件
application:application.app_message_stats.overview:readonly消息统计查看应用消息统计概览
corehr:file:download人事文件下载人事系统文件
  1. 用户级别权限(可选)
权限范围说明
aily:file:readAI 文件读取以用户身份读取 AI 助手文件
aily:file:writeAI 文件写入以用户身份写入 AI 助手文件
im:chat.access_event.bot_p2p_chat:read聊天事件以用户身份读取机器人单聊事件
  1. 事件订阅 ⚠️(最容易遗漏)

如果机器人能发消息但收不到消息,请检查此项。在飞书开放平台的应用后台,进入 事件与回调 页面:

  • 事件配置方式:选择 使用长连接接收事件(推荐)
  • 添加事件订阅,勾选以下事件:
事件说明
im.message.receive_v1接收消息(必需)
im.message.message_read_v1消息已读回执
im.chat.member.bot.added_v1机器人进群
im.chat.member.bot.deleted_v1机器人被移出群

确保事件订阅的权限已申请并通过审核。

  1. 环境变量配置(在 .env 文件中添加)
FEISHU_APP_ID=your-app-id FEISHU_APP_SECRET=your-app-secret 

6.4.2 钉钉配置

  1. 创建钉钉应用
  • 访问 钉钉开发者后台
  • 创建企业内部应用
  • 添加「机器人」能力
  • 配置消息接收模式为 Stream 模式
  • 发布应用
  1. 获取凭证

从开发者后台获取:Client ID(AppKey)、Client Secret(AppSecret)、Robot Code(与 Client ID 相同)、Corp ID(与 Client ID 相同)、Agent ID(应用 ID)

  1. 环境变量配置(在 .env 文件中添加)
DINGTALK_CLIENT_ID=your-dingtalk-client-id DINGTALK_CLIENT_SECRET=your-dingtalk-client-secret DINGTALK_ROBOT_CODE=your-dingtalk-robot-code DINGTALK_CORP_ID=your-dingtalk-corp-id DINGTALK_AGENT_ID=your-dingtalk-agent-id 

参数说明:

  • DINGTALK_CLIENT_ID - 必需,钉钉应用的 Client ID(AppKey)
  • DINGTALK_CLIENT_SECRET - 必需,钉钉应用的 Client Secret(AppSecret)
  • DINGTALK_ROBOT_CODE - 可选,机器人 Code,默认与 Client ID 相同
  • DINGTALK_CORP_ID - 可选,企业 ID
  • DINGTALK_AGENT_ID - 可选,应用 Agent ID

6.4.3 QQ 机器人配置

  1. 获取 QQ 机器人凭证
  • 访问 QQ 开放平台
  • 创建机器人应用
  • 获取 AppID 和 AppSecret(ClientSecret)
  • 获取主机在公网的 IP,配置到 IP 白名单
  1. 环境变量配置(在 .env 文件中添加)
QQBOT_APP_ID=你的AppID QQBOT_CLIENT_SECRET=你的AppSecret 

6.4.4 企业微信配置

  1. 获取企业微信凭证
  • 访问 企业微信管理后台
  • 进入"应用管理" - 用 API 模式创建"智能机器人"应用
  • 在应用的"接收消息"配置中设置 Token 和 EncodingAESKey
  • 设置"接收消息"URL 为你的服务地址(例如:https://your-domain.com/webhooks/wxwork),需要当前服务可公网访问
  1. 环境变量配置(在 .env 文件中添加)
WECOM_TOKEN=your-token WECOM_ENCODING_AES_KEY=your-aes-key 

七、高级使用

7.1 使用 Docker 命令运行

如果不使用 Docker Compose,可以直接使用 Docker 命令启动容器(引用轩辕镜像,确保镜像有效使用):

docker run -d\--name openclaw-gateway \ --cap-add=CHOWN \ --cap-add=SETUID \ --cap-add=SETGID \ --cap-add=DAC_OVERRIDE \-eMODEL_ID=model id\-eBASE_URL=http://xxxxx/v1 \-eAPI_KEY=123456\-eAPI_PROTOCOL=openai-completions \-eCONTEXT_WINDOW=200000\-eMAX_TOKENS=8192\-eFEISHU_APP_ID=your-app-id \-eFEISHU_APP_SECRET=your-app-secret \-eDINGTALK_CLIENT_ID=your-dingtalk-client-id \-eDINGTALK_CLIENT_SECRET=your-dingtalk-client-secret \-eDINGTALK_ROBOT_CODE=your-dingtalk-robot-code \-eDINGTALK_CORP_ID=your-dingtalk-corp-id \-eDINGTALK_AGENT_ID=your-dingtalk-agent-id \-eQQBOT_APP_ID=your-qqbot-app-id \-eQQBOT_CLIENT_SECRET=your-qqbot-client-secret \-eWECOM_TOKEN=your-token \-eWECOM_ENCODING_AES_KEY=your-aes-key \-eOPENCLAW_GATEWAY_TOKEN=123456\-eOPENCLAW_GATEWAY_BIND=lan \-eOPENCLAW_GATEWAY_PORT=18789\-v ~/.openclaw:/home/node/.openclaw \-v ~/.openclaw/workspace:/home/node/.openclaw/workspace \-p18789:18789 \-p18790:18790 \--restart unless-stopped \ docker.xuanyuan.run/justlikemaki/openclaw-docker-cn-im:latest # 使用轩辕镜像

7.2 数据持久化

容器使用以下卷进行数据持久化,确保配置和工作数据不丢失:

    • /home/node/.openclaw - OpenClaw 配置和数据目录
    • /home/node/.openclaw/workspace - 工作空间目录

7.3 端口说明

    • 18789 - OpenClaw Gateway 端口
    • 18790 - OpenClaw Bridge 端口

7.4 自定义配置文件

如果需要完全自定义配置文件,可按以下步骤操作:

    • 在宿主机创建配置文件 ~/.openclaw/openclaw.json
    • 挂载该目录到容器:-v ~/.openclaw:/home/node/.openclaw
    • 容器启动时会检测到已存在的配置文件,跳过自动生成

八、常见问题

Q: 修改了环境变量但配置没有生效?

容器启动时只有在配置文件不存在时才会生成新配置。如需重新生成配置,请删除现有配置文件:

# 删除配置文件rm ~/.openclaw/openclaw.json # 重启容器docker-compose restart 

或者直接删除整个数据目录重新开始:

rm-rf ~/.openclaw docker-compose up -d

Q: 连接 AIClient-2-API 失败?

  • 确认 AIClient-2-API 服务运行中
  • 检查 Base URL 是否正确(OpenAI 协议需要 /v1 后缀)
  • 尝试使用 127.0.0.1 替代 localhost

Q: 401 错误?

  • 检查 API Key 是否正确配置
  • 确认环境变量 API_KEY 已设置

Q: 模型不可用?

  • 在 AIClient-2-API Web UI 确认已配置对应提供商
  • 重启容器:docker-compose restart

Q: 飞书机器人能发消息但收不到消息?

  • 检查是否配置了事件订阅(最容易遗漏的配置)
  • 确认事件配置方式选择了"使用长连接接收事件"
  • 确认已添加 im.message.receive_v1 事件

Q: Telegram 机器人如何配对?

如果需要启用 Telegram,必须提供有效的 TELEGRAM_BOT_TOKEN,启用后需要执行以下命令进行配对审批:

openclaw pairing approve telegram {token}

并且需要重启 Docker 服务使配置生效。

Q: 同样的启动命令,为什么有人报错 Permission denied?

这通常不是命令本身不稳定,而是运行上下文变化导致:宿主机挂载目录所有者(UID/GID)与容器内进程用户不一致。

为什么会“偶发”

同样是 docker compose up -d,但目录来源不同:

  • 你手动创建目录:可能是当前用户(如 1000:1000)
  • Docker 自动创建或使用 sudo 创建:可能是 root:root(0:0)

本镜像最终以 node 用户运行网关;若挂载目录归属不匹配,就可能无法写入。

快速排查

# 1) 看宿主机目录归属(Linux)ls-ln ~/.openclaw # 2) 看容器内运行用户docker run --rm justlikemaki/openclaw-docker-cn-im:latest id

若容器用户是 uid=1000,而宿主机目录是 uid=0 且权限不足,就会报错。

解决方案(推荐顺序)

  1. 宿主机修正目录所有权(最直接)
sudochown-R1000:1000 ~/.openclaw 
  1. 显式指定容器运行用户(可选)

在 .env 中设置:

OPENCLAW_RUN_USER=1000:1000 

然后重启:

docker compose up -d
  1. SELinux 场景(CentOS/RHEL/Fedora)

若权限看起来没问题但仍拒绝访问,请给挂载卷加 😒 或 :Z 标签。

本项目已做的稳态处理:

  • docker-compose.yml 新增可选 user 配置:OPENCLAW_RUN_USER(默认 0:0)
  • init.sh 启动时会:打印挂载目录当前 UID/GID 与目标 UID/GID;尝试自动修复 /home/node/.openclaw 权限;若仍不可写,输出明确的修复命令并失败退出,避免“有时成功有时报错”的隐性状态

九、注意事项

  • 确保宿主机的 18789 和 18790 端口未被占用
  • 配置文件中的敏感信息(如 API 密钥、令牌)应妥善保管
  • 首次运行时会自动创建必要的目录和配置文件,包括 openclaw.json 配置文件,已存在时不会覆盖
  • 容器以 node 用户身份运行,确保挂载的卷有正确的权限
  • IM 平台配置均为可选项,可根据实际需求选择性配置
  • 使用 OpenAI 协议时,Base URL 需要包含 /v1 后缀
  • 使用 Claude 协议时,Base URL 不需要 /v1 后缀

Read more

如何给 AI Agent 做“断舍离“:OpenClaw Session 自动清理实践

这里写自定义目录标题 * 如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践 * 问题的起源 * 先搞清楚:Session 和 Transcript 是什么关系? * 解决方案:自动化清理脚本 * 核心逻辑(Node.js 内嵌) * 特殊处理:Main Session 每日强制重置 * 重启 Gateway * 自动化:配置 Cron Job * 效果对比 * 延伸思考:AI Agent 的"记忆管理" * 总结 * 欢迎使用Markdown编辑器 * 新的改变 * 功能快捷键 * 合理的创建标题,有助于目录的生成 * 如何改变文本的样式 * 插入链接与图片 * 如何插入一段漂亮的代码片

【GitHub项目推荐--Paperclip:AI代理公司编排平台】⭐⭐⭐⭐⭐

简介 Paperclip 是一个革命性的Node.js服务器和React UI平台,专门用于编排AI代理团队来运营完整的业务公司。如果说OpenClaw是一个员工,那么Paperclip就是整个公司。这个平台允许用户自带AI代理、设定业务目标,并通过统一的仪表板跟踪代理的工作和成本。它看起来像一个任务管理器,但在底层实现了组织结构图、预算控制、治理机制、目标对齐和代理协调等完整的企业管理功能。 核心定位:Paperclip的核心价值在于管理业务目标而非代码提交。在当今AI代理爆炸式增长的时代,许多开发者同时运行数十个AI代理(如OpenClaw、Claude Code、Codex、Cursor等),却难以跟踪每个代理在做什么、成本如何控制、目标是否对齐。Paperclip解决了这一痛点,提供了一个集中化的平台来协调多个AI代理,让它们像真实公司员工一样协同工作,实现复杂的业务目标。 技术架构:Paperclip采用现代化的技术栈构建,包括Node.js后端、React前端、PostgreSQL数据库,支持Docker容器化部署。平台通过“心跳”机制管理代理的生命周期,支持任何能够

全网首发!OpenClaw 云端部署喂饭级教程,零成本 30 分钟打造 7x24h AI 员工

全网首发!OpenClaw 云端部署喂饭级教程,零成本 30 分钟打造 7x24h AI 员工

↑阅读之前记得关注+星标⭐️,😄,每天才能第一时间接收到更新 Hello 大家好,我是鹿先森,祝大家新年快乐! 前两天聊 Kimi Claw 的文章突然爆火,没想到大家对 OpenClaw 的热情这么高!就连除夕夜 12 点,都有小伙伴在疯狂进群领取《OpenClaw 本地部署保姆级教程》,看群里的热烈反馈,大家都已经成功上手玩起来了! (没领到的朋友可以挪步之前的文章获取暗号) 但在和大家的交流中,我发现了一个普遍的痛点,本地部署响应太慢了,并且对配置有要求,有的朋友电脑是老款 Win7 插件都安装不上,有的朋友觉得电脑必须 24 小时开机才能用,太费电也不方便。 为了解决这个问题,我连夜爆肝出了这篇《OpenClaw 零成本云端部署喂饭级教程》,阅读大概需要10分钟,建议收藏慢慢看。 不需要你的电脑 24 小时开机,不需要高性能显卡,只需要一次性操作,把 OpenClaw 搬到云端,不仅稳定,而且完全免费!

完全免费!用阿里开源 CoPaw 养一只属于自己的 AI 小助理(魔搭启动,亲测有效)

先说一个小插曲:前几天我写了一篇介绍 Maxclaw 的文章,当时还是免费的,结果文章发出去没多久,Minimax 就悄悄改了规则,变成 39 元一个月起步了。当然,39 元其实也不贵——毕竟你去闲鱼搜"openclaw 代安装",随便一个人工服务都要 50 块往上走。但既然有完全免费的方案,为什么不用呢? 今天这篇,就给大家介绍一个我亲自跑通的、完全免费的方案:用阿里开源的 CoPaw,在魔搭创空间里一键启动,服务器免费,Token 每天 2000 次免费调用,不用装任何本地环境,浏览器打开就能用。 CoPaw 是什么?先用一分钟搞清楚 很多人第一次听到 CoPaw 这个名字,会以为是某种宠物应用。其实它的全称是 Co Personal Agent Workstation,是阿里