前言
钉钉机器人是企业协作中常用的自动化工具。本文介绍如何将 OpenClaw AI 助手接入钉钉群机器人,让团队成员在群里就能与 AI 对话,执行各种自动化任务。
准备工作
- 钉钉企业账号(有权限创建群机器人)
- 部署好的 OpenClaw 服务
- 公网可访问的服务器或内网穿透工具
第一步:创建钉钉群机器人
1.1 进入群设置
- 打开钉钉,进入目标群聊
- 点击右上角 群设置(齿轮图标)
- 选择 智能群助手 → 添加机器人
1.2 添加自定义机器人
- 点击 添加机器人 → 自定义(通过 Webhook 接入自定义服务)
- 点击 添加
1.3 配置机器人
填写机器人信息:
| 配置项 | 说明 |
|---|---|
| 机器人名称 | OpenClaw助手 |
| 添加到群组 | 当前群聊 |
| 安全设置 | 选择 加签(推荐)或 IP白名单 |
安全设置 - 加签模式
选择 加签 后,钉钉会生成一个 签名密钥,后续验证消息时需要用到。
点击 完成,保存生成的 Webhook 地址 和 签名密钥。
示例:
Webhook: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxx
签名密钥: SECxxxxxxxxxxxxx
第二步:配置 OpenClaw
2.1 编辑配置文件
编辑 OpenClaw 的配置文件(通常是 ~/.openclaw/config.yml):
channels:
dingtalk:
enabled: true
# 钉钉机器人 Webhook 的 access_token
accessToken: "xxxxxxxxxx"
# 安全设置的签名密钥(如果启用了加签)
secret: "SECxxxxxxxxxxxxx"
# 接收消息的服务端口
port: 8080
# 接收消息的路径
path: "/webhook/dingtalk"
# 机器人名称(@时触发)
botName: "OpenClaw助手"
2.2 配置内网穿透(如需)
如果 OpenClaw 运行在本地或内网,需要配置内网穿透,让钉钉服务器能访问到。
使用 ngrok 示例:
# 安装 ngrok
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
tar xvzf ngrok-v3-stable-linux-amd64.tgz
sudo mv ngrok /usr/local/bin/
# 配置 authtoken(从 ngrok 官网获取)
ngrok config add-authtoken YOUR_AUTHTOKEN
# 启动 HTTP 隧道,转发到本地 8080 端口
ngrok http 8080
启动后会显示公网地址:
Forwarding https://xxxx.ngrok-free.app -> http://localhost:8080
2.3 更新钉钉机器人 Webhook 地址
回到钉钉群设置 → 智能群助手 → 找到 OpenClaw助手 → 管理
将 Webhook 地址更新为:
https://xxxx.ngrok-free.app/webhook/dingtalk
第三步:启动 OpenClaw
# 启动 OpenClaw 服务
openclaw gateway start
# 查看日志确认钉钉通道已加载
openclaw logs
看到类似日志表示成功:
[INFO] DingTalk channel loaded
[INFO] Webhook server listening on :8080
[INFO] DingTalk webhook endpoint: /webhook/dingtalk
第四步:测试机器人
在钉钉群里发送消息测试:
@OpenClaw助手 你好
或私聊机器人(如果配置了单聊模式):
你好,请介绍一下自己
预期响应
机器人会回复类似:
你好!我是 OpenClaw AI 助手 🤖
我可以帮你:
- 执行服务器命令
- 管理 GitHub 仓库
- 查询信息、编写代码
- 各种自动化任务
请告诉我你需要什么帮助!
高级配置
5.1 限制触发方式
可以配置只在被 @ 时才响应,避免干扰正常聊天:
channels:
dingtalk:
enabled: true
accessToken: "xxxxxxxxxx"
secret: "SECxxxxxxxxxxxxx"
# 只在被 @ 时触发
requireMention: true
botName: "OpenClaw助手"
5.2 配置关键词触发
设置特定关键词触发机器人:
channels:
dingtalk:
enabled: true
accessToken: "xxxxxxxxxx"
secret: "SECxxxxxxxxxxxxx"
# 关键词触发列表
keywords:
- "助手"
- "AI"
- "帮助"
5.3 多群配置
支持同时接入多个钉钉群:
channels:
dingtalk:
- name: "技术群"
enabled: true
accessToken: "token1"
secret: "secret1"
port: 8080
path: "/webhook/dingtalk/tech"
- name: "运维群"
enabled: true
accessToken: "token2"
secret: "secret2"
port: 8080
path: "/webhook/dingtalk/ops"
常见问题
Q1: 机器人不回复消息
排查步骤:
检查 OpenClaw 是否正常运行
openclaw status检查 Webhook 地址是否可访问
curl https://your-domain.com/webhook/dingtalk # 应该返回 200 或 405(方法不允许,表示服务正常)查看 OpenClaw 日志
openclaw logs -f检查钉钉机器人安全设置是否正确(加签密钥是否匹配)
Q2: 提示 “请求超时”
钉钉要求机器人必须在 5 秒内响应。如果处理时间较长:
- 开启异步处理模式
- 先回复 “处理中…",完成后通过主动推送接口发送结果
Q3: 如何发送卡片消息
OpenClaw 支持发送钉钉卡片消息:
---
card:
type: markdown
title: "部署通知"
content: |
## 部署成功 ✅
- 项目:myblogs
- 版本:v1.2.0
- 时间:2026-03-07 12:00:00
---
安全建议
- 妥善保管密钥:
accessToken和secret不要提交到代码仓库 - 使用环境变量:
accessToken: "${DINGTALK_TOKEN}" secret: "${DINGTALK_SECRET}" - 限制 IP 白名单:如果服务器有固定 IP,建议配置 IP 白名单替代加签
- 启用 HTTPS:生产环境务必使用 HTTPS 传输
总结
通过本文的配置,你已经成功将 OpenClaw 接入钉钉机器人。现在团队成员可以在群里:
- 🤖 直接 @AI 助手提问
- 🔧 执行自动化运维任务
- 📊 查询服务器状态
- 🚀 触发部署流程
钉钉机器人 + OpenClaw 的组合,让团队协作更加智能高效。
参考链接
本文由 OpenClaw 协助编写 🫡