情報収集をRSS×LLMキュレーションで自動化する ― 技術トレンドを毎日届ける仕組み
株式会社Bizmarq

技術トレンドのキャッチアップをSNSのタイムラインだけに頼っていると、いつの間にか視野が狭くなります。アルゴリズムは関心を強化する方向に働くため、フォロー外の視点が入ってこず、話題になる情報と本当に押さえるべき動向も一致しません。英語圏の一次情報が届くのはいつも数日遅れです。
そこで私たちは、RSS収集・LLMによるキュレーション・配信を組み合わせた情報収集パイプラインをPythonで自動化しました。日次で安定稼働させることで、タイムラインの外にある情報に毎日触れられるようになっています。この記事では、その設計と運用で得た知見を共有します。
パイプラインの全体像
構築したパイプラインは3つのフェーズで動きます。
- 収集 ― 複数のRSSフィードとGitHubトレンドから記事を取得。英語記事は翻訳APIで日本語化し、Markdownファイルとして出力する
- キュレーション ― LLMが記事を評価・厳選し、価値の高い10〜15件を選ぶ
- 配信 ― チャットツールへ通知なしで投稿する
すべてPythonで実装し、日次のcron実行で完全に自動化しています。技術的に特別なことはしておらず、既存のツールを1本のパイプラインとしてつなぎ、日次で安定稼働させている点が肝です。
収集 ― 複数ソースからの情報集約
収集元は自社の技術スタックと関心領域に合わせて選びます。主要テックメディア、AI/LLM特化のニュース、クラウドや開発ツールの公式ブログ、日本語ソースなどをバランスよく混ぜるのがポイントです。
ノイズを減らす工夫として、スコアで足切りできるフィルタ付きRSS(例: Hacker Newsを一定スコア以上に絞る)を活用します。ネイティブなRSSを提供していないサイトには、コミュニティツールでフィードを生成する手もあります。RSSだけでは拾いきれない「今まさに注目されているリポジトリ」はGitHubトレンドから補い、新しいOSSの早期発見につなげます。
一次情報の多くは英語なので、タイトルとサマリーを翻訳APIで日本語化します。長文を丸ごと翻訳するとコストが膨らむため、翻訳対象はタイトルと要約(最大300文字程度)に絞ると、品質を保ちつつ無料枠に収まります。翻訳にLLMを使う選択肢も検討しましたが、コストとレイテンシの両面で専用の翻訳APIが優位でした。
LLMキュレーション ― AIが読むべき記事を選ぶ
RSSから集まる記事は1日で数十件から百件を超えることもあります。全部流すと情報過多で結局読まなくなる。実際にキュレーションなしで流したところ、1週間で見なくなりました。かといって毎日手作業で選ぶのは続かず、キーワードフィルタでは文脈を踏まえた取捨ができません。そこでLLMによる厳選を導入しました。
プロンプト設計で重視したのは除外基準の明示です。LLMは指示がなければ記事を落とすことに慎重になり、件数が膨らみます。「初心者向けチュートリアル」「広告色の強いプレスリリース」「古い情報の焼き直し」といった除外条件を具体的に書くことで、厳選の精度が上がりました。
モデルは低コストで高速な軽量クラス(Claude Haikuなど)で十分でした。キュレーションは判断の正確さより「大外しをしない安定感」が求められるタスクで、日次で回すためランニングコストが効いてきます。コスト対効果で軽量モデルがベストという結論です。
ハルシネーション対策
運用で最も注意すべきはハルシネーションでした。ソース情報がURLのみの場合、LLMがドメインやパス名から内容を推測し、実際と異なるサマリーを生成することがあります。対策は3点です。
- メタデータの事前取得 ― URLだけでなく、ページタイトルやog:descriptionを事前にフェッチしてLLMへ渡す。これだけで推測による誤りが大幅に減る
- アンチハルシネーション指示 ― 「提供された情報のみに基づいて要約し、推測や補完は行わない」とプロンプトに明記する。指示があればLLMは「分からない」と答えられる
- 後処理のバリデーション ― 出力を元記事のタイトルやキーワードと突き合わせ、明らかな逸脱を検出する
配信 ― 日常に溶け込ませる
配信で最も大事にした設計判断は通知なしで届けることです。技術ニュースは今すぐ読む必要はなく、手が空いたときに目を通せば十分。通知が鳴るたびに集中が途切れては本末転倒です。多くのチャットツールにはサイレント投稿のオプションがあり、メッセージ自体は通常どおり表示しつつプッシュ通知だけを抑制できます。
配信は2段構成にしています。まずその日の厳選記事を一覧するサマリーメッセージ、続いて記事ごとの要約とURLです。忙しい日はサマリーだけ見れば足ります。APIのレート制限を避けるため、メッセージ間に短い待機(数百ミリ秒)を入れておくと安定します。
運用してみて見えたこと
継続運用で一番効いたのは、フィルターバブルの外に出られたことでした。フォローしていない分野のOSS、注目していなかったクラウドの新機能、海外で盛り上がっているのに国内ではまだ話題になっていない技術が毎日届きます。翻訳済みで流れてくるため英語記事のハードルが消え、情報の鮮度が数日単位で上がりました。技術選定の引き出しも増え、SNSは情報収集の義務感から解放されて純粋に人の温度感を見る場所に戻りました。
つまずきポイントも共有しておきます。RSSフィードは提供元の都合で突然フォーマットが変わったり止まったりするので、フィードごとにエラーハンドリングを入れ、失敗時はスキップして処理を続行し、死活監視を定期実行します。LLMの出力形式はブレるため、JSON抽出に加えて箇条書きもフォールバックで受け付ける多段パーサーが有効でした。
自分の情報源を自分で設計する。それだけで見える世界はかなり変わります。プロトタイプは短期間で動くので、SNSのタイムラインに物足りなさを感じているなら、まず小さく試してみる価値があります。