6.6 KiB
6.6 KiB
wiki +node-create
前置条件: 先阅读
../lark-shared/SKILL.md了解认证、全局参数和安全规则。
在飞书知识库中创建一个新节点,并自动解析目标知识空间。该 shortcut 对原生 wiki.nodes.create 做了一层更适合日常使用的封装:可以直接指定 space_id,也可以从父节点自动反查所属空间;在 user 身份下,如果同时省略 --space-id 和 --parent-node-token,还会自动回退到个人知识库 my_library。
命令
# 在个人知识库根目录下创建一个 docx 节点(user 身份默认回退到 my_library)
lark-cli wiki +node-create \
--title "项目计划"
# 在指定知识空间中创建一个 docx 节点
lark-cli wiki +node-create \
--space-id <SPACE_ID> \
--title "项目计划"
# 在指定父节点下创建一个子节点
lark-cli wiki +node-create \
--parent-node-token <PARENT_NODE_TOKEN> \
--title "迭代记录"
# 显式指定创建到个人知识库(仅 user 身份;bot 不支持 `--space-id my_library`)
lark-cli wiki +node-create \
--space-id my_library \
--title "学习笔记"
# 创建一个快捷方式节点(shortcut)
lark-cli wiki +node-create \
--parent-node-token <PARENT_NODE_TOKEN> \
--node-type shortcut \
--origin-node-token <ORIGIN_NODE_TOKEN> \
--title "原文档快捷方式"
# 创建非 docx 类型节点
lark-cli wiki +node-create \
--space-id <SPACE_ID> \
--obj-type sheet \
--title "周报数据"
# 预览底层调用链
lark-cli wiki +node-create \
--title "Roadmap" \
--dry-run
返回值
成功后会返回一个 JSON 对象,常见字段包括:
resolved_space_id:最终用于创建的真实知识空间 IDresolved_by:空间解析来源,可能是explicit_space_id、parent_node_token、my_librarynode_token:新建知识库节点 tokenobj_token:节点关联对象 tokenobj_type:节点关联对象类型node_type:节点类型title:节点标题permission_grant(可选):仅--as bot时返回,说明是否已自动为当前 CLI 用户授予可管理权限
Important
如果节点是以应用身份(bot)创建的,如
lark-cli wiki +node-create --as bot,在创建成功后 CLI 会尝试为当前 CLI 用户自动授予该知识库节点的full_access(可管理权限)。以应用身份创建时,结果里会额外返回
permission_grant字段,明确说明授权结果:
status = granted:当前 CLI 用户已获得该知识库节点的可管理权限status = skipped:本地没有可用的当前用户open_id,因此不会自动授权;可提示用户先完成lark-cli auth login,再让 AI / agent 继续使用应用身份(bot)授予当前用户权限status = failed:节点已创建成功,但自动授权用户失败;会带上失败原因,并提示稍后重试或继续使用 bot 身份处理该节点
permission_grant.perm = full_access表示该资源已授予“可管理权限”不要擅自执行 owner 转移。 如果用户需要把 owner 转给自己,必须单独确认。
参数
| 参数 | 必填 | 说明 |
|---|---|---|
--space-id |
否 | 目标知识空间 ID;user 身份可传特殊值 my_library 表示个人知识库,bot 身份不支持该值 |
--parent-node-token |
否 | 父知识库节点 token;传入后会在该节点下创建新节点 |
--title |
否 | 节点标题 |
--node-type |
否 | 节点类型,默认 origin;可选值:origin、shortcut |
--obj-type |
否 | 节点对应对象类型,默认 docx;可选值:sheet、mindnote、bitable、docx、slides |
--origin-node-token |
否 | 当 --node-type=shortcut 时必填,表示快捷方式指向的源节点 token |
空间解析规则
- 优先级:
--space-id>--parent-node-token>my_library - 显式 space:传了
--space-id时,shortcut 会直接使用该空间;如果该值是my_library,则仅user身份可用,并会先调用GET /open-apis/wiki/v2/spaces/my_library解析成真实space_id - 父节点推断:未传
--space-id但传了--parent-node-token时,会先调用GET /open-apis/wiki/v2/spaces/get_node获取父节点,再读取其space_id - 个人知识库回退:
user身份下,如果--space-id和--parent-node-token都没传,会自动解析my_library - bot 身份限制:
bot身份既没有“个人知识库”回退语义,也不支持显式传--space-id my_library;请改用真实space_id或--parent-node-token
shortcut 节点规则
--node-type=shortcut时,必须同时提供--origin-node-token--node-type=origin时,不能传--origin-node-tokenshortcut节点只是知识库中的快捷方式入口;真正被引用的节点由--origin-node-token指定
一致性校验
- 如果同时传了
--space-id和--parent-node-token,shortcut 会校验父节点所属空间是否与--space-id一致 - 如果两者解析出的空间不一致,命令会直接返回验证错误,而不会继续创建
- 对于
my_library,user身份下也会先解析出真实space_id后再做这层校验
行为说明
- 默认对象类型:不传
--obj-type时默认创建docx节点 - 默认节点类型:不传
--node-type时默认创建普通节点origin - dry-run 编排:
- 仅传
--title:会展示my_library解析 + 创建节点 两步调用 - 仅传
--parent-node-token:会展示“查询父节点 -> 创建节点”两步调用 - 同时需要
my_library和父节点时:会展示三步调用链
- 仅传
- bot 自动授权:若使用
--as bot,结果还会额外带上permission_grant,用于说明是否已自动为当前 CLI 用户授予新建节点的可管理权限 - 输出结果:成功后会返回
resolved_space_id、resolved_by、node_token、obj_token、obj_type、node_type、title等字段,便于后续继续操作
推荐场景
- 用户说“在我的知识库里新建一篇页面”时,优先用
lark-cli wiki +node-create --title "..." - 用户已经给出父页面链接或
parent_node_token时,优先传--parent-node-token,让 shortcut 自动推导空间 - 需要创建知识库快捷方式时,使用
--node-type shortcut --origin-node-token <token>
Caution
wiki +node-create是写入操作,执行前必须确认用户意图。
参考
- lark-wiki -- 知识库全部命令
- lark-shared -- 认证和全局参数