OpenClaw 钉钉机器人配置指南(macOS)
在 macOS 系统下安装 Node.js 环境、部署 OpenClaw 核心服务并集成钉钉机器人的完整流程。内容包括通过 nvm 管理 Node.js 版本,使用 npm 全局安装 OpenClaw 及钉钉插件,配置 openclaw.json 中的插件白名单与频道认证信息,以及验证网关状态和测试消息交互。此外,还整理了常见报错(如权限拒绝、JSON 解析错误、依赖缺失)的排查步骤与修复命令,帮助用户快速完成本地 AI 助手搭建。

在 macOS 系统下安装 Node.js 环境、部署 OpenClaw 核心服务并集成钉钉机器人的完整流程。内容包括通过 nvm 管理 Node.js 版本,使用 npm 全局安装 OpenClaw 及钉钉插件,配置 openclaw.json 中的插件白名单与频道认证信息,以及验证网关状态和测试消息交互。此外,还整理了常见报错(如权限拒绝、JSON 解析错误、依赖缺失)的排查步骤与修复命令,帮助用户快速完成本地 AI 助手搭建。

OpenClaw 需要 Node.js 22 或更高版本。推荐使用 nvm 安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.zshrc
nvm install 22
node -v # 验证
使用 npm 全局安装:
npm install -g openclaw@latest
如果网络慢,可先配置国内镜像源:
npm config set registry https://registry.npmmirror.com
执行初始化向导,建议选择 Manual 模式,以便后续手动控制:
openclaw onboard --install-daemon
在向导中:
完成后,OpenClaw 核心服务已运行。
使用官方推荐的钉钉插件包(由社区维护):
openclaw plugins install @soimy/dingtalk
如果遇到权限错误(EACCES),修复 npm 缓存所有权:
sudo chown -R 501:20 ~/.npm
如果安装过程中依赖安装失败(如 dingtalk-stream 缺失),可手动进入插件目录安装:
cd ~/.openclaw/extensions/dingtalk
npm install
编辑配置文件 ~/.openclaw/openclaw.json,在 plugins 部分添加:
{
"plugins": {
"allow": ["dingtalk"]
}
}
或者通过命令设置:
openclaw config set plugins.allow '["dingtalk"]'
在 ~/.openclaw/openclaw.json 中添加 channels 部分:
{
"channels": {
"dingtalk": {
"enabled": true,
"clientId": "你的钉钉 AppKey",
"clientSecret": "你的钉钉 AppSecret"
}
}
}
注意:确保 JSON 格式正确,使用英文双引号,无多余逗号。避免使用中文标点导致解析错误。
openclaw gateway restart
openclaw channels list
应显示 DingTalk default: configured, enabled。
在钉钉中向机器人发送消息(例如'你好'),同时观察日志:
openclaw logs --follow
如能收到回复,说明配置成功。
如果你需要让 AI 读写文件或操作网页,可以安装相关技能(以浏览器自动化为首):
openclaw plugins search agent-browser
openclaw plugins install @openclaw/agent-browser
安装后重启网关,即可在钉钉中指令 AI 执行文件读取、网页抓取等任务。
以下是在安装和配置过程中可能遇到的典型问题及处理方法,供你日后排查参考:
| 错误现象 | 可能原因 | 解决方法 |
|---|---|---|
| zsh: command not found: node | Node.js 未安装 | 安装 Node.js(见第一步) |
| EACCES: permission denied | npm 缓存文件权限问题 | sudo chown -R 501:20 ~/.npm |
| JSON5 parse failed: invalid character ',' | 配置文件中混入了中文标点 | 用英文标点替换,如,→ ,,' → " |
| unknown channel id: dingtalk | 钉钉插件未安装或未加载 | 安装 @soimy/dingtalk,并加入 plugins.allow,重启网关 |
| Cannot find module 'dingtalk-stream' | 插件依赖未自动安装 | cd ~/.openclaw/extensions/dingtalk && npm install |
| duplicate plugin id detected | 插件文件夹有多个副本或配置重复 | 检查 ~/.openclaw/extensions/,只保留一个 feishu 或 dingtalk 文件夹;同时检查配置文件中 plugins.entries 是否有重复条目 |
| plugins.allow is empty 警告 | 未设置插件白名单 | 设置 plugins.allow 为 ["dingtalk", "其他插件 ID"] |
| Package not found on npm: @soimy/xxx | 插件包名不存在或错误 | 查阅官方插件文档获取正确包名,或尝试搜索 openclaw plugins search <关键词> |
| openclaw skills install file-manager 报错 | skills 命令用法错误或技能不存在 | 技能通常通过插件安装,应使用 openclaw plugins install;如需文件操作,可安装浏览器自动化插件或创建自定义技能 |
| 钉钉机器人无响应 | 钉钉后台未发布应用、事件订阅未配置或 Stream 模式未选 | 登录钉钉开发者后台,确认已添加 im.message.receive_v1 事件,选择'使用长连接接收事件',并发布最新版本 |
| 网关启动超时(port 18789 free) | 配置文件错误(如未知频道 ID)或插件加载卡死 | 运行 openclaw doctor --fix 尝试修复,或检查日志 openclaw logs --follow 定位具体错误 |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online