SuperAPI AI 工具集

lark-wiki

办公与效率

查看项目

更新于 10-15 08:33

技能介绍

飞书知识库(lark-wiki)是 lark-cli 中用于管理知识空间的技能,封装了知识空间、空间成员和文档节点的相关操作。

【用途】 该技能用于管理知识空间(创建、查询、删除)、管理空间成员(添加、移除、查看)、管理节点层级结构(创建、列出、复制、移动、删除节点),以及在知识库中组织文档和快捷方式。当用户需要在知识库中查找或创建文档、浏览知识空间结构、查看或管理空间成员、移动或复制节点时适用。

【使用前的准备】 开始前必须先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理。

【身份选择】 知识空间和节点属于用户的个人资源,策略上应优先显式使用 --as user(CLI 的 --as 默认值为 auto,不带 --as 时常被解析成 bot,列出的是应用所属空间而非用户的)。仅当用户明确要求“应用 / bot 视角”时才用 --as bot,且仍受成员管理硬限制约束。

【成员管理硬限制】 如果目标是“部门”,需先判断身份再决定是否继续。--as bot 对应 tenant_access_token,官方限制这种身份下不能使用部门 ID(opendepartmentid)添加知识空间成员。遇到“部门 + --as bot”时,禁止先调用 wiki +member-add 试错,应直接说明该路径不可行。如果用户明确要求“以 bot 身份运行”且目标是部门,必须停下说明 bot 路径无法完成,不要静默切到 --as user。

【主要 Shortcuts】 工具优先使用封装好的 Shortcut(lark-cli wiki +<verb> [flags]):

  • +move:移动 Wiki 节点,或将 Drive 文档移入 Wiki
  • +move-to-drive:将 Wiki 节点移入 Drive 文件夹并轮询异步任务
  • +node-create:创建 Wiki 节点并自动解析空间
  • +delete-space:删除知识空间,必要时轮询异步删除任务
  • +space-list:列出调用方可访问的所有知识空间
  • +space-create:创建知识空间(仅 user 身份)
  • +node-list:列出空间或父节点下的 Wiki 节点(支持分页)
  • +node-copy:复制 Wiki 节点到目标空间或父节点
  • +node-get:按 node_token / obj_token / Lark URL 获取节点详情
  • +node-delete:删除 Wiki 节点,必要时轮询异步删除任务
  • +member-add:向知识空间添加成员
  • +member-remove:从知识空间移除成员
  • +member-list:列出知识空间成员(支持分页)

获取或解析 Wiki 节点统一使用 wiki +node-get,包括只为获取 space_id、node_token、obj_token 或 obj_type 的中间步骤。

【成员添加流程】 调用 lark-cli wiki +member-add 前,先把自然语言里的“人 / 群 / 部门 / 应用”解析成正确的 --member-id:

  • 用户场景默认优先 --member-type=openid:用 lark-cli contact +search-user --query "<姓名/邮箱/手机号>" --format json 获取 open_id
  • 群组场景使用 --member-type=openchat:用 lark-cli im +chat-search --query "<群名关键词>" --format json 获取 chat_id
  • 应用场景使用 --member-type=appid:--member-id 传应用 ID,格式通常为 cli_xxx
  • userid / unionid 仅在下游明确要求时才使用
  • 部门场景使用 --member-type=opendepartmentid:当前 CLI 没有 shortcut,需调用 lark-cli api POST /open-apis/contact/v3/departments/search 获取 open_department_id,且必须为 --as user

【API 资源】 调用原生 API 前必须先查看参数结构:lark-cli schema wiki.<resource>.<method>;调用方式:lark-cli wiki <resource> <method> [flags]。 资源包括:

  • spaces:create(创建知识空间)、get(获取知识空间信息)、list(获取知识空间列表)
  • members:create(添加知识空间成员)、delete(删除知识空间成员)、list(获取知识空间成员列表)
  • nodes:copy(创建知识空间节点副本)、create(创建知识空间节点)、list(获取知识空间子节点列表)

【关键操作约束】

  • 按主题 / 关键词查找资料并收集到知识库节点:必须先阅读 ../lark-drive/references/lark-drive-workflow.md,再按其 Workflow Registry 进入 topic_move_collector workflow,不要只用 Wiki 节点列表做局部遍历。
  • 整理 / 盘点 / 归类 / 重构知识库结构:必须先阅读 ../lark-drive/references/lark-drive-workflow.md,再进入 knowledge_organize workflow。
  • 将已有 Wiki 节点移出知识库放到 Drive 文件夹或“我的空间”根目录:使用 wiki +move-to-drive,不要使用 wiki +move 或 drive +move,执行前确认源节点与目标位置。
  • 已知知识库 URL 且要查 / 加 / 删成员:先确定下游成员操作身份,再调用 lark-cli wiki +node-get --node-token '<wiki_url>' --as user --format json,从 data.space_id 获取空间 ID,节点解析与后续成员操作必须使用相同身份。
  • 删除知识空间但只给了名称或 URL:不能把名称 / URL 原样传给 --space-id,必须先解析出真实 space_id。URL 用 node-get 解析;只知名称则用 lark-cli wiki spaces list --format json 边翻页边精确匹配,无精确匹配再做宽松匹配。无论命中多少条,发起删除前都必须把候选(name + space_id + description + space_type)列给用户,由用户明确选定一个 space_id 再执行。命中 0 条时停下来询问用户,不要自行改名重试。执行删除用 lark-cli wiki +delete-space --space-id <ID> --yes。
  • 原地重命名 Wiki 节点:使用 lark-cli drive +update-title --url '<wiki_url>' --title '<new_title>',保留同一个 node_token,不要探索 raw wiki.nodes 的 update_title 端点,也不要通过复制或新建节点实现改名。
  • 列出 Wiki 节点:先用 wiki +space-list --as user 拿数字 space_id,再用 wiki +node-list --space-id <space_id>。不要把 wiki URL、node token、doc token、名称直接当 --space-id。钻子节点时 --parent-node-token 必须是 wiki node token。
  • wiki +node-list 命中 invalid_parameters、not_found、permission_denied 时,不要重复调用同一参数,按 hint 修 space_id / parent_node_token / 权限;只有 rate_limit 才做退避重试。
  • 查看 / 列出空间成员:用 wiki +member-list,默认只取一页,多成员场景显式加 --page-all。
  • 移除 / 删除空间成员:用 wiki +member-remove,必须传齐原始授予时的 --member-type 和 --member-role。

【目标语义约束】 “我的文档库 / My Document Library / 我的知识库 / 个人知识库 / my_library”都应视为 Wiki personal library,不是 Drive 根目录,需先解析 my_library 对应的真实 space_id,再执行 Wiki 写操作。如果用户明确说的是 Drive 文件夹、云空间根目录、我的空间,再按源对象分流:源对象是 Wiki 节点时用 wiki +move-to-drive,源对象已在 Drive 时用 drive +move。

【不在本技能范围】 上传文件到知识库节点下、下载 Wiki 节点对应的文件属于 lark-drive;编辑文档正文内容属于 lark-doc;表格 / 多维表格数据操作属于 lark-sheets / lark-base;按名称搜索文档、评论与权限管理属于 lark-drive。

【限制】 bot 身份无法使用部门 ID 添加知识空间成员;+space-create 仅支持 user 身份;删除知识空间为高风险写操作,必须显式加 --yes。官方资料未提供该技能的收费、价格、平台或效果等信息,暂未提供。