テクノロジー 注目度 69

AI駆動開発における設計戦略:ヘキサゴナルアーキテクチャによる「局所性」の確保

※本記事の要約および解説はAIが自動生成しており、誤りが含まれる可能性があります。事実確認は元ニュースをご参照ください。

本記事は、AI(エージェント)を活用して業務システムを開発する際の設計指針を解説したものです。筆者は、PHP/Symfonyを用いた業務Webシステムの開発において、「低予算」「時間不足」「AIのコンテキスト制限」という厳しい制約条件の下で、設計パターンを検討しました。AIは全体像を一度に処理することが難しく、広範囲のコンテキストを与えすぎると推論がブレるため、システムを「局所だけ」見せて、局所的な作業に集中させる設計が求められます。この「局所性」の確保は、人間にとっての「疎結合・高凝集」という良い設計原則と共通しますが、AIにとっては「コーディングが成立するための条件」という点で重要性が増しています。

そこで、筆者は「ポート&アダプタ」「ヘキサゴナルアーキテクチャ」というパターンを採用することを提案しています。この設計では、外部の技術(DB、フレームワーク、外部APIなど)を中心のロジックから切り離し、抽象的なインターフェース(ポート)を通じてのみ通信させます。これにより、開発者はある機能の境界の内側だけを見れば作業が完結し、AIエージェントに対しても「この部分だけ」という明確な作業パッケージ(コンテキスト)を提供できます。

さらに、ポートの境界は「技術的な操作の単位」ではなく、「達成したい業務の単位」で切ることが重要だと強調しています。また、機能追加は「既存の改修」ではなく「新しいピースの追加」に留められるため、システムの壊れる範囲を局所化できます。この「足すだけ」の単位が、AIエージェントの作業単位、並行開発の単位として機能します。筆者は、この設計の冗長さは、AIにコードを生成させる前提で許容し、基盤技術(Symfony)の豊富なコンポーネントを活用することで、開発効率を最大化できるとしています。最終的に、境界設計そのものの判断は人間が行い、AIは型が決まった作業(アダプタの実装、テストコード生成など)に特化させるべきだと結論づけています。


背景

本記事は、AIエージェントが開発プロセスに組み込まれるという新しい開発パラダイムに対応するための設計論を提示しています。従来のソフトウェア設計原則(疎結合など)を、AIの「コンテキスト制限」という制約条件に適用し、具体的なアーキテクチャパターン(ヘキサゴナル)の採用を論じています。

重要用語解説

  • ヘキサゴナルアーキテクチャ: 関心事を境界の内側に閉じ込め、外部の技術(DBやAPIなど)から中心ロジックを切り離す設計パターン。これにより、システムが外部の都合に左右されにくくなります。
  • ポート&アダプタ: 中心ロジックと外部技術の間に設けられる抽象的なインターフェース(ポート)と、それを具体的に実装する部品(アダプタ)の組み合わせ。依存を逆転させます。
  • コンテキスト制限: AIモデルが一度に処理できる情報量(トークン数)の制約。システム全体を見せるのではなく、作業に必要な最小限の範囲に限定する必要性。
  • 影響: 本設計指針は、AIを活用した開発の標準的なワークフローとなり得る可能性を秘めています。特に、大規模な業務システムの段階的開発や、複数のAIエージェントによる並行開発において、設計の明確な境界線(ポート)が、品質と効率を保証する鍵となると予想されます。人間による「境界設計」の重要性が再認識されています。