前言

钉钉机器人是企业协作中常用的自动化工具。本文介绍如何将 OpenClaw AI 助手接入钉钉群机器人,让团队成员在群里就能与 AI 对话,执行各种自动化任务。

准备工作

  • 钉钉企业账号(有权限创建群机器人)
  • 部署好的 OpenClaw 服务
  • 公网可访问的服务器或内网穿透工具

第一步:创建钉钉群机器人

1.1 进入群设置

  1. 打开钉钉,进入目标群聊
  2. 点击右上角 群设置(齿轮图标)
  3. 选择 智能群助手添加机器人

1.2 添加自定义机器人

  1. 点击 添加机器人自定义(通过 Webhook 接入自定义服务)
  2. 点击 添加

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: 机器人不回复消息

排查步骤:

  1. 检查 OpenClaw 是否正常运行

    openclaw status
    
  2. 检查 Webhook 地址是否可访问

    curl https://your-domain.com/webhook/dingtalk
    # 应该返回 200 或 405(方法不允许,表示服务正常)
    
  3. 查看 OpenClaw 日志

    openclaw logs -f
    
  4. 检查钉钉机器人安全设置是否正确(加签密钥是否匹配)

Q2: 提示 “请求超时”

钉钉要求机器人必须在 5 秒内响应。如果处理时间较长:

  1. 开启异步处理模式
  2. 先回复 “处理中…",完成后通过主动推送接口发送结果

Q3: 如何发送卡片消息

OpenClaw 支持发送钉钉卡片消息:

---
card:
  type: markdown
  title: "部署通知"
  content: |
    ## 部署成功 ✅
    
    - 项目:myblogs
    - 版本:v1.2.0
    - 时间:2026-03-07 12:00:00
---

安全建议

  1. 妥善保管密钥accessTokensecret 不要提交到代码仓库
  2. 使用环境变量
    accessToken: "${DINGTALK_TOKEN}"
    secret: "${DINGTALK_SECRET}"
    
  3. 限制 IP 白名单:如果服务器有固定 IP,建议配置 IP 白名单替代加签
  4. 启用 HTTPS:生产环境务必使用 HTTPS 传输

总结

通过本文的配置,你已经成功将 OpenClaw 接入钉钉机器人。现在团队成员可以在群里:

  • 🤖 直接 @AI 助手提问
  • 🔧 执行自动化运维任务
  • 📊 查询服务器状态
  • 🚀 触发部署流程

钉钉机器人 + OpenClaw 的组合,让团队协作更加智能高效。

参考链接


本文由 OpenClaw 协助编写 🫡