見出し画像

キーワード一言で業務システムのデータフロー図が出てきた話

「このシステム、どこから調べればいいですか」と聞かれるたびに、同じ説明をしていました。数百ジョブ、数万ファイルを事前に分析してwebappで確認できる仕組みは作ってありました。でも、分析結果を横断的に組み合わせて答えを出すのは、結局人間の頭の中でした。そこにMCPでAIエージェント向けのフロントエンドを追加したら、AIエージェントがキーワードひとつで分析結果を引き出し、Mermaid図まで生成するようになりました。

「このシステム、どこから調べればいいですか?」という問いに毎回答えていませんか?

新メンバーが入るたびに、同じ説明を繰り返しているチームは多いと思います。

  • 設計書はあるが、3年前のもので現在の実装とは大きく違う

  • コードを読もうとしても、どのファイルから始めればいいかわからない

  • 詳しい人に聞けば教えてもらえるが、その人が忙しいと手が止まる

これは「ドキュメントが足りない」という問題ではないと、最近気がつきました。正確には、「分析結果はあるのに、それを組み合わせて答えを出す入口がない」という問題です。

まず分析基盤を作り、次にMCPフロントエンドを追加した

私たちのチームでは、保守対象のシステムを事前に静的解析しています。対象は数百のバッチジョブです。ジョブごとに以下をすべて調査済みです。

  • バッチジョブ定義

  • ジョブが呼び出すスクリプトのコールスタック(すべての階層)

  • DB定義

  • 設定ファイル

これらの分析結果から、ジョブフロー、データフロー、シーケンス、CRUDマトリクス、file IOマトリクスなど、保守案件で必要なビューを順次追加しています。分析結果はwebappで確認できる状態でした。

ただ、webappには限界がありました。個別のジョブの分析結果は見られるけれど、複数の分析結果を組み合わせて「このテーブルに影響するジョブは何か」「このフローの上流にある処理は何か」と横断的に答えを出すには、人間が頭の中でつなぎ合わせる必要がありました。

そこで、このwebappに MCP(Model Context Protocol)フロントエンドを追加 しました。AIエージェントが分析結果を直接参照できるようにしたのです。

「督促管理システムのデータフローを見せて」と打ったら

MCPフロントエンドを追加した状態で、チームの勉強会で実演しました。

「督促管理システムのデータフローを見せて」と打ち込みます。AIエージェントがMCPサーバー経由で分析結果を取得し、複数ジョブの分析結果を組み合わせて、Mermaid形式のデータフロー図を生成しました。数分で出てきます。

webappでは得られなかったものも出るようになりました。複数の分析結果を横断したサマリーや、ジョブ間の依存関係の傾向分析です。個別のビューを人間がつなぎ合わせていた作業を、AIエージェントが代行しているのです。

事前分析 + MCP + AIエージェントの役割分担



この仕組みが機能するのは、3つの役割が分離しているからです。

  • 事前分析(重い処理を先に済ませる) : 数百ジョブ・数万ファイルの静的解析は事前に完了。コールスタック、DB定義、設定をすべてジョブ単位で構造化済み。

  • MCPサーバー(分析結果への窓口) : webappに追加したフロントエンド。AIエージェントが分析結果を取得できるインターフェースとして機能。

  • AIエージェント(組み合わせと図解の生成) : MCPから取得した分析結果を組み合わせ、Mermaid図やサマリーを生成。webappでは得られなかった横断的な分析も実施。

従来なら、コードを読める担当者を捕まえ、空き時間を確認し、口頭説明をメモに起こすまで半日かかっていました。事前分析のwebappでも、複数ジョブを横断する調査は人間の頭に頼っていました。MCPを追加したことで、キーワードを打ち込んでから数分で横断的な図解が出てきます。

試してみてわかったこと

私が最初に試したとき、「XXシステムについて教えて」と打ったら、対象が広すぎて大量の分析結果が返ってきました。キーワードの粒度が大きすぎると、AIエージェントが扱う情報量が膨らみすぎるのです。「XXシステムの受注確定フローを教えて」のように業務ステップまで絞り込んで打ち直したところ、一気に精度が上がりました。

問いの粒度によって出力が変わるので、最初は「概要を教えて」から始めて、気になる部分を掘り下げる形が使いやすいと感じています。

問いかけるだけで、分析結果が語り始める

この仕組みを使って一番変わったのは、「システムへの問いかけ方」です。

今まで、保守案件の調査は「分析結果を1つずつ開いて頭の中でつなぎ合わせる作業」でした。今は「良い問いを立てる作業」になりつつあります。事前分析で構造化されたデータがあり、MCPでAIエージェントが横断的に参照できる。人間の役割は、何を知りたいかを言葉にすることに変わりました。

あなたのチームで、「詳しい人に聞かないとわからない」システムはどれくらいありますか。

いいなと思ったら応援しよう!

suwa-sh / 諏訪真一 いつも応援していただいている皆さん支えられています。