毎朝の情報収集・AI要約ダイジェスト(定期情報収集・AI要約システム)v2
複数の公開情報源を定期収集し、AIで重要点を要約し、保存して、毎日確認できる形で届ける。
完成後にできること
この構成を作ると、実データで確認された範囲で次のことができます。
- 1情報源を取得する
- 2定期的に自動実行する
- 3AIで要点をまとめる
- 4収集結果を保存する
- 5結果を受け取る
システム構成
役割による層(入力→処理→出力)。実データで観測された要素のみ。
接続線は構成レイヤー(役割の流れ)を示します。個々のツール間の正確な接続は、Evidence で確認できた場合のみ別途表示します。
使用ツール / 始める前に必要なもの
観測された実装と Blueprint の要件です。
- 定期実行スケジューラ
GitHub Actions cron (daily 09:00 Beijing) / APScheduler (ingest every 6h; daily briefing 09:00 IST) / daily/weekly digest (scheduler tool not named) / GitHub Actions cron (daily 07:30 UTC) / fetch interval (FETCH_DEFAULT_INTERVAL_MINUTES) + cron digests / central feed updated daily (scheduler tool not named) / cron-based daily jobs (SUMMARY_CRON_HOUR/MINUTE) / macOS launchd (7am/7pm daily)
- AI要約処理
Claude (Anthropic) via ANTHROPIC_API_KEY / Gemini Flash via OpenRouter (summary); Claude Sonnet (RAG) / OpenAI-compatible models (user configured) / litellm (OpenAI / Anthropic / Cohere) / OpenRouter free models (categorize + summarize, rule-based fallback) / AI summarization (provider not named in README) / OpenAI gpt-4-turbo-preview / Google Gemini 3 Flash / Google Gemini 2.5 Flash (via Vertex AI)
- 永続保存
Markdown files + dedup state.py / PostgreSQL (14-day rolling window) / database via Docker (technology not named) / local history/ cache + TOML files / PostgreSQL 17 + PgBouncer / local files (~/.follow-builders, reading history on machine) / SQLite (aiosqlite) data/x_monitor.db / SQLite ~/.xdigest/xdigest.db / local files (data/ JSON + data/batches)
- RSS取得(具体手段)
RSS fetchers (Substack/blog/podcast/news) / feedparser + httpx (10 official RSS/Atom + arXiv Atom API, no scraping) / RSS feed aggregation + custom filters / RSS (TOML config) + Google Scholar Alerts + newsletters via kill-the-newsletter / RSS/Atom (UI/OPML) + optional Mozilla Readability full-text
- X/Twitter 収集
X/Twitter timeline via Playwright + cookies / X/Twitter via official API (26 curated builders) / X API via XDK (official SDK), incremental fetch / Playwright (CDP mode) scraping of FOLLOW_ACCOUNTS + linked article text
- 配信・表示先(メール)
HTML email / SMTP email / Symfony Notifier email / HTML email via SMTP (Gmail/QQ) / HTML email via Gmail SMTP
- 配信・通知(Telegram/Slack等)
Telegram (README marks untested) / Telegram bot (daily briefing + on-demand RAG) / GitHub Releases (daily-digest-YYYY-MM-DD) / Symfony Notifier (Telegram/Slack/Discord/Pushover) / Telegram / Discord / WhatsApp / Telegram + Markdown report
- リレーショナルDB(Postgres/SQLite等)
PostgreSQL / PostgreSQL 17 / SQLite
- メール/ニュースレター収集
email newsletters via IMAP / Gmail OAuth2 / newsletters via kill-the-newsletter.com conversion
- ダッシュボードUI
web dashboard (demo.rssbrew.com) / DaisyUI dashboard + Mercure SSE
- YouTube 収集
YouTube transcripts via Supadata API / YouTube podcast transcripts via Supadata (6 podcasts) / YouTube Data API v3 (subscriptions, last 3 days)
- Vector DB + RAG(意味検索・Q&A)
nomic-embed-text-v1.5 (768d) in PostgreSQL + pgvector; RAG via Claude Sonnet
- Notion 出力
Notion daily database pages
必須(最初に用意)
- ・情報源の取得(いずれか1つ以上)
- ・定期実行スケジューラ
- ・AI要約処理
- ・永続保存
- ・配信・表示(いずれか1チャネル以上)
後から追加
- ・RSS取得(具体手段)
- ・X/Twitter 収集
- ・配信・表示先(メール)
- ・配信・通知(Telegram/Slack等)
- ・リレーショナルDB(Postgres/SQLite等)
必要になったら
- ・メール/ニュースレター収集
- ・ダッシュボードUI
- ・YouTube 収集
- ・Vector DB + RAG(意味検索・Q&A)
- ・Notion 出力
なぜこの構成なのか
なぜ定期実行が必要か:9システム中8がスケジューラで定期実行(youtube-digest のみ手動)。『毎朝の変化だけ』は定期実行が前提。
なぜ保存が必要か:9/9が何らかの永続保存を持ち、重複排除・履歴・差分に使う。
なぜ最初は1つの出力先でよいか:配信は9/9だが特定チャネルは分散(メール6/9・chat/push6/9・ダッシュボード2/9)。初版は1チャネル(メール)で十分。
なぜ最初はRSSで核を作るか:情報源取得は9/9だが、RSSが5/9で最も低摩擦。X(4/9)は認証/API、YouTube(3/9)はtranscript手段が必要で実装が重い。
なぜXは初版必須でなくNEXTか:X収集は4/9に増え反復パターンになったが、official API / XDK / Playwright と実装が重い。核が動いた後の追加が妥当。
なぜVector DBを後回しにできるか:9システム中Vector/RAGは1/9(BriefCastのみ)。意味検索・Q&Aが欲しくなってからで初版の必須でない。
NOW — 最初に作る
まず動く最小構成。9システムの共通核(scheduler は 8/9)。
- 情報源の取得(いずれか1つ以上)
- 定期実行スケジューラ
GitHub Actions cron (daily 09:00 Beijing) / APScheduler (ingest every 6h; daily briefing 09:00 IST) / daily/weekly digest (scheduler tool not named) / GitHub Actions cron (daily 07:30 UTC) / fetch interval (FETCH_DEFAULT_INTERVAL_MINUTES) + cron digests / central feed updated daily (scheduler tool not named) / cron-based daily jobs (SUMMARY_CRON_HOUR/MINUTE) / macOS launchd (7am/7pm daily)
- AI要約処理
Claude (Anthropic) via ANTHROPIC_API_KEY / Gemini Flash via OpenRouter (summary); Claude Sonnet (RAG) / OpenAI-compatible models (user configured) / litellm (OpenAI / Anthropic / Cohere) / OpenRouter free models (categorize + summarize, rule-based fallback) / AI summarization (provider not named in README) / OpenAI gpt-4-turbo-preview / Google Gemini 3 Flash / Google Gemini 2.5 Flash (via Vertex AI)
- 永続保存
Markdown files + dedup state.py / PostgreSQL (14-day rolling window) / database via Docker (technology not named) / local history/ cache + TOML files / PostgreSQL 17 + PgBouncer / local files (~/.follow-builders, reading history on machine) / SQLite (aiosqlite) data/x_monitor.db / SQLite ~/.xdigest/xdigest.db / local files (data/ JSON + data/batches)
- 配信・表示(いずれか1チャネル以上)
NEXT — 動いた後に追加
反復して確認された要素(X収集はここ・4/9)。
- RSS取得(具体手段)
RSS fetchers (Substack/blog/podcast/news) / feedparser + httpx (10 official RSS/Atom + arXiv Atom API, no scraping) / RSS feed aggregation + custom filters / RSS (TOML config) + Google Scholar Alerts + newsletters via kill-the-newsletter / RSS/Atom (UI/OPML) + optional Mozilla Readability full-text
- X/Twitter 収集
X/Twitter timeline via Playwright + cookies / X/Twitter via official API (26 curated builders) / X API via XDK (official SDK), incremental fetch / Playwright (CDP mode) scraping of FOLLOW_ACCOUNTS + linked article text
- 配信・表示先(メール)
HTML email / SMTP email / Symfony Notifier email / HTML email via SMTP (Gmail/QQ) / HTML email via Gmail SMTP
- 配信・通知(Telegram/Slack等)
Telegram (README marks untested) / Telegram bot (daily briefing + on-demand RAG) / GitHub Releases (daily-digest-YYYY-MM-DD) / Symfony Notifier (Telegram/Slack/Discord/Pushover) / Telegram / Discord / WhatsApp / Telegram + Markdown report
- リレーショナルDB(Postgres/SQLite等)
PostgreSQL / PostgreSQL 17 / SQLite
LATER — 必要になったら検討
実例が限られる、または高度化用途。
- メール/ニュースレター収集
email newsletters via IMAP / Gmail OAuth2 / newsletters via kill-the-newsletter.com conversion
- ダッシュボードUI
web dashboard (demo.rssbrew.com) / DaisyUI dashboard + Mercure SSE
- YouTube 収集
YouTube transcripts via Supadata API / YouTube podcast transcripts via Supadata (6 podcasts) / YouTube Data API v3 (subscriptions, last 3 days)
- Vector DB + RAG(意味検索・Q&A)
nomic-embed-text-v1.5 (768d) in PostgreSQL + pgvector; RAG via Claude Sonnet
- Notion 出力
Notion daily database pages
最初の版では不要
永久に不要ではなく、初期版には不要。
- 課金
- 複雑な認証基盤
- マルチテナント
- 自動意思決定
FAQ
根拠(なぜこの構成か/実例限定の理由)から生成しています。
なぜ「scheduler」がこの構成に必要か?
なぜ定期実行が必要か:9システム中8がスケジューラで定期実行(youtube-digest のみ手動)。『毎朝の変化だけ』は定期実行が前提。(8/9 システムで確認・確度: 確認済み)
根拠:guo-yichen ↗Siddharth Surange ↗yinan-c ↗00sapo ↗tony-stark-eth ↗zarazhangrui ↗luoli523 ↗catburgg ↗
なぜ「persistent_storage」がこの構成に必要か?
なぜ保存が必要か:9/9が何らかの永続保存を持ち、重複排除・履歴・差分に使う。(9/9 システムで確認・確度: 確認済み)
根拠:guo-yichen ↗Siddharth Surange ↗yinan-c ↗00sapo ↗tony-stark-eth ↗zarazhangrui ↗luoli523 ↗catburgg ↗ssilambarasan ↗
なぜ「delivery_any」がこの構成に必要か?
なぜ最初は1つの出力先でよいか:配信は9/9だが特定チャネルは分散(メール6/9・chat/push6/9・ダッシュボード2/9)。初版は1チャネル(メール)で十分。(9/9 システムで確認・確度: 確認済み)
根拠:guo-yichen ↗Siddharth Surange ↗yinan-c ↗00sapo ↗tony-stark-eth ↗zarazhangrui ↗luoli523 ↗catburgg ↗ssilambarasan ↗
なぜ「rss_ingestion」がこの構成に必要か?
なぜ最初はRSSで核を作るか:情報源取得は9/9だが、RSSが5/9で最も低摩擦。X(4/9)は認証/API、YouTube(3/9)はtranscript手段が必要で実装が重い。(5/9 システムで確認・確度: ほぼ確実)
根拠:guo-yichen ↗Siddharth Surange ↗yinan-c ↗00sapo ↗tony-stark-eth ↗
なぜ「x_ingestion」がこの構成に必要か?
なぜXは初版必須でなくNEXTか:X収集は4/9に増え反復パターンになったが、official API / XDK / Playwright と実装が重い。核が動いた後の追加が妥当。(4/9 システムで確認・確度: ほぼ確実)
なぜ「vector_rag」がこの構成に必要か?
なぜVector DBを後回しにできるか:9システム中Vector/RAGは1/9(BriefCastのみ)。意味検索・Q&Aが欲しくなってからで初版の必須でない。(1/9 システムで確認・確度: 推論)
「Vector DB + RAG(意味検索・Q&A)」はなぜ後回し/限定なのか?
実例が限定的なためです(1/9 システムでのみ確認・推定)。
「Notion 出力」はなぜ後回し/限定なのか?
実例が限定的なためです(1/9 システムでのみ確認・推定)。
この目的に対して証拠が限定的な範囲は?
YouTubeを標準入力とする判断(3/9・強化だがLATER) / Vector DB必須(1/9) / 特定providerが最適という断定(Persona完全一致とは表示しない。核+X収集は裏付けが増えたが、YouTubeは3/9でLATER・Vectorは1/9で限定のまま。)
根拠(一次ソース・証拠レコード)
独立システム = 9。証拠レコード = 60。両者は別物です。
- news-summary
Builder: guo-yichen · github_repository
一次ソースを開く ↗ - BriefCast
Builder: Siddharth Surange · blog
一次ソースを開く ↗ - RSSbrew
Builder: yinan-c · github_repository
一次ソースを開く ↗ - better-morning
Builder: 00sapo · github_repository
一次ソースを開く ↗ - news-aggregator
Builder: tony-stark-eth · github_repository
一次ソースを開く ↗ - follow-builders
Builder: zarazhangrui · github_repository
一次ソースを開く ↗ - x-monitor
Builder: luoli523 · github_repository
一次ソースを開く ↗ - xdigest
Builder: catburgg · github_repository
一次ソースを開く ↗ - youtube-digest
Builder: ssilambarasan · github_repository
一次ソースを開く ↗