| name | dws |
| description | 【何时用:仅当用户明确指向钉钉/DingTalk(钉钉文档、钉钉日程等)时使用;泛指做文档/表格/待办/审批默认走本地工具,不要误用钉钉】用 dws CLI 管理钉钉:AI表格/AI搜问(找人首选)/目标管理(Agoal)/组织大脑/日历/通讯录/群聊与机器人消息/待办/审批/考勤/日志(日报周报)/DING消息/钉钉文档/云盘/Markdown文件/AI听记/邮箱/在线电子表格(axls)/知识库/白板/开放平台文档/个人IM与OA事件订阅。用户要求操作上述钉钉产品时使用。 |
| cli_version | >=1.0.61 |
| metadata | {"requires":{"bins":["dws"]},"cliHelp":"dws --help"} |
钉钉全产品 Skill
通过 dws 命令管理钉钉产品能力。
⚠️ 命令与 flag 以当前 dws 二进制为准:dws <cmd> --help 是 Cobra flags 事实源,Agent 选命令/参数约束/安全确认以 leaf Schema(--compact)为准,与本文档冲突时以二者为准。
严格禁止 (NEVER DO)
- 不要使用 dws 命令以外的方式操作钉钉业务数据(禁止 curl、HTTP API、浏览器)。例外:① aitable 导入/导出/附件上传链路返回的预签名
uploadUrl/downloadUrl(import upload 申请的上传凭证、export data 返回的下载地址、attachment upload 返回的上传地址)允许用 curl 直传/直下(见 aitable-export-import.md 与 aitable-attachment.md);② 按 openapi-explorer.md 读取官方 open.dingtalk.com/llms.txt 文档并生成受限的 dws api 调用。除此之外禁止
- 不要编造 UUID、ID 等标识符,必须从命令返回中提取
- 不要猜测字段名/参数值,操作前必须先查询确认
严格要求 (MUST DO)
- 所有命令必须加
--format json 以获取可解析输出
- 危险操作必须先向用户确认,用户同意后才加
--yes 执行
- 直接调用 dws 批量接口(如
record update)时单次硬上限 100 条(各 record 分册同);Agent 直连建议每批 ≤30 条以便失败重试;使用 scripts/import_records.py 批量导入时按脚本默认 50 条/批(其 DEFAULT_BATCH_SIZE=50,上限 100)
- 所有命令必须严格遵循对应产品参考文档里面规定的参数格式(参数与参数值之间用空格隔开)
- 脚本只用于明确覆盖的复合任务:scripts/ 下的脚本可封装 AI 表格批量导入导出、钉盘目录树等流程;当公开
+ Shortcut 已提供目标唯一解析、分页/部分失败 ledger 和确认语义时,优先 Shortcut。Chat 历史导出与机器人广播已完全下沉 Runtime,不再发布兼容脚本
- 脚本调用约定:统一用
python3 调用(多数 macOS/Linux 环境没有裸 python 命令);文档中的 scripts/... 是相对本 Skill 根目录(SKILL.md 所在目录)的路径,实际执行时应拼成完整路径(如 python3 <Skill根目录>/scripts/attendance_report_monthly.py ...),不要假设当前工作目录(CWD)已在 Skill 根目录
- 实时个人事件例外:普通 IM 消息、reaction、已读和撤回默认走
dws event +listen-im ...;OA 审批、VoIP 通话邀请、Todo、群生命周期、明确的原始 EventKey、Filter DSL、subscribe_id 或原始 envelope 使用 dws event consume ... --flatten。不要写脚本轮询消息历史、审批列表、通话记录或待办列表
Shortcut 与原子命令的使用原则
shortcut 是对常用操作的高层封装,适合优先承担用户意图;产品参考文档和本 skill 负责判断意图、风险、跨产品流程和复杂参数,CLI 帮助负责声明当前版本真正可调用的命令。
- 先按产品参考、意图表和 recipe 路由。用户意图可由可见 Shortcut 满足时,优先使用
dws <service> +<verb> ... --format json,不要手写等价的多步原子命令。只有脚本明确补足 Shortcut 未覆盖的复合交付物且其安全/完整性契约仍适用时才选择脚本。
- 公开内建 shortcut 同时进入 Runtime Schema。用
dws schema --cli-path "<service> +<verb>" --compact --format json 读取 Agent 选择、参数、跨参数约束和 risk/confirmation;只有参数映射、接口绑定或 provenance 审计才通过 --jq 精确读取 full leaf;dws shortcut list --service <service> --format json 只作为轻量批量发现入口。
- 真正组装参数前用叶子帮助
dws <service> +<verb> --help 核对当前 Cobra 接受的 flags。父级 dws <service> --help 只能发现子命令,不能替代叶子参数帮助。
- shortcut catalog 中
confirmation=user_required 时,必须先获得用户确认,确认后才加 --yes;not_required 不额外确认。
- 如果 shortcut 不在 help / list 中,改用产品参考里的原子命令、脚本或标准流程;不要猜测未展示的
+ 命令。
- shortcut 失败时按“错误处理”流程先加
--verbose 复查;若仍失败,应记录具体输入、输出、trace / endpoint / tool 信息。
Shortcut 总览
下面只统计当前公开 catalog 中的 shortcut,不展开完整明细。已知意图应先按产品 Skill、意图表或任务 reference 选择唯一命令;命令已选中时直接执行,只在参数或安全语义不确定时读取 leaf Schema,在当前 Cobra flags 不确定时读取 leaf Help。仅当现有路由和 reference 都无法定位低频能力时,才用 dws shortcut list --service <service> --format json 做最后回退;不要为已知高频意图加载完整产品 Catalog。
| 服务 | shortcut 数 |
|---|
agoal | 5 |
aisearch | 1 |
aitable | 100 |
attendance | 8 |
calendar | 27 |
chat | 98 |
contact | 13 |
devapp | 25 |
ding | 1 |
doc | 45 |
drive | 28 |
mail | 8 |
minutes | 29 |
oa | 1 |
pat | 1 |
report | 4 |
sheet | 2 |
todo | 20 |
whiteboard | 2 |
wiki | 20 |
多组织 / 多账号
dws profile list --format json 默认返回全部账号。自动化只使用每项稳定的 profile=corpId:userId;status/expiresAt/refreshExpAt 来自真实身份 Token,列表不触发刷新。
- 输入支持
corpId:userId、corpId:userName、corpName:userId、corpName:userName,也兼容单独的 corpId、唯一 corpName 和本地 profile 名。名称只用于输入;重名时必须按报错候选改用 corpId:userId。
- 只传组织时使用该组织明确记录的
isOrgCurrent=true 账号。多账号组织没有默认账号时必须让用户指定账号;禁止选择第一项、最近登录或最近使用账号。
- 不传
--profile 使用全局 isCurrent=true 账号。primaryProfile/isPrimary 仅兼容输出,不参与选择;previousProfile 只用于 profile switch -。
- 跨组织读 / 搜:按
corpId 去重;每个组织使用唯一 isOrgCurrent=true 的 profile。组织存在多个账号且没有默认账号时先询问用户。写 / 发 / 删 / 撤回及持久切换前先确认目标组织和账号。
产品总览
| 产品 | 用途 | 参考文件 |
|---|
agoal | 目标管理:战略解码/经营合约/计分卡/用户目标/目标模板/周月报 | agoal.md |
aisearch | AI搜问(通用找人首选):按姓名/部门/职位/职责/上级/下级/手机号/工号维度找人,"谁负责 XX/XX 的负责人/某事项/某项目的人"统一走本产品;不含人才池/绩效/职业历程等专项 HR 场景(那些去 hrbrain) | aisearch.md |
aitable | AI表格:Base/数据表/字段/记录/视图/附件/图表/仪表盘/导入导出/模板搜索 | aitable.md |
api | OpenAPI 逃生舱:官方 llms.txt 分层发现,仅执行企业内部应用 App Token 服务端 API | openapi-explorer.md |
attendance | 考勤:打卡结果/打卡流水/考勤组查询/考勤规则/汇总统计/假期类型/假期余额(P0 已落地,部分管理类命令仍属 P1) | attendance.md |
calendar | 日历:日历列表/日程/参与者/附件/响应/会议室/闲忙查询/时间建议 | calendar.md |
chat | 群聊与机器人:搜索群/建群/群成员管理/改群名/消息发送(文本/Markdown/图片/文件)/拉取消息/消息收藏/@我/特别关注/机器人群发/单聊/撤回/转发/引用回复/Webhook/机器人搜索 | chat.md |
contact | 通讯录:用户查询/部门/角色/花名册(学历/家庭/银行卡/紧急联系人/合同等基础字段)/离职员工/特别关注,以及创建企业、企业账号和邀请员工;不含职业历程/绩效/人才池(那些去 hrbrain) | contact.md |
dev | 开放平台开发者:应用生命周期/机器人建号与配置/凭证/权限/事件订阅/版本发布审批/本地建联(dev connect);创建或建联机器人一律走 dev,不走 chat | dev.md |
devdoc | 开放平台文档:搜索开发文档 | devdoc.md |
ding | DING消息:发送/撤回(应用内/短信/电话) | ding.md |
doc | 钉钉文档:搜索/浏览/读写/块级编辑/评论/文件创建/复制/移动/重命名/删除/导出 docx/权限管理/媒体上传下载 | doc.md |
drive | 钉钉云盘:文件列表/元数据/文件夹/上传(两步)/下载/本地与钉盘文件夹差异比较(status)/拉取到本地(pull)/推送到钉盘(push)/双向同步(sync)/互联网公开发布(publish)/分享链接密码与有效期 | drive.md |
hrbrain | 组织大脑:人才池管理/员工档案专项模块查询(元数据/批量数据/标签/职业历程/绩效)/结构化高级人才搜索(原始条件表达式);区别于 contact 的基础通讯录档案与 aisearch 的通用语义找人 | hrbrain.md |
markdown | 原生 Markdown 文件:读取/创建/对比/全量覆盖/局部替换/评论列表 | markdown.md |
minutes | AI听记:听记列表/摘要/关键词/转写/待办/思维导图/发言人/发言人段落总结/热词/录音控制/成员权限/上传 | minutes.md |
oa | OA审批:待处理/详情/同意/拒绝/撤销/记录/已发起/任务/转交/评论/抄送 | oa.md |
pat | PAT 行为授权:浏览器策略/scope 预览/一次性、会话或永久授权 | pat.md |
report | 日志:按模版创建/收件箱/已发送/模版查看/详情/已读统计 | report.md |
mail | 邮箱:邮箱地址查询/邮件搜索(KQL)/邮件详情/发送邮件 | mail.md |
sheet | 在线电子表格(axls):工作表 CRUD/区域读写/CSV 批量写入/行列增删/合并/查找替换/筛选视图/全局筛选/排序/下拉列表/条件格式/浮动图片/浮动图表/模板/导出 xlsx(单命令一站式) | sheet.md |
todo | 待办:创建(含优先级/截止时间/循环)/查询/修改/标记完成/删除 | todo.md |
wiki | 知识库:空间创建/详情/列表/搜索 + 成员管理 + 知识库动态查询 | wiki.md |
whiteboard | 文档内嵌白板:读取 OpenNodes、追加节点、整页重建 | whiteboard.md |
recruit | 钉钉招聘:查询职位列表、获取职位详情、创建职位 | recruit.md |
event | 个人 IM/OA/VoIP/Todo 事件:监听消息、群生命周期、审批任务/实例、通话邀请与待办变化,NDJSON 输出(实时驱动 Agent) | event.md |
意图判断决策树
用户提到"AI应用/创建应用/生成系统/做工具/管理后台/低代码/宜搭" → 产品参考以 dev.md 为准(勿猜 aiapp 等未在 dev.md 列出的命令,命令以 dws dev --help 实测为准);应用创建/机器人建号与建联流程见该文「典型工作流」
用户提到"目标管理/Agoal/战略解码/经营合约/计分卡/目标模板/周月报提交统计" → agoal
用户提到"找人/搜人/谁负责 XX/某事项的负责人/某项目的人/团队成员/上级/下级/按工号找人/按手机号找人" → aisearch(通用语义找人;若明确涉及人才池/绩效/职业历程/结构化高级条件,去 hrbrain)
用户提到"表格/多维表/AI表格/记录/数据/视图/图表/仪表盘" → aitable
用户提到"考勤/打卡/排班" → attendance
用户提到"日程/日历/会议室/约会/时间建议" → calendar
用户提到"群聊/建群/群成员/群管理/发消息/发图片消息/发文件消息/发 Markdown 消息/截图发钉钉/转发消息/引用回复/@我/特别关注消息/机器人发消息/Webhook/机器人群发/机器人单聊/通知" → chat
用户提到"通讯录/同事/部门/组织架构/子部门/部门多少人/离职员工/离职名单/离职花名册/花名册/基础员工档案(学历/家庭/银行卡/紧急联系人/合同)/角色/主管角色/管理员角色/财务/HR/特别关注/星标联系人/创建企业/企业账号/邀请员工/新员工入职" → contact(不含职业历程/绩效/人才池;那些去 hrbrain)
用户提到"开发/API/调用错误 文档" → devdoc
用户提到"未封装 OpenAPI/llms.txt/dws api/Raw API/API 逃生舱" → dws api(先查现有产品命令,再读官方 llms.txt)
用户提到"DING/紧急消息/电话提醒" → ding
用户提到"钉钉文档/云文档/知识库/读写文档/块级编辑/文档评论/文档复制移动" → doc
用户提到"云盘/文件存储/文件上传下载/文件夹/互联网公开/分享链接密码/公开有效期" → drive
用户提到"人才池/储备干部池/员工档案元数据或批量模块数据/职业历程/绩效记录/员工标签/组织大脑/结构化人才搜索(高级条件表达式)" → hrbrain(区别于 aisearch 的通用语义找人与 contact 的基础通讯录档案)
用户提到"原生 Markdown 文件/.md 文件/读取 Markdown 原文/覆盖 Markdown/局部替换 Markdown/Markdown 评论" → markdown
用户提到"听记/AI听记/会议纪要/转写/摘要/思维导图/发言人/热词" → minutes
用户提到"邮箱/邮件/发邮件/收邮件/搜邮件/查邮件/邮件草稿/转发邮件/回复邮件/邮件附件/抄送" → mail
用户提到"审批/请假/报销/出差/加班/同意/拒绝/撤销审批" → oa
用户提到"PAT 授权/行为权限/scope 授权/批量授权/一次性授权/会话授权/永久授权/授权浏览器策略" → pat
用户提到"日志/日报/周报/日志统计/写日报/提交周报/发日志/填日志" → report
用户提到"在线电子表格/钉钉表格/axls/工作表/单元格读写/合并单元格/筛选视图/导出 xlsx" → sheet
用户提到"待办/TODO/任务提醒/循环待办" → todo
用户提到"创建知识库/知识库列表/搜索知识库空间/wiki/团队空间/知识库成员管理/我的文档个人空间" → wiki
用户提到"文档内嵌白板/画布/OpenNodes/白板节点/连接线/整页重建白板" → whiteboard;创建空白板卡片先走 doc whiteboard insert
用户提到"招聘/职位/JD/在招职位/创建职位/职位详情" → recruit
用户提到"监听有人@我/监听单聊或群消息/监听所有单聊或群消息/监听某人发送的消息/监听消息已读/监听消息撤回/监听消息贴表情或表情回应/订阅个人 IM 事件/实时接收钉钉事件/监听并自动回复消息/驱动 Agent 处理消息" → event +listen-im;群成员加入/退出、群改名/解散或明确原始 EventKey/Filter DSL → event consume
用户提到"监听待我审批的任务/监听审批任务创建、完成或转交/监听审批单发起或终止/监听我发起的审批完成/监听审批实例完成/订阅 OA 事件/event consume user_oa_approval_" → event consume
用户提到"收到语音通话邀请时通知我/监听 VoIP 来电/订阅 user_voip_call_receive_invite" → event consume
用户提到"监听待办创建/更新/删除/监听指派给我的待办/订阅 Todo 事件/event consume user_todo_task_" → event consume,按角色使用 --role-types
普通消息、reaction、已读、撤回监听优先由一个 dws event +listen-im 进程表达目标;不同用户、不同群或不同过滤条件拆成独立进程。只有高级事件控制才生成 dws event consume <event_key> [event_key...] --flatten。
关键区分: aitable(数据表格) vs todo(待办任务)
关键区分: report(钉钉日志/日报周报) vs todo(待办任务)
关键区分: chat send-by-bot(机器人身份发消息) vs send-by-webhook(自定义机器人Webhook告警)
关键区分: doc(在线富文本文档/adoc) vs markdown(原生 .md 纯文本文件) vs drive(通用文件存储与传输)
关键区分: contact(基础通讯录档案:学历/家庭/银行卡/紧急联系人/合同/部门角色) vs aisearch person(通用语义找人:谁负责/上级/下级/多维度模糊搜索) vs hrbrain(人才池/员工档案专项模块数据/职业历程/绩效/结构化高级人才搜索)
关键区分: oa tasks(审批 taskId,审批/拒绝用) vs oa list-pending(收件箱 processInstanceId,查看用)
关键区分: oa(查询或操作审批) vs event user_oa_approval_(当前用户审批事件长连接监听)
关键区分: todo(查询或操作待办) vs event user_todo_task_(当前用户待办事件长连接监听)
更多易混淆场景见 intent-guide.md
危险操作确认
以下操作为不可逆或高影响操作,执行前必须先向用户展示操作摘要(操作类型 + 目标对象 + 影响范围)并获得明确同意,同意后才加 --yes 执行。
| 产品 | 命令 | 说明 |
|---|
aitable | base delete | 删除整个 AI 表格,含全部数据表和记录 |
aitable | table delete | 删除数据表(含全部字段/视图/记录) |
aitable | field delete | 删除字段(该列所有值同步清空) |
aitable | view delete | 删除视图 |