Dingtalk Wiki logo

Dingtalk Wiki

OrganizationPopular
DingTalk-Real-AI
dingtalk-wiki

钉钉知识库与空间管理。Use when 用户明确说 知识库/wiki/创建、查找或列出知识库/命名的团队知识空间/个人知识库/知识库成员/库内节点创建、列表、搜索、复制、移动、删除或知识库动态。仅说“文档空间/我的文档”不触发:普通存储管理与全局文件搜索走 dingtalk-drive;节点正文读写走 dingtalk-doc。命令前缀:dws wiki。

Overview

PublisherDingTalk-Real-AI
Repositorydingtalk-workspace-cli
Skill namedingtalk-wiki
Stars
3.1K
Forks
242
Bundled files
5
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.

  • 5 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 Wiki 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-wiki .claude/skills/dingtalk-wiki
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Dingtalk Wiki 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 Wiki 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 Wiki 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.

钉钉知识库 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,禁连续猜替代命令。

下方自动清单的“唯一”仅指单页匹配;+resolve-space/+wiki-new-doc 不承担写入前的权威唯一解析,按 Golden Route 解析后使用真实 workspaceId。

Shortcuts(无专用脚本/recipe 时优先)

以下 shortcut 同时进入公开 catalog 与 Runtime Schema。按本 skill/recipe 路由,命中时 Shortcut 优先于原子命令。参数只查 dws schema --cli-path "wiki +<shortcut>" --compact --jq '{cli_path,parameters,constraints,confirmation}' -f json;仅需且已发布 result 时查 --jq '{cli_path,outcomes:.result.outcomes,pagination}',字段级再查 data_schema;缺失不以 Help/样例推断。Schema 不可用才读一次已知 leaf Help;unknown flag 用同 leaf Help 修正一次。unknown command 禁 Help:错误 suggestion → 已加载 Skill/reference 明确入口;均无则报漂移。禁全 Catalog/root/parent/product Help;仅映射、接口或 provenance 审计省略 --compact。现有路由和 reference 均无法定位低频能力时,才用 dws shortcut list --service wiki --format json 发现。

Shortcut风险适用场景
dws wiki +resolve-spaceread按名称搜索知识空间并解析单次结果中的唯一 spaceId(只读)
dws wiki +wiki-new-docwrite在指定名称的知识库下新建一个文档节点(按单次名称搜索解析 workspaceId)

Golden Route

用户意图唯一推荐入口关键边界
按名称解析唯一知识库+space-list --type <orgWikiSpace|myWikiSpace> --limit 50 --page-all 后精确匹配名称先明确组织/个人范围;结果的 requestedType 必须等于请求范围;仅 autoPageComplete=true 且全量中恰好一个同名项时取 workspaceId
搜索或列出知识库+space-search --query <关键词> / +space-list [--type orgWikiSpace|myWikiSpace]用户要求全部时加 --page-all;个人知识库必须明确语义
为 Drive 发现钉盘存储空间dws wiki space list --type <orgSpace|mySpace> --format jsonmanaged 只读前置;返回 spaceId/rootFolderId 后切回 Drive,不进入 Wiki node/member 路由
已知 workspace 查看详情dws wiki +space-get --workspace <ID或URL>已知 ID 不重复搜索
创建或删除知识库+space-create --name <名称> / +delete-space --workspace <ID>创建会读回并验证空间类型;仅 spaceTypeVerified=true 时可断言类型。删除整个空间是高风险操作
浏览或搜索库内节点+node-list --workspace <ID> [--folder <ID>] / +node-search --workspace <ID> --query <词>列目录与关键词搜索分开;需要完整列表或完整搜索结果都加 --page-all
查看节点元数据dws wiki +node-get --node <ID或URL>正文读写随后切 Doc
已知 workspace 创建节点+node-create --workspace <ID> --name <名称> [--type <类型>]支持 adoc/axls/able/appt/adraw/amind/folder;创建后验证 ID、workspace、名称、类型及显式父文件夹
只有知识库名称时新建空文档先按全量 +space-list 唯一解析,再 +node-create --workspace <ID> --name <标题> --type adoc不用单页 +wiki-new-doc 猜空间;正文另走 Doc
用本地文件在新知识库建文档后移到“我的文档”+space-createdoc +import --file <相对路径> --workspace <新workspaceId>+move-to-drive --workspace <新workspaceId> --node <导入nodeId>必须先把文档真实导入新知识库再移出;禁止先查 mySpace、禁止 doc +create 在个人域创建后用 drive +move 冒充该流程
复制、移入知识库或将 Wiki 在线节点移出到“我的文档”+node-copy / +move / +move-to-drive“Wiki 节点 → 我的文档”固定使用 +move-to-drive,已知来源 workspace 时可传 --workspace 作写前归属断言;不可改用 mySpace/rootFolderId + drive +move
知识库首页放独立普通附件dws drive upload --file <本地文件> --workspace <ID> --format json不加 --convert;子目录加 --folder <目录nodeId>。正文内附件切 Doc 媒体,转换在线文档切 Doc 导入
删除库内节点+node-delete --workspace <ID> --node <ID>删除前核对归属并确认
列出、添加、修改或移除知识库成员member list / +member-add / +member-update / +member-remove写入 users 为 1-30 个;添加/修改须指定角色,移除不传角色;多类型、逐成员角色或通知用原生 member
查看知识库动态+feed-list --workspace <ID> [--exclude-file]全部动态加 --page-all;仅用户明确要求核对过滤效果时比较两组结果,未过滤结果须实际包含该文件事件

当前最短路径

  • 已知 workspaceId(含本轮创建回执):直接执行 space/node/member/feed 目标命令,不再 resolve,也不把名称传给 --workspace。用户另要求“按名称查找”时仍完成该查找步骤;已有 ID 不等于可以省略明确要求。
  • 只有知识库名称:先明确组织/个人范围,按 Golden Route 对应分支核对完整名称;未知范围先消歧,不同时扫描两个范围并猜测。
  • +space-search 只用于快速浏览候选;当前 +resolve-space/+wiki-new-doc 不暴露名称搜索的分页完成证据,不作为权威唯一解析或写入 Golden Route。
  • 已知 nodeId/URL:元数据直接 +node-get;正文直接切 Doc,不先 list/search。
  • 创建节点后返回的 nodeId 直接传给 Doc;不通过同名搜索重新定位。创建文件夹的 nodeId 才是后续 --folder,回执 folderId 是它的父目录;+node-copy/+move 的“本库首页”使用当前 workspace 并省略 --folder,移出另用 +move-to-drive
  • “本地文件 → 新知识库 → 我的文档”是有序跨产品流程:创建空间返回 workspaceId 后,必须 doc +import --workspace 取得库内 nodeId,再 wiki +move-to-drive --workspace;任何一步都不得在个人域提前创建或用 Drive 根目录移动替代。
  • move/copy/delete 已含预检或读回时,不由 Agent 重复拼装原子命令。
  • 普通“文档空间/我的文档”的文件操作按存储意图走 Drive;但源对象已确定是 Wiki workspace 中的在线节点、目标是移出到“我的文档”时是明确例外,直接用 wiki +move-to-drive,不查询 mySpace、不调用 drive +move。仅普通 Drive 节点缺少 spaceId/rootFolderId 时才用 managed wiki space list --type orgSpace|mySpace 发现空间。

关键结果语义

  • +space-list/+node-list/+node-search/+feed-list 默认单页;全量请求显式加 --page-all,并检查 autoPageComplete/autoPageStopReason/pagesFetched 与分页元数据。
  • +space-list 顶层 requestedType 是本次服务端查询的类型范围;条目级 spaceType 只在服务端真实返回时出现,不能用请求值伪造。用列表缺席证明空间不存在前,必须同时满足范围正确和 autoPageComplete=true
  • +space-create 只有返回 spaceTypeVerified=true 时才能使用 spaceType;类型验证失败会保留已创建的 workspaceId,禁止重试创建或按名称猜类型。
  • +space-search/+node-search 缺少业务数组不是零命中;只有显式空数组才可报告空结果。
  • 组织名称解析须列表取完且唯一精确同名;个人名称解析须原生成功回执中恰好一条且精确同名,不要求自动分页字段。空/畸形响应、0 条、多条、名称不符或组织分页未完成都停止。
  • +space-search+resolve-space 的单页结果不能证明全局唯一;不得把首页唯一候选直接用于写入。
  • +node-list/+node-search/+node-get 会保留服务端 extension/type/hasChildren 并规范化 parentFolderId;字段缺席表示服务端未提供,不能靠名称推断类型或层级。
  • 创建节点必须验证新 ID、workspace、名称、类型和显式父文件夹;复制必须先读源节点,再证明新 ID 与源 ID 不同且副本进入目标 workspace/folder。
  • +move/+move-to-drive 返回 source/target、前后 workspace 和目标域;移到我的文档还会用 myWikiSpace 范围列表验证目标 workspace。删除必须有 success=true
  • 成员列表服务端没有续页游标且最多 50,不能把上限内结果宣称为全量;成员写只具备终态响应证据,不虚构精确读回。
  • partial_failure、分页未完成或写入效果未知都不是成功。

参数与安全边界

  • workspaceId、nodeId、folderId、userId 不互相替代;名称不能当 ID。
  • 写操作只按精确 leaf Runtime 判定确认;已明确授权具体空间/节点/成员、动作与影响时,首次正式执行直接带 --yes,否则先确认。参数变化重新确认;禁止用缺少 --yes 的失败探测。
  • wiki member list --limit 默认为 30,范围 1-50;不使用成员 --page-all 或提高上限。成员写 --users 为 1-30 个,角色仅 MANAGER|EDITOR|DOWNLOADER|READER
  • +node-create --type 决定内容产品;建好后 adoc→Doc、axls→Sheet、able→AITable。
  • Profile/组织在空间解析、节点操作和验证期间保持一致。

按需加载

Golden Route 参数足够时不读 reference;否则最多读取一个:

触发条件Reference
文档空间、知识库、Drive/Doc 边界不明intent-guide
节点类型、复制、移动、移出或删除细节node-ops
成员角色、上限与验证语义members
分页、空间、动态及低频错误wiki reference
跨产品创建/写正文短流程lite-recipes

错误最短路径

  1. 空响应、缺失集合、零/多候选或分页不完整:停止后续写入并返回证据;+resolve-space resolved=true 也不能替代完整空间列表的分页完成证据。
  2. workspace/node 归属不一致:停止,不尝试换一个 ID 或 profile。
  3. 写响应缺少新 ID 或 success=true:效果未知,按名称/ID定向回读,不盲目重放。
  4. unknown flag 只查当前 leaf Help;unknown command 只查一次 Wiki Shortcut 清单。
  5. 正文、普通存储或 Base 记录误路由时切回对应产品,不在 Wiki 内试探近似命令。

跨产品边界

  • 明确知识库容器、成员、库内层级与动态 → Wiki。
  • 锁定库内 adoc 节点后的正文读写/导出 → Doc;axls 内容 → Sheet;able 记录/字段 → AITable。
  • 普通文件、文件夹、“我的文档/文档空间”的存储搜索、传输和整理 → Drive;已知源是 Wiki 在线节点且动作是“移出到我的文档”则走 Wiki +move-to-drive
  • Drive 存储空间发现可复用 managed wiki space list --type orgSpace|mySpace;结果是 spaceId/rootFolderId,不能交给 Wiki node/member。知识库 orgWikiSpace/myWikiSpace 仍返回 workspaceId。
  • Wiki 节点移入/移出使用 +move/+move-to-drive;不要把 workspaceId 当普通 Drive folderId。

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 Wiki AI skill do?

钉钉知识库与空间管理。Use when 用户明确说 知识库/wiki/创建、查找或列出知识库/命名的团队知识空间/个人知识库/知识库成员/库内节点创建、列表、搜索、复制、移动、删除或知识库动态。仅说“文档空间/我的文档”不触发:普通存储管理与全局文件搜索走 dingtalk-drive;节点正文读写走 dingtalk-doc。命令前缀:dws wiki。

Why use Dingtalk Wiki on TypingMind?

Because you install it once and use it with any model. Dingtalk Wiki 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 Wiki 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-wiki. 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 Wiki?

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 Wiki?

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

Is the Dingtalk Wiki 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 👇