Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】How I used an AI agent to recover 18 years of a .NET user group's history

2026年10月03日に「Dev.to」が公開したITニュース「How I used an AI agent to recover 18 years of a .NET user group's history」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIエージェントが、複数のウェブサイトに分散していた.NETユーザーグループの18年分の歴史を復元。古いアーカイブから会議、講演、講演者など170件以上の情報を収集し、人間が検証・整理することで、失われかけた貴重な記録を再構築した事例。

ITニュース解説

Wrocław .NETユーザーグループは2007年から活動を続けるコミュニティだが、その18年間の歴史はこれまで一箇所にまとまって保管されていなかった。グループのサイト運営者は、過去のすべてのミーティング、講演、登壇者を網羅した、信頼性の高い恒久的なアーカイブを構築したいと考えた。しかし、この目標達成には、古いウェブサイトやフォーラム、アーカイブされたページを詳細に調査する必要があった。そこで、AIエージェントを主要な調査ツールとして活用し、長年の散逸した情報を復元するプロジェクトが始まった。

この問題の根源は、ユーザーグループのサイトが過去に3回も移転を繰り返したことにある。最初のサイトは2007年から2008年初頭までの「wroc.net.isvclub.com」、次に2008年から2009年までの「Community Server版wrocnet.org」、そして2010年末から2013年春までの「BlogEngine.NET版wrocnet.org」があった。2013年以降は「Meetup」が主な情報源となっている。これらのプラットフォームはそれぞれグループの歴史の一部を引き継いだが、同時に一部の情報を置き去りにしてきた。どのシステムも自身の履歴を完全に保持していたわけではなく、またシステム間の自動的な連携も存在しなかったため、履歴は断片化していたのである。特に2009年後半から2010年までの期間は、生存するスナップショットが見つからず、どのような活動が行われていたか不明な状態だった。このように、プラットフォームの移行が繰り返されるたびに、履歴の全体像が失われていった。

元々、アーカイブには「wrocnet.github.io」という古いサイトのスナップショットから得られた、ミーティング番号、日付、簡単なトピックといった基本的な情報だけが存在した。例えば「2019年12月17日 » 122.ミーティング - Azure Cognitive Services, Azure Sphere, Multi-tenant Azure」といった形式だった。しかし、この情報には登壇者や詳細な議題、そして情報源が不足していた。既存のファイル名、フロントマターの番号、記事内容などを詳細に比較してみると、多くのギャップが明らかになった。ミーティング番号があるにもかかわらず記事がないもの、日付はあるが番号がないもの、あるいは議題や登壇者がたった一文しか記述されていないものなど、不完全な情報が散見されたのである。この段階まで、AIエージェントは主にコーディング支援に使われていたが、この情報調査自体にAIエージェントを投入することになった。AIエージェントは、ブラウザを開き、ターミナルを使用し、古いページを一つ一つ確認していくという、人間にとっては非常に反復的で時間のかかる作業を繰り返した。

AIエージェントは多岐にわたるセッションを通じて、様々な作業をこなした。例えば、Wayback Machineから「wroc.net.isvclub.com」や初期の「wrocnet.org」のアーカイブページを取得した。これにはミーティング計画、イベント後の報告書、写真ギャラリー、フォーラムスレッド、投票結果などが含まれる。また、Meetupのイベントページはcurlコマンドを使ってダウンロードし、その中に埋め込まれたJSONデータを小さなNode.jsスクリプトで解析することで、イベントのタイトル、日付、場所、説明といった情報を確実に抽出した。これは目に見えるHTMLをスクレイピングするよりも、より構造化されたデータを扱うため信頼性の高い方法であった。さらに、グループの古いTwitter/XプロフィールのエクスポートされたHTMLコピーを解析し、初期には活動休止期間と思われていた20番目から32番目のミーティングに関する情報を復元した。公開ウェブページとは全く異なる情報源であるエクスポートされたEメールの招待状を読み取り、2008年の「Heroes {Community} Launch」というカンファレンスの情報を得ることもあった。発表ページの有効なスナップショットが見つからない場合には、GoldenLineや古いフォーラムスレッド、写真ギャラリーのインデックスなどを確認し、複数の情報源をクロスチェックすることで情報の確度を高めた。

これらの情報源は、単独では完全なストーリーを語るものではなかった。例えば、写真ギャラリーはミーティングが開催された証拠にはなるが、そこで何が議論されたかは示さない。フォーラムスレッドで日付について議論されていることは示すが、ミーティングが実際に開催されたかどうかの確証にはならない。このプロジェクトの大部分の作業は、すべての情報を単に集めて自信ありげな回答を導き出すのではなく、各情報源をどれだけ信頼できるかを判断すること、そして情報源間の矛盾を解決することだった。

この調査結果が有用であるためには、厳格な証拠基準が必要だった。いくつかのルールがすべてのセッションで繰り返し適用された。まず、「告知」はあくまで計画を裏付けるものであり、ミーティングが実際に開催されたことを確認するには「事後報告書」や「写真ギャラリー」、「投票」などが必要だとした。次に、ミーティング番号はあくまで手がかりであり、18番目のミーティングが確認できたからといって、19番目のミーティングが必ず開催されたとは限らないと考えた。もし二つの情報源が矛盾する情報を提示した場合、どちらか一方を選び都合の良いように解釈するのではなく、その不一致自体を記録することにした。また、日付やスラッグ(URLの一部)、登壇者名を推測することは決してせず、情報源にない場合は「不明」と明確に記載した。さらに、推定された日付についてはデータ内で明示的にフラグ(例: date_estimated: true)を付け、より確実な情報源が確認されるまでそのフラグを削除しないこととした。これらの厳格なルールは作業を遅くする要因となったが、最終的な結果の信頼性を保証する重要な基盤となった。

この復元作業は執筆者一人で行われたわけではない。貢献者の一人であるTymoteusz Wojnarowski氏は、独立してClaude CodeというAIを利用し、初期の歴史の大部分を復元した。これは、登壇者の個人サイト、古いWayback Machineの記録、そしてGoldenLineといった情報源から、2007年から2011年のミーティングと講演に関する情報をまとめたもので、複数のプルリクエストを通じて行われた。執筆者自身もAIエージェントの支援を受けながら、54番目から170番目のミーティング、最も初期の1番目から11番目のミーティング、そしてTwitterアーカイブから20番目から32番目のミーティングなど、残りの部分の復元を進めた。GitHubの自動化されたCopilotコードレビューも多くのプルリクエストに対して実行され、スペルミスやアーカイブリンクの欠落、初出時に太字にするべき技術名の見落としといった、小さくても実在する問題を繰り返し指摘し、品質向上に貢献した。

この調査で情報が得られた主要な情報源は限られていたが、ほとんどすべてのセッションで繰り返し活用された。具体的には、過去のサイトのすべてのバージョン、特にアーカイブされた「wrocnet.github.io」インデックスのスナップショットを提供するWayback Machineが中心となった。最初のサイト「wroc.net.isvclub.com」からは、ミーティング1の計画、ミーティング2の開催を裏付けるホームページのスナップショット、ミーティング3の事後報告、ミーティング4の写真ギャラリーといった情報が得られ、初期のミーティング1から4番目以降をカバーした。アーカイブされたWroc.NETのTwitter/Xプロフィール、そして同じプロフィールのHTMLエクスポートも、特定の期間の情報を得るために活用された。現在のグループのプラットフォームであり、2013年以降の講演や会場に関する主要な情報源であるMeetupも重要な役割を果たした。グループが参加者登録に利用していたGoldenLineのアーカイブされた登録ページ、登壇者自身の講演リストを保持していた「gasior.net.pl」という個人サイト、他のどこにもアーカイブされていなかったイベント情報を提供したCrossweb、そしてグループ自身の過去のサイトでホストされていた古いフォーラムスレッド、写真ギャラリー、投票結果なども情報源となった。さらに、GitHub上のプロジェクトのプルリクエストやイシューも、復元された事実や未解決の疑問がその情報源と共に文書化される場所として利用され、透明性の確保に貢献した。

このプロジェクトから得られた大きな教訓は、コードを書くことはこのプロジェクトのごく一部の作業に過ぎなかったという点にある。労力の大部分は「研究」に費やされた。すなわち、互いに矛盾する情報源を見つけ出し、どちらを信頼すべきかを判断し、そして単に「分からない」という事実を正直に書き出すことだった。AIエージェントはウェブを閲覧し、ページを取得し、構造化データを読み取ることができたが、何が「証拠」として有効であるかを判断するためのルールを設定するのは、やはり人間の役割であった。AIは強力なツールではあるが、その結果の正確性と信頼性は、人間が設定するガイドラインと最終的な判断に大きく依存する。この結果として、wrocnet.orgには18年間のアーカイブが公開され、その詳細な調査過程はGitHubでプルリクエストごとに公開されている。

関連コンテンツ

関連IT用語

関連ITニュース