运行时依赖
安装命令
点击复制技能文档
钉钉文档管理技能
通过钉钉开放平台 API 管理钉钉文档与钉钉知识库内文档。技能.md 只保留 代理 执行所需规则;配置细节、示例、API 背景见 README.md。
何时使用 触发关键词
只有在已经确认对象是钉钉文档时,同时消息包含以下任一关键词时,优先使用本 技能:
类别 关键词 平台名 钉钉文档、钉钉知识库、alidocs 读取类 总结、读取、查看、浏览、列出结构 修改类 更新、修改、追加、删除、覆写 对象 文档、链接、这篇、这个文档
组合示例:
"总结一下这篇钉钉文档" "读取这个 alidocs 链接" "更新文档内容" "删除第三段" 触发场景(优先级从高到低) 场景 示例 动作 钉钉文档链接 alidocs.dingtalk.com/i/nodes/xxx 根据意图选择:元数据→获取-doc,正文内容→获取-content 钉钉上下文 + 链接 "总结 https://alidocs.dingtalk.com/..." 调用 获取-content 读取内容后总结 明确命令 "总结这篇文档"、"读取这个 alidocs 链接" 根据意图选择命令 已知上下文是钉钉文档 前文已给出 alidocs 链接,后续说"更新文档"、"删除某段"、"在第三段后追加" 调用对应命令 结构查询 "列出结构"、"这个 alidocs 有哪些章节" 调用 获取-content 块级操作 "删除第三段"、"修改这个段落"、"在这里插入一段" 先用 获取-content 获取 blockId 和位置,再调用 删除-block/modify-block/insert-block 不触发的场景 查询本地文件、离线文档或普通文本内容,且不需要调用钉钉 API 没有文档链接、docKey、或明确钉钉文档上下文,却要求修改文档 用户只说"总结文档""更新这个链接"等泛化请求,但上下文无法确认对象是钉钉文档 与钉钉无关的文档系统,例如本地 Markdown、飞书文档、语雀、Google Docs 运行前提 环境变量
必须配置以下环境变量 (在 Gateway 环境中):
DINGTALK_命令行工具ENTID - 钉钉应用 命令行工具ent ID (应用Key) DINGTALK_命令行工具ENTSECRET - 钉钉应用 命令行工具ent Secret (应用Secret)
可选环境变量:
OpenClaw_发送ER_ID / DINGTALK_发送ER_ID - 由 OpenClaw / 钉钉连接器注入的当前用户 发送er_id;也可以通过命令行 --发送erId= 显式传入 DINGTALK_调试 - 设置为 true 启用调试模式;仅输出方法、路径(查询参数已脱敏)、状态码、请求Id 等,不打印文档正文与完整请求体 operatorId 获取方式
不需要在配置中指定!系统会自动从当前会话获取:
从 OpenClaw_发送ER_ID 或 DINGTALK_发送ER_ID 获取 发送er_id 调用钉钉 API 查询对应的 unionId 使用 unionId 作为 operatorId
如果获取失败,会显示友好的错误提示。
执行规则 读取操作不受白名单限制 写入操作必须通过白名单检查;未配置 workspace 或节点名不在白名单内时,一律拒绝!没有任何方式可以绕过白名单检查! white列出: ["/"] 表示允许写入该 workspace 下的所有节点;更细粒度控制请配置具体文档名,例如 "/三级目录测试文档.adoc" 白名单配置文件 config/white列出.json 只能由用户手动修改;AI 只能读取、解释、提示用户手动调整,不能替用户改 如果用户没有给出 workspaceId,先运行 列出-workspaces 如果用户没有给出目标文档的 nodeId / docKey,先运行 列出-docs、搜索 或 获取-doc 确认目标 URL 解析规则
当用户提供钉钉文档 URL 时,按以下规则提取 nodeId:
URL 格式: https://alidocs.dingtalk.com/i/nodes/?...
提取方法:
从 URL 中提取 nodes/ 和 ? 之间的部分 该部分即为 nodeId
示例:
URL: https://alidocs.dingtalk.com/i/nodes/oP0MALyR8kOd5BGacKv6NbxE83bzYmDO?utm_scene=team_space nodeId: oP0MALyR8kOd5BGacKv6NbxE83bzYmDO
提取到 nodeId 后的操作:
获取文档元数据(名称、知识库 ID 等):获取-doc --nodeId=<提取的 nodeId> 获取文档内容(总结、读取正文):获取-content --docKey=<提取的 nodeId> 注意:获取-doc 只返回元数据,获取-content 才返回正文内容 执行入口 scripts/索引.js:主入口 scripts/white列出.js:辅助检查白名单配置
跨平台说明:
本 技能 的脚本基于 Node.js 内置模块实现,Windows、Linux、macOS 只要安装了 node 并配置好环境变量,都可以运行 推荐优先使用相对路径执行:node scripts/索引.js ...,这样最不容易受平台路径差异影响
路径示例:
Windows PowerShell 中 ~ 不会自动展开,建议使用以下方式之一:
# ✅ 使用 $env:USER性能分析 node $env:USER性能分析\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js
# ✅ 或使用完整绝对路径 node C:\Users\zhenhuAIxiu\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js
# ❌ 错误(~ 不会展开) node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js
Linux / macOS Shell 示例:
# ✅ 当前目录下直接运行(推荐) node scripts/索引.js 列出-workspaces
# ✅ 或使用完整绝对路径 node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 列出-workspaces
命令映射
路径说明:
Windows 示例中的 $env:USER性能分析\.OpenClaw 会展开为 C:\Users\<用户名>\.OpenClaw Linux / macOS 示例中的 ~/.OpenClaw 会展开为用户主目录下的 .OpenClaw 如果当前工作目录已经在 技能 根目录,直接使用 node scripts/索引.js ... 即可 读取操作 命令 用途 API 端点 列出-workspaces 获取知识库列表 获取 /v2.0/wiki/mineWorkspaces 列出-docs 获取知识库中文档列表 获取 /v2.0/wiki/nodes 获取-doc 获取文档元数据(名称、ID、创建者、字数等) 获取 /v2.0/wiki/nodes/{nodeId} 获取-content 获取文档正文内容(段落、标题、列表等块结构) 获取 /v1.0/doc/suites/documents/{docKey}/blocks 搜索 搜索文档 获取 /v1.0/doc/workspaces/{workspaceId}/docs
示例:
# Linux / macOS node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 列出-workspaces node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 列出-docs --workspaceId=YRBGvyxxx --parentNodeId=root node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 获取-doc --nodeId=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMmz node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 获取-content --docKey=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMmz node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 搜索 --workspaceId=YRBGvyxxx --keyword="需求"
# Windows PowerShell node $env:USER性能分析\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js 列出-workspaces node $env:USER性能分析\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js 列出-docs --workspaceId=YRBGvyxxx --parentNodeId=root node $env:USER性能分析\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js 获取-doc --nodeId=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMmz node $env:USER性能分析\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js 获取-content --docKey=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMmz node $env:USER性能分析\.OpenClaw\技能s\dingtalk-doc\scripts\索引.js 搜索 --workspaceId=YRBGvyxxx --keyword="需求"
写入操作 # Linux / macOS node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 创建-doc --workspaceId=YRBGvyxxx --name="新文档" --docType=DOC --parentNodeId=root node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 更新-content --nodeId=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMmz --content="# 标题\n\n内容" node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 更新-content --nodeId=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMmz --docKey=真实docKey --content="# 标题\n\n内容" node ~/.OpenClaw/技能s/dingtalk-doc/scripts/索引.js 删除-doc --workspaceId=YRBGvyxxx --nodeId=YQBnd5ExVE0PDnezU2PK2RK6WyeZqMm