文档

Feishu Ingest

试用

Poll Feishu groups for new messages, download message resources, read Feishu docs/wiki/sheets/bitables, compile message-source markdown, judge which chat segments are worth preserving, and ingest valuable materials into the Research KB through a prepare/apply workflow.

它能做什么

Poll Feishu groups for new messages, download message resources, read Feishu docs/wiki/sheets/bitables, compile message-source markdown, judge which chat segments are worth preserving, and ingest valuable materials into the Research KB through a prepare/apply workflow.

技能文档

feishu_ingest

职责

把飞书群作为可定时扫描资料源处理。prepare 拉取增量群消息、下载消息资源、读取飞书云文档、把普通群消息编译成可定位的 Markdown 源文件,并输出供 OpenClaw 分析的 inputItems[]apply 校验 OpenClaw 生成的页面、归档源文件、写入 Gitea 知识库、更新 catalog.json / index.md,并返回 sourceItems[] 给后端持久化。当前“群文件”来自群消息历史里的 file/image 等 message resource;不单独爬取群文件目录,飞书文件夹消息记录为 unsupported

不要伪造飞书内容。缺少凭据、机器人不在群、无权限读取消息/文件/文档时,返回 need_authorization 或明确错误。飞书文件夹和超大文件记录为 unsupported

飞书内容往往是碎片化线索,入库前必须先判断它在知识库图谱里的位置。写 pages.json 前,OpenClaw 应私下做一次知识图谱规划:哪些文件/文档/消息片段值得成为实体页,哪些已有 overview/projects/concepts/resources/ 或其他页面需要补充新证据和跳转。不要把低价值聊天硬写成页面,也不要把稳定概念、具体资源或团队导航更新遗漏掉。

脚本结构

当前 scripts/ 只保留真实入口和依赖:

  • run_task.py:唯一命令入口,提供 prepareapply 子命令。
  • feishu_reader.py:prepare 主逻辑,拉消息、处理附件/云文档/消息片段、生成分析上下文。
  • kb_writer.py:apply 主逻辑,校验 sourceItemKeys、归档源文件、写页面/catalog/index、生成 sourceItems[]
  • feishu_platform.py:飞书开放平台客户端,负责 token、消息历史、消息资源、Doc/Wiki/Sheet/Bitable 读取。
  • text_extractors.py:本地文件文本预览,支持文本、CSV/JSON/YAML/代码、DOCX、PPTX、XLSX、PDF 可选解析、ZIP 清单。
  • gitea_api.py:Gitea 内容读写客户端,支持 dry-run。
  • catalog.py:catalog 合并、索引渲染、图关系归一。
  • task_io.py:payload/result JSON 读写。
  • utils.py:hash、slug、frontmatter 清理、关键词、路径安全等通用函数。

旧探索脚本已删除;飞书读取统一走 feishu_platform.py,知识库写入统一走 kb_writer.py

必需配置

环境变量:

  • FEISHU_APP_ID
  • FEISHU_APP_SECRET
  • GITEA_URL
  • GITEA_BOT_TOKEN
  • GITEA_BOT_USERNAMEGITEA_ORG
  • TEAM_KB_REPO

可选:

  • OPENCLAW_SHARED_DIR:token 缓存、prepare 临时文件和中间上下文目录。

飞书应用需要机器人能力、机器人已进群、读取群消息历史权限、读取群消息资源权限。读取云文档还需要对应 Doc/Wiki/Sheet/Bitable 权限和文档授权。

输入配置

后端资料源会传入:

  • source.config.chatId / openChatId / open_chat_id:飞书群 ID。
  • scanIntervalMinutes:后端定时扫描间隔。
  • initialLookbackHours:首次扫描回扫窗口,默认 168 小时。
  • maxMessages:每轮最多拉取消息数,默认 200。
  • messageSegmentWindowMinutes:把相邻群消息编译成一个消息源文件的时间窗口,默认 10 分钟。
  • maxMessagesPerSegment:每个消息源文件最多包含的消息数,默认 12。
  • maxFileSizeMb:单个群文件进入分析的最大体积,上限 100MB。
  • includeFiles / includeMessages / includeDocuments:是否处理群文件、普通群消息、飞书云文档。
  • fetchRecentMessages=false:只处理后端传入的 source.items[],不主动拉群消息。
  • urls / docUrls / wikiUrls / tokens / documents / links:额外飞书文档、Wiki、表格、多维表格 URL 或 token。
  • source.lastSnapshot.lastMessageCreateTime:上一轮处理到的消息创建时间,prepare 用它做增量游标。

Prepare

运行:

python3 scripts/run_task.py prepare --input  --context-output 

prepare 输出:

  • inputItems[]:OpenClaw 需要分析的候选资料。
  • sourceItems[]:prepare 阶段已经确定为跳过、无权限、失败、暂不支持的资料项。
  • instructions.analysisTemplates:每种资料类型的分析模板。
  • skipResult:没有新候选资料时直接写给后端的成功结果;如果没有写入任何页面且 sourceItems[] 中存在 need_authorizationfetch_failed,后端会把任务标记为 failed 并保留 result/sourceItems 作为诊断。

inputItems[] 类型:

  • sourceKind=feishu_file:群消息里的文件/图片等下载资源,required=true。后续按本地文件同样思路分析,并归档原始文件。
  • sourceKind=feishu_document:飞书云文档/Wiki/Sheet/Bitable 编译出的 Markdown 源,required=true
  • sourceKind=feishu_message_segment:按时间窗口整理后的群消息片段,required=false。源文件包含发送时间、message_id、sender、消息原文和机器可读定位。

OpenClaw 生成 pages.json

强制规则:

  • 文件和云文档:每个 required=true 的 input item 必须出现在至少一个页面的 sourceItemKeys 中。
  • 群消息:不要逐条入库。只在消息片段包含长期研究价值时写入 notes/
  • 高价值消息包括:项目决策、需求澄清、可复用解释、实验结果、会议结论、资源链接加上下文、后续行动项。
  • 低价值消息包括:收到/好的/谢谢、纯排期、重复通知、无上下文链接、临时协调、表情或闲聊。
  • 生成页面时必须保留 sourceItemKeys。不要写 source_files/,源文件归档由 apply 完成。
  • 不写 qa/ 页面。
  • 根据证据生成/更新 overview/concepts/resources/projects/ 等相关页面时,要在正文里写 Markdown 链接,并维护 relatedConcepts / relatedResources / relatedCodePages / relatedPagesrelatedPages 用于 overview、项目、论文、综述、会议、实验、技术文档、笔记等普通 Wiki 页面之间的关联。

Apply

运行:

python3 scripts/run_task.py apply --input  --context  --pages 

apply 会:

  1. 校验所有页面路径和 sourceItemKeys
  2. 确认所有 required 文件/云文档已被页面覆盖。
  3. 把被使用的群文件归档到 source_files/feishu//files/
  4. 把被使用的群消息源 Markdown 归档到 source_files/feishu//messages/
  5. 把被使用的飞书云文档源 Markdown 归档到 source_files/feishu//documents/
  6. 写入页面、catalog.jsonindex.md
  7. 返回 sourceItems[],标记每个资料项为 ingestedskippedneed_authorizationfetch_failedunsupported

页面路由与模板

papers/ 论文/技术报告

适用:论文 PDF、arXiv、会议论文、技术报告。覆盖:摘要、研究问题、方法、数据/实验、主要结论、局限、可复用点、相关概念与资源。

surveys/ 综述/调研

适用:行业调研、文献综述、方案对比、landscape。覆盖:范围、分类框架、对比表、趋势、空白/争议、推荐阅读、相关概念与资源。优先做结构化比较。

projects/ 项目/需求/方案

适用:需求文档、项目计划、路线图、方案评审。覆盖:背景、目标、范围、里程碑、关键决策、风险、下一步、相关页面。

code/ 代码/仓库/接口

适用:代码文件、仓库说明、API 文档、SDK、脚本。覆盖:仓库/模块、架构、入口、关键 API、运行/部署、风险与 TODO、相关概念。

meetings/ 会议/讨论

适用:会议纪要、长讨论、同步会摘要。覆盖:背景、讨论要点、决策、行动项、开放问题、相关页面。不要逐字转写。

experiments/ 实验/评测

适用:实验记录、benchmark、ablation、结果表、失败复盘。覆盖:假设、设置、指标、结果、分析、复现信息、后续实验。

tech-notes/ 技术笔记/排障

适用:部署手册、配置说明、排障过程、命令记录。覆盖:问题、环境、步骤、配置、排错、参考、相关页面。

notes/ 群消息沉淀

适用:经过价值判断的普通群消息片段。覆盖:背景、要点、结论/价值、后续动作、消息定位。消息定位至少包含时间范围和 message_id。

concepts/ 概念页

适用:从资料中抽出的稳定概念、方法、术语。覆盖:定义、使用场景、相关方法、常见误区、相关资源。概念页要链接回支撑资料页。

resources/ 资源页

适用:工具、链接、数据集、附件、图片、暂不能深度解析但值得登记的资料。覆盖:资源是什么、内容摘要、使用方法、适用场景、限制、相关页面。

overview/ 总览/导航页

适用:飞书消息或文档显著改变团队级主题导航、项目资料地图、阶段性资料包、研究方向入口或跨资料综合时。覆盖:主题边界、相关实体页、关键概念/资源、当前状态、待补证据。没有明确导航或综合价值时不要硬建 overview。

输出结果

成功结果必须包含:

{
  "success": true,
  "processedSources": ["source-item-key"],
  "createdPages": [],
  "updatedPages": [],
  "archivedFiles": [],
  "skippedSources": [],
  "errors": [],
  "commitId": "",
  "snapshot": { "lastMessageCreateTime": 0 },
  "sourceItems": []
}

sourceItems[] 每项尽量包含:itemKeysourceKind/kindstatustitlesha256relativePath/originalPatharchivedPathurlexternalIdmessageTimesizelastErrormetadata。前端飞书资料源卡片中的资料项状态统计来自后端持久化后的 source_items 累计数据;最新游标/消息/候选数来自本轮 snapshot。

如果没有新增消息、文件或文档,prepare 可以直接写入成功的 skip result。若只有普通群消息且 OpenClaw 判断都不值得入库,apply 允许 pages: [] 并更新快照,避免下轮重复处理。

相关技能

batch ingest feishu folders and single attachments into report-first knowledge artifacts. use when chatgpt needs to read a feishu directory or a single share...

14 次安装

Design or implement a paper-management workflow built on a Feishu bot plus OpenClaw. Use when the user wants to ingest papers from Feishu messages, save PDFs...

21 次安装

Feishu (feishu.cn). Use this skill for ANY Feishu request — reading, creating, updating, and deleting data. Whenever a task involves Feishu, use this skill instead of calling the API directly.

4 次安装

Route Huoshan and Qifu knowledge requests through the default structured Feishu document INDEX and return relevant original Feishu links. Use when the user e...

1 次安装

Feishu App Bot (open.feishu.cn). Use this skill for ANY Feishu App Bot request — reading, creating, updating, and deleting data. Whenever a task involves Feishu App Bot, use this skill instead of calling the API directly.

7 次安装

Use this skill for Feishu/Lark OpenAPI integration work: configuring OpenClaw Feishu bot accounts, setting app credentials outside the skill, reading or writ...

11 次安装