← 最新の論文
💻 computer science

Code2UML: Agentic LLMs with context engineering for scalable software visualization

本論文は、大規模なソースコードリポジトリからスケーラブルかつ高品質なUML図の自動生成を実現し、プロジェクト規模やプログラミング言語の違いにかかわらず安定した性能を維持する決定論的コンテキストエンジニアリング層を備えたエージェント型LLMシステム「Code2UML」を紹介する。

原著者: Alin-Gabriel Văduva, Anca-Ioana Andreescu, Simona-Vasilica Oprea, Adela Bâra

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

原著者: Alin-Gabriel Văduva, Anca-Ioana Andreescu, Simona-Vasilica Oprea, Adela Bâra

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

巨大な図書館(ソフトウェアのコードベース)があり、部屋同士の接続、出口の場所、人々の移動経路を示すシンプルな地図(UML 図)を作成したいと想像してみてください。

問題は、その図書館があまりにも巨大であるため、一度に単一の専門家(AI)に全体を説明しようとすると、圧倒されて作り話を始めたり、単に途中で中断したりしてしまうことです。これが、この論文が扱う「コンテキスト制限」の問題です。

著者であるCode2Uは、これを解決するために AI アシスタントのスマートなチームを構築しました。1 つの巨大な AI にすべてを任せるのではなく、5 つの専門エージェントの階層(特定の役割を持つ建設作業員チームと想像してください)と、巧妙なデータ圧縮システムを創り上げました。

以下に、そのシステムの仕組みを簡単な概念に分解して示します。

1. 「コンテキストエンジニアリング」フィルター(図書館員)

AI チームがコードを見る前に、特別なツールが超高速の図書館員のように機能します。

  • 問題: コードの完全な図書館は、AI の「作業メモリ」(コンテキストウィンドウ)に収まりきりません。
  • 解決策: このツールは、何を保持するかを決定するために AI を使いません。代わりに、厳格に事前に書かれたルール(決定論的ロジック)を使用してコードを素早くスキャンし、描こうとしている特定の地図のために**カスタマイズされた「スナップショット」**を作成します。
  • 比喩: 都市の地下鉄システムの地図が必要だと想像してください。図書館員は AI に「何が重要ですか?」と問いかけません。代わりに、図書館員はすべての道路名、建物住所、公園の詳細を即座に捨て去り、地下鉄の駅と線路のみを保持します。このスナップショットは小さく、AI のメモリに完璧に収まり、AI の知能を一切必要とせずにミリ秒単位で生成されます。

2. 5 エージェント・クルー

図書館員が適切なスナップショットを作成すると、5 つの専門 AI エージェントのチームが引き継ぎます。彼らはよく油を差された機械のように連携して働きます。

  • プランナー(建築家): スナップショットを見て、「さて、この大きなプロジェクトをより小さなチャンクに分割する必要がありますね。異なる部門用に 3 つの別々の地図を作りましょう」と決定します。
  • アナライザー(探偵): 各チャンクについて、このエージェントは特定のファイルを読み、主要な相互作用(誰が誰と話すか)を要約します。ノイズを無視し、信号に焦点を当てます。
  • 図面エージェント(芸術家): このエージェントは要約を受け取り、実際に地図を描きます(図面のコードを記述します)。
  • コレクター(編集者): 芸術家は小さな間違い(地図の凡例のタイプミスなど)をするかもしれません。このエージェントは完成した地図を読み、ルールと照合して即座に誤りを修正します。
  • 依存関係アナライザー(サプライチェーンマネージャー): このエージェントはメインのコードの外を見て、プロジェクトが使用する外部ツールやライブラリを確認し、地図にそれらの接続も含めることを保証します。

3. 結果:彼らは何を見つけましたか

チームは、4 つの異なる言語(Java、Python、JavaScript、PHP)で書かれた、12 の異なるオープンソースソフトウェアプロジェクト(小さなアプリから巨大なシステムまで)でこのシステムをテストしました。彼らは7 種類の異なる地図(クラス図、フローチャート、デプロイメント図など)の生成を試みました。

以下が起きたことです。

  • 高い精度: 地図はほぼ常に構文的に正しかったです(約**91.5%が最初から完璧でした。「コンポーネント」や「デプロイメント」のような一部の種類の地図では100%**でした)。
  • 賢い要約: システムは(地図が読み取れなくなるため)コードのすべての単一の部分をリストアップしようとしませんでした。代わりに、最も重要な部分に焦点を当てました。コードエンティティの約31%を捕捉しましたが、それらは正しいものでした。
  • 一貫性: 30 行のコードを持つ小さなプロジェクトでも、4,500 行を超える巨大なプロジェクトでも、同じように機能しました。プロジェクトが大きくなっても品質は低下しませんでした。
  • 幻覚の欠如: 地図はコード部分間の架空の接続をほとんど作りませんでした。地図が 2 つのものが接続されていると言った場合、それらは実際に接続されていました。

4. これがなぜ重要なのか

この論文は、以前の AI を用いた試みが失敗したのは、コードベース全体を一度に AI に与えようとしたためだと主張しています。

  • 古い方法: 「ここが図書館全体です、地図を描いてください。」(結果:AI は混乱し、間違いを犯す)
  • Code2U の方法: 「ここは、この特定の地図に必要なものだけを完璧にフィルタリングした小さなスナップショットです。では、描いてください。」(結果:クリーンで正確、かつ有効な地図)

まとめ

この論文は、ソフトウェアの設計図の作成を自動化するシステムを紹介しています。それは「万能の天才」になろうとするのではなく、まずデータを賢く圧縮し、その後協力して正確で有効な図面を描く専門チームとして機能することで成功しています。AI が圧倒されることなく、巨大なコードベースに対して高品質なソフトウェア地図を生成できることを証明しています。

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

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

Digest を試す →