开始之前,请确保你已经:
本插件作为 OpenClaw Gateway 插件使用,一般无需你单独安装或管理 Node.js 运行时。
- 官方网站:https://openclaw.ai/
- 安装说明:按照官方指南安装 OpenClaw
- 验证安装:
预期输出:
openclaw gateway status
✓ Gateway is running on http://127.0.0.1:18789
重要:dingtalk-connector v0.8.4+ 需要 OpenClaw SDK v2026.3.22 或更高版本。
| dingtalk-connector 版本 | 最低 OpenClaw SDK 版本 | 说明 |
|---|---|---|
| v0.8.4+ | v2026.3.22+ | 使用新版 SDK API,支持更完善的路由和会话管理 |
| v0.8.3 及以下 | v2026.3.x | 兼容旧版 SDK |
如何检查版本:
# 检查 OpenClaw 版本
openclaw --version
# 检查插件版本
openclaw plugins list如何升级:
# 升级 OpenClaw 到最新版本
npm install -g openclaw@latest
# 或使用 yarn
yarn global add openclaw@latest版本不兼容时的表现:
- 插件加载时会显示详细的错误提示
- 提示信息会包含升级命令和降级方案
- 插件会自动停止加载,不影响其他插件
- 你需要一个钉钉企业账号来创建企业内部应用
- 官方网站:https://www.dingtalk.com/
💡 目标:5 分钟内让你的钉钉机器人运行起来
- macOS / Linux:使用默认的 Shell 终端(zsh、bash 等)。
- Windows:
- 推荐使用 PowerShell 或 Windows Terminal。
- OpenClaw 配置文件路径默认为:
C:\Users\<你的用户名>\.openclaw\openclaw.json。
下文中出现的 ~/.openclaw/openclaw.json,在 Windows 上等价于以上路径。
openclaw plugins install @dingtalk-real-ai/dingtalk-connector如果你想对插件进行二次开发,可以先克隆仓库:
# 1. 克隆插件仓库
git clone https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
cd dingtalk-openclaw-connector
# 2. 安装依赖(必需)
npm install
# 3. 以链接模式安装(方便修改代码后实时生效)
openclaw plugins install -l .- 将本仓库下载或复制到
~/.openclaw/extensions/dingtalk-connector。 - 确保包含
index.ts、openclaw.plugin.json和package.json。 - 在该目录下运行
npm install安装依赖。
如果你在国内网络环境下执行 openclaw plugins install 时卡在 Installing plugin dependencies... 或出现 npm install failed,可临时为该次安装指定镜像源:
NPM_CONFIG_REGISTRY=https://registry.npmmirror.com openclaw plugins install @dingtalk-real-ai/dingtalk-connector如果插件已处于半安装状态(例如扩展目录存在但依赖未装全),可进入插件目录手动补装依赖:
cd ~/.openclaw/extensions/dingtalk-connector
rm -rf node_modules package-lock.json
NPM_CONFIG_REGISTRY=https://registry.npmmirror.com npm install如果希望长期生效,可设置 npm 默认镜像:
npm config set registry https://registry.npmmirror.com或写入 ~/.npmrc:
registry=https://registry.npmmirror.com
验证安装:
openclaw plugins list你应该看到类似 ✓ DingTalk Channel (vX.X.X) - loaded 的输出。
⚠️ 如果没看到loaded,请先解决插件加载问题,再进行步骤 3 的配置。否则openclaw channels add中不会出现钉钉选项。
- 访问 钉钉开放平台
- 点击 "应用开发"
- 在应用详情页,点击 一键创建OpenClaw机器人应用
- 完成创建并获取 "凭证与基础信息"
- 复制你的 AppKey(Client ID)
- 复制你的 AppSecret(Client Secret)
⚠️ 重要:Client ID和 Client Secret是机器人的唯一凭证。请合理保存。
你有三种方式配置连接器:
你可以直接复制粘贴下面的命令,在终端中运行配置向导。
openclaw channels add选择 "DingTalk (钉钉)",然后按提示输入:
clientId(AppKey)clientSecret(AppSecret)
编辑配置文件:
- macOS / Linux:
~/.openclaw/openclaw.json - Windows:
C:\Users\<你的用户名>\.openclaw\openclaw.json
{
"channels": {
"dingtalk-connector": {
"enabled": true,
"clientId": "dingxxxxxxxxx",
"clientSecret": "your_app_secret"
}
}
}💡 提示:如果文件已有内容,在
channels节点下添加dingtalk-connector部分即可。
# 重启 OpenClaw Gateway
openclaw gateway restart
# 实时查看日志
openclaw logs --follow测试你的机器人:
- 打开钉钉 App
- 在联系人列表中找到你的机器人
- 发送消息:
你好 - 你应该在 10 秒内收到回复
- AI Card 流式响应 - 打字机效果,实时流式显示回复
- 会话管理 - 多轮对话,保持上下文
- 会话隔离 - 私聊、群聊、不同群之间会话独立
- 自动会话重置 - 30 分钟无活动后自动开启新会话
- 手动会话重置 - 发送
/new或新会话清空对话历史 - 图片自动上传 - 本地图片路径自动上传到钉钉
- 主动发送消息 - 程序化地向用户或群发送消息
- 富媒体接收 - 接收并处理 JPEG/PNG 图片,传递给视觉模型
- 文件附件提取 - 解析 .docx、.pdf、文本文件和二进制文件
- 音频消息支持 - 发送多种格式的音频消息(mp3、wav、amr、ogg)
- 钉钉文档 API - 创建、追加、搜索和列举钉钉文档
- 多 Agent 路由 - 将多个机器人连接到不同的 Agent,实现专业化服务
- Markdown 表格转换 - 自动将 Markdown 表格转换为钉钉兼容格式
- 异步模式 - 立即确认消息,后台处理(可选)
| 选项 | 环境变量 | 说明 |
|---|---|---|
clientId |
— | 钉钉 AppKey |
clientSecret |
— | 钉钉 AppSecret |
| 选项 | 默认值 | 说明 |
|---|---|---|
separateSessionByConversation |
true |
私聊/群聊分别维护会话 |
groupSessionScope |
group |
群聊会话范围:group(共享)或 group_sender(每人独立) |
sharedMemoryAcrossConversations |
false |
是否在不同会话间共享记忆 |
当前版本已支持会话路由/消息策略相关配置(包含 pmpolicy、groupPolicy),无需删除。如你在历史配置中已经设置了这些字段,可以继续保留并按需调整。
说明:不同版本/上游可能对字段命名有差异;本连接器侧同时支持并会按策略生效(如
dmPolicy/groupPolicy的默认值为open)。
| 选项 | 默认值 | 说明 |
|---|---|---|
asyncMode |
false |
启用异步模式处理长时间任务 |
ackText |
🫡 任务已接收,处理中... |
确认消息文本 |
症状:机器人不回复消息
解决方案:
- 检查插件状态:
openclaw plugins list - 检查网关状态:
openclaw gateway status - 查看日志:
openclaw logs --follow - 确认应用已在钉钉开放平台发布
症状:
Problem:
- channels.dingtalk-connector: invalid config: must NOT have additional properties
原因:配置文件中包含已废弃或已重命名的字段,连接器不再识别。
解决方案:打开 openclaw.config.yaml,删除 channels.dingtalk-connector 下不再支持的字段。已知需要删除的旧字段:
| 旧字段 | 说明 |
|---|---|
gatewayPassword |
早期版本字段,已废弃 |
gatewayToken |
早期版本字段,已废弃 |
dmHistoryLimit |
v0.8.9 移除(未实现) |
错误信息会指出具体的字段名,删除后重启即可。
症状:错误信息显示 "401 Unauthorized"
原因:Gateway 认证失败
解决方案:
升级到最新版本
症状:日志显示 "Request failed with status code 400"
常见原因:
| 原因 | 解决方案 |
|---|---|
| 应用未发布 | 前往钉钉开放平台 → 版本管理 → 发布 |
| 凭证错误 | 检查 clientId/clientSecret 是否有拼写错误或多余空格 |
| 非 Stream 模式 | 确认机器人配置为 Stream 模式(不是 Webhook) |
| IP 白名单限制 | 检查应用是否设置了 IP 白名单 |
验证步骤:
-
检查应用状态:
- 登录 钉钉开放平台
- 确认应用已发布
- 确认机器人已启用且为 Stream 模式
-
重新发布应用:
- 修改任何配置后,必须点击 保存 → 发布
配置多个机器人连接到不同的 Agent:
{
"agents": {
"list": [
{
"id": "ding-bot1",
"name": "钉钉客服机器人",
"model": "your-model-config",
"workspace": "~/.openclaw/workspace-bot1",
"identity": {
"name": "客服小助手",
"theme": "专业客服",
"emoji": "🤝"
}
// 其他 agent 配置...
},
{
"id": "ding-bot2",
"name": "钉钉技术支持机器人",
"model": "your-model-config",
"workspace": "~/.openclaw/workspace-bot2",
"identity": {
"name": "技术专家",
"theme": "技术支持",
"emoji": "🔧"
}
// 其他 agent 配置...
}
]
},
"channels": {
"dingtalk-connector": {
"enabled": true,
"accounts": {
"bot1": {
"enabled": true,
"clientId": "ding_bot1_app_key",
"clientSecret": "bot1_secret"
},
"bot2": {
"enabled": true,
"clientId": "ding_bot2_app_key",
"clientSecret": "bot2_secret"
}
}
}
},
"bindings": [
{
"agentId": "ding-bot1",
"match": {
"channel": "dingtalk-connector",
"accountId": "bot1"
}
},
{
"agentId": "ding-bot2",
"match": {
"channel": "dingtalk-connector",
"accountId": "bot2"
}
}
]
}更多详情请参考 OpenClaw 多 Agent 配置指南。
用户可以发送以下命令清理对话历史,重新开始会话:
/new、/reset、/clear新会话、重新开始、清空对话
钉钉文档能力(docs.*,包含 docs.create / docs.append / docs.search / docs.list / docs.read)依赖 MCP(Model Context Protocol)提供底层 tool。你需要先在 OpenClaw 的 Gateway/Agent 侧启用对应的 MCP Server/Tool,然后上述 docs.* 才能正常工作。
- 获取 MCP Server/Tool:可通过 钉钉 MCP 市场 安装启用(或你们团队维护的 MCP 市场);也可以选择同类的“DingTalk Docs Read / DingTalk Docs Reader”能力并接入到 OpenClaw。
- 配置位置:通常在 Gateway 或 Agent 的工具配置中完成(而不是在连接器里)。
- 生效方式:配置完成后重启 Gateway,并确认该 tool 已对目标 Agent 暴露。
参考(OpenClaw 官方配置文档):
https://docs.openclaw.ai/configurationhttps://docs.openclaw.ai/gateway/configuration-reference
从你的 Agent 中创建和管理钉钉文档:
// 创建文档
dingtalk-connector.docs.create({
spaceId: "your-space-id",
title: "测试文档",
content: "# 测试内容"
})
// 追加内容
dingtalk-connector.docs.append({
docId: "your-doc-id",
markdownContent: "\n## 追加的内容"
})
// 搜索文档
dingtalk-connector.docs.search({
keyword: "搜索关键词"
})
// 列举文档
dingtalk-connector.docs.list({
spaceId: "your-space-id"
})dingtalk-openclaw-connector/
├── src/
│ ├── core/ # Core connector logic
│ ├── services/ # DingTalk API services
│ ├── utils/ # Utility functions
│ └── types/ # TypeScript type definitions
├── docs/
│ └── images/ # Documentation images
├── openclaw.plugin.json # Plugin manifest
├── package.json # npm dependencies
└── LICENSE
| 包 | 用途 |
|---|---|
dingtalk-stream |
钉钉 Stream 协议客户端 |
axios |
HTTP 客户端 |
mammoth |
Word 文档(.docx)解析 |
pdf-parse |
PDF 文档解析 |
通过钉钉 DEAP Agent 与 OpenClaw Gateway 连接,实现自然语言驱动的本地设备操作能力。详见 钉钉 DEAP Agent 集成指南。
- 问题反馈:GitHub Issues
- 更新日志:CHANGELOG.md



