
🚀 推荐搭配:OpenClaw 功能强大但 Token 消耗较大,推荐配合 https://github.com/justlovemaki/AIClient-2-API 项目使用,将各大 AI 客户端转换为标准 API 接口,实现无限 Token 调用,彻底解决 Token 焦虑!本项目已支持 OpenAI 和 Claude 两种协议,可直接对接 AIClient-2-API 服务。
OpenClaw 中国 IM 插件整合版 Docker 镜像,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国 IM 平台插件,让您可以快速部署一个支持多个中国 IM 平台的 AI 机器人网关。
项目地址: https://github.com/justlovemaki/OpenClaw-Docker-CN-IM
IM 平台
集成工具
Docker Hub: https://hub.docker.com/r/justlikemaki/openclaw-docker-cn-im
bashdocker pull justlikemaki/openclaw-docker-cn-im:latest
bashwget https://raw.githubusercontent.com/justlovemaki/OpenClaw-Docker-CN-IM/main/docker-compose.yml wget https://raw.githubusercontent.com/justlovemaki/OpenClaw-Docker-CN-IM/main/.env.example
bash# 复制环境变量模板 cp .env.example .env # 编辑配置文件(至少配置 AI 模型相关参数) nano .env
最小配置示例:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
MODEL_ID | AI 模型名称 | gpt-4 |
BASE_URL | AI 服务 API 地址 | https://api.openai.com/v1 |
API_KEY | AI 服务 API 密钥 | sk-xxx... |
💡 提示:IM 平台配置为可选项,可以先启动服务,后续再配置需要的平台。
bashdocker-compose up -d
bashdocker-compose logs -f
bashdocker-compose down
本项目支持 OpenAI 协议和 Claude 协议两种 API 格式。
💡 推荐模型:推荐使用
gemini-3-flash-preview模型,该模型具有超大上下文窗口(1M tokens)、快速响应速度和优秀的性价比,非常适合作为 OpenClaw 的后端模型。
基础配置参数
| 参数 | 说明 | 默认值 |
|---|---|---|
MODEL_ID | 模型名称 | model id |
BASE_URL | Provider Base URL | http://xxxxx/v1 |
API_KEY | Provider API Key | 123456 |
API_PROTOCOL | API 协议类型 | openai-completions |
CONTEXT_WINDOW | 模型上下文窗口大小 | 200000 |
MAX_TOKENS | 模型最大输出 tokens | 8192 |
协议类型说明
| 协议类型 | 适用模型 | Base URL 格式 | 特殊特性 |
|---|---|---|---|
openai-completions | OpenAI、Gemini 等 | 需要 /v1 后缀 | - |
anthropic-messages | Claude | 不需要 /v1 后缀 | Prompt Caching、Extended Thinking |
配置示例
OpenAI 协议(Gemini 模型)
bashMODEL_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
Claude 协议(Claude 模型)
bashMODEL_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
| 参数 | 说明 | 默认值 |
|---|---|---|
OPENCLAW_GATEWAY_TOKEN | Gateway 访问令牌 | 123456 |
OPENCLAW_GATEWAY_BIND | 绑定地址 | lan |
OPENCLAW_GATEWAY_PORT | Gateway 端口 | 18789 |
OPENCLAW_BRIDGE_PORT | Bridge 端口 | 18790 |
| 参数 | 说明 | 默认值 |
|---|---|---|
WORKSPACE | 工作空间目录 | /home/node/.openclaw/workspace |
容器启动时只有在配置文件不存在时才会生成新配置。如需重新生成配置,请删除现有配置文件:
bash# 删除配置文件 rm ~/.openclaw/openclaw.json # 重启容器 docker-compose restart
或者直接删除整个数据目录重新开始:
bashrm -rf ~/.openclaw docker-compose up -d
/v1 后缀)127.0.0.1 替代 localhostAPI_KEY 已设置docker-compose restartim.message.receive_v1 事件如果需要启用 ***,必须提供有效的 TELEGRAM_BOT_TOKEN,启用后需要执行以下命令进行配对审批:
bashopenclaw pairing approve telegram {token}
并且需要重启 Docker 服务使配置生效。
Permission denied?这通常不是命令本身不稳定,而是运行上下文变化导致:宿主机挂载目录所有者(UID/GID)与容器内进程用户不一致。
为什么会“偶发”
docker compose up -d,但目录来源不同:
1000:1000)root:root(0:0)node 用户运行网关;若挂载目录归属不匹配,就可能无法写入。快速排查
bash# 1) 看宿主机目录归属(Linux) ls -ln ~/.openclaw # 2) 看容器内运行用户 docker run --rm justlikemaki/openclaw-docker-cn-im:latest id
若容器用户是 uid=1000,而宿主机目录是 uid=0 且权限不足,就会报错。
解决方案(推荐顺序)
bashsudo chown -R 1000:1000 ~/.openclaw
在 .env 中设置:
bashOPENCLAW_RUN_USER=1000:1000
然后重启:
bashdocker compose up -d
若权限看起来没问题但仍拒绝访问,请给挂载卷加 :z 或 :Z 标签。
本项目已做的稳态处理
docker-compose.yml 新增可选 user 配置:OPENCLAW_RUN_USER(默认 0:0)init.sh 启动时会:
/home/node/.openclaw 权限openclaw.json 配置文件,已存在时不会覆盖node 用户身份运行,确保挂载的卷有正确的权限/v1 后缀/v1 后缀| 权限 | 范围 | 说明 |
|---|---|---|
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 | 聊天事件 | 读取机器人单聊事件 |
| 权限 | 范围 | 说明 |
|---|---|---|
contact:user.employee_id:readonly | 用户信息 | 获取用户员工 ID(用于用户识别) |
im:message:readonly | 读取 | 获取历史消息 |
application:application:self_manage | 应用管理 | 应用自我管理 |
application:bot.menu:write | 机器人菜单 | 配置机器人菜单 |
event:ip_list | IP 列表 | 获取飞书服务器 IP 列表 |
| 权限 | 范围 | 说明 |
|---|---|---|
aily:file:read | AI 文件读取 | 读取 AI 助手文件 |
aily:file:write | AI 文件写入 | 写入 AI 助手文件 |
application:application.app_message_stats.overview:readonly | 消息统计 | 查看应用消息统计概览 |
corehr:file:download | 人事文件 | 下载人事系统文件 |
| 权限 | 范围 | 说明 |
|---|---|---|
aily:file:read | AI 文件读取 | 以用户身份读取 AI 助手文件 |
aily:file:write | AI 文件写入 | 以用户身份写入 AI 助手文件 |
im:chat.access_event.bot_p2p_chat:read | 聊天事件 | 以用户身份读取机器人单聊事件 |
这是最容易遗漏的配置! 如果机器人能发消息但收不到消息,请检查此项。
在飞书开放平台的应用后台,进入 事件与回调 页面:
| 事件 | 说明 |
|---|---|
im.message.receive_v1 | 接收消息(必需) |
im.message.message_read_v1 | 消息已读回执 |
im.chat.member.bot.added_v1 | 机器人进群 |
im.chat.member.bot.deleted_v1 | 机器人被移出群 |
在 .env 文件中添加:
bashFEISHU_APP_ID=your-app-id FEISHU_APP_SECRET=your-app-secret
💡 参考项目:https://github.com/openclaw/openclaw/blob/main/docs/channels/feishu.md - 飞书机器人完整实现示例
从开发者后台获取:
在 .env 文件中添加:
bashDINGTALK_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 - 可选,企业 IDDINGTALK_AGENT_ID - 可选,应用 Agent ID💡 参考项目:https://github.com/soimy/openclaw-channel-dingtalk - 钉钉渠道完整实现示例
在 .env 文件中添加:
bashQQBOT_APP_ID=你的AppID QQBOT_CLIENT_SECRET=你的AppSecret
💡 参考项目:https://github.com/sliverp/qqbot - QQ 机器人完整实现示例
在 .env 文件中添加:
bashWECOM_TOKEN=your-token WECOM_ENCODING_AES_KEY=your-aes-key
💡 参考项目:https://github.com/sunnoy/openclaw-plugin-wecom - 企业微信插件完整实现示例
本项目已支持 OpenAI 和 Claude 两种协议,可直接对接 https://github.com/justlovemaki/AIClient-2-API 服务。
http://localhost:3000) 配置至少一个提供商在 .env 文件中配置:
bashMODEL_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
在 .env 文件中配置:
bashMODEL_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
如需指定特定提供商,可修改 Base URL:
bash# 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
如果不使用 Docker Compose,可以直接使用 Docker 命令:
bashdocker run -d \ --name openclaw-gateway \ --cap-add=CHOWN \ --cap-add=SETUID \ --cap-add=SETGID \ --cap-add=DAC_OVERRIDE \ -e MODEL_ID=model id \ -e BASE_URL=http://xxxxx/v1 \ -e API_KEY=123456 \ -e API_PROTOCOL=openai-completions \ -e CONTEXT_WINDOW=200000 \ -e MAX_TOKENS=8192 \ -e FEISHU_APP_ID=your-app-id \ -e FEISHU_APP_SECRET=your-app-secret \ -e DINGTALK_CLIENT_ID=your-dingtalk-client-id \ -e DINGTALK_CLIENT_SECRET=your-dingtalk-client-secret \ -e DINGTALK_ROBOT_CODE=your-dingtalk-robot-code \ -e DINGTALK_CORP_ID=your-dingtalk-corp-id \ -e DINGTALK_AGENT_ID=your-dingtalk-agent-id \ -e QQBOT_APP_ID=your-qqbot-app-id \ -e QQBOT_CLIENT_SECRET=your-qqbot-client-secret \ -e WECOM_TOKEN=your-token \ -e WECOM_ENCODING_AES_KEY=your-aes-key \ -e OPENCLAW_GATEWAY_TOKEN=123456 \ -e OPENCLAW_GATEWAY_BIND=lan \ -e OPENCLAW_GATEWAY_PORT=18789 \ -v ~/.openclaw:/home/node/.openclaw \ -v ~/.openclaw/workspace:/home/node/.openclaw/workspace \ -p 18789:18789 \ -p 18790:18790 \ --restart unless-stopped \ justlikemaki/openclaw-docker-cn-im:latest
容器使用以下卷进行数据持久化:
/home/node/.openclaw - OpenClaw 配置和数据目录/home/node/.openclaw/workspace - 工作空间目录18789 - OpenClaw Gateway 端口18790 - OpenClaw Bridge 端口如果需要完全自定义配置文件,可以:
~/.openclaw/openclaw.json-v ~/.openclaw:/home/node/.openclawDockerfile - Docker 镜像构建文件init.sh - 容器初始化脚本(作为主程序运行)docker-compose.yml - Docker Compose 配置文件.env.example - 环境变量配置模板.dockerignore - Docker 构建忽略文件openclaw.json.example - OpenClaw 默认配置文件示例bashdocker build -t justlikemaki/openclaw-docker-cn-im:latest .
init.sh 脚本在容器启动时执行以下操作:
容器首次启动时,如果 /home/node/.openclaw/openclaw.json 不存在,初始化脚本会根据环境变量自动生成配置文件,包括:
镜像中已全局安装以下 npm 包:
openclaw@latest - OpenClaw 主程序opencode-ai@latest - OpenCode AIplaywright - Playwright 浏览器自动化工具@openclaw/feishu - 飞书插件clawdbot-channel-dingtalk - 钉钉插件(从 GitHub 安装)qqbot - QQ 机器人插件(先克隆到 /tmp/qqbot,然后从本地目录安装)openclaw-plugin-wecom - 企业微信插件(从 GitHub 安装)容器使用以下命令启动 OpenClaw:
bashopenclaw gateway --verbose
这将以详细日志模式启动 Gateway 服务。
如果这个项目对您有帮助,请给我们一个 Star ⭐️!您的支持是我们持续改进的动力。
 许可证。详见 LICENSE 文件。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务