• トップ
  • ブログ一覧
  • 【Unity×AI】Git WorktreeとAgentTeamを掛け合わせた次世代の完全並列開発アーキテクチャ
  • 【Unity×AI】Git WorktreeとAgentTeamを掛け合わせた次世代の完全並列開発アーキテクチャ

    はじめに:AI駆動開発における2つの「ボトルネック」

    AI(Claude Codeなど)を活用したUnity開発が当たり前になりつつある今、開発現場では新たな2つのボトルネックに直面しています。

    1. Unity特有の「環境切り替え」の待機時間
      複数の機能を同時進行しようとブランチを切り替えると、Libraryの再生成が走り、10〜30分の待ち時間が発生してしまいます。
    2. AIの「コンテキスト肥大化」による精度低下
      1つのAIセッションで「複数機能の開発」や「調査・実装・レビューの全工程」を連続して行わせると、会話履歴(コンテキスト)が混在し、AIが混乱し始めるだけでなくトークン消費が爆発してしまいます。

    本記事では、この物理的・AI的なボトルネックを同時に解決する、「Git Worktree(環境の並列化)」と「AgentTeam(タスクの並行処理)」を掛け合わせたアーキテクチャをご紹介します。

    1. Git Worktreeによる「環境とコンテキストの並列化(縦軸)」

    まずは、AIが複数機能を同時に、かつ混乱せずに開発するための「物理的な隔離部屋」を作ります。これにはGitのWorktree機能を使用します。

    Worktreeを導入するメリットとLibrary生成の課題

    GitのWorktree機能を使う最大のメリットは、ブランチの切り替えや作業の退避(stash)を行うことなく、複数のブランチを別々のディレクトリとして同時に展開できることです。これにより、物理的に隔離された環境で複数機能の開発を同時進行できるようになります。

    しかし、このWorktreeを使う上で大きなボトルネックとなるのが、Unity特有のLibrary生成時間です。ブランチごとに独立したディレクトリ(Worktree)を生成すると、Unityは初回起動時にすべてのアセットを再インポートするため長時間の待機が発生してしまいます。

    Libraryコピーによる「待ち時間ゼロ」の実現

    このボトルネックを解決するため、新しいWorktreeを作成する際、メインディレクトリのLibraryフォルダを丸ごとコピーするアプローチをとります。これにより、元ブランチのキャッシュが活かされ、差分のみの再インポートとなるため、起動時間を10〜30分からわずか1〜3分へと劇的に短縮できます。

    ※注意点:メインディレクトリのUnityを起動した状態で丸ごとコピーをすると、ロックファイルなどが残ってしまうことがあるため、必ずUnityは閉じた状態でコピーを行うようにしてください。

    手動でのコピーは手間やミスの原因になるため、以下のようなシェルスクリプト(create_worktree.sh)を用いて、Worktreeの作成からLibraryのコピーまでを自動化するのが実用的です。

    1#!/bin/bash
    2# 使用例: ./create_worktree.sh feature-gacha
    3BRANCH_NAME=$1
    4DIR_NAME="../$BRANCH_NAME"
    5
    6# 1. Worktreeの作成
    7git worktree add -b $BRANCH_NAME $DIR_NAME main
    8
    9# 2. Libraryのコピー(※必ずUnityを閉じた状態で実行!)
    10echo "Libraryをコピー中..."
    11cp -R Library/ $DIR_NAME/Library/
    12echo "Worktreeの作成とキャッシュのコピーが完了しました!"

    AIのコンテキスト(記憶)の完全分離

    Worktreeを用いて「ガチャ機能のディレクトリ(feature-gacha/)」「ショップ機能のディレクトリ(feature-shop/)」のように物理的に分けたら、それぞれのディレクトリで独立したAIセッションを立ち上げます

    • セッションA(ガチャ専用):ガチャの仕様とコードだけを記憶し、処理する。
    • セッションB(ショップ専用):ショップの仕様とコードだけを記憶し、処理する。

    これにより、AIが機能の仕様を混同する(コンテキストの混在)のを完全に防ぎ、無駄なトークン消費を抑えながら、複数の機能を同時に安全に開発させることが可能になります。このWorktreeによる作業環境分けが、エージェント間のコンフリクトを防止する「縦軸」の役割を果たします。

    2. AgentTeamによる「タスクの並列処理(横軸)」

    Worktreeによって「機能ごとの独立した安全な部屋」ができたら、次はその部屋の中で開発を超高速化させます。ここで登場するのがAgentTeamSubAgentです。

    1人のAIから「専門チーム」へ

    従来のAI開発では、1つのセッションが「調査 → 実装 → レビュー」を順番(直列)にこなしていました。AgentTeamとは、独立したコンテキストウィンドウを持つ複数のAIセッションを並列稼働させ、異なるタスクを同時実行する構成です。

    さらに、単一のセッション内でメインエージェントから特定のタスクを専門的に任される子エージェント(SubAgent)を生成し、タスクの一部を委譲して実行させます。

    タスクのレイヤー分割と同時実行

    Worktree内の1つの機能(例:ガチャ機能)に対して、以下のような専門チームを編成し、各タスクに特化して並列処理(横軸)を行います。

    • 調査チーム: コードベースの分析や設計計画を行うSubAgentたち。
    • 実装チーム: 実際のコードを書く部隊。さらに内部で「Domain」「Application」「Infra」「Presentation」の各レイヤーを担当するSubAgentに分かれ、これらが同時並行で実装を進めます
    • レビューチーム: 実装と並行して、アーキテクチャの準拠やコード品質(SOLID原則など)を独立したコンテキストで確認するSubAgentたち。

    各レイヤーを担当するSubAgentを並行稼働させる際は、それぞれの役割を逸脱しないよう、以下のようにシステムプロンプトや設定ファイル(.claudecode等)で明確な制約を与えます。

    1# Domainレイヤー担当エージェントへの指示例
    2あなたはUnityプロジェクトの「Domainレイヤー」専任の実装エージェントです。
    3- 依存関係: 他のレイヤー(Application, Infra, Presentation)には絶対に依存しないでください。
    4- タスク: 純粋なC#クラスとしてエンティティやドメインロジックのみを実装してください。
    5- 制限: Unity固有のAPI(MonoBehaviour等)の使用は禁止です。

    ※チーム編成の手法について
    プロジェクトやタスクによっては、機能(Feature)ごとにAgentTeamを作成する形だけでなく、一つの機能に対して上記のようなレイヤーごと(Domain, Application等)のチーム編成をするのも有効な手法の一つです。

    各エージェントが各々のコンテキストを持っているため、セッションが長大化する複雑な機能開発であってもAIの推論精度が高く保たれます。また、並行で作業できるため、セルフレビューサイクルがかなり自動化されて回せるようになります。

    3. 統合:Worktree × AgentTeam のマトリクス構造

    これら2つの技術を組み合わせることで、以下のような強固で高速なマトリクス型の開発体制が完成します。

    • オーケストレーター(Claude Code)が全体を管理。
    • 【ブランチA(ガチャ機能)】のWorktree環境内では、専用の調査・実装(各レイヤー)・レビューのAgentTeamが一斉に稼働。
    • 【ブランチB(ショップ機能)】のWorktree環境内では、専用の調査・実装(各レイヤー)・レビューのAgentTeamが一斉に稼働。

    Git WorktreeとAgentTeamを組み合わせたマトリクス構造の図解

    4. 実運用で直面した泥臭い「罠」と回避策

    この並列開発アーキテクチャは強力ですが、現場で実際に運用するとAIならではの特有のトラブルも発生します。

    1. Unity特有のメタファイル(GUID)の競合

    複数のエージェントが並行して新規アセットやスクリプトを生成すると、Unityの.metaファイル(GUID)が重複・競合するリスクがあります。これを防ぐため、アセットの新規作成は必ずメインのオーケストレーターに集約させるか、エージェントごとに作業するフォルダを物理的に完全に切り離す工夫が必要です。

    2. Gitのコンフリクト

    並行してガシガシコードを書かせるため、共通の依存ファイル(Assembly-Definitionなど)でGitのコンフリクトが発生しやすくなります。この対策として、各機能やレイヤーの依存関係を疎結合に保つ設計(Package構成の活用など)がより一層重要になります。

    おわりに

    「Git WorktreeでAI同士が干渉しない隔離された環境(部屋)を用意し、その各部屋の中でAgentTeamという専門チームが分担して並行作業を行う」。これが、Unity特有の待ち時間を排除しつつ、AIのパフォーマンスと精度を限界まで引き出す、次世代の並列開発における有力な選択肢になると考えています。皆様のプロジェクトでも、ぜひ一度試してみてください。きっと大きな価値があると思います。

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!カジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background