执行模式
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. 搜历史会话 + 本地知识库
2. GitHub 项目发现
3. Web Search 交叉验证
4. Claim 验证
5. 生成个性化洞察
6. 搜历史会话 + 本地知识库
SHORT 模式
生成 2–3 句话摘要
无需 Web Search / Claim 验证
直接进入 Phase 4
无需 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, 大模型, 智能体, 字节跳动, 火山引擎
github, open source, repo, tutorial, 对比, 教程, 开源, 框架, 工具, 模型, 论文, architecture, benchmark, deep dive, agent, llm, 大模型, 智能体, 字节跳动, 火山引擎
✓
YouTube / GitHub 链接直接 full
SHORT
简短摘要
触发关键词:
news, 新闻, 热点, 观点, 快讯, 简讯, 公告, 通知, 更新, 涨价, 降价
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-download3
抓标题+描述,跳过转录
🔍 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 | 归档前报告完整性验证 |