Reusable 6-step pipeline for collecting DingTalk group messages, extracting Feishu doc links, fetching content, and generating summaries. Skills structure: - SKILL.md: trigger rules, workflow, config reference - config.yaml: group IDs, collection settings - scripts/paths.py: shared path resolution - scripts/step1-6: modular pipeline steps - scripts/run_all.py: one-click runner
5.1 KiB
钉钉群聊飞书文档采集与知识整理 SOP
触发条件
当用户提到以下关键词时使用此技能:
- "收集钉钉消息"、"拉取群聊"、"采集飞书文档"
- "整理群里的链接"、"汇总飞书报告"
- "每日收集"、"定时采集"
- 涉及钉钉群聊 + 飞书文档的工作流
一句话概述
从钉钉群聊中自动采集飞书文档链接和文件附件,下载内容,生成结构化总结。
前置条件
| 工具 | 用途 | 获取方式 |
|---|---|---|
| dws CLI | 钉钉消息采集 + 文件下载 | 悟空(Wukong)自带,或从 GitHub 下载 |
| lark-cli | 飞书文档内容读取 | npm install -g @larksuite/cli |
| Python 3.10+ | 数据处理 | 系统自带或悟空内置 |
认证要求:
- dws CLI:运行
dws auth status确认已登录(钉钉扫码) - lark-cli:运行
lark-cli auth status确认已授权(飞书浏览器OAuth)
完整工作流(6步)
Step 1: 拉取钉钉群消息
python scripts/step1_collect_messages.py # 全量
python scripts/step1_collect_messages.py --days 1 # 增量
输出:data/raw-messages/all_messages_combined.json
Step 2: 提取链接与附件
python scripts/step2_extract_links.py # 全量
python scripts/step2_extract_links.py --incremental # 增量
正则提取飞书链接、文件附件、Kimi链接。
输出:data/links/all_feishu_links.json + data/links/all_file_attachments.json
Step 3: 拉取飞书文档内容
python scripts/step3_fetch_feishu_docs.py # 全量
python scripts/step3_fetch_feishu_docs.py --incremental # 增量
wiki/docx 自动识别,Block API 解析为 Markdown。
输出:output/feishu-docs/<doc_id>.md + data/links/all_feishu_content.json
Step 4: 下载文件附件
python scripts/step4_download_files.py # 全量
python scripts/step4_download_files.py --incremental # 增量
使用 dws drive download 下载 HTML/MD/XLSX/PPTX/PDF 等附件。
输出:output/downloaded-files/html-md/ 和 output/downloaded-files/other/
Step 5: 生成结构化总结
python scripts/step5_generate_summary.py # 全量
python scripts/step5_generate_summary.py --since today # 今日
python scripts/step5_generate_summary.py --brief # 简要
按群组/人物/主题聚类,生成增量报告。
输出:output/reports/latest_summary.md
Step 6: 更新知识库(可选)
python scripts/step6_update_knowledge_base.py
同步到 Obsidian 知识库 + 知识图谱。
配置文件
所有可定制项在 config.yaml:
groups:
dc战略问题研究院: "cidoUneRB4Db8TAXaTrKxkQAw=="
创新组: "cidMuM+itt5PeY7xNSWsv3M0g=="
collection:
start_date: "2026-05-01 00:00:00"
days_back: 3
limit: 200
dws_path: auto # auto | /path/to/dws.exe
output_dir: "./output"
data_dir: "./data"
Agent 调用约定
增量模式(日常)
python scripts/step1_collect_messages.py --days 1
python scripts/step2_extract_links.py --incremental
python scripts/step3_fetch_feishu_docs.py --incremental
python scripts/step4_download_files.py --incremental
python scripts/step5_generate_summary.py --since today
全量模式(首次/重建)
python scripts/step1_collect_messages.py --full
python scripts/step2_extract_links.py
python scripts/step3_fetch_feishu_docs.py
python scripts/step4_download_files.py
python scripts/step5_generate_summary.py --full
快速模式(只看今天)
python scripts/step1_collect_messages.py --days 1
python scripts/step2_extract_links.py --incremental
python scripts/step5_generate_summary.py --since today --brief
输出产物
| 目录 | 内容 | 格式 |
|---|---|---|
data/raw-messages/ |
钉钉原始消息 | JSON |
data/links/ |
链接索引 | JSON |
output/feishu-docs/ |
飞书文档 | .md |
output/downloaded-files/ |
文件附件 | 原始格式 |
output/reports/ |
汇总报告 | .md |
output/obsidian-vault/ |
Obsidian 知识库 | .md |
output/knowledge-graph/ |
知识图谱 | JSON + HTML |
常见问题
dws 未登录:dws auth login 扫码。悟空内置路径 C:\Users\<user>\.real\.bin\dws\bin\dws.exe
lark-cli 过期:lark-cli auth login --domain docs,drive,wiki --recommend
wiki 链接解析:脚本自动处理 wiki→docx 的节点ID解析
消息分页:脚本内置 openMessageId 去重 + 分段拉取
定时任务
# Windows 每天 18:00 增量采集
schtasks /create /tn "DingTalkFeishuCollector" /tr "python <project>\scripts\step1_collect_messages.py --days 1" /sc daily /st 18:00
技术栈
钉钉群聊 → dws CLI (Go) → JSON消息
↓
Python 正则提取 → 链接索引
↓
lark-cli (Node) → 飞书文档内容
↓
Python 处理 → Markdown总结 + Obsidian库 + 知识图谱
总依赖:dws CLI (14MB) + lark-cli (npm) + Python 3.10+ + beautifulsoup4 总成本:0 元(需要飞书账号 + 钉钉群访问权限)