快速对接钉钉企业内部机器人渠道。适用于对接钉钉渠道、配置 Stream 模式、排查消息问题。不适用于飞书、企业微信等其他平台。
DingTalk Channel Setup是一项面向实际任务的技能,主要用于钉钉企业内部机器人渠道快速对接指南;When to Use;
需要安装钉钉插件;"DingTalk channel setup";❌ DON’T use when;飞书/Lark 配置 → use feishu skill;企业微信 →。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
钉钉企业内部机器人渠道快速对接指南。
✅ USE this skill when:
❌ DON'T use when:
feishu skillwecom skill 确保已准备:
国内网络环境(推荐使用镜像):
$env:NPM_CONFIG_REGISTRY="https://registry.npmmirror.com" openclaw plugins install @soimy/dingtalk
国际网络:
openclaw plugins install @soimy/dingtalk
如需代理:
$env:HTTP_PROXY="http://127.0.0.1:7897" $env:HTTPS_PROXY="http://127.0.0.1:7897" openclaw plugins install @soimy/dingtalk
编辑 ~/.openclaw/openclaw.json,添加插件到白名单:
{
"plugins": {
"enabled": true,
"allow": ["dingtalk"]
}
}
如果已有其他插件,添加到数组中:
{
"plugins": {
"allow": ["telegram", "discord", "dingtalk"]
}
}
方式一:交互式配置(推荐)
openclaw configure --section channels
按提示操作:
方式二:手动编辑配置文件
编辑 ~/.openclaw/openclaw.json,添加 channel 配置:
{
"channels": [
{
"id": "dingtalk",
"plugin": "dingtalk",
"enabled": true,
"clientId": "your_client_id",
"clientSecret": "your_client_secret",
"dm": "open",
"group": "open"
}
]
}
完整配置示例:
{
"id": "dingtalk",
"plugin": "dingtalk",
"enabled": true,
"clientId": "ding3ti4ahg82dsfkwld",
"clientSecret": "FrpMFcI30c0STvaJJWyMSZoyeb2Hkm9YqXY-6mJ0dGwdN8Xux7mgT_Xn7qnpvO-F",
"robotCode": "your_robot_code",
"corpId": "your_corp_id",
"agentId": "your_agent_id",
"aiCard": false,
"dm": "open",
"group": "open"
}
openclaw gateway restart
| 参数 | 必需 | 说明 | 默认值 |
|---|---|---|---|
clientId |
✅ | DingTalk App Key | - |
clientSecret |
✅ | DingTalk App Secret | - |
robotCode |
❌ | 机器人代码 | - |
corpId |
❌ | 企业 ID | - |
agentId |
❌ | 应用 Agent ID | - |
aiCard |
❌ | 启用 AI 互动卡片 | false |
dm |
❌ | 私聊策略:open / allowlist |
open |
group |
❌ | 群聊策略:open / allowlist |
open |
测试连接:
# 检查 Gateway 状态 openclaw gateway status # 查看日志 openclaw logs gateway # 列出插件 openclaw plugins list
在钉钉中给机器人发送消息,应该能收到回复。
如果安装停在 "Installing plugin dependencies...":
cd ~/.openclaw/extensions/dingtalk rm -rf node_modules package-lock.json NPM_CONFIG_REGISTRY=https://registry.npmmirror.com npm install openclaw gateway restart
检查清单:
✅ Gateway 运行中
openclaw gateway status
✅ 插件在白名单
检查 openclaw.json 中的 plugins.allow 包含 "dingtalk"
✅ 渠道已启用
检查 channels[].enabled 为 true
✅ 凭证正确 在钉钉开放平台验证 Client ID/Secret
✅ 重启 Gateway
openclaw gateway restart
# 设置 npm 镜像 $env:NPM_CONFIG_REGISTRY="https://registry.npmmirror.com" # 设置代理(如需要) $env:HTTP_PROXY="http://127.0.0.1:7897" $env:HTTPS_PROXY="http://127.0.0.1:7897"
"Plugin not found"
openclaw plugins list~/.openclaw/extensions/dingtalk"Connection failed"
openclaw logs gateway"Plugin not loaded"
dingtalk 到 plugins.allow如果需要自动化批量部署,可以创建以下 PowerShell 脚本:
auto-setup.ps1:
# DingTalk Channel Auto Setup Script
# Usage: .auto-setup.ps1 -ClientId "xxx" -ClientSecret "xxx"
param(
[Parameter(Mandatory=$true)]
[string]$ClientId,
[Parameter(Mandatory=$true)]
[string]$ClientSecret,
[string]$RobotCode = "",
[string]$CorpId = "",
[string]$AgentId = "",
[string]$ProxyUrl = "http://127.0.0.1:7897",
[string]$NpmRegistry = "https://registry.npmmirror.com",
[switch]$UseProxy = $false
)
Write-Host "=== DingTalk Channel Auto Setup ===" -ForegroundColor Cyan
# Set proxy if needed
if ($UseProxy) {
$env:HTTP_PROXY = $ProxyUrl
$env:HTTPS_PROXY = $ProxyUrl
}
# Set npm registry
$env:NPM_CONFIG_REGISTRY = $NpmRegistry
# Install plugin
Write-Host "Installing plugin..." -ForegroundColor Yellow
openclaw plugins install @soimy/dingtalk
# Update openclaw.json
Write-Host "Updating configuration..." -ForegroundColor Yellow
$configPath = "$env:USERPROFILE.openclawopenclaw.json"
$config = Get-Content $configPath -Raw | ConvertFrom-Json
# Add plugin to allowlist
if (-not $config.plugins) {
$config | Add-Member -MemberType NoteProperty -Name "plugins" -Value @{
enabled = $true
allow = @("dingtalk")
}
} else {
if (-not $config.plugins.allow) {
$config.plugins | Add-Member -MemberType NoteProperty -Name "allow" -Value @("dingtalk")
} elseif ($config.plugins.allow -notcontains "dingtalk") {
$config.plugins.allow += "dingtalk"
}
}
# Add channel configuration
if (-not $config.channels) {
$config | Add-Member -MemberType NoteProperty -Name "channels" -Value @()
}
$dingtalkConfig = @{
id = "dingtalk"
plugin = "dingtalk"
enabled = $true
clientId = $ClientId
clientSecret = $ClientSecret
dm = "open"
group = "open"
}
if ($RobotCode) { $dingtalkConfig.robotCode = $RobotCode }
if ($CorpId) { $dingtalkConfig.corpId = $CorpId }
if ($AgentId) { $dingtalkConfig.agentId = $AgentId }
$config.channels = @($config.channels | Where-Object { $_.id -ne "dingtalk" })
$config.channels += $dingtalkConfig
$config | ConvertTo-Json -Depth 10 | Set-Content $configPath
# Restart Gateway
Write-Host "Restarting Gateway..." -ForegroundColor Yellow
openclaw gateway restart
Write-Host "Setup Complete!" -ForegroundColor Green
使用方法:
# 基本用法
.auto-setup.ps1 -ClientId "your_id" -ClientSecret "your_secret"
# 使用代理
.auto-setup.ps1 -ClientId "your_id" -ClientSecret "your_secret" -UseProxy
# 完整配置
.auto-setup.ps1 `
-ClientId "your_id" `
-ClientSecret "your_secret" `
-RobotCode "your_code" `
-CorpId "your_corp" `
-AgentId "your_agent" `
-UseProxy
~/.openclaw/openclaw.json~/.openclaw/extensions/dingtalkopenclaw logs gateway