【ITニュース解説】Supercharge Your AI Agents with a Custom RAG Pipeline Powered by Live Web Data
2025年09月20日に「Dev.to」が公開したITニュース「Supercharge Your AI Agents with a Custom RAG Pipeline Powered by Live Web Data」について初心者にもわかりやすく解説しています。
ITニュース概要
AIエージェントが最新のWeb情報にアクセスしづらい課題を解決するため、ScrapyとZyte APIでWebデータを効率的に収集する。収集したデータからトレンドを分析し、LLMで記事を要約。Agnoフレームワークを使い、これらの情報と外部ツールを統合することで、リアルタイムな金融情報を自動で分析・提供するAIエージェントを構築した。
ITニュース解説
システムエンジニアを目指す初心者の皆さんへ、最新のAI技術を活用した情報収集システムについて解説する。この記事では、AIエージェントがどのようにリアルタイムのウェブデータを活用し、特定の分野(例えば金融)の情報を効率的に収集・分析・要約するのか、その仕組みを具体的に紹介する。
まず、AIエージェントとは、特定のタスクを自動化するために設計されたソフトウェアシステムのことである。チャットボットやメール仕分けツールのように、あらかじめ定義されたルールやツールに基づいて動作する。一方、Agentic AIは、より広い範囲で自律的に判断し、行動できるシステムを指す。今回紹介するFab氏のシステムはAIエージェントだが、将来的にAgentic AIに発展する可能性も秘めている。
Fab氏は、金融分野の最新情報収集に課題を抱えていた。毎日多くのニュースやプレスリリースを手作業で確認するのは非常に手間がかかる作業だったからだ。そこで彼は、この情報収集・要約プロセスをリアルタイムで自動化するAIエージェントの構築を決意した。
このAIエージェントは、「カスタムRAGパイプライン」と呼ばれる技術を核としている。RAG(Retrieval Augmented Generation:検索拡張生成)とは、大規模言語モデル(LLM)が、自身が学習した知識だけでなく、外部の知識源から最新の情報や特定のドメインの情報を検索し、それに基づいて回答や文章を生成する仕組みである。従来のLLMは学習データに「知識のカットオフ」と呼ばれる制限があり、最新情報や特定の専門分野の知識が不足している場合があった。しかし、RAGパイプラインを導入することで、AIエージェントは常に最新かつ専門的なウェブデータにアクセスできるようになり、より正確で関連性の高い情報を提供できるようになった。
Fab氏がこのシステムを構築するために利用した主なツールは以下の通りである。
- Scrapy: ウェブサイトから構造化されたデータを効率的に抽出するためのPython製フレームワーク。
- Zyte API: Scrapyだけでは難しい、動的で複雑なウェブサイトからのデータ抽出を支援する。大規模なスクレイピングで発生しがちな、IPアドレスのブロックやCAPTCHAの出現といった問題をZyte APIが肩代わりしてくれるため、データ収集の安定性が格段に向上する。
- DuckDuckGo + yfinance: 追加の検索機能と、リアルタイムの金融市場データ(株価や企業財務情報など)を取得するために使用する。
- Agno: 複数のAIエージェントが連携して動作する「マルチエージェントワークフロー」を構築するためのフレームワーク。
- GroqCloud: 高速なLLMの推論(AIによる文章生成など)を提供するサービス。これにより、レスポンスの速いエージェントを実現する。
このシステムのデータ収集は効率を重視して設計されている。まず、Fab氏のエージェントは全てのコンテンツをスクレイピングするのではなく、最初にウェブページのURLと基本的なメタデータ(作成日時など)のみを収集する。その後、「トレンドスコア」に基づいて重要だと判断されたページのみ、本格的に詳細なデータをフェッチする仕組みである。
データ収集は、Scrapyプロジェクト内で「ベーススパイダー」と「特化型スパイダー」に分かれている。ベーススパイダーは、URLの正規化や、URLから一意のIDを生成するといった共通の処理を担当する。特化型スパイダーは、ニュース、プレスリリース、企業の決算発表記録(トランスクリプト)、コメントといった特定の種類の情報を収集する役割を持つ。これら特化型スパイダーのうち、コメントはすぐに内容までスクレイピングされるが、他の種類はまずURLとメタデータのみを収集し、後で処理するための「やることリスト」としてJSON形式で保存される。
Scrapyには「パイプライン」と呼ばれる仕組みがあり、アイテム(スクレイピングされたデータ)がスパイダーから出力される際に、自動的に共通の処理を実行できる。ここでは、URLの正規化、IDの割り当て、重複データの排除、個人情報の匿名化、そしてJSONファイルへの保存といったタスクがパイプラインによって処理される。これにより、収集されるデータの品質が保たれ、後の処理が容易になる。
URLとメタデータの収集が完了すると、次に「トレンド分析」のフェーズに入る。この段階では、収集した記事とコメントを組み合わせ、どの情報が今注目されているのかを特定する。トレンドスコアは以下の要素に基づいて計算される。
- コメント活動: コメント数が多い記事ほどスコアが高くなる。
- コメント内の言及: 他のコメント内で言及されている記事は影響力があると見なされ、スコアが上がる。
- 鮮度: 新しい記事ほどトレンド性が高いため、ボーナススコアが与えられる。
- 複数ソースでの検証: 複数の異なる情報源(ニュースとプレスリリースなど)で同じ話題が取り上げられている場合、その重要性が増す。
- エンゲージメントの質: 長く、内容のあるコメントは、短いコメントよりも高い評価につながる。
これらの要素が合算され、各記事にトレンドスコアが割り当てられる。最終的に、設定された閾値以上のスコアを持つ記事のみが「トレンド記事」としてJSONファイルに保存され、次のステップで本格的に内容が処理される。
次に、実際に記事のフルコンテンツを抽出・処理する段階である。ここでは、トレンド記事として選ばれたURLをZyte APIに通し、記事の本文をスマートに抽出する。Zyte APIは、ウェブページをブラウザでレンダリングする方式や、シンプルなHTTPリクエストで取得する方式など、複数の戦略を試すことで、複雑なページからも確実にデータを取得しようとする。また、一度抽出した記事はキャッシュされるため、同じ記事を二度ダウンロードする無駄が省かれる。
記事のスクレイピングは、一度に大量のリクエストを送りつけるのではなく、小さなバッチ(塊)に分けて処理される。これは、ウェブサイトへの負荷を軽減し、レート制限に引っかかるのを防ぎ、万が一処理が中断しても途中から再開できるようにするための工夫である。
記事の本文が抽出されたら、先に収集しておいた関連するコメントが記事に紐付けられる。この際、コメント投稿者の名前などの個人情報は匿名化されるため、プライバシーに配慮しつつ議論の内容を把握できる。
最終的に、各記事とそのコメントは、GroqCloudで実行されるLlama 3.3というLLMによって要約される。要約のプロンプト(指示)には、記事の主要ポイント、ユーザーコメントからのハイライト(賛成意見、議論、感情など)、そして記事が不完全だった場合の注意書きを含めるように指定されている。この段階で、単なるリンクやスコアだった情報が、クリーンで安全、そしてAIがすぐに利用できる構造化された要約データへと変換される。
要約された記事データは、今度はAgnoフレームワークを使ってAIエージェントの「ツール」として組み込まれる。これは、Fab氏のエージェントが、外部APIのように、収集したプライベートな記事データにアクセスできるようにするためである。具体的には、収集した要約を特定の株式銘柄(例:NVDA)でフィルタリングし、LLMの「トークン制限」(一度に処理できるテキストの長さ)を超えないように整形して提供する。
Fab氏のエージェントは、このカスタムデータツールだけでなく、YFinanceTools(リアルタイムの株価や財務データを取得)やDuckDuckGoTools(最新のウェブ検索)といった既存のツールも組み合わせる。これにより、エージェントは「深い」専門知識(カスタムデータ)と「広い」最新情報(外部検索・金融データ)の両方を活用できるようになる。
Agnoフレームワークを使えば、エージェントの構築は比較的シンプルだ。GroqのLlama 3.3のような高速なモデルを選び、ツールセット(カスタムデータツールを最優先し、次に金融API、最後に検索API)を読み込む。さらに、「NVDAに焦点を当てる」「箇条書きで分かりやすい洞察を提供する」「情報源を明記し、古い情報には注意を促す」といった具体的な指示(ガードレール)を設定する。
こうして完成したFab氏の金融AIエージェントに「今週のNVDAに関する最新の話題は何?」と質問すると、エージェントはまず、自身が収集・要約した記事データの中からNVDAに関する情報を探し、次にリアルタイムの株価情報や最新ニュースを統合して、包括的な回答を生成する。
この一連のワークフローは、ScrapyとZyte APIによる効率的なデータ収集から始まり、記事のトレンド分析、LLMによる高度な要約、そしてAgnoによるインテリジェントなエージェントの構築へと繋がっている。これにより、Fab氏のAIエージェントは、常に最新の文脈を理解し、ウェブ上のリアルなデータに基づいた金融コパイロットとして機能する。手作業で時間のかかる作業が、AIを活用したシームレスでインテリジェントなシステムへと変革されたのだ。このようなシステムは、将来的にユーザーの承認のもとで投資判断を支援するような、より自律的なAgentic AIへと進化する可能性も秘めている。