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...
文档
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:唯一命令入口,提供prepare和apply子命令。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_IDFEISHU_APP_SECRETGITEA_URLGITEA_BOT_TOKENGITEA_BOT_USERNAME或GITEA_ORGTEAM_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_authorization或fetch_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/relatedPages。relatedPages用于 overview、项目、论文、综述、会议、实验、技术文档、笔记等普通 Wiki 页面之间的关联。
Apply
运行:
python3 scripts/run_task.py apply --input --context --pages
apply 会:
- 校验所有页面路径和
sourceItemKeys。 - 确认所有 required 文件/云文档已被页面覆盖。
- 把被使用的群文件归档到
source_files/feishu//files/。 - 把被使用的群消息源 Markdown 归档到
source_files/feishu//messages/。 - 把被使用的飞书云文档源 Markdown 归档到
source_files/feishu//documents/。 - 写入页面、
catalog.json、index.md。 - 返回
sourceItems[],标记每个资料项为ingested、skipped、need_authorization、fetch_failed或unsupported。
页面路由与模板
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[] 每项尽量包含:itemKey、sourceKind/kind、status、title、sha256、relativePath/originalPath、archivedPath、url、externalId、messageTime、size、lastError、metadata。前端飞书资料源卡片中的资料项状态统计来自后端持久化后的 source_items 累计数据;最新游标/消息/候选数来自本轮 snapshot。
如果没有新增消息、文件或文档,prepare 可以直接写入成功的 skip result。若只有普通群消息且 OpenClaw 判断都不值得入库,apply 允许 pages: [] 并更新快照,避免下轮重复处理。
相关技能
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...
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.
Route Huoshan and Qifu knowledge requests through the default structured Feishu document INDEX and return relevant original Feishu links. Use when the user e...
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.
Use this skill for Feishu/Lark OpenAPI integration work: configuring OpenClaw Feishu bot accounts, setting app credentials outside the skill, reading or writ...