業界全体として、エージェント型コーディングは「目新しくて刺激的なもの」から「当たり前のもの」へと変化しています。そして、基盤となるモデルの進化に伴い、無人コーディングエージェントは「可能性」から「現実」へと移行しています。
Minions(ミニオンズ)はStripeが独自開発したコーディングエージェントです。完全無人で動作し、タスクをワンショット(一発)でこなすよう設計されています。毎週Stripeでマージされるプルリクエストの1,000件以上がMinionsによる完全自動生成であり、人間によるレビューは行われるものの、コード自体は一切人間が書いていません。
開発者はClaudeやCursorといったエージェントと引き続き計画・協働できますが、開発者の「注意・集中力」が最も希少なリソースである世界では、無人エージェントがタスクの並列処理を可能にします。
典型的なMinionsの実行は、Slackメッセージから始まりCIをパスしたプルリクエストで終わります。その間に人間の介入は一切ありません。エンジニアが複数のMinionsを並列起動し、多くの異なるタスクを並行して完了させる光景はよく見られます。これはオンコールローテーション中に発生する多数の小さな問題を効率的に解決する際に特に有効です。
このブログ連載の第1回では、エンジニアがどのようにMinionsを使い、何ができるのかをご紹介します。第2回では、内部実装とその構築方法について詳しく解説します。
なぜ自社開発したのか?
プロトタイプをゼロから「バイブコーディング」することと、Stripeのコードベースにコードを貢献することは、本質的に異なります。
Stripeのコードベースは、いくつかの大規模なリポジトリにまたがる数億行のコードを擁しています。バックエンドの大部分はSorbet型付きのRuby(Railsではない)で書かれており、比較的珍しいスタックです。さらに、Stripe独自の膨大な内製ライブラリが使われており、LLMにとって本来は馴染みのないものばかりです。
リスクは非常に高い。このコードは年間1兆ドル以上の決済金額を本番環境で動かしています。同時に、Stripeは金融機関に対して複雑な実世界の依存関係を持ち、コードが遵守しなければならない規制・コンプライアンス上の義務もあります。
LLMエージェントは、システムへの制約が少ない場合にはゼロからソフトウェアを構築するのが得意です。しかし、Stripeのような規模・複雑性・成熟度を持つコードベースに繰り返し変更を加えることは、本質的にはるかに難しい。人間でも効果的に変更を加えるには高度なメンタルモデルを構築する必要があり、エージェントがコンテキストウィンドウの制約内で正しい直感を持ち、正しいツールを使えるようにすることは容易ではありません。
Stripeは長年にわたり、開発ライフサイクルの全段階(ソース管理・環境・コード生成・CI等)において独自の制約を支える開発者生産性の基盤に投資してきました。Minionsのカスタムハーネスはこのツール群と緊密に統合されています。「人間に良いものはLLMにも良い」という考えのもと、MinionsはStripeの人間エンジニアと同じ開発者ツールを使います。
Minionsの使用感は?
Minionsにはいくつかの起動方法があり、Stripeのエンジニアが日常的に使う場所に溶け込むよう設計されています。CLIやWebインターフェースからも起動できますが、最も多いのはSlackからの起動です。SlackアプリをタグするだけでMinionsを起動でき、スレッドの内容や含まれるリンクをすべてコンテキストとして活用できます。
社内ツールを担当するエンジニアであれば、次のようなメッセージでMinionsを起動するかもしれません:

Minionsは他の社内アプリからも起動できます。社内ドキュメントプラットフォーム・フィーチャーフラグプラットフォーム・社内チケットUIはすべてMinionsと統合されています。たとえば、CIシステムがフレーキーテスト(不安定なテスト)を検出した場合、Minionsで修正するよう促す自動チケットが作成されます。

Minionsの実行中および完了後、エンジニアはWebUIでMinionsが取った決定と行動を確認できます。

タスクが完了すると、Minionsはブランチを作成してCIにプッシュし、StripeのPRテンプレートに沿ったプルリクエストを準備します。コードに問題がなければエンジニアがPRを開いて別のエンジニアにレビューを依頼します。問題があれば追加指示を与えることができ、Minionsは完了後に更新されたコードをブランチにプッシュします。
エンジニアは完了したMinionsの実行結果を手動で継続作業することもできます。北極星の目標は「人間のコードが一切含まれないPR」ですが、完全に正しくないMinionsの結果も、エンジニアの集中作業にとって優れた出発点になることが多いです。
Minionsはどのように動くのか?
Minionsには多くのステージがあり、詳細は連載第2回でお伝えします。多くの部分はStripe固有ですが、一般化できる教訓もあると考えています。ここでは時系列で簡単にご紹介します。
Minionsの実行は、隔離された開発環境「devbox」から始まります。これはStripeのエンジニアがコードを書くのと同じタイプのマシンです。Devboxはあらかじめウォームアップされており、Stripeのコードとサービスをプリロードした状態で10秒以内に起動できます。本番リソースやインターネットから隔離されているため、人間の許可確認なしにMinionsを実行でき、git worktreeのようなスケールしない手法を使わずに並列化も可能です。
コアのエージェントループはBlockのコーディングエージェントgooseのフォークで動いています。Gooseは最初期に広く使われたコーディングエージェントの一つで、私たちは初期にフォークしました。エージェントループと決定論的コード(git操作・リンター・テスト等)を交互に実行するよう独自にオーケストレーションフローをカスタマイズしており、Minionsの実行はエージェントの創造性と、リンターなどStripeが必須とするステップを必ず完了するという確実性を組み合わせています。
Minionsは、CursorやClaude Codeなどの人間が操作するツールが読むのと同じコーディングエージェントのルールファイルを読み込みます。複数の異なるエージェントルールファイル形式を利用できます。ただし無条件のルールを大量に設けることは現実的でないため、Stripeのエージェントルールはほぼすべてサブディレクトリに基づいて条件付きで適用されます。
MinionsはMCPに接続されており、MCPはネットワーク越しのLLM関数呼び出しに共通の言語を提供します。これにより、社内ドキュメント・チケット詳細・ビルドステータス・Sourcegraphによるコードインテリジェンス検索などのコンテキスト収集が可能になります。実際に、Minionsの実行が始まる前に関連しそうなリンクに対して決定論的にMCPツールを実行し、コンテキストを事前に豊かにしています。
MCPはMinionsだけでなくStripeの全エージェントの共通言語であるため、「Toolshed」と呼ぶ社内中央MCPサーバーを構築しました。Stripeが使う社内システムとSaaSプラットフォームにまたがる400以上のMCPツールをホストしており、Minionsやほかのエージェントはこのツールセットから設定可能かつキュレーションされたサブセットに接続しています。
Minionsはタスクをワンショットでこなすことを目標にしていますが、できなかった場合はエージェントにフィードバックを与えることが重要です。これは複数の自動テストレイヤーを通じて行います。最初の防衛線は自動化されたローカル実行ファイルで、各gitプッシュ時にヒューリスティクスによって選択された特定のリントを自動実行します。これは5秒以内に完了します。
開発者生産性において「フィードバックをシフトレフト(早期化)する」ことを重視しています。CIで失敗するリントステップはIDEまたはgitプッシュ時に検出し、エンジニアに即座に提示されるのが最善です。
ローカルテストで何も検出されなければ、CIはプッシュ時にStripeの300万以上のテストスイートから選択的にテストを実行します。多くのテストには失敗時の自動修正機能があり、これを自動適用します。自動修正がないテスト失敗はMinionsに返送して修正を試みます。
CIの実行にはトークン・計算資源・時間がかかるため、最大2ラウンドのCIのみ実行します。初回プッシュ後にテストが失敗した場合はMinionsに修正と再プッシュを促しますが、それで終わりです。スピードと完全性のバランスがあり、LLMが多数のCIループを回す場合の限界収益は逓減します。「多くても1〜2回のCIラウンドで、ローカルで修正できるものはすべて修正した後に」というガイダンスが良いバランスだと考えています。
要するに、Minionsは人間のエンジニアと同じツールと、Stripeのベストプラクティスに従うために必要なコンテキストを持って構築されています。そしてエンジニアは通常業務の一環として、人間工学的に活用しています。
今後の展望
MinionsはStripeでのコーディングのあり方をすでに再定義しています。業界はエージェント型コーディングの未来がどのようなものかを模索し続けていますが、無人コードエージェントのユースケースが最もエキサイティングなエージェント活用例の一つであり続けることは間違いありません。
第2回では、Minionsの実装についてより深く掘り下げます。
Minionsと共に、あるいはMinionsの開発に携わることに興味がありますか?採用情報はこちら。
著者について
Alistair Gray
AlistairはLeverageチームのソフトウェアエンジニアです。LeverageチームはStripeのエンジニアが生産性を最大化するための、驚くほど使い心地の良い社内プロダクトを構築しています。