← 最新の論文
💻 computer science

Holmes: Multimodal Agentic Diagnosis for Mixed-Language Mobile Crashes at Industrial Scale

Holmesは、マルチモーダルな実行時シグナルを合成することで、再現を行うことなく失敗のコンテキストを再構築し、超大規模アプリケーションにおける混合言語モバイルクラッシュの根本原因分析を自動化するマルチエージェントシステムであり、実際のWeChatのデータにおいて87.6%の故障箇所特定精度を達成し、調査時間を98%以上削減しました。

原著者: Jia Li, Wenyuan Ma, Ting Peng, Haibin Zheng, Yuetang Deng

公開日 2026-06-23
📖 1 分で読めます☕ さくっと読める

原著者: Jia Li, Wenyuan Ma, Ting Peng, Haibin Zheng, Yuetang Deng

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、WeChatという巨大で賑やかな都市の主任刑事であると想像してください。この都市には数十億の住民がおり、数百万もの建物(コード行)が存在します。毎日、何千もの建物が突然崩壊(クラッシュ)します。

かつて、建物が崩壊した際、人間の探偵チームがなぜ崩壊したのかを解明するために、数時間、あるいは数日間を費やさなければなりませんでした。彼らは山のような書類(ログ)を精査し、設計図(ソースコード)を読み込み、事故が起きた正確な瞬間を再現しようと試みました。しかし、多くの場合、実験室で事故を再現することはできませんでした。

Holmesは、これらの謎を数秒で解決するために設計された、超強力な探偵チームです。以下に、シンプルな比喩を用いてその仕組みを説明します。

1. 問題点:「ブラックボックス」の謎

モバイルアプリがクラッシュすることは、賑やかな通りの真ん中で建物が崩壊するようなものです。時間を巻き戻して、何が起きたのかを正確に見ることはできません。手元にあるのは以下のものだけです:

  • 瓦礫: 建物が最後に何をしていたかを示すリスト(スタックトレース)。
  • 目撃者: クラッシュ直前に人々が何を話していたかの記録(ログ)。
  • 設計図: 都市の膨大な指示書(7,000万行のコード)。

従来の手法は、たった一つの誤字を見つけるために、7,000万ページの取扱説明書をすべて読み直そうとするようなものでした。それはあまりにも遅すぎました。他の手法ではAIを使用しようとしましたが、ユーザーごとにスマートフォンが異なり、かつプライバシーも守られているため、テスト環境でクラッシュを再現する必要がありました。しかし、それは不可能なことでした。

2. 解決策:探偵部隊「Holmes」

一人の探偵がすべてを行おうとするのではなく、Holmesは、ハイテクな警察署のように、専門化されたエージェントたちが協力して動く仕組みを採用しています。彼らは以下の3つのステップを踏みます。

ステップ1:手がかりの収集(リトリーバル・チーム)

事件を解決しようとする前に、チームは即座に最も関連性の高い証拠を集めます。

  • スタックコード・リトリーバー: 「瓦礫」(クラッシュリスト)を確認し、建物が崩壊した特定の設計図のページを瞬時に特定します。
  • ログ・マイナー: 1時間の長い目撃証言をすべて読む代わりに、スマートなフィルタリングを使用して、実際にクラッシュにつながった直前の5分間の会話だけを見つけ出します。
  • スレッド・インスペクター: 他の部分(他のスレッド)が建物に干渉していなかったかを調べます。例えば、5階の建設作業員が、誤って10階の支持梁を引き抜いてしまったようなことがなかったかをチェックします。

ステップ2:深掘り(エクスプロレーション・チーム)

時には、クラッシュの原因が、発生場所よりも「前」や「別の場所」にある場合があります。

  • コード・エクスプローラー: このエージェントは、単に現場を見るだけでなく、手がかりの跡を追う探偵のように振る舞います。「誰がこの関数を呼び出したのか?」「その前に何が起きたのか?」と問いかけます。膨大なコードライブラリを動的に探索し、一度に全ライブラリを読み込むのではなく、必要なページだけをピンポイントで取得しながら進みます。これにより、「非局所的(ノンローカル)」な欠陥(クラッシュ現場から離れた場所にあるミス)を見つけ出すことができます。

ステップ3:判決(リーズニング・チーム)

これは、すべてをまとめ上げるリード・ディテクティブ(主任探偵)です。

  • シンセシス・エージェント: 瓦礫、フィルタリングされた目撃ログ、設計図のページ、そして干渉レポートをすべて取りまとめます。ここで特別なテクニックを使います。それは、ビジネスロジック(アプリが本来すべきこと)とシステムフレームワーク(OS)の間の溝を埋めるために、低レベルの手がかり(CPUレジスタのような、建物の内部圧力計のようなもの)を観察することです。
  • そして、最終的な報告書を作成します。「クラッシュの原因は、二人の作業員が同時に同じ道具を使おうとしたこと(レースコンディション)です。修正方法はロックを追加することです」といった具合です。

3. なぜゲームチェンジャーなのか

論文では、WeChat(中国の巨大ソーシャルメディア)の実際のクラッシュを用いてHolmesをテストしました。その結果は以下の通りです。

  • スピード: 人間が複雑なクラッシュを解決するのに2〜3時間かかる中、Holmesは約77秒で完了します。これは98%の削減です。
  • 正確性: エラーが発生した特定の関数(建物内の特定の部屋)を、87.6%の確率で正しく特定しました。
  • コスト: 実行コストが極めて低いです。Holmesを1回のクラッシュに対して実行するコストは約13セントであり、シニアエンジニアが数時間を費やすコスト(70ドル以上)と比較して非常に安価です。

4. 「混合言語」のパズルをどう扱うか

現代のアプリは、異なる素材で作られた家のように構築されています。ある壁は木材(Swift/Objective-C)で、ある壁はレンガ(C++)で、またある部分はコンクリート(システムフレームワーク)です。

  • 課題: 「コンクリート」の部分でクラッシュが発生した場合、「木材」の部分からは、指示が異なる言語で書かれているため、何が起きているのかが見えないことがあります。
  • Holmesのトリック: 低レベルのアーティファクト(アセンブリコードやメモリのスナップショットなど)を「ユニバーサル・トランスレーター(共通の翻訳機)」として使用します。これにより、高レベルのアプリロジックから、ソースコードが隠されているシステムレベルに至るまで、問題を追跡することができます。

5. 結論

Holmesは、開発者の仕事を「探偵(何時間も手がかりを探す仕事)」から「検証者(AIの報告書を確認するだけの仕事)」へと変貌させます。

  • 以前: 「なぜこれがクラッシュしたのか全くわからない。5万行のコードを読んで推測するしかない。」
  • 以後: 「Holmesによれば、原因はファイルXの149行目におけるレースコンディションだ。内容を検証しよう。」

この論文は、このシステムが産業規模において効果的に機能し、労働集約的で遅いプロセスを、高速で効率的なワークフローへと変え、企業に数百万ドルの節約と膨大な開発時間を還元することを結論付けています。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →