钉钉个人 IM、OA 审批、VoIP 通话邀请、待办、互动卡片与好友事件长连接监听。Use when 用户说监听消息/@我/某人/某群/全部消息、已读/撤回/reaction、群成员加入/群成员退出,监听审批任务创建/完成/转交、审批实例发起/抄送/终止/完成、VoIP 通话邀请、待办创建/更新/删除、好友申请/好友添加成功,或互动卡片回调。命令前缀:dws event。
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
**前置:执行
dws前必须完整读取dingtalk-shared。**Shared references 仅按需加载。
本 Skill 只负责实时个人事件;发送/历史消息、审批处理、待办操作分别走 dingtalk-chat、dingtalk-misc、dingtalk-todo。
只有群生命周期、Filter DSL、原始 envelope 或底层订阅控制才使用 event consume。
| 用户意图 | 唯一推荐入口 |
|---|---|
| 监听 @我的消息 | dws event +listen-im --kind at-me |
| 监听某人发来的消息 | dws event +listen-im --kind sender --user-query <姓名> |
| 监听指定群消息 | dws event +listen-im --kind group --chat-query <群名> |
| 同一人/群的消息、表情、已读或撤回 | `dws event +listen-im --kind <sender |
| 监听全部单聊或全部群消息 | `dws event +listen-im --kind <all-direct |
| 群改名、成员进退、群解散 | EventKey 为 user_im_group_updated、user_im_group_member_added、user_im_group_member_exited、user_im_group_disbanded,读取 EventKey 索引 |
| OA 审批任务或实例事件 | 读取 OA 事件参考,使用精确 event consume EventKey |
| 查看 OA 事件目录 | dws event list --category oa |
| VoIP 通话邀请 | 读取 VoIP 事件参考,使用精确 event consume EventKey |
| 待办创建、更新或删除事件 | 读取 Todo 事件参考,使用精确 event consume EventKey 与 --role-types |
| 查看 Todo 事件目录 | dws event list --category todo |
| 好友申请/好友添加成功事件 | 读取 好友事件参考,使用精确 event consume EventKey |
| 查看好友事件目录 | dws event list --category contact |
| 互动卡片回调 | 读取 互动卡片事件参考;命令与字段见下方卡片契约 |
| 查看互动卡片事件目录 | dws event list --category card |
| 已知 EventKey 或需要底层订阅控制 | dws event consume;参数与约束以 leaf Schema 为准 |
| 查看状态 / 停止 | dws event status / dws event stop <subscribe_id> --dry-run,确认后再 --yes |
默认 --events message。可选事件为 message、reaction、read、recall:
at-me、all-direct、all-group 只支持 message,且不接受目标。sender 必须且只能传 --user、--open-dingtalk-id 或 --user-query 之一。group 必须且只能传 --chat-id 或 --chat-query 之一。--query 只用于纯 message 监听;混入 reaction/read/recall 时不得使用。OA 七个 EventKey 使用 ruleType=all、filterRule={},不接受目标或消息过滤;Todo 三个 EventKey 仅接受 --role-types creator,executor,participant,省略时取并集;好友两个 EventKey 约束同 OA。每项独立订阅并共享 bus。
姓名/群名必须唯一解析,零命中或多候选在创建订阅前停止。解析、监听、状态、停止使用同一 --profile,不得跨组织搬运 ID。
16 个 EventKey 及目标约束见 索引;群输出可含 operator_open_dingtalk_id、members[].open_dingtalk_id。
--flatten 和 NDJSON;stdout 仅事件,stderr 为生命周期状态。[event] ready event_key=<key> bus_pid=<pid> subscribe_id=<id>。[event] ready event_count=<n> bus_pid=<pid>。等 ready,不用 sleep 猜测。--max-events N/--duration 10m;干净退出会取消本次新建订阅。无界任务由宿主持续读 stdout;用 SIGTERM 或 bounded exit,不用 kill -9。conversation_id/sender_open_dingtalk_id,见回复交接。reader_open_dingtalk_id,撤回为 recaller_open_dingtalk_id,回应为 reaction_name、operation_type。媒体优先通过聊天读取命令加 --download-resources,已知消息 ID 用 dws chat message download-media。task_id、标题、角色、状态阶段和时间字段;用真实 task_id 交给 dws todo,字段差异见 Todo 事件参考。type/event_id/timestamp/subscribe_id/payload;操作者 operatorDTO.uid,triggerTimestamp 等三个时间戳照原样保留;回退见 互动卡片参考。开源 normal 获取缺失 AppKey,无需 AppSecret;custom/定制版除外。排障。
event stop 取消订阅并影响本地 consumer:先 --dry-run,确认后 --yes。0/2/1:retryable=false→max_additional_attempts=0;retryable=true→max_additional_attempts=2;retryable=unknown→max_additional_attempts=1。它不是 CLI 持久化硬总次数上限;进程内不会自动重试,也不持久化或计算跨调用的 Agent/host 尝试次数。retry_after_seconds/next_retry_at;in_flight、cooldown、terminal_hold 时不并发或换 subscribe_id/trace_id 绕过。状态在 ~/.dws/events/open/personal_stream/<identity_hash>/personal_subscription_attempts.json(DWS_CONFIG_DIR 改根);目录 0700,personal_subscription_attempts.json 与 personal_subscription_attempts.lock 为 0600。连续 24h 无失败后重置,terminal_hold 为 1h。紧急恢复只删除 personal_subscription_attempts.json,不要删除 lock 文件;这会清空该 identity 的全部保护记录。
event list。dws event schema <event_key> --flatten。dws schema --cli-path "event +listen-im" --compact 或对应 compact leaf。event schema 描述事件 payload;顶层 dws schema 描述 CLI 命令,两者不要混用。| Topic | Reference | 何时读取 |
|---|---|---|
| 任务索引 | event-im.md | 不确定加载哪个 reference |
| EventKey、目标规则与底层 consume | event-im-keys.md | 群生命周期、显式 EventKey 或多事件组合 |
| ready、bounded consume 与退出清理 | event-im-lifecycle.md | 启动/托管/关闭 consumer |
| 扁平字段与事件到 Chat 交接 | event-im-output.md | 解析事件或自动回复 |
| Filter、status/stop、重试与排障 | event-im-operations.md | 订阅控制或失败恢复 |
| OA 审批事件 | event-oa.md | 七个 OA EventKey 与审批字段解析 |
| VoIP 通话邀请事件 | event-voip.md | VoIP EventKey 与邀请字段、敏感输出边界 |
| Todo 待办事件 | event-todo.md | Todo EventKey、角色范围与待办字段 |
| 好友事件 | event-contact.md | 好友 EventKey、申请与添加字段解析 |
| 互动卡片回调事件 | event-card.md | 回调订阅与 payload 解析 |
DingTalk-Real-AI/dingtalk-workspace-cli
52f38a4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.