自己改善するAIソフトウェアファクトリーを構築した
概要
コーディングエージェントの利用を「その場限り」ではなく、繰り返し可能で測定可能なプロセスに変える『ソフトウェアファクトリー』の構築事例を紹介する動画。モデルやプロンプト、ハーネスを変更した際の効果をデータで検証し、コーディングプロセスを継続的に改善する仕組みが解説されている。
主なポイント
- ソフトウェアファクトリーは「コントロールプレーン(作業管理)」と「データプレーン(ワーカーがエージェントに委譲)」の2層構成で設計されている
- 自作CLIツール「machinist」により、キューに積まれたタスクをワーカーがコーディングエージェントへ割り振り、実行結果を記録する
- すべてのタスクは「フォアマン」コーディネーターエージェントが受け取り、サブエージェントへ委譲する決まった手順を毎回同じように実行することで一貫性を担保する
- リポジトリを定期スキャンしてバグを検出しチケット化するトリガーと、GitHubのラベルを監視するトリガーの2種類を設定できる
- ファクトリーはVM上で稼働させ、SSHトンネル経由でアクセスすることでパブリックインターネットに公開せず安全に運用できる
- 実行インフラはGoogle Cloud VMよりHetzner VMの方が大幅に安価だとコスト比較している
- トークン数・タスク処理時間・実行コマンド数などの実行データを蓄積し、モデルやプロンプト変更の効果を定量的に比較・改善できる
- codexやclaudeなど複数のコーディングエージェント(エグゼキューター)を切り替えて実験可能な設計になっている
- 過去の実行ログをエージェントに分析させ、プロンプトベースの処理を決定論的なPythonスクリプトに置き換えることでトークン効率と再現性を高めるアイデアを得た
- チーム開発では全員が同じファクトリー設定・プロンプトを共有することで、改善がチーム全体に波及する(CI/CDと同様の発想)
実践に使えること
- コーディングエージェントの実行ログ(トークン数・実行時間・コマンド数)を記録・分析し、モデルやプロンプト変更の効果を定量比較する仕組みを作る
- 繰り返し行うコーディングタスクには、毎回同じ手順を踏む「コーディネーター役プロンプト」を用意して結果のばらつきを減らす
- リポジトリの定期ヘルスチェックやGitHubラベルをトリガーに、夜間などにバックグラウンドでエージェントへ作業を委譲する運用を検討する
- 設計やデザインなど対話的な試行錯誤が必要な作業はローカルのコーディングエージェントで進め、大量の定型タスクのみファクトリー化して使い分ける