钉钉操作优化指南
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f807d9b4/dingtalk-ops-playbook。
技能介绍
问题背景
在 Agent 场景里,调钉钉 DWS 经常不是“会不会写命令”的问题,而是命令选择、身份解析、认证状态和错误恢复被混在一起。同一个 openDingTalkId 可能不可复用,账号切换后 token 可能仍指向旧身份,文件消息和文本消息的参数也不同,中文参数在错误 locale 下可能直接写坏用户可见字段。本技能针对这些高频坑点给出操作前的判断规则,不重复官方命令表。
工作方式
它把钉钉操作拆成几类决策:
- 消息发送:优先原子命令
dws chat message send,群消息、单聊和机器人批量场景分别选择目标参数;内容含换行、引号等特殊字符时优先用--text,避免位置参数被 shell 或 CLI 解释。 - 联系人身份:不把
openDingTalkId当稳定主键,发送前用dws contact user search --query 姓名动态解析;脚本中保留{name, openId}结构,并在解析或发送失败时重新查询。 - 认证与恢复:切换账号后执行
dws auth logout再重新登录;遇到认证类错误不要反复重试业务命令;stderr出现RECOVERY_EVENT_ID=时进入 recovery 闭环,基于返回事实包判断。 - 事件与文件:事件监听优先
dws event consume --flatten,避免轮询消息历史,并对重复投递做eventId/msgId去重;文件发送先判断用户要“发文件”还是“发正文”,单聊文件场景先取openConversationId。 - 中文本地化:在
LC_CTYPE=C等弱 UTF-8 环境下,避免直接拼 shell 字符串,优先用 Pythonsubprocess.run([...])传参数列表,再读 JSON 字段验证真实内容。
适用边界
该技能适合与官方 dingtalk-unified 和连接器 connector-dingtalk 配合,用于 Agent 生成钉钉操作前做检查。它不提供完整命令手册,也不保证覆盖所有 DWS 新行为;静态坑位记录会随版本演进变化,执行前仍应以命令返回、错误码和授权状态为准。
使用场景
- Agent 向钉钉群发送图文混合消息前,判断该用原子命令还是 shortcut,并检查特殊字符参数。
- 脚本要按姓名批量单聊通知用户,发送前动态解析 `openDingTalkId`,失败时自动重查刷新。
- 监听钉钉事件触发报告推送,避免轮询消息历史,并对重复投递做 `eventId` 去重。
- 在 `LC_CTYPE=C` 环境中把中文文件说明写入钉钉消息字段,先用参数列表传中文再验证 JSON 内容。
适合人员
- 维护钉钉机器人或自动通知脚本的工程师,需要避免发错群、发错人、token 过期导致静默失败。
- 构建 AI Agent 的工具调用者,需要在执行 DWS 命令前选择目标参数、认证路径和恢复策略。
- 处理中文消息、文件附件和本地化字段的工程师,需要排查乱码、编码错误和用户可见字段污染。
- 运营自动化工作流的工程师,需要基于钉钉事件触发报告,同时控制重复投递和发送目标。