
justlikemaki/openclaw-docker-cn-im🚀 推荐搭配:OpenClaw 功能强大但 Token 消耗较大,推荐配合 AIClient-2-API 项目使用,将各大 AI 客户端转换为标准 API 接口,实现无限 Token 调用,彻底解决 Token 焦虑!本项目已支持 OpenAI 和 Claude 两种协议,可直接对接 AIClient-2-API 服务。
OpenClaw 中国 IM 插件整合版 Docker 镜像,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国 IM 平台插件,让您可以快速部署一个支持多个中国 IM 平台的 AI 机器人网关。
项目地址: [***]
IM 平台
集成工具
Docker Hub: [***]
bashdocker pull justlikemaki/openclaw-docker-cn-im:latest
bashwget [***] wget [***]
bash# 复制环境变量模板 cp .env.example .env # 编辑配置文件(至少配置 AI 模型相关参数) nano .env
最小配置示例:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
MODEL_ID | AI 模型名称 | gpt-4 |
BASE_URL | AI 服务 API 地址 | [***] |
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 | [***] |
API_KEY | Provider API Key | *** |
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=*** 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 访问令牌 | *** |
OPENCLAW_GATEWAY_BIND | 绑定地址 | lan |
OPENCLAW_GATEWAY_PORT | Gateway 端口 | *** |
OPENCLAW_BRIDGE_PORT | Bridge 端口 | *** |
| 参数 | 说明 | 默认值 |
|---|---|---|
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 事件如果需要启用 ***,必须提供有效的 ***_BOT_TOKEN,启用后需要执行以下命令进行配对审批:
bashopenclaw pairing approve *** {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:cha***mbers:bot_access | 群成员 | 获取群成员信息 |
im:chat.access_event.bot_p2p_chat:read | 聊天事件 | 读取机器人单聊事件 |
| 权限 | 范围 | 说明 |
|---|---|---|
contact:user.employee_id:readonly | 用户信息 | 获取用户员工 ID(用于用户识别) |
im:message:readonly | 读取 | 获取历史消息 |
application:application:self_manage | 应用管理 | 应用自我管理 |
application:bo***nu: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.cha***mber.bot.added_v1 | 机器人进群 |
im.cha***mber.bot.deleted_v1 | 机器人被移出群 |
在 .env 文件中添加:
bashFEISHU_APP_ID=your-app-id FEISHU_APP_SECRET=your-app-secret
💡 参考项目:clawdbot-feishu - 飞书机器人完整实现示例
从开发者后台获取:
在 .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💡 参考项目:openclaw-channel-dingtalk - 钉钉渠道完整实现示例
在 .env 文件中添加:
bashQQBOT_APP_ID=你的AppID QQBOT_CLIENT_SECRET=你的AppSecret
💡 参考项目:qqbot - QQ 机器人完整实现示例
在 .env 文件中添加:
bashWECOM_TOKEN=your-token WECOM_ENCODING_AES_KEY=your-aes-key
💡 参考项目:openclaw-plugin-wecom - 企业微信插件完整实现示例
本项目已支持 OpenAI 和 Claude 两种协议,可直接对接 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=*** 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=[***] \ -e API_KEY=*** \ -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=*** \ -e OPENCLAW_GATEWAY_BIND=lan \ -e OPENCLAW_GATEWAY_PORT=*** \ -v ~/.openclaw:/home/node/.openclaw \ -v ~/.openclaw/workspace:/home/node/.openclaw/workspace \ -p ***:*** \ -p ***:*** \ --restart unless-stopped \ justlikemaki/openclaw-docker-cn-im:latest
容器使用以下卷进行数据持久化:
/home/node/.openclaw - OpenClaw 配置和数据目录/home/node/.openclaw/workspace - 工作空间目录*** - OpenClaw Gateway 端口*** - 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 文件。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务