运行时依赖
安装命令
点击复制技能文档
钉钉云文档 技能 Overview
用户可能要求你创建、搜索、读取或编辑钉钉云文档。操作之间存在严格依赖关系:必须先获取 ID 才能执行后续操作。
严格禁止 禁止编造 ID -- dentryUuid 必须从返回值中提取,编造 ID 会操作到错误文档或报错 创建前必须先获取根目录 ID -- 必须先调 获取_my_docs_root_dentry_uuid 拿到 rootDentryUuid 禁止混淆两个创建方法 -- 创建_doc_under_node 只能创建文档,创建_dentry_under_node 支持文件夹/表格/PPT 等多种类型 写入前必须确认 更新Type -- 0=覆盖(清空后写入),1=续写(追加到末尾),搞反会丢数据,不确定时必须先问用户 禁止只传 ID 读内容 -- 必须拼成完整 URL https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 禁止在用户说"表格"时默认创建文档 -- 可能要在线表格(访问Type="1")或多维表(访问Type="7"),不确定必须先问 禁止传错参数类型 -- 访问Type 必须是字符串,更新Type 必须是数字,类型传错会导致静默失败 可用方法列表 方法 用途 必填参数 获取_my_docs_root_dentry_uuid 获取"我的文档"根目录 ID 无 列出_访问ible_documents 搜索有权限的文档 无 (keyword 选填) 创建_doc_under_node 创建在线文档 name, parentDentryUuid 创建_dentry_under_node 创建节点 (文档/表格/文件夹等) name, 访问Type, parentDentryUuid write_content_to_document 写入文档内容 (覆盖或续写) content, 更新Type, tar获取DentryUuid 获取_document_content_by_url 通过 URL 获取文档 Markdown 内容 docUrl 意图判断
用户说"创建文档/新建文档/写个文档/帮我建个文档":
创建文档 → 先 获取_my_docs_root_dentry_uuid,再 创建_doc_under_node 创建到指定文件夹 → 用文件夹的 dentryUuid 作为 parentDentryUuid
用户说"建文件夹/新建目录/整理一下文档":
创建文件夹 → 创建_dentry_under_node(访问Type="13")
用户说"创建表格/建个PPT/做个脑图":
非文档类型 → 创建_dentry_under_node,访问Type: 表格="1",PPT="2",脑图="6",多维表="7" 用户说"表格"但不确定类型 → 先问是在线表格还是多维表
关键区分: 在线表格(访问Type="1") vs 多维表(访问Type="7") vs 文档(用 创建_doc_under_node)
用户说"搜索/找文档/查一下/有没有某个文档":
搜索 → 列出_访问ible_documents(keyword=关键词)
用户说"读文档/看看内容/打开文档/这个文档写了什么":
有 URL → 直接 获取_document_content_by_url 有文档名 → 先 列出_访问ible_documents 搜索,拿到 dentryUuid,拼 URL 再读
用户说"写入/更新内容/编辑文档/往文档里加点东西":
全新内容或替换 → write_content_to_document(更新Type=0) 覆盖 追加内容 → write_content_to_document(更新Type=1) 续写 不确定 → 问用户是覆盖还是追加 核心工作流
创建文档并写入:
获取_my_docs_root_dentry_uuid() → 提取 rootDentryUuid 创建_doc_under_node(name, parentDentryUuid=rootDentryUuid) → 提取 dentryUuid (HARD-GATE: 必须确认 更新Type) write_content_to_document(content, 更新Type=0, tar获取DentryUuid=dentryUuid) → 提取写入结果 获取_document_content_by_url(docUrl="https://alidocs.dingtalk.com/i/nodes/{dentryUuid}") → 验证
搜索并读取:
列出_访问ible_documents(keyword="关键词") → 提取 docs[].dentryUuid 获取_document_content_by_url(docUrl="https://alidocs.dingtalk.com/i/nodes/{dentryUuid}")
创建文件夹并整理:
获取_my_docs_root_dentry_uuid() → 提取 rootDentryUuid 创建_dentry_under_node(name, 访问Type="13", parentDentryUuid=rootDentryUuid) → 提取 dentryUuid 创建_doc_under_node(name, parentDentryUuid=文件夹dentryUuid) 上下文传递规则 操作 从返回中提取 用于 获取_my_docs_root_dentry_uuid rootDentryUuid 创建_doc_under_node / 创建_dentry_under_node 的 parentDentryUuid 创建_doc_under_node dentryUuid write_content_to_document 的 tar获取DentryUuid,拼 URL 读内容 创建_dentry_under_node dentryUuid 作为子节点的 parentDentryUuid 列出_访问ible_documents docs[].dentryUuid 拼成 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 用于读取 CRITICAL: 参数格式 // [正确] docUrl 必须是完整 URL {"docUrl": "https://alidocs.dingtalk.com/i/nodes/DnRL6jAJ..."} // [错误] 只传 ID → 报错 {"docUrl": "DnRL6jAJ..."}
// [正确] 访问Type 是字符串 {"name": "报表", "访问Type": "1", "parentDentryUuid": "xxx"} // [错误] 访问Type 传数字 → 静默失败 {"name": "报表", "访问Type": 1, "parentDentryUuid": "xxx"}
// [正确] 更新Type 是数字 {"content": "...", "更新Type": 0, "tar获取DentryUuid": "xxx"} // [错误] 更新Type 传字符串 → 静默失败 {"content": "...", "更新Type": "0", "tar获取DentryUuid": "xxx"}
错误处理 遇到错误: 展示错误信息给用户,不要自行猜测解决方案 "Invalid 凭证s": 提示用户重新配置凭证 "权限 denied": 提示用户确认对该文档有操作权限 "Document not found": 用 列出_访问ible_documents 重新搜索确认文档是否存在 错误码 52600007: 可能是企业账号限制或父节点 ID 无效,确认 parentDentryUuid 来源 详细参考 (按需读取) references/API-reference.md -- 完整参数 模式 + 返回值 + 节点类型枚举 references/error-codes.md -- 错误码说明 + 调试流程