OpenClaw 中国 IM 插件整合版 Docker 镜像,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国 IM 平台插件,让您可以快速部署一个支持多个中国 IM 平台的 AI 机器人网关。 魔改于:https://github.com/justlovemaki/OpenClaw-Docker-CN-IM
- 🚀 开箱即用:预装所有中国主流 IM 平台插件
- 🔧 灵活配置:通过环境变量轻松配置各平台凭证
- 🐳 Docker 部署:一键启动,无需复杂配置
- 📦 数据持久化:支持配置和工作空间数据持久化
- 💻 OpenCode AI:内置 AI 代码助手,支持智能代码生成和分析
- 🎭 Playwright:预装浏览器自动化工具,支持网页操作和截图
- 🗣️ 中文 TTS:支持中文语音合成(Text-to-Speech)
- 🤖 Claude Code:内置 Claude Code AI 编程助手
- 🔍 Tavily 搜索:集成 Tavily AI 搜索,适合科技/AI 资讯
- 🖼️ MiniMax 图片理解:集成 MiniMax 模型理解图片内容
- 🎤 Whisper 语音识别:本地 Whisper 语音转文字
- 🌐 Jina Reader:集成 jina.ai 网页抓取,返回干净 Markdown
- 🔎 MiniMax 搜索:集成 MiniMax AI 搜索,理解能力更强
- 🐦 X 登录:自动登录 X.com,支持 cookies 保存
- 🌍 V2Ray 代理:内置 V2Ray,支持 HTTP/SOCKS5 代理(10809 端口)
IM 平台
- ✅ 飞书(Feishu/Lark)
- ✅ 钉钉(DingTalk)
- ✅ QQ 机器人(QQ Bot)
- ✅ 企业微信(WeCom)
集成工具
- ✅ OpenCode AI - AI 代码助手
- ✅ Playwright - 浏览器自动化
- ✅ 中文 TTS - 语音合成
本项目支持 OpenAI 协议和 Claude 协议两种 API 格式。
💡 推荐模型:推荐使用
MiniMax2.5模型,该模型具有超大上下文窗口(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 |
OPENCLAW_GATEWAY_TOKEN |
Gateway 访问令牌 | 123456 |
OPENCLAW_GATEWAY_BIND |
绑定地址 | lan |
OPENCLAW_GATEWAY_PORT |
Gateway 端口 | 18789 |
OPENCLAW_BRIDGE_PORT |
Bridge 端口 | 18790 |
WORKSPACE |
工作空间目录 | /home/node/.openclaw/workspace |
OPENCLAW_AGENTS |
多 Agent 配置(JSON 格式) | 格式:[{"id":"sunshine","name":"Sunshine","workspace":"workspace-sunshine"},{"id":"rainyrainy","name":"RainyRainy","workspace":"workspace-rainyrainy"}] |
TELEGRAM_BOT_TOKEN |
Telegram Bot Token(支持多账号:name1:token1,name2:token2) |
- |
TELEGRAM_BINDINGS |
Telegram bot 绑定 Agent | 格式:botName1:agentId1,botName2:agentId2 |
DINGTALK_CLIENT_ID |
钉钉 Client ID | 支持多账号,格式:name1:appkey1,name2:appkey2 |
DINGTALK_CLIENT_SECRET |
钉钉 Client Secret | 格式需与 CLIENT_ID 对应 |
DINGTALK_BINDINGS |
钉钉bot 绑定 Agent | 支持多账号,格式:botName1:agentId1,botName2:agentId2 |
TAVILY_API_KEY |
Tavily 搜索 API Key | - |
GMAIL_APP_TOKEN |
Gmail 应用专用密码 | - |
QQMAIL_TOKEN |
QQ 邮箱 SMTP TOKEN | - |
GIT_TOKEN |
GitHub 访问令牌 | - |
AUTH_TOKEN |
X.com 登陆 Toke Cookie | - |
CT0 |
X.com 登录 Cookie | - |
如果有这些参数不知道怎么获取,直接问大模型; 如果多agent多渠道不知道怎么配置,可以使用init-agent.sh
| 协议类型 | 适用模型 | Base URL 格式 | 特殊特性 |
|---|---|---|---|
openai-completions |
OpenAI、Gemini 等 | 需要 /v1 后缀 |
- |
anthropic-messages |
Claude | 不需要 /v1 后缀 |
Prompt Caching、Extended Thinking |
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=8192Claude 协议(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容器启动时只有在配置文件不存在时才会生成新配置。如需重新生成配置,请删除现有配置文件:
# 删除配置文件
rm ~/.openclaw/openclaw.json
# 重启容器
docker-compose restart或者直接删除整个数据目录重新开始:
rm -rf ~/.openclaw
docker-compose up -d- 检查 API Key 是否正确配置
- 确认环境变量
API_KEY已设置
- 检查是否配置了事件订阅(最容易遗漏的配置)
- 确认事件配置方式选择了"使用长连接接收事件"
- 确认已添加
im.message.receive_v1事件
如果需要启用 Telegram,必须提供有效的 TELEGRAM_BOT_TOKEN,启用后需要执行以下命令进行配对审批:
openclaw pairing approve telegram {token}并且需要重启 Docker 服务使配置生效。
支持多账号配置,通过 TELEGRAM_BINDINGS 环境变量绑定 Bot 到指定的 Agent:
# 单账号
TELEGRAM_BOT_TOKEN=mybot:123456789:ABCDefGhi
TELEGRAM_BINDINGS=mybot:myagent
# 多账号
TELEGRAM_BOT_TOKEN=bot1:123456789:AAA,bot2:987654321:BBB
TELEGRAM_BINDINGS=bot1:agent1,bot2:agent2格式说明:
TELEGRAM_BOT_TOKEN:账号名:数字:Token(数字部分是 Telegram API 的 bot token 前缀)TELEGRAM_BINDINGS:账号名:AgentID
- 确保宿主机的 18789 和 18790 端口未被占用
- 配置文件中的敏感信息(如 API 密钥、令牌)应妥善保管
- 首次运行时会自动创建必要的目录和配置文件,包括
openclaw.json配置文件,已存在时不会覆盖 - 容器以
node用户身份运行,确保挂载的卷有正确的权限 - IM 平台配置均为可选项,可根据实际需求选择性配置
- 使用 OpenAI 协议时,Base URL 需要包含
/v1后缀 - 使用 Claude 协议时,Base URL 不需要
/v1后缀
飞书配置
- 在 飞书开放平台 创建自建应用
- 添加应用能力-机器人
- 在凭证页面获取 App ID 和 App Secret
- 开启所需权限(见下方)
⚠️ 重要 - 配置事件订阅(见下方)
⚠️ 重要
| 权限 | 范围 | 说明 |
|---|---|---|
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 文件中添加:
FEISHU_APP_ID=your-app-id
FEISHU_APP_SECRET=your-app-secret💡 参考项目:clawdbot-feishu - 飞书机器人完整实现示例
钉钉配置
- 访问 钉钉开发者后台
- 创建企业内部应用
- 添加「机器人」能力
- 配置消息接收模式为 Stream 模式
- 发布应用
从开发者后台获取:
- Client ID(AppKey)
- Client Secret(AppSecret)
- Robot Code(与 Client ID 相同)
- Corp ID(与 Client ID 相同)
- Agent ID(应用 ID)
在 .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- 可选,企业 IDDINGTALK_AGENT_ID- 可选,应用 Agent IDDINGTALK_BINDINGS- 可选,绑定 Bot 到 Agent(格式:botName:agentId)
多 Bot 绑定示例:
# 单账号
DINGTALK_CLIENT_ID=mybot:ding_appkey
DINGTALK_CLIENT_SECRET=mybot:secret
DINGTALK_BINDINGS=mybot:myagent
# 多账号
DINGTALK_CLIENT_ID=bot1:appkey1,bot2:appkey2
DINGTALK_CLIENT_SECRET=bot1:secret1,bot2:secret2
DINGTALK_BINDINGS=bot1:agent1,bot2:agent2💡 参考项目:openclaw-channel-dingtalk - 钉钉渠道完整实现示例
QQ 机器人配置
- 访问 QQ 开放平台
- 创建机器人应用
- 获取 AppID 和 AppSecret(ClientSecret)
- 获取主机在公网的 IP,配置到 IP 白名单
在 .env 文件中添加:
QQBOT_APP_ID=你的AppID
QQBOT_CLIENT_SECRET=你的AppSecret💡 参考项目:qqbot - QQ 机器人完整实现示例
企业微信配置
- 访问 企业微信管理后台
- 进入"应用管理" - 用 API 模式创建"智能机器人"应用
- 在应用的"接收消息"配置中设置 Token 和 EncodingAESKey
- 设置"接收消息"URL 为你的服务地址(例如:https://your-domain.com/webhooks/wxwork),需要当前服务可公网访问
在 .env 文件中添加:
WECOM_TOKEN=your-token
WECOM_ENCODING_AES_KEY=your-aes-key💡 参考项目:openclaw-plugin-wecom - 企业微信插件完整实现示例