Agent Skills
返回列表
钉钉个人 IM 事件监听

钉钉个人 IM 事件监听

AI Agent 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fccf428b/dingtalk-event。

技能介绍

解决什么问题

钉钉的很多状态变化不会长期保留在普通聊天记录里:消息被已读、被撤回、收到表情回应,或者成员加入、退出、群标题变更、群解散,往往只在事件发生时可见。用轮询或“查聊天记录”的方式模拟,要么拿不到准确时间,要么会持续请求接口、容易触发风控。这个技能把个人 IM 事件当作长连接事件流来处理,适合做实时提醒、自动回复、群生命周期统计和 Agent 触发源。

技能如何工作

核心命令是 dws event consume:它通过 DWS bus 建立当前用户的个人 Stream 长连接,订阅指定事件,并把事件以 NDJSON 写到 stdout。常用流程如下:

  • 先从用户意图选择事件码,而不是运行 dws event list 当菜单。
  • 人名先用 dws aisearch person 解析 userId;群名先用 dws chat search 解析 openConversationId;多候选必须让用户确认。
  • 了解输出字段时运行 dws event schema <event_key> --flatten,从 schema.properties 编写解析逻辑。
  • 启动 dws event consume <event_key>... --flatten -f ndjson;单事件等待 [event] ready,多事件先记录每条 [event] subscription,再等待最终 ready。
  • 需要确认订阅时运行 dws event status --event <event_key>。

覆盖的 16 类事件包括被 @、单聊/群聊消息、指定发送人消息、全部单聊/群消息、已读、撤回、表情回应,以及群标题变更、成员加入、成员退出、群解散。--user 与 --open-dingtalk-id 严格二选一;企业内部用户优先 --user,外部联系人或机器人使用 --open-dingtalk-id。同一用户或同一群的兼容事件可以放在同一个 consume 命令里;用户类与群类事件不能混在同一命令。消息接收类事件可共享 --query / --filter-json,已读、撤回、表情回应和群生命周期事件不能使用消息过滤参数。

适用边界与注意点

这个技能只处理当前用户在个人 IM 场景下的事件,不覆盖应用凭证模式、机器人身份或其他组织管理事件。bus 后台进程持有个人 Stream;consume 只读事件,回复消息要另用 dws chat message send。自己发出的消息不会回传,边监听边回复不会形成回环。监听非默认组织必须传 --profile。停止监听应先 dws event stop <event_key> --dry-run 预览,再确认后加 --yes,避免残留订阅;不要直接 kill -9。涉及自动回复、外部写入、个人信息或群解散测试时,要先展示目标和影响并取得明确确认。

使用场景

  • 当单聊中有人撤回消息时,需要按撤回事件触发告警并记录撤回者和时间。
  • 需要监听自己所在指定群的成员加入或退出,用于维护群成员变动记录。
  • 当收到指定同事发来的消息时,要按发送人过滤事件并驱动后续处理流程。
  • 需要监控指定单聊中自己消息的已读状态,用于判断对方是否已查看回复。

适合人员

  • 需要在值班群中按被 @ 消息自动创建跟进任务的运维值班人员。
  • 需要把钉钉单聊已读状态同步到内部系统的客户成功工程师。
  • 需要按群成员加入事件自动添加成员到知识库权限的团队管理员。
  • 需要消费钉钉消息事件并触发自动回复逻辑的 Agent 后端开发者。