【建议】金山文档SKILL完善文档操作能力
Lv.2潜力创作者
一、功能清单
能力 | 金山文档 SKILL | 百度网盘 SKILL |
上传 | upload_file | bdpan upload |
下载 | download_file(获取下载信息) | bdpan download(直接下载,含大文件后台策略) |
列表 | list_files(支持排序:ctime/mtime/dtime/fname/fsize) | bdpan ls |
搜索 | search_files(支持文件名搜索、内容全文搜索、按后缀/时间/创建者/分享者过滤) | bdpan search(支持按媒体类型分类筛选:视频/音频/图片/文档/应用/种子) |
创建文件夹 | create_file | bdpan mkdir |
移动 | move_file(批量) | bdpan mv |
复制 | copy_file(支持跨盘) | bdpan cp |
重命名 | rename_file | bdpan rename |
同名检查 | check_file_name | 无 |
分享 | share_file(支持 scope/密码/过期时间) + set_share_permission + get_share_info + cancel_share(支持 pause/delete 两种模式) | bdpan share(SKILL.md 注明"付费接口") |
分享链接下载 | 通过工具链实现:URL 提取 link_id → get_share_info 获取 file_id → download_file | bdpan download(直接传入分享链接) |
分享链接转存 | 通过工具链实现:URL 提取 link_id → get_share_info 获取 file_id → copy_file | bdpan transfer |
收藏 | list_star_items / batch_create_star_items / batch_delete_star_items | 无 |
标签 | 完整标签体系(8 个工具) | 无 |
最近访问 | list_latest_items | 无 |
回收站 | list_deleted_files + restore_deleted_file | 无 |
网页剪藏 | scrape_url + scrape_progress | 无 |
文档内容读取 | read_file_content(抽取为 Markdown/纯文本) | 无 |
附件上传 | upload_attachment(支持 URL 或 Base64) | 无 |
文件删除(移入回收站) | 无 | 无 |
回收站永久删除/清空 | 无 | 无 |
文件版本历史 | 无 | 无 |
二、金山文档 SKILL 缺失的文档操作能力
1. 文件删除(移入回收站)
金山文档 SKILL 的回收站模块仅包含 list_deleted_files(列出回收站文件)和 restore_deleted_file(还原)。整个 SKILL 的 drive 层级工具(共 33 个 action)中无文件删除命令,所有 delete 类工具均为文档内容或表格内部的删除(如 otl.block_delete、sheet.delete_sheets、dbsheet.delete_records)。经 kdocs-cli drive --help 确认 33 个 action 完整列表,并通过 kdocs-cli call 尝试 13 种可能的 API 名称(如 drive.delete_file、drive.trash、drive.recycle 等),均返回 tool not found。
然而,金山文档开放平台已提供对应的个人文档 API:
DELETE /api/v1/openapi/personal/files/:file_token该接口可将文档移动到回收站,权限值为 remove_personal_files,测试应用限额 500 次/天,正式应用限额 100,000 次/天。此外,批量删除 API 也已存在:
POST /api/v1/openapi/personal/tasks/files/delete这意味着底层 API 已就绪,但 kdocs-cli 及 SKILL 层面尚未封装。
2. 回收站永久删除与清空
金山文档 SKILL 的回收站模块仅支持列表查看和还原,缺少从回收站永久删除文件的能力。
金山文档开放平台已提供对应的个人文档 API:
POST /api/v1/openapi/personal/recycles/destroy该接口接受 file_tokens 数组参数,可一次性删除回收站中的多个文件,删除后无法恢复。权限同样为 remove_personal_files。
与第 1 项相同,底层 API 已就绪,但 kdocs-cli 及 SKILL 层面未封装。
3. 文件版本历史
金山文档 references/drive.md 附录 A 的 FileInfo 结构中包含 version(文件版本号)字段,permission 对象中也列出了 history(标注"仅公网支持")。经实际验证,对测试文件执行 otl.insert_content 修改后,get_file_info 返回的 version 字段始终为 1(不变),而 otl.insert_content 返回值中的 version 字段递增(97 → 98 → 99),说明二者属于不同层面的 version 概念。SKILL 未提供任何查看文件历史版本列表或回滚到指定版本的 drive 层级工具。
金山文档开放平台的应用文档 API(appspace)中存在版本历史相关接口:
GET /api/v1/openapi/appspace/files/:file_token/versions # 历史版本列表
GET /api/v1/openapi/appspace/files/:file_token/versions/:version # 指定版本详情
GET /api/v1/openapi/appspace/files/:file_token/versions/:version/download # 指定版本下载
POST /api/v1/openapi/appspace/files/:file_token/versions/:version/revert # 回滚到指定版本但需注意,上述版本历史接口仅存在于应用文档(appspace)API 体系下,个人文档(personal)API 体系当前未提供版本历史接口。金山文档 SKILL 当前操作的是个人文档空间,因此即使 kdocs-cli 封装了版本历史工具,其适用范围也可能受限于 API 层面的覆盖。
4. 批量复制文件(copy_file 不支持批量)
move_file 已支持批量(file_ids 数组),但 copy_file 仅接受单个 file_id。金山文档开放平台已有异步批量复制 API:
POST /api/v1/openapi/personal/tasks/files/copy当用户需要一次复制多个文件到同一目录时,当前只能循环调用 copy_file,效率低且无法利用服务端的异步批量处理能力。
5. 协作用户管理(分享链接的精确权限控制)
当前 share_file 可设置 scope(anyone / company / users),但无法精确管理"哪些具体用户可以访问"。开放平台已有 3 个 API:
API | 说明 |
POST .../links/members | 添加协作用户到分享链接 |
PUT .../links/members/:user_id | 修改单个协作用户的权限 |
DELETE .../links/members/:user_id | 移除单个协作用户 |
从云盘基础能力角度看,指定协作者并分配权限是分享功能的核心组成部分。金山文档SKILL的分享模块已有 5 个工具,补全这 3 个即可形成完整的分享权限管理闭环。