ファクトリーモデルとは、エージェント型ソフトウェア開発に関する Addy Osmani のメンタルモデルである。開発者はコードを直接書くのではなく、ファクトリーを構築し運用する。それは並列に動く AI コーディングエージェントの群れであり、各エージェントは独自のタスク、ツール一式(リポジトリ、テストランナー、デプロイスクリプト、ドキュメント)、コンテキスト(仕様、アーキテクチャ上の決定、過去の制約)、そしてフィードバックループを持つ。一つのエージェントに一つのタスクを手取り足取り進めさせるのではなく、開発者は複数のエージェントを同時に立ち上げる。一つはバックエンドのリファクタリング、別の一つは機能の実装、また別の一つは結合テスト、さらに別の一つはドキュメントを担当する。そして開発者は出力をレビューし、フィードバックを与え、仕様を洗練させ、再びデプロイする。

用法

Osmani は、そのまま当てはまるとみなすいくつかの点でファクトリーの類推を広げている。ファクトリーには品質管理があり、プロセスの文書化があり、入力を正確に指定しなければ出力は誤ったものになり、環境が不安定であれば停止する。彼は、このモデルを積極的に採用したチームの内部では、マージされるプルリクエストのかなりの部分が、クラウド環境で自律的に動くエージェントから生まれるようになっていると報告し、これを理論ではなく本番環境での現実として提示している。彼はこのモデルを Cursor の公の発言と結びつけ、「開発者の仕事は、プロダクトだけでなく、ソフトウェアを作るシステム、つまりファクトリーを構築することになりつつある」、「アイデアをレビューするのは、コードをレビューするよりずっと楽しい」という言葉を引用している。

「ソフトウェアファクトリー」という枠組みは、Osmani の説明とは独立に、ある製品の自己紹介としても使われている。LangChain は Open SWE をオープンソースのソフトウェアファクトリーと説明し、その目的を、エンジニアリングの仕事を再現可能なシステムに変えることだと述べている。そして明示的に描かれたループがある。Issue、会話、プルリクエスト、スケジュールが計画と調査に入力され、それが隔離されたサンドボックスでの実装に入力され、それがプルリクエストの検証と提出に入力され、それがレビュー、CI、フィードバックに入力される。そして後続の作業は計画へと戻る。これは Osmani のメンタルモデルよりも狭く、より機械的な記述である。多くのエージェントを指揮することについて開発者がどう考えるかではなく、単一のエージェントシステム自身の制御フローを述べたものだからである。

適用条件

Osmani は、ファクトリーモデルを、一つの同期的なエージェントを一歩ずつ扱うのではなく、長時間にわたってほぼ監督なしに動ける自律的なエージェントを開発者が指揮するようになった段階で適切なアプローチとして提示している。このモデルは、多数のエージェントに同時に実行されても耐えられるほど正確な仕様を開発者が書いて維持できること、そして結果を確認するための包括的でテストファーストのテストスイートがあることを前提とする。彼の主張によれば、それらがなければ、曖昧な要件やまずいアーキテクチャ上の決定は、一つの実装にとどまらず群れ全体に伝播する。彼はこれをこの転換についての自身のメンタルモデルとして提示しつつ、一部のエンジニアリング組織の内部ではすでに本番環境での現実になっていると報告している。

関連用語

コードエージェント・オーケストラ:マルチエージェントのコーディングを機能させるもの、指揮者モードとオーケストレーターモード、Red/Green TDD