lark-workflow-knowledge-base
Installation
SKILL.md
个人知识库工作流
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
适用场景
- "帮我保存这篇文章" / "把这个链接存到知识库"
- "关于 AI 芯片的文章有哪些?" / "搜索知识库"
- "我之前保存过一个关于 Nvidia 的视频,帮我找出来"
- "最近保存了什么内容?" / "知识库概览"
- "把新内容和之前保存的关联起来"
前置条件
仅支持 user 身份。执行前确保已授权:
lark-cli auth login --domain wiki,docs,im,base,drive
工作流总览
保存内容:
用户发送链接/内容 ──► AI 抓取内容 ──► 生成摘要+标签
│
▼
doc +create (知识库) ──► base +record-upsert (索引)
搜索内容:
自然语言查询 ──► base +record-list ──► 匹配结果
│
▼
doc +fetch (详细内容)
关联分析:
新保存内容 ──► base +record-list (已有标签/关键词) ──► 发现关联
│
▼
im +messages-send (通知关联)
数据初始化
首次设置
- 创建/指定知识库空间
# 如果用户已有知识库空间,记录 space_id
# 否则在飞书中创建一个个人知识库空间
- 创建索引多维表格
表名:知识库索引 (kb_index)
| 字段名 | 类型 | 说明 |
|---|---|---|
| 标题 | 文本 | 内容标题 |
| URL | URL | 原始链接 |
| 内容类型 | 单选 | 文章/视频/推文/PDF/播客/其他 |
| 来源平台 | 单选 | 网站/YouTube/Twitter/X/公众号/其他 |
| 标签 | 多选 | AI 自动生成的标签 |
| 摘要 | 文本 | AI 生成的内容摘要(200字以内) |
| 关键观点 | 文本 | 核心观点或结论 |
| 文档链接 | URL | 飞书文档链接 |
| 文档Token | 文本 | 飞书文档 doc_token |
| 保存时间 | 日期 | 入库时间 |
| 关联条目 | 关联 | 关联到其他知识库条目 |
| 评分 | 数字 | 用户评分(1-5) |
| 备注 | 文本 | 用户备注 |
初始化命令
# 创建索引表
# 注意:+table-create 可能部分成功,需捕获错误后用 +field-create 补字段
# 注意:连续创建字段会触发限流(错误码 800004135),每次调用间隔至少 1 秒
lark-cli base +table-create --name "知识库索引" --fields '[
{"name":"标题","type":"text"},
{"name":"URL","type":"link"},
{"name":"内容类型","type":"select","multiple":false,"options":[{"name":"文章"},{"name":"视频"},{"name":"推文"},{"name":"PDF"},{"name":"播客"},{"name":"其他"}]},
{"name":"来源平台","type":"select","multiple":false,"options":[{"name":"网站"},{"name":"YouTube"},{"name":"Twitter/X"},{"name":"公众号"},{"name":"其他"}]},
{"name":"标签","type":"text"},
{"name":"摘要","type":"text"},
{"name":"关键观点","type":"text"},
{"name":"文档链接","type":"link"},
{"name":"文档Token","type":"text"},
{"name":"保存时间","type":"datetime"},
{"name":"评分","type":"number"},
{"name":"备注","type":"text"}
]'
# 注:关联条目字段需单独用 +field-create 创建(type="lookup" 需要关联目标表 ID)
限流处理:如果 +table-create 因限流部分失败,表仍会创建成功。此时:
- 用
base +table-list获取 table_id- 用
base +field-create --table-id <id> --json '{"name":"字段名","type":"text"}'逐个补字段,每次间隔 1-2 秒
模式一:保存内容
Step 1: 获取内容
从飞书消息接收:
# 查看用户发送的消息
lark-cli im +chat-messages-list --chat-id "<chat_id>"
直接从对话中获取 URL: 用户在对话中发送链接,AI 直接提取 URL。
Step 2: 抓取内容
使用 AI 能力抓取链接内容:
- 文章 URL → 抓取全文内容
- YouTube 视频 → 抓取标题、描述、字幕/转录
- Twitter/X 推文 → 抓取完整帖子串(不只单条)
- PDF URL → 下载并提取文本
- 播客 → 抓取标题、描述、时间戳摘要
Step 3: AI 生成摘要和标签
对抓取到的内容,AI 自动处理:
- 生成摘要:200字以内,概括核心内容
- 提取关键观点:3-5个要点
- 生成标签:3-8个标签,基于内容和主题
- 判断内容类型:文章/视频/推文/PDF/其他
Step 4: 检查重复
lark-cli base +record-list --table-id "<table_id>" --filter '...URL = "<目标URL>"'
如果 URL 已存在,提示用户"该内容已在知识库中",并展示已有记录。
Step 5: 发现关联内容
基于标签和关键词,搜索已有知识库中的相关内容:
lark-cli base +record-list --table-id "<table_id>" --filter '...标签 CONTAINS_ANY [标签1, 标签2]'
Step 6: 保存到飞书
创建飞书文档(知识库中):
lark-cli docs +create --title "<内容标题>" --markdown "<格式化后的全文内容>"
更新索引表:
lark-cli base +record-upsert --table-id "<table_id>" --json '{
"标题": "...",
"URL": "...",
"内容类型": "文章",
"标签": ["标签1", "标签2"],
"摘要": "...",
"关键观点": "...",
"文档链接": "...",
"保存时间": "..."
}'
Step 7: 通知用户
lark-cli im +messages-send --chat-id "<chat_id>" --markdown "已保存到知识库!"
通知内容包括:
- 标题和摘要
- 自动生成的标签
- 发现的关联内容(如有)
- 飞书文档链接
模式二:搜索内容
自然语言搜索
将用户的自然语言查询转换为标签/关键词搜索:
# 基于关键词搜索
lark-cli base +record-list --table-id "<table_id>" --filter '...摘要 CONTAINS "AI芯片"'
# 基于标签搜索
lark-cli base +record-list --table-id "<table_id>" --filter '...标签 CONTAINS_ANY ["AI", "芯片", "Nvidia"]'
# 基于时间搜索
lark-cli base +record-list --table-id "<table_id>" --filter '...保存时间 >= "2026-03-01"'
搜索结果展示
找到 N 条相关内容:
### 1. {标题}
- 类型:文章 | 平台:36氪
- 标签:AI、芯片、GPU
- 摘要:{摘要内容}
- 保存时间:2026-03-15
- [查看详情]({飞书文档链接})
### 2. {标题}
...
模式三:关联分析
当保存新内容时,自动与已有内容进行关联分析:
AI 处理逻辑:
- 提取新内容的标签和关键词
- 在索引表中搜索相同/相似标签的条目
- 对内容摘要进行语义相似度比较
- 生成关联说明:"你三周前存过一篇类似的观点,当时是从另一个角度分析的"
发现关联时:
lark-cli base +record-upsert --table-id "<table_id>" --json '{
"关联条目": "已有关联条目ID"
}'
模式四:批量导入
支持一次性导入多条内容:
- 用户发送多个链接(一行一个)
- AI 逐一抓取和处理
- 批量创建飞书文档
- 批量更新索引表
- 生成导入报告
模式五:定期整理
用户可要求定期整理知识库:
- 合并重复内容
- 更新过时的标签
- 生成知识库统计报告(总条目数、按类型分布、按标签分布、最近保存趋势)
权限表
| 命令 | 所需 scope |
|---|---|
docs +create |
docx:document:create |
docs +fetch |
docx:document:read |
wiki spaces get_node |
wiki:node:read |
im +messages-send |
im:message:send_as_bot |
im +chat-messages-list |
im:message:readonly |
base +table-create |
bitable:app |
base +record-list |
bitable:app:read |
base +record-upsert |
bitable:app:write |
drive metas batch_query |
drive:drive:read |
参考
lark-shared— 认证、权限(必读)lark-doc—+create、+fetch、+search详细用法lark-wiki— 知识库节点管理lark-im—+messages-send、+chat-messages-list详细用法lark-base—+table-create、+record-list、+record-upsert详细用法lark-drive— 文件元数据查询
Weekly Installs
2
Repository
liangdabiao/lar…ishu-cliGitHub Stars
20
First Seen
Apr 13, 2026
Security Audits