Foremanは、大規模言語モデル(LLM)エージェントをネイティブなKubernetesリソースへと変換し、チームがコストと安全性を厳格に管理しながら、AIが生成したコードを本番環境で実行できるようにします。
今日の開発ワークフローにおけるこのアイデアの意義
企業はコードを書くことができるLLMの活用を試みていますが、その実装の多くは、モデルを信頼できるブラックボックスとして扱っています。モデルからの単一の「完了」シグナルが、テストされていない変更をリポジトリに直接プッシュしてしまう可能性があり、セキュリティと信頼性の懸念が生じます。同時に、クラウド上でAIサービスを実行すると、特にCIパイプラインから同じモデルが繰り返し呼び出される場合、コストが急速に膨らむ可能性があります。
Foremanの解決策は、コーディングループ全体をKubernetesクラスター内に組み込むことです。ForemanはKubernetesリソースとして動作します。
これを実現する4つのコアオブジェクト
- Agent – ワーカーを定義します。呼び出すLLMを指定し、モデルが実行可能なツール(例:ファイルの書き込みやgit-pushなど)をリストアップし、モデルの呼び出し回数を制限する予算を設定します。ここにロール(役割)を付与します。例えば、コーダーエージェントはコードを書き、ベリファイエージェントはそれを検証します。
- Workload – ユーザーが作成する作業単位です。ハイレベルな意図(例:「モジュールXにユニットテストを追加する」)、対象リポジトリへの参照、およびそのジョブを担当すべきエージェントのリストを保持します。
- AgenticTask – Workloadが生成する具体的なタスクです。ジョブの進行に伴い、各AgenticTaskはステータスの更新を記録するため、オペレーターはパイプラインをリアルタイムで監視できます。
- FleetNode – 実際にタスクを実行するKubernetesノードです。組み込みのスケジューラが、保留中のAgenticTaskを、必要なロールとリソースを持つFleetNodeにマッチングさせます。
盲目的な信頼に代わる検証プロセス
Foremanは、モデルの出力が正しいと仮定することはありません。コーダーエージェントが作業を完了すると、最終的な結果ではなくリクエストを送信します。ベリファイア(通常は別のLLMではなく、決定論的なスクリプト)が、リンター、ユニットテスト、またはフルビルドを通じてコードを実行します。これらのチェックに合格した場合にのみ、Foremanは新しいブランチをリポジトリに書き戻します。
ベリファイアが失敗した場合、タスクは拒否(rejected)としてマークされ、変更が適用されることはありません。この分離により、モデルが創造的にコードを生成できる一方で、セーフティネットは完全に人間の制御下に置かれます。
クラスターへのスタックのインストール
- Helmを使用してLLMKubeコアチャートをデプロイします。
- 同じくHelmを使用してForemanチャートをデプロイします。
- エージェントモードを「native」に切り替え、実際の要求・応答ループを有効にします。
- 作業をホストするFleetNodeにロール(coder、verifier)を割り当てます。
2つの認証セットが必要です。問題(issues)の読み取りとブランチのプッシュを行うためのgit認証情報と、ホストされたAPIまたはセルフホストされた推論サービスを呼び出すためのモデル認証情報です。
実際に調整可能なコストとセキュリティのコントロール
Foremanを使用すると、オペレーターはエージェントの定義からツールを削除することで、モデルの権限を制限できます。「bash」や「write_file」を削除すれば、モデルが任意のシェルコマンドを実行したり、指定されたワークスペース外に書き込んだりすることを防げます。
ターンリミット(turn limit)を設定することで、タスクあたりのモデル呼び出し回数を制限し、支出を直接制御できます。コンテキストウィンドウ(モデルが参照するプロンプトの量)を調整することで、トークン使用量をさらに削減できます。モデルをオンプレミスのハードウェア上でローカルに実行する場合、データが組織外に流出することはないため、厳格なデータプライバシーポリシーを満たすことができます。
プラットフォームの強みと、現在の課題
Foremanは、定型的で範囲の明確なジョブにおいて優れた能力を発揮します。
- 文書化されたバグの修正。
- 不足しているテストケースの追加。
- 明快さやスタイルのためのドキュメント更新。
これらのタスクには、ベリファイアが自動的にチェックできる明確な成功基準があります。一方で、ハイレベルなアーキテクチャの再設計や、「正しさ」が人間の判断に依存する曖昧な機能開発については、依然として課題が残っています。
まとめ
LLM駆動のコーダーをファーストクラスのKubernetesリソースとして扱い、決定論的な検証ステップを強制することで、Foremanは、コストを可視化しセキュリティを制御しながら、本番環境でのAIコード生成を実現するための実用的な道筋を提供します。あらゆる開発作業に対する銀の弾丸ではありませんが、反復可能でテスト可能なタスクに対しては、既存のクラウドネイティブな運用に自然に適合する、監査可能なワークフローを提供します。
