コンテンツにスキップ

Stripe「Minions」と社内 MCP「Toolshed」— 週1,300 PR を出す無人コーディングエージェントの足回り

作成日: 2026-09-27 出典: Stripe Dot Dev Blog「Minions: Stripe's one-shot, end-to-end coding agents」Part 1 / Part 2 関連: 社内saasデータ統合基盤_ai活用_事例比較_整理 / stripe_harbor_aiプロトタイピング_整理 / shopify_river_aquifer_社内エージェント基盤_整理 / 社内mcp共通基盤_認証認可ログ_整理 / メルカリ_arca_ai時代の高速プロトタイピング基盤_整理


0. 要点(3行)

  • 一言で: 「エージェントに全権を渡しても大丈夫な箱(devbox)」と「全社共通の道具箱(Toolshed)」を先に作り、そこへ小さく切った道具だけ持たせて走らせる。Minions は人がコードを1行も書かない PR を週1,300本以上マージさせている。
  • Toolshed は社内システムと社内で使う SaaS 向けの約500の MCP ツールを持つ中央 MCP サーバー。1つ足せば数百の社内エージェント全部が使えるが、各エージェントにはタスクに関係するサブセットだけを渡す。破壊的操作は社内の統制フレームワークで禁止。
  • 安全の本体は devbox: QA 環境で動く EC2 で、本番データ・本番サービス・任意の外部通信に触れない。だから権限確認なしに全権で動かせる。10秒で立ち上がるようにプールしてある。

1. 全体像

flowchart LR
    subgraph Entry[起動口]
        Slack[Slack スレッドでタグ付け]
        CLI[CLI / Web]
        Ops[社内ツールのボタン<br>ドキュメント・機能フラグ・チケット]
    end
    subgraph Devbox[devbox - QA 環境の EC2]
        Agent[Minion<br>goose フォーク]
        Rules[ルールファイル<br>ディレクトリ単位で適用]
    end
    subgraph Tools[Toolshed - 中央 MCP]
        T1[社内ドキュメント]
        T2[チケット]
        T3[ビルド状況]
        T4[Sourcegraph コード検索]
        T5[社内で使う SaaS]
    end
    Entry --> Agent
    Rules --> Agent
    Agent -->|タスク向けのサブセットだけ| Tools
    Agent --> Lint[ローカル lint<br>5秒未満]
    Lint --> CI[CI<br>最大2ラウンド]
    CI --> PR[PR 作成<br>テンプレート準拠]
    PR --> Human[人間がレビュー]

2. 起動とフロー

  • 最も使われる起動口は Slack。スレッドでタグ付けすると、スレッドの内容とリンク全体を文脈として取り込む
  • CLI・Web のほか、社内プラットフォーム(ドキュメント、機能フラグ、チケット UI)からも起動できる。例: CI が検出したフレーキーテストを自動でチケット化し、チケットに「Minion に直させる」ボタンを置く
  • 流れ: Slack メッセージ → devbox 起動 → エージェント実行 → ローカル lint → CI → ブランチ push → PR テンプレートに沿った PR 作成 → 人間がレビューするかを判断

3. devbox — 全権を渡せる箱

項目 内容
実体 ソースコードを持ち、開発中のサービスを動かす AWS EC2 インスタンス。「cattle, not pets」
起動 目標10秒以内。ギガバイト級の git クローン、Bazel と型チェックのキャッシュ温め、コード生成サービスの起動を事前に済ませたプールから払い出す
隔離 QA 環境で動作。実ユーザーのデータ、本番サービス、任意の外部通信にアクセスできない
並列 git worktree のようなオーバーヘッドなしに並列で動かせる
権限 上記の隔離があるので、人間の許可なしに全権で動かせる

メルカリ Arca(gVisor Pod +出口プロキシ)と比べると、Stripe は「そもそも本番とつながっていない環境」で安全を取っている。PoC 用途の Arca は社内ツールや GCP に実際につなぐ必要があるので、出口制御で守る方向になる。


4. Toolshed — 中央集約の MCP サーバー

flowchart TB
    Eng[エンジニアがツールを追加] --> TS[Toolshed<br>約500 MCP ツール]
    TS --> A1[Minions<br>既定は小さなサブセット]
    TS --> A2[他の社内エージェント<br>数百種類]
    TS --> A3[個人がテーマ別ツール群を追加した Minion]
    Guard[社内セキュリティ統制<br>破壊的操作を禁止] -.->|適用| TS
論点 Stripe のやり方
ツール数 Part 1 では「400以上」、Part 2 では「約500」
つながる先 社内システムと、Stripe が使う SaaS プラットフォーム(個別の SaaS 名は記事に記載なし)
配り方 ツールを1つ足すと数百のエージェント全部が使える「共有の能力層」
絞り方 「小さな箱」の方がエージェントの性能が良いので、タスクに関係するサブセットだけを要求させる。Minions は意図的に小さい既定セット。個人がテーマ別のツール群を追加できる
統制 社内のセキュリティ統制フレームワークで、ツールによる破壊的操作をできなくしている(仕組みの詳細は記載なし)
資格情報 記事に記載なし

5. blueprint — 決定的な処理とエージェントを混ぜる

stateDiagram-v2
    [*] --> Implement
    Implement: Implement task(エージェント)
    Implement --> Lint
    Lint: Run configured linters(決定的)
    Lint --> Push
    Push: Push changes(決定的)
    Push --> CIRun
    CIRun: CI 実行(決定的)
    CIRun --> Done: 成功
    CIRun --> AutoFix: 失敗・自動修正あり
    AutoFix: 自動修正を適用(決定的)
    AutoFix --> Done
    CIRun --> FixCI: 失敗・自動修正なし
    FixCI: Fix CI failures(エージェント・もう1回だけ)
    FixCI --> Done
    Done --> [*]
  • 「Implement task」「Fix CI failures」のようなエージェントノードは、入力に応じて広い裁量で判断する
  • 「Run configured linters」「Push changes」のような決定的ノードは LLM を呼ばずにコードを実行するだけ
  • CI は最大2ラウンド。自動修正があるテストはそれを適用し、無い場合だけエージェントにもう1回の機会を与え、その後は人間に渡す
  • ローカルでは5秒未満でヒューリスティックに選んだ lint を回し、CI では300万のテストから選んで実行する

図は記事の説明から起こしたもので、ノード名は記事の例示。実際の blueprint の全ノードではない。


6. ルールファイル

  • 人間が Cursor や Claude Code で使うのと同じルールファイルを読む
  • ほとんどのルールはサブディレクトリやファイルパターン単位で条件付き適用(Cursor 形式)。全部を常に読ませて文脈を浪費しないため

7. データ・SaaS アクセスの観点で読む

観点 Stripe の答え
本番データ そもそも触らせない(devbox は QA 環境)
社内知識・SaaS Toolshed 経由の MCP ツールで取得(ドキュメント・チケット・ビルド状況・コード検索など)
ツールの暴走 破壊的操作は統制で禁止、渡すツールは最小限
知識の配り方 ルールファイルをディレクトリ単位で

持ち帰れる原則: 社内 MCP は「集約は1か所、配布は小さく」。全ツールを全エージェントに渡すと、精度も安全性も下がる。


8. まとめ

一言で: 「安全な箱」「共通の道具箱」「決定的な手順との混ぜ方」の3点セット。

状況 Stripe から借りるアイデア
エージェントに権限確認なしで作業させたい 本番から切り離した環境(QA / sandbox)で全権を渡す
社内ツール連携が乱立しそう 中央の MCP サーバー1つに集約し、全エージェントで共有
ツールが多すぎて精度が落ちる タスク別のサブセットだけを渡す
エージェントが CI を延々と回す 回数上限(2回)を決めて人間に渡す
lint・push などを LLM にやらせて不安定 決定的ノードとして固定し、LLM は判断が要る箇所だけ

参考リンク

  • Stripe「Minions: Stripe's one-shot, end-to-end coding agents」Part 1: https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents
  • Part 2: https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2
  • Block goose: https://github.com/block/goose

作成: 2026-09-27 / 最終更新: 2026-09-27