clawpanel

ClawPanel 钉钉接入指南

本文面向 ClawPanel / OpenClaw 用户,说明如何把钉钉企业内部应用接入为消息渠道,并完成最小可用联调。

适用方案

当前 ClawPanel 走的是 钉钉企业内部应用 + 机器人能力 + Stream 模式 + dingtalk-connector 插件 方案。

这不是自定义 Webhook 机器人方案,也不是 DEAP Agent 方案。

前置条件

在开始前,请确认:

一、在钉钉开放平台创建应用

  1. 打开钉钉开放平台
  2. 进入 应用开发
  3. 选择 企业内部开发
  4. 创建一个新的企业内部应用

建议先准备好应用名称、图标和应用描述,便于后续在钉钉侧识别机器人。

二、给应用添加机器人能力

在应用能力中添加 机器人。

关键点:

如果这里选错,插件即使安装成功,机器人通常也不会正常收发消息。

三、配置权限

至少确认已开通下列权限:

如果你后续还想使用文档相关能力,再补充文档 API 所需权限。

四、获取凭证

在钉钉应用的 凭证与基础信息 页面,记录:

在 ClawPanel 中的字段映射如下:

ClawPanel 字段 钉钉后台字段 说明
clientId Client ID / AppKey 必填
clientSecret Client Secret / AppSecret 必填
gatewayToken gateway.auth.token Gateway 开启 token 鉴权时填写
gatewayPassword gateway.auth.password Gateway 开启 password 鉴权时填写

五、发布应用版本

这一步非常重要。

在你完成机器人能力、权限和基础信息配置后,需要 发布应用版本。

如果没有发布,常见现象包括:

六、在 ClawPanel 中接入钉钉

打开 消息渠道 页面,选择 钉钉。

填写:

填写规则:

从当前版本开始,ClawPanel 在打开钉钉配置弹窗时会自动读取 openclaw.json 中的 gateway.auth:

建议先点击 校验凭证,确认 Client ID / Client Secret 可用后,再点击保存。

七、ClawPanel 保存时会自动做什么

保存钉钉渠道时,ClawPanel 会自动完成以下动作:

从当前版本开始:

八、手动配置时的最小示例

如果你不通过 ClawPanel,而是手改 ~/.openclaw/openclaw.json,最小示例如下:

{
  "channels": {
    "dingtalk-connector": {
      "enabled": true,
      "clientId": "你的 Client ID / AppKey",
      "clientSecret": "你的 Client Secret / AppSecret",
      "gatewayToken": "如果 gateway.auth.mode=token 则填这里",
      "gatewayPassword": ""
    }
  },
  "gateway": {
    "http": {
      "endpoints": {
        "chatCompletions": {
          "enabled": true
        }
      }
    }
  }
}

注意:不要整段覆盖已有的 gateway 节点,而是将 http.endpoints.chatCompletions.enabled 追加到已有配置中。

九、保存后建议执行的检查

1. 检查插件是否已加载

openclaw plugins list

确认输出中存在:

dingtalk-connector

2. 检查 Gateway 是否运行

curl http://127.0.0.1:18789/health

3. 如有需要,重启 Gateway

openclaw gateway restart

十、私聊与群聊测试方法

1. 私聊机器人

先确认以下前置条件:

推荐操作路径:

  1. 在钉钉客户端搜索你的应用名或机器人名
  2. 如果搜索不到,再到 工作台 / 全部应用 中查找该应用
  3. 打开后发一条简单消息,例如“你好”

说明:

2. 添加到群聊并测试

根据钉钉开放平台“添加机器人到钉钉群”的使用说明,常见路径如下:

  1. 打开目标群聊
  2. 进入 群设置
  3. 找到 智能群助手、机器人 或相近入口
  4. 点击 添加机器人
  5. 搜索你的机器人名称并添加
  6. 返回群聊,先发送 @机器人 你好 做测试

说明:

十一、建议的联调顺序

建议按下面顺序测试:

  1. 先在钉钉里 私聊机器人,发一条简单消息,例如“你好”
  2. 确认私聊通了之后,再把机器人拉入群聊
  3. 再测试群聊消息和卡片回包

这样更容易判断问题到底在:

十二、常见问题

Q1: 出现 405 错误

通常说明 chatCompletions 端点未启用。

检查 openclaw.json 中是否存在:

{
  "gateway": {
    "http": {
      "endpoints": {
        "chatCompletions": {
          "enabled": true
        }
      }
    }
  }
}

Q2: 出现 401 错误

通常说明钉钉连接器填写的 gatewayToken / gatewayPassword 与 Gateway 实际鉴权配置不一致。

重点检查:

Q3: 机器人无响应

按顺序检查:

  1. Gateway 是否运行
  2. 机器人消息接收方式是否为 Stream 模式
  3. Client ID / Client Secret 是否正确
  4. 钉钉应用版本是否已经发布
  5. 应用可见范围是否包含当前测试账号
  6. 首次私聊是否还在等待配对审批

Q4: AI Card 不显示,只能看到纯文本

通常是权限未开齐。

至少检查:

修改权限后,记得重新发布应用版本。

Q5: 搜不到机器人,没法私聊,也没法加到群里

优先检查:

如果是群聊场景,还要确认:

Q6: 机器人在群里已添加,但还是不响应

优先检查:

Q7: 保存时为什么以前总是重复安装插件?

旧逻辑在每次保存渠道配置时都会执行插件安装。

当前版本已经修复为:

Q8: 为什么会看到“dangerous code patterns”警告?

这是 OpenClaw 对插件代码的静态审计提示,不一定等于本次安装失败的根因。

它表示插件中检测到了如下模式之一:

是否接受该插件,仍需要你根据插件来源和使用场景自行判断。

Q9: 为什么会出现 duplicate plugin id detected?

这是旧版本安装器把临时备份目录放在 ~/.openclaw/extensions/ 下导致的。

当前版本已经改为:

十三、高级配置

dingtalk-connector 还支持一些高级项,当前 P0 页面未全部暴露到 UI,可以在 openclaw.json 中手工添加,例如:

这些适合后续做更细的群聊/私聊隔离、异步回执和高级会话策略。

十四、当前可完成与仍需人工完成的部分

ClawPanel 当前已经可以帮助你完成:

但以下动作仍必须由你在钉钉侧人工完成: