ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

OpenClaw 钉钉机器人接入指南:企业内部应用、Stream 长连接与流式 AI Card 实战

OpenClaw 钉钉机器人接入指南:企业内部应用、Stream 长连接与流式 AI Card 实战 人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载钉钉DingTalk是 OpenClaw 中文社区版内置支持的官方聊天渠道之一本文围绕 钉钉机器人渠道文档 展开完整讲解从钉钉开放平台创建企业内部应用、在 OpenClaw 中安装官方连接器、配置凭证与访问策略到通过 Stream 长连接接收消息并以流式 AI Card 实时回复的端到端流程。读完本文你将掌握openclaw-cn channels add、openclaw-cn pairing approve、多 Agent 路由绑定等核心操作并能独立排查机器人不响应、Token 认证失败等常见问题。核心特性一览钉钉渠道在 OpenClaw 中属于生产就绪production-ready状态支持机器人私聊与群组对话其主要特性包括官方连接器接入通过官方dingtalk-real-ai/dingtalk-connector插件接入钉钉机器人中文社区版提供同名包装插件见 extensions/dingtalk-connector/package.json。Stream 长连接模式无需公网服务器钉钉主动通过长连接把消息推送到本地网关适合个人与家庭环境部署。流式 AI Card 回复回复以 AI Card 卡片形式呈现支持实时打字机效果。确定性路由回复始终返回钉钉渠道模型不会自行选择输出渠道。会话隔离私聊共享主会话群组之间相互独立隔离。从渠道注册表看dingtalk-connector在 src/channels/registry.ts 中被注册为核心聊天渠道之一并支持dingtalk、dingding两个别名见 src/channels/registry.ts在 CLI 与配置中均可使用。快速开始两种添加方式添加钉钉渠道有两种途径均可完成插件安装、凭证录入与网关配置。方式一通过安装向导添加推荐如果刚完成 OpenClaw 安装直接运行向导openclaw-cn onboard向导会引导你依次完成安装官方钉钉插件输入应用Client ID与Client Secret输入Gateway Token启动网关。配置完成后用以下命令检查网关状态openclaw-cn gateway status—— 查看网关运行状态openclaw-cn logs --follow—— 实时查看日志。方式二通过命令行添加已完成初始安装的用户可以直接运行openclaw-cn channels add在交互式提示中选择钉钉 (官方连接器)按提示输入三个必填参数即可。插件元数据中的selectionLabel正是“钉钉 (官方连接器)”见 extensions/dingtalk-connector/src/channel.ts。配置完成后openclaw-cn gateway status—— 查看网关运行状态openclaw-cn gateway restart—— 重启网关以应用新配置openclaw-cn logs --follow—— 实时查看日志。第一步创建钉钉企业内部应用钉钉机器人依托“企业内部应用”运行需要企业管理员或开发者权限。1. 打开钉钉开放平台访问钉钉开放平台开发者后台使用钉钉账号需企业管理员或开发者权限登录。2. 创建企业内部应用点击左侧菜单应用开发企业内部开发点击创建应用选择钉钉应用填写应用名称和描述。3. 获取应用凭证进入应用详情页在基础信息页面复制Client ID即 AppKey格式如dingxxxxxxClient Secret即 AppSecret。注意请妥善保管 Client Secret不要分享给他人。AppKey/AppSecret 不要混淆。4. 开启机器人能力在应用详情页进入添加应用能力机器人点击添加开启机器人能力在机器人配置中填写机器人名称和描述消息接收模式选择Stream 模式无需公网服务器这是 OpenClaw 本地网关能直接接收消息的关键前提。5. 配置权限在权限管理页面搜索并添加以下三个必要权限权限名称说明Card.Streaming.Write向 AI Card 推送流式内容打字机效果必需Card.Instance.Write创建和更新 AI Card 实例qyapi_robot_sendmsg机器人发送消息提示根据实际需求可能还需要添加文档读写等其他权限例如让 Agent 读写钉钉文档。6. 发布应用在版本管理与发布页面点击创建新版本填写版本说明后提交选择应用可见范围建议先设为全员进行测试点击确认发布。只有发布后的应用才能被机器人服务正常调用未发布的应用在后续测试阶段会出现“机器人不响应”等异常。第二步配置 OpenClaw通过向导配置推荐运行openclaw-cn channels add选择钉钉 (官方连接器)然后按提示安装官方插件并输入凭证。交互过程大致如下◇ 安装 钉钉 插件? │ 钉钉官方插件 ◇ 输入钉钉应用 Client ID │ dingxxxxxxxxxxxxxx ◇ 输入钉钉应用 Client Secret │ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ◇ 输入 Gateway 认证 Tokenopenclaw.json 中 gateway.auth.token 的值 │ your-gateway-tokenGateway Token 说明钉钉官方插件通过 HTTP 请求本地 Gateway需要认证 Token。如果尚未配置gateway.auth.token可以先设置一个随机字符串例如运行openssl rand -hex 16生成在两处填写相同的值即可。从 extensions/dingtalk-connector/src/onboarding.ts 的实现看向导的configure流程会以已有配置为initialValue预填 Client ID / Client Secret / Gateway Token若未单独配置过gatewayToken则自动回退读取gateway.auth.token作为默认值。提交后applyDingtalkConnectorConfig会做三件事见 extensions/dingtalk-connector/src/onboarding.ts写入channels.dingtalk-connector下的clientId、clientSecret、gatewayToken并置enabled: true强制打开gateway.http.endpoints.chatCompletions.enabled true这是连接器调用本地网关所必需若gateway.auth.mode未设置则设为token若gateway.auth.token未设置则写入刚输入的 Gateway Token。也就是说向导会在你输入凭证的同时自动补齐网关侧认证与 HTTP 端点的配套配置避免漏配导致 401。通过配置文件配置编辑~/.openclaw/openclaw.json{ channels: { dingtalk-connector: { enabled: true, clientId: dingxxxxxxxxxxxxxx, clientSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, gatewayToken: your-gateway-token, dmPolicy: pairing } }, gateway: { auth: { mode: token, token: your-gateway-token }, http: { endpoints: { chatCompletions: { enabled: true } } } } }重要channels.dingtalk-connector.gatewayToken必须与gateway.auth.token保持一致官方插件通过此 Token 验证 Gateway 身份。同时必须开启gateway.http.endpoints.chatCompletions.enabled否则连接器无法把消息转发给本地网关处理。除了上述字段插件配置 Schema 还允许gatewayPassword备用网关密码与sessionTimeout会话超时非负整数两个可选字段见 extensions/dingtalk-connector/src/channel.tsenabled、clientId、clientSecret均为常规必填/可选字段。插件通过reload.configPrefixes: [channels.dingtalk-connector]声明因此修改该配置前缀下的内容即可触发热重载无需手动重建配置。第三步启动并测试1. 启动网关openclaw-cn gateway2. 验证连接启动后查看日志确认钉钉 Stream 连接成功openclaw-cn logs --follow正常启动日志应包含[dingtalk-connector] [__default__] 启动钉钉 Stream 客户端... [dingtalk-connector] [__default__] 钉钉 Stream 客户端已连接插件在运行时以固定账号default运行defaultAccountId: () default见 extensions/dingtalk-connector/src/channel.ts因此日志中的[__default__]是预期输出。3. 发送测试消息在钉钉中搜索机器人名称找到刚创建的机器人发送一条消息。4. 配对授权默认情况下dmPolicy: pairing机器人会回复一个配对码。你需要批准此代码openclaw-cn pairing approve dingtalk-connector 配对码该命令的用法与参数约束定义在 src/cli/pairing-cli.ts支持pairing approve channel code与pairing approve --channel channel code两种形式。批准后即可正常对话机器人将以流式 AI Card 形式实时输出回复。访问控制私聊访问默认dmPolicy: pairing陌生用户会收到配对码批准配对openclaw-cn pairing list dingtalk-connector # 查看待审批列表 openclaw-cn pairing approve dingtalk-connector CODE # 批准白名单模式通过channels.dingtalk-connector.allowFrom配置允许的用户 staffId。群组访问群组策略channels.dingtalk-connector.groupPolicyopen—— 允许群组中所有人默认allowlist—— 仅允许groupAllowFrom中的用户disabled—— 禁用群组消息。获取用户 staffId钉钉侧的访问控制白名单、多 Agent 绑定都依赖用户的 staffId可通过以下方式获取方法一推荐启动网关并给机器人发消息运行openclaw-cn logs --follow查看日志中的senderStaffId字段。方法二查看配对请求列表openclaw-cn pairing list dingtalk-connector配对请求列表中同样包含发起配对用户的 staffId。常用命令命令说明/status查看机器人状态/reset重置对话会话/model查看/切换模型网关管理命令命令说明openclaw-cn gateway status查看网关运行状态openclaw-cn gateway install安装/启动网关服务openclaw-cn gateway stop停止网关服务openclaw-cn gateway restart重启网关服务openclaw-cn logs --follow实时查看日志输出故障排除机器人不响应消息确认 Stream 连接已建立查看日志是否有钉钉 Stream 客户端已连接确认应用已发布且机器人能力已开启确认消息接收模式为Stream 模式而非 HTTP 回调查看日志openclaw-cn logs --follow。Gateway Token 认证失败错误日志包含401或认证失败时确认channels.dingtalk-connector.gatewayToken与gateway.auth.token相同确认gateway.http.endpoints.chatCompletions.enabled: true连接器依赖该 HTTP 端点把钉钉消息转交本地网关重新运行配置向导更新凭证openclaw-cn channels add向导会自动补齐上述两处配置。Client ID / Client Secret 错误在钉钉开放平台检查应用状态是否为已发布重新复制Client ID和Client Secret注意不要混淆 AppKey/AppSecret更新配置openclaw-cn channels add重新选择钉钉并输入正确凭证。机器人在群组中不响应确认机器人已被添加到该群组确认groupPolicy不为disabled在群组中 机器人后发送消息默认需要 查看日志openclaw-cn logs --follow。Client Secret 泄露怎么办在钉钉开放平台重置 Client Secret运行openclaw-cn channels add重新配置重启网关。高级配置多 Agent 路由通过bindings配置可以用一个钉钉机器人对接多个不同功能的 Agent。例如私聊交给mainAgent某个群组交给独立的assistantAgent{ agents: { list: [ { id: main }, { id: assistant, workspace: ~/assistant-workspace } ] }, bindings: [ { agentId: main, match: { channel: dingtalk-connector, peer: { kind: dm, id: staff_id_xxx } } }, { agentId: assistant, match: { channel: dingtalk-connector, peer: { kind: group, id: group_id_xxx } } } ] }匹配规则说明字段说明agentId目标 Agent 的 ID需要在agents.list中定义match.channel渠道类型固定为dingtalk-connectormatch.peer.kind对话类型dm私聊或group群组match.peer.id用户 staffId 或群组 conversationId完整配置示例{ channels: { dingtalk-connector: { enabled: true, clientId: dingxxxxxxxxxxxxxxxxxx, clientSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, gatewayToken: your-gateway-token, dmPolicy: pairing, groupPolicy: open, allowFrom: [staff_id_xxx], groupAllowFrom: [staff_id_xxx, staff_id_yyy] } }, gateway: { auth: { mode: token, token: your-gateway-token }, http: { endpoints: { chatCompletions: { enabled: true } } } } }配置参考配置项说明默认值channels.dingtalk-connector.enabled启用/禁用渠道truechannels.dingtalk-connector.clientId应用 Client IDAppKey-channels.dingtalk-connector.clientSecret应用 Client SecretAppSecret-channels.dingtalk-connector.gatewayTokenGateway 认证 Token-channels.dingtalk-connector.dmPolicy私聊策略pairingchannels.dingtalk-connector.allowFrom私聊白名单staffId 列表-channels.dingtalk-connector.groupPolicy群组策略openchannels.dingtalk-connector.groupAllowFrom群组白名单-gateway.auth.mode网关认证模式-gateway.auth.token网关认证 Token-gateway.http.endpoints.chatCompletions.enabled启用 HTTP Chat Completionsfalse补充来自插件 Schema除上表字段外插件配置还支持gatewayPassword备用密码与sessionTimeout会话超时秒数最小值 0字段定义见 extensions/dingtalk-connector/src/channel.ts。dmPolicy 策略说明值行为pairing默认。未知用户收到配对码管理员批准后才能对话allowlist仅allowFrom列表中的用户可对话其他静默忽略open允许所有人对话需在 allowFrom 中加*disabled完全禁止私聊支持的消息类型接收✅ 文本消息✅ 图片✅ 文件✅ 音频✅ 视频✅ 提及发送✅ 流式 AI Card实时打字机效果✅ 文本消息✅ 图片✅ 文件✅ 音频✅ 视频需要说明的是从插件capabilities声明看见 extensions/dingtalk-connector/src/channel.ts该渠道当前不启用投票、线程、原生命中命令、表情回应与消息编辑等扩展能力核心定位是可靠的文本/多媒体对话与流式卡片回复。小结钉钉渠道为 OpenClaw 中文社区版提供了一条零公网服务器依赖的接入路径钉钉侧选择 Stream 消息接收模式OpenClaw 侧通过官方dingtalk-real-ai/dingtalk-connector连接器建立长连接配合本地网关的chatCompletionsHTTP 端点完成消息转发最终以流式 AI Card 呈现实时回复。整个接入过程只需完成“开放平台创建应用 → 向导填写三凭证 → 启动网关 → 配对批准”四个环节上线后可通过dmPolicy、groupPolicy、allowFrom精确控制谁能与你的专属 AI 助手对话也能借助bindings让同一个机器人按私聊/群组路由到不同 Agent。相关配置样例、源码实现与插件声明均可在 docs/channels/dingtalk-connector.md、extensions/dingtalk-connector/src/channel.ts、extensions/dingtalk-connector/src/onboarding.ts 与 src/channels/registry.ts 中进一步查阅。赞分享人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载相关推荐cc-haha 钉钉接入实战指南Stream 长连接、扫码授权与 AI Card 流式机器人cc haha 钉钉接入实战指南Stream 长连接、扫码授权与 AI Card 流式机器人 本文是 cc haha 项目中钉钉DingTalkIM 接入人工智能AI 应用桌面应用代码智能体MCP Clients钉钉接入 Claude Code 桌面端DingTalk Stream 长连接与 AI Card 流式回复实战指南钉钉接入 Claude Code 桌面端DingTalk Stream 长连接与 AI Card 流式回复实战指南 本文基于 cc haha 仓库中 钉钉接入人工智能AI 应用桌面应用代码智能体MCP ClientsPicoclaw 钉钉频道接入指南基于 Stream SDK 持久连接的企业通讯机器人与消息处理Picoclaw 钉钉频道接入指南基于 Stream SDK 持久连接的企业通讯机器人与消息处理 钉钉是阿里巴巴推出的企业级即时通讯平台在中国职场中应用广泛人工智能AI 应用AI Agent交互助手工具调用MCP ClientsAgent 记忆上一篇深入理解nix-flatpak工作原理Nix模块与Systemd服务解析下一篇Karabiner-ElementsmacOS键盘自定义终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进