SKILL v1.9.0 Link Archivist

链接内容归档工作流

接收链接 / 文本 / 文件 → 内容抓取 → 模式判断 → 调研报告生成 → 本地归档 + Obsidian 同步

执行模式

MODE 01
Sub-Agent 模式(推荐)
主 Agent 识别链接后 spawn sub-agent 执行,不阻塞主对话。适合日常使用,用户可同时进行其他交互。
spawn worker → 后台处理 → announce 结果 → 汇报用户
MODE 02
直接执行模式
主 Agent 自己按 Phase 1–5 直接执行。适用于调试、快速测试、sub-agent 不可用时。
Phase 1 → 2 → 3 → 4 → 5

五阶段主流程

门控规则:未完成 Phase N 禁止进入 Phase N+1。每阶段必须完成才能推进。

1
初始化与配置检测 MUST
Phase 1 — 配置校验,确保归档环境就绪
门控 archive_dir 已配置且目录可写
python3 scripts/init_config.py
未通过 → 引导用户配置 archive_dir,流程暂停
2
内容抓取 + 模式判断 MUST
Phase 2 — 根据 URL 类型选择抓取策略,判断执行模式
URL 类型分支
头条 m.toutiao.com / www.toutiao.com → toutiao_fetch.py
抖音 v.douyin.com → douyin_process.py
YouTube → youtube_subtitle.py
通用 → r.jina.ai/{url}
模式判断(decide_mode.py)
FULL GitHub / YouTube / 开源/框架/论文
SHORT 新闻资讯/快讯/公告
ASK 不确定时询问用户
门控 内容已抓取 + 模式已确定
3
执行调研 + 生成报告 MUST
Phase 3 — 按模式执行调研 checklist,生成结构化报告
FULL 模式子步骤
1. 内容分析
2. GitHub 项目发现
3. Web Search 交叉验证
4. Claim 验证
5. 生成个性化洞察
6. 搜历史会话 + 本地知识库
SHORT 模式
生成 2–3 句话摘要
无需 Web Search / Claim 验证
直接进入 Phase 4
门控 报告文件已生成(full 须含 Claim 验证表)
4
报告验证 MUST
Phase 4 — 自动化验证报告完整性,缺失则循环补充
python3 scripts/validate_report.py <报告文件> --mode full|short
门控 validate_report.py 返回 ok: true → 进入 Phase 5
循环直到通过,不得跳过
5
归档 + 同步 MUST 禁止直接写文件
Phase 5 — 必须通过脚本归档,手动 rename 视频
python3 scripts/archive_report.py <content_file> [--dir <dir>] [--title <title>] [--obsidian <path>] [--no-obsidian]
本地归档
{archive_dir}/YYYY/MM/
K-{YYMMDD}-{NNN}-{标题}.md
Obsidian 同步
{obsidian_dir}/YYYY/MM/
{标题}-YYYY-MM-DD.md
视频归档
{video_archive_dir}/YYYY/MM/
{archive_id}.mp4

模式判断规则

FULL
完整调研报告
触发关键词:
github, open source, repo, tutorial, 对比, 教程, 开源, 框架, 工具, 模型, 论文, architecture, benchmark, deep dive, agent, llm, 大模型, 智能体, 字节跳动, 火山引擎
YouTube / GitHub 链接直接 full
SHORT
简短摘要
触发关键词:
news, 新闻, 热点, 观点, 快讯, 简讯, 公告, 通知, 更新, 涨价, 降价
用户说"简单说"
ASK
询问用户
关键词不满足 full / short 条件时触发,询问用户期望的报告深度。
用户说"详细看看" → 强制 full

降级策略

🌐 网页抓取降级
1
头条文章(m.toutiao.com / www.toutiao.com)→ toutiao_fetch.py 从 SSR RENDER_DATA 提取
2
通用 URL → curl -sL https://r.jina.ai/{url}
3
jina.ai 返回空 → BeautifulSoup 直接抓取
4
严重反爬 → 搜索引擎绕行法(搜索关键词,找原始来源)
5
全部失败 → web_search 补充关键信息
🎬 YouTube 字幕降级
1
youtube_subtitle.py(首选)
2
yt-dlp --write-subs --sub-lang zh --skip-download
3
抓标题+描述,跳过转录
🔍 Web Search 降级
1
OpenClaw 内置 web_search(Perplexity API)
2
tavily_search.py(需配置 tavily_api_key)
3
session_search 搜历史会话
4
跳过,报告中注明"未进行交叉验证"
🎙️ 音频转录降级
1
transcribe_audio.py(需配置 xgjk_app_key)
2
跳过转录,只用标题+描述

归档目录结构

{archive_dir}/
2026/
04/
K-260413-001-{标题简称}.md
K-260413-002-{标题简称}.md
05/
K-260512-001-{标题简称}.md
videos/
2026/
04/
K-260413-001.mp4
05/
K-260512-001.mp4
年/月二级结构 编号格式 K-YYMMDD-NNN Obsidian 同步可选 视频归档可选

脚本清单

脚本 用途
init_config.py 检测/创建配置文件
decide_mode.py 判断 short/full/ask 模式
toutiao_fetch.py 头条文章专用抓取(SSR RENDER_DATA)
youtube_subtitle.py YouTube 字幕提取
douyin_process.py 抖音视频:解析→下载→音频提取
tavily_search.py Tavily Web Search(需配置 key)
video_archive.py 视频归档:下载 / rename / check
archive_report.py 报告归档(本地 + Obsidian)
validate_report.py 归档前报告完整性验证
Link Archivist v1.9.0 — Agent Factory 项目 #2604131 yyyy/mm 归档格式 · 禁止跳过门控 · 必须通过脚本归档