Dingtalk Minutes logo

Dingtalk Minutes

OrganizationPopular
DingTalk-Real-AI
dingtalk-minutes

钉钉 AI 听记。Use when 查询或修改听记摘要、完整逐字稿、关键词、标签、行动项、录音、上传、思维导图、发言人洞察、ASR 热词/识别词配置或分享权限。写文档走 dingtalk-doc;建待办走 dingtalk-todo;日程走 dingtalk-calendar。命令前缀:dws minutes。

Overview

PublisherDingTalk-Real-AI
Repositorydingtalk-workspace-cli
Skill namedingtalk-minutes
Stars
3.1K
Forks
242
Bundled files
11
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 11 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by DingTalk-Real-AI on GitHub. Read the source before you install it.

Installation

Install the Dingtalk Minutes AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git /tmp/dingtalk-workspace-cli
mkdir -p .claude/skills
cp -r /tmp/dingtalk-workspace-cli/skills/multi/dingtalk-minutes .claude/skills/dingtalk-minutes
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Dingtalk Minutes in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Dingtalk Minutes on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Dingtalk Minutes is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

钉钉 AI 听记 Skill

最小 DWS 执行契约

  • 只用 dws;结构化读取加 --format json,按真实返回判断。
  • 已知命令直调;参数/约束/安全不明查 leaf 窄 Schema。Schema 不可用才读已知 leaf Help 一次;unknown flag 用同 leaf Help 修正一次。unknown command 不查 Help:优先错误中的明确 suggestion,其次已加载 Skill/reference 中的明确兼容入口;均无则报漂移并停,禁全 Catalog。低频 reference 不默认 Help,禁 root/parent/product Help。发现后必须执行或说明阻塞。
  • 不猜命令/flag/字段/ID/账号/业务事实;ID 来自真实返回。目标零命中/多候选/类型不明先消歧;仅可选时间/展示范围用契约默认,缺必需信息即停。
  • 解析/读/写同一 profile,ID 不跨组织。多账号只用唯一 isOrgCurrent=true;否则用户指定,禁止选择第一项、最近登录或最近使用账号。
  • 不输出/记录 token、refresh token、appSecret、webhook token;已注入认证时不索要。
  • 写须符合明确意图;确认以最终 Runtime gate/Schema 为准,确认后才加 --yes
  • 写后验证结果,不凭退出码宣称成功。退出须最终答复,区分完成、部分、阻塞、待确认、失败;保留已有数据及 complete/hasMore/stopReason/failures
  • 时间戳按会话时区展示,必要时保留原值。
  • 认证/权限/profile/confirmation/未知错误只读 dingtalk-shared 对应 reference,禁连续猜替代命令。

Shortcut 发现(按需)

minutes 当前有 29 条公开 shortcut,完整清单保留在 Runtime Catalog 与 Schema,不在高频产品根 Skill 中重复展开。已知意图按下方路由/reference 直调;参数/约束/安全不明时读一次 leaf 窄 Schema。仅需且已发布 result 时查 outcomes/pagination,字段级再查 data_schema;缺失不以 Help/样例推断。Schema 不可用才读一次已知 leaf Help;unknown flag 用同 leaf Help 修正一次。unknown command 禁 Help:错误 suggestion → 已加载 Skill/reference 明确入口;均无则报漂移。禁全 Catalog/root/parent/product Help;低频 reference 不默认 Help。

仅当现有路由和 reference 都无法定位低频能力时,才执行 dws shortcut list --service minutes --format json 做最后回退;不要为已知高频意图加载完整 Shortcut Catalog 或产品级 Schema。

Golden Route

以下是当前 Minutes Case 支持的核心路径,用于减少 Agent 选路分叉;它不等同于生产使用频率统计。已有 taskUuid 必须原样传入,禁止解码或重新编码;完整听记 URL 先提取 taskUuid,再原样使用。只有标题或时间线索时先搜索,零命中停止,多候选或候选差异较大时让用户消歧,不默认取第一条。

用户意图唯一推荐入口关键边界
按标题或时间找听记dws minutes +search --scope all --query "<关键词>" --page-allscope 可选 mine/shared/all;至少提供 query/start/end 之一。all --page-all 分别追完 mine/shared 后去重,不把单个 noLimit 端点当完整全集
浏览我创建、共享给我或全部可访问听记+list-mine / +list-shared / +list-all默认是可续拉预览;要声称完整必须加 --page-all 并检查 complete=true。用户只说“我的听记”不等于明确 mine,范围不清时用 all
按真实标签找听记dws minutes tag list --format json,再 tag query --tag-id <真实tagId>标签不等于关键词;空标签即结束。按标签查找的分页细节见局部意图
看我最新创建的一条dws minutes +latest [--keyword <关键词>]只在用户明确说“最新”时用;不能用它替代具名目标搜索,也不能在录音 start 后拿 latest 猜新录音 ID
读取基础信息、摘要或关键词dws minutes +detail --id <taskUuid> --artifacts basic,summary,keywords已有 taskUuid 且只读取现有产物时直接使用,不要进入上传 workflow;任一产物失败都按 partial/非零处理,不把缺失项说成空内容
读取逐字稿dws minutes +transcript --id <taskUuid> [--direction 1] [--single-page]已有 taskUuid 且只读取逐字稿时直接使用,不要借 +upload-and-analyze --resume-id 代读。默认正序并追完分页;倒序必须传 --direction 1,用户明确只要第一页时传 --single-page,不得随后自动续页。交付前检查 data.direction/data.complete/data.pagesmeta.pagination
读取行动项单条 +action-items --id <taskUuid>;批量 +detail --ids <uuid1,uuid2> --artifacts todos只在 state=known_empty 时说“没有待办”;ready 才能读取 itemsunsupported_shape/failed 必须非零并保留脱敏 shape 证据,不能翻译为空结果。需要创建钉钉待办时再切 dingtalk-todo
把摘要、关键词、完整逐字稿和行动项归档到本地dws minutes +export-pack --id <taskUuid> --output <新相对目录>要带媒体时加 --include-media;必须由 published/path/manifest/files 证明落盘,只有建目录、计划或文件名不能称已生成
修改或预览标题dws minutes +update --id <taskUuid> --title "<新标题>"真实修改按 Runtime confirmation 执行并读回;用户只要预览时先读 basic,再加 --dry-run,展示“当前值 → 目标值”后停止,不追加 --yes
覆盖纪要正文dws minutes +summary --id <taskUuid> --content @<相对文件>content 是完整目标正文,不是局部 patch;按 Runtime confirmation 执行,并保护图片引用、读回全文
上传音视频生成听记dws minutes +upload --file <相对路径>真实执行会上传文件并创建远端听记,必须按 Runtime confirmation;用户明确要闪记卡片时改用 +upload-and-notify,需要上传后等待分析产物时用 +upload-and-analyze
真实开始、暂停、继续或停止录音+record-start / +record-pause / +record-resume / +record-stop这组入口会真实执行。start 返回 accepted=true, bound=falsecontrolReady=false 时,报告“已受理但未绑定”并停止:不得重试 start,也不得用 +latest、列表第一条或时间最近项猜 ID。结束并等待产物用 +record-wrap-up
只预览录音请求,不实际执行dws minutes record start --dry-run --format json使用对应的原子 `minutes record start
生成或继续思维导图dws minutes +mindmap --id <taskUuid>创建后有界轮询;超时或未知状态保留恢复信息,用 --resume 继续,不重复创建
生成或继续发言人洞察dws minutes +speaker-insights --id <taskUuid>只有 state=ready/complete=true 才完成;pending 保留 taskId 并同账号 --resume [--task-id <ID>],不重复创建;用户给定等待时长传 --timeout
当前用户申请查看/下载/编辑权限`dws minutes +apply-permission --id --permission viewdownload
所有者给成员授权或撤权dws minutes +share ... / dws minutes +unshare ...先用通讯录把姓名解析为同组织稳定 UID;撤权是破坏性操作。批量结果必须保留逐成员 ledger 和失败项

搜索与列表执行胶囊

用户要求“全部、所有、完整、汇总整个范围”时,首轮直接使用 --page-all

text
dws minutes +search --query "<关键词>" --scope all --page-all --format json
dws minutes +search --start "<RFC3339>" --end "<RFC3339>" --scope mine --page-all --format json
dws minutes +list-mine --page-all --format json
dws minutes +list-shared --page-all --format json
dws minutes +list-all --page-all --format json

只有用户明确要第一页、预览、样本或限定页数时才省略 --page-all,如实保留完整性与续页证据。每页 N 条须首轮及续页均传 --limit N,不能取默认数量后只展示 N 条冒充;限定页数用同一 leaf 的 --cursor <真实 next_token> 续拉,不扩大为全量。+list-all--cursor--page-all 互斥。有时间窗用 +search,因为 +list-* 不接受 --start/--end

目标与完整性

  • 时间展示与筛选:日期、时区偏移、星期及“本周”等边界必须由日期工具计算,不能心算或从标题日期推断。时间戳使用本地脚本 format_timestamp.pypython3 <本Skill目录>/scripts/format_timestamp.py --unit ms --timezone Asia/Shanghai <时间戳1> [时间戳2 ...];示例单位/时区须替换为已确认值(优先用户指定时区,否则已知会话时区)。最终直接复用输出,不补算星期或二次换算;已有明确时区的可读返回可直接引用,单位/时区不明时保留原值。相对周边界另用日期库计算,该脚本只转换时间戳。duration 等时长不传给该脚本;仅按已确认单位用本地计算换算,单位未知保留原值,不凭时长判断内容无效或录音状态。
  • 目标锁定优先级:用户给出的 taskUuid/URL > 精确标题 > 标题包含或语义相关候选。相似候选可展示,但候选差异明显或多个候选都合理时必须停下来消歧;分页未完成本身不是目标歧义。
  • 用户说“先确认/核对目标”默认要求用真实基础信息字段完成证据核对,不自动变成等待用户回复的会话门禁。目标唯一、分页完整且后续均为只读时,展示标题、时间、归属等核对证据后在同一轮完成所需交付;只有用户明确要求“等我确认后再继续”或仍有多个合理候选时才暂停。
  • 纯能力、规则或错误说明且没有唯一真实目标时直接解释,不猜对象;用户明确要求核对且目标唯一时必须真实读取,不能只展示命令。
  • mine 仅表示我创建的,shared 仅表示共享给我的;all 表示 accessible 聚合目标。不得声称后端单个 noLimit 端点天然等于 mine + shared
  • 列表或逐字稿只有 data.complete=true 才能称为“全部/完整”。全量请求遇到 meta.pagination.next_token 时继续;只有 token 缺失、cursor 停滞/循环、达到 page-limit 或后页失败时才停止,并保留失败信封或不完整证据。
  • 用户要求核对、汇总“这些/每条/全部”命中项时,必须覆盖完整命中集合;可用 dws minutes +detail --ids <uuid1,uuid2> --artifacts basic --format json 批量核对,并逐项保留失败。只检查第一条不能代表全体;响应没有逐条归属或组织字段时如实说明不可得,不能用当前 profile 的组织名代替每条听记的归属。
  • 多听记、多来源或跨产品汇总按每个 taskUuid/来源 ID 保留 requested/resolved/missing/artifacts/status;缺输入或必需产物时整体按 partial,仍交付成功内容支持的独立结果并列缺项;不缩减原请求或把子集说成全部,依赖缺失来源的结论暂不生成。
  • 内容归纳必须来自每条真实 summary/transcript/keywords;只有 title/basic 时只列元数据;其他未满足用户要求的内容依据也只列元数据,分类任务列“待分类/证据不足”,不凭标题或时长判无效。按 taskUuid 去重后的已分类数+待分类数须等于目标总数。
  • partial_success、异步 pending、超时和未知写入结果不是成功。按结果中的恢复句柄继续,不能重放已成功步骤。

安全边界

  • +export-pack 会递归清理全部文本产物中的已识别签名链接/凭据,签名目标替换为 [signed-url-removed];扫描失败不发布。交付时说明 sanitized/redactionCount/sanitizationScope,不要把 complete=true 解释为摘要图片已离线保存;当前 offlineImagesComplete=false。二进制媒体内容不属于文本扫描范围。
  • 是否确认以 leaf Schema 与 Runtime gate 为准,不根据“看起来像写操作”自行推断。推荐 Golden Route 中的 +update+summary+record-*+share/+unshare/+apply-permission+speaker-replace+replace-batch 等当前要求确认。
  • 为兼容既有公开 Contract,对应的底层原子命令保留历史 not_required;它们只用于 Shortcut 无法表达的明确底层控制,不得为了绕过 Golden Route 的确认门禁而降级调用。
  • +upload+upload-and-analyze 即使不发送消息,仍会上传本地媒体并创建远端听记,真实执行必须按 Runtime confirmation;--dry-run 仍可在零远端调用下预览。上传并发送闪记卡片、精确同步并删除热词、撤权等副作用更大的入口继续单独处理。
  • +mindmap+speaker-insights+prepare-asr 当前要求确认;--resume 仍沿用所在 Shortcut 的命令级门禁。旧 +upload --enable-message-card+upload-and-analyze --enable-message-card 继续作为可执行兼容入口,并遵循各自 Shortcut 的确认门禁;新调用仍推荐 +upload-and-notify。原子 minutes upload create --enable-message-card 与旧 --sync 只保留为公开迁移提示,不得当作可执行 Golden Route。
  • --dry-run 必须返回明确的 dry-run/request 证据且不调用远端;录音预览按上方原子入口执行。任何入口若拒绝 dry-run,必须报告“不支持预览”,不得把拦截或普通执行称为预演成功。
  • 用户明确要求“仅预览/不实际写入”时,任务在真实现状读取、dry-run 计划和差异交付后结束;不得继续请求写入确认,也不得为了验证预览而执行真实写入后再还原。
  • 分享/撤权使用稳定成员 UID,不能把姓名、手机号或跨组织 ID 直接当 UID;同一目标解析、读取、写入和验证必须使用同一 profile。

按需加载

Golden Route 参数足够时直接执行,不预读 Reference。每个 Case 最多先读取一个最精确的文件;参数事实优先读取 compact leaf Schema,不读取产品级全量 Catalog。

触发条件Reference
ASR 热词、上传会话恢复、复杂异步轮询、批量权限 workflow复杂流程
发言人替换、批量文本替换、下载媒体、离线导出等低频意图局部意图
必须落到原子命令,或需要 URL/参数/确认事实原子命令

错误最短路径

  1. 零命中、多候选或 ID 类型不明:停止并返回候选证据。全量请求分页未完成但有有效 continuation 时继续;只有 token 缺失/停滞/循环、达到页数上限或后页失败时停止并返回 data.completemeta.pagination 或失败信封等证据。
  2. 认证、权限、profile 或 confirmation 错误:按 dingtalk-shared 对应错误 Reference 处理;不更换 scope、账号或写命令碰运气。
  3. 异步超时或部分成功:保留 taskUuid/taskId/sessionId/checkpoint,只恢复未完成阶段;未知写入先读回,不能自动重试。

跨产品边界

  • 把听记摘要或逐字稿写成文档 → 读取真实内容后切 dingtalk-doc
  • 把听记行动项创建为任务 → 读取行动项后切 dingtalk-todo,并按其身份解析规则处理执行人。
  • 把摘要发给同事 → 切 dingtalk-chat+share 只管理听记权限,不发送摘要消息。
  • 创建或修改日程、会议室 → dingtalk-calendar;Minutes 只处理听记产物和录音控制。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Dingtalk Minutes AI skill do?

钉钉 AI 听记。Use when 查询或修改听记摘要、完整逐字稿、关键词、标签、行动项、录音、上传、思维导图、发言人洞察、ASR 热词/识别词配置或分享权限。写文档走 dingtalk-doc;建待办走 dingtalk-todo;日程走 dingtalk-calendar。命令前缀:dws minutes。

Why use Dingtalk Minutes on TypingMind?

Because you install it once and use it with any model. Dingtalk Minutes is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Dingtalk Minutes in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/tree/main/skills/multi/dingtalk-minutes. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Dingtalk Minutes?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Dingtalk Minutes?

As many as you like. As long as a model supports skills, you can use Dingtalk Minutes with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Dingtalk Minutes AI skill free?

Yes. It is published on GitHub by DingTalk-Real-AI under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇