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

【ITニュース解説】From Vibe Coding to Agent Teams: How I Stopped My AI Projects from Turning into a Mess

2025年10月02日に「Dev.to」が公開したITニュース「From Vibe Coding to Agent Teams: How I Stopped My AI Projects from Turning into a Mess」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIを用いた開発でコードの品質劣化に悩んだ筆者が、AIに「アーキテクト」「開発者」といった専門家チームの役割を与え、各役割に合わせたドキュメントを参照させる方法を考案した。結果、コードの一貫性が保たれ品質が向上し、変更や修正も容易になった。

ITニュース解説

AIを活用したソフトウェア開発が注目される中で、その運用には独自の課題がある。特に、AIにコード生成を任せると、一時的には早く開発が進むように見えても、長期的に見るとコードベースが「腐敗」してしまうという問題が多くの開発者を悩ませていた。これは、同じような機能が異なる場所で何度も記述されたり、同じ目的の処理に複数の異なるライブラリが混在したり、一貫性のない設計パターンが散見されたり、テストの品質が低かったりすることで、プロジェクト全体が無秩序で理解しにくい状態に陥ってしまうことを指す。まるで複数の人がバラバラのルールでコードを書いたかのような混乱が生じてしまうのだ。

このような状況を改善するため、様々な試みがなされた。例えば、「スペックファースト」と呼ばれるツールは、事前に詳細な仕様(スペック)を定義することで、AIに正確なコードを生成させることを目指した。初期の新規開発では効果を発揮し、スムーズに機能が実装されることもあった。しかし、プロジェクトの途中で仕様変更が生じたり、過去のコードを修正したりする際には、このアプローチは非常に柔軟性に欠けていた。一度固まったレールの上を進むのは得意でも、方向転換や修正にはまったく対応できず、大規模な変更が必要な場面では、まるで巨大な船を自転車で操縦しようとするような困難に直面した。また、複数の異なるAIツールを組み合わせて利用することも試みられたが、これもそれぞれのツールの特性を理解し、使いこなす労力が大きく、安定した開発環境を構築するのは至難の業であった。複数のノコギリを同時に操るようなもので、作業は進んでも常に不安定さがつきまとった。

このような試行錯誤の中で、開発者はある突破口を見出した。それは、実際のソフトウェア開発チームが持つ構造をAIにも適用するという発想である。人間のチームには、システム全体の設計を担う「アーキテクト」、開発標準やガイドラインを定める「テックリード」、実際にコードを記述する「開発者」、ユーザーインターフェースを設計する「UIデザイナー」、品質を検証する「テスター」、そしてビジネス要件を定義する「プロダクトオーナー」といった、それぞれ専門の役割を持つメンバーがいる。この役割分担をAIにも導入し、それぞれの役割に特化した「専門エージェント」を作成したのだ。

具体的には、プロジェクトのディレクトリ構造の中に、各エージェントの定義ファイルと、それぞれのエージェントが参照すべき特定のドキュメントを配置した。例えば、「アーキテクト」エージェントはシステム全体の設計に関するドキュメント(例: docs/arc42/*)を担当し、「テックリード」エージェントは開発標準やテンプレートに関するドキュメント(例: docs/developer-guide/*)を参照する。そして「開発者」エージェントは、これらの標準とガイドラインに従って実際のコーディングを行う。さらに、「UIデザイナー」エージェントはユーザーインターフェースのコンポーネントに特化し、「手動テスター」エージェントはテスト計画を管理し、「プロダクトオーナー」エージェントは機能の要求やストーリーを定義する。

このように役割を明確に分担することで、各エージェントは自分の専門分野に集中し、関連するドキュメントを参照しながら作業を進めることが可能になる。例えば、システム設計の変更が必要な場合は「アーキテクト」エージェントが、特定の機能の実装が必要な場合は「開発者」エージェントがその役割を果たす。各エージェントは、その役割に合わせた詳細な指示(プロンプト)を与えられており、例えば「アーキテクト」エージェントは「専門のソフトウェアアーキテクトおよび技術文書スペシャリスト」として定義される。

このアプローチによって生成されるコードは、以前のような無秩序なものではなくなった。例えば、API通信を処理する「サービスパターン」は一貫した形式で記述され、データの取得や送信が統一された方法で行われる。また、データの構造を定義する「スキーマバリデーション」と、それを画面表示用に変換する「ビューモデル」が連携して機能することで、データの整合性が保たれ、開発者は安心してデータを取り扱えるようになった。これは、まるで熟練した開発チームがレビューし、統一されたコーディング規約に基づいて書かれたかのような、高品質で保守しやすいコードをAIが生成できるようになったことを意味する。

この成功の鍵となったのは、綿密な「ドキュメンテーション戦略」であった。ドキュメントは、ただ情報を羅列するのではなく、短く、焦点を絞って作成された。複雑な内容でも、小さなファイルに分割することで、AIが特定の情報を探しやすく、また「記憶」しやすくなった。さらに、ドキュメント内では具体的なコード例を参照させることで、AIが理論と実践を結びつけやすくなった。また、エージェント自体の定義と、各エージェントが参照する作業用ドキュメントを明確に分離することで、エージェントの再利用性が高まり、ドキュメント管理もより整理された状態を保つことができた。これらのドキュメントは、AIエージェントチームにとっての「知識ベース」となり、品質と一貫性を担保する重要な役割を果たしている。

結果として、この「専門エージェントと組織化されたドキュメント」というアプローチは、目覚ましい成果を生み出した。コードベースの品質は時間とともに劣化するどころか、むしろ向上していくようになった。一貫したパターンが確立されたため、リファクタリング(コードの内部構造を改善すること)やバグ修正が以前よりもはるかに容易になり、開発コストも削減された。もちろん、人間による最終的なコードレビューや修正は依然として必要だが、エージェントがリポジトリのルールやパターンに慣れていくにつれて、その修正にかかる労力は着実に減少している。この方法は、AIを活用した長期的なソフトウェア開発プロジェクトにおいて、コードの「腐敗」を防ぎ、持続可能な品質を保つための強力な手段となることを示している。

関連コンテンツ

関連IT用語