GEMINI LABEN
SUNSET — gemini-robotics-er-1.6-preview は8月31日に停止します。残り13日となり、移行の実作業に取りかかる時期ですMIGRATION — 移行先は7月30日にパブリックプレビューとなった gemini-robotics-er-2-preview と gemini-robotics-er-2-streaming-preview です。テキスト・画像・動画・音声を入力できますPRICING — 8月13日に一般提供となった Gemini 3.7 Flash の導入価格は2026年12月31日までです。年をまたぐワークロードは価格改定を織り込んだ試算が要りますDEPRECATION — サンプリングパラメータの temperature・top_p・top_k が非推奨になりました。明示指定しているコードは、指定を外した場合の出力差分を今のうちに測っておくと安全ですVIDEO — 動画の生成と編集に対応する Gemini Omni Flash が Google AI Studio と Gemini API から利用できますLOGS — Interactions API が開発者ログに対応し、対象となる API 呼び出しのログを AI Studio のダッシュボードで確認できるようになりましたSUNSET — gemini-robotics-er-1.6-preview は8月31日に停止します。残り13日となり、移行の実作業に取りかかる時期ですMIGRATION — 移行先は7月30日にパブリックプレビューとなった gemini-robotics-er-2-preview と gemini-robotics-er-2-streaming-preview です。テキスト・画像・動画・音声を入力できますPRICING — 8月13日に一般提供となった Gemini 3.7 Flash の導入価格は2026年12月31日までです。年をまたぐワークロードは価格改定を織り込んだ試算が要りますDEPRECATION — サンプリングパラメータの temperature・top_p・top_k が非推奨になりました。明示指定しているコードは、指定を外した場合の出力差分を今のうちに測っておくと安全ですVIDEO — 動画の生成と編集に対応する Gemini Omni Flash が Google AI Studio と Gemini API から利用できますLOGS — Interactions API が開発者ログに対応し、対象となる API 呼び出しのログを AI Studio のダッシュボードで確認できるようになりました
記事一覧/API / SDK
API / SDK/2026-07-04上級

Managed Agents を並列で回すと同じリポジトリを奪い合う ― 隔離サンドボックスに効く外部リースとフェンシング

Managed Agents は実行ごとに隔離サンドボックスが立つため、複数実行が同じリポジトリやレコードに同時に触れてもローカルロックが効きません。外部リースとフェンシングトークンで単一実行を保証する実装をまとめました。

Gemini API213Managed Agents8エージェント15サンドボックス3個人開発101

プレミアム記事

先日、個人で運用しているサイト更新の自動化を Managed Agents へ寄せている途中で、同じリポジトリに向けて二つの実行がほぼ同時に走る場面に出くわしました。片方は定時のブラッシュアップ、もう片方は少し遅れて再発火した記事生成です。起動の間隔はわずか7秒。どちらも同じ content/ を書き換え、同じ main へ push しようとしていました。

自前のループを一台のサーバーで回していた頃は、こういう衝突はファイルロック一行で防げていました。ところが Managed Agents では実行のたびに Google 側で独立した Linux サンドボックスが立ち上がります。二つの実行は物理的に別のマシンにいるようなもので、片方が握ったロックはもう片方からは存在すら見えません。ここで初めて「ローカルロックが効かない世界」の設計をやり直す必要が出てきました。

隔離サンドボックス上で並列に走る Managed Agents 実行を、外部リースとフェンシングトークンで安全に直列化する。その方法を、個人開発で実際に動かしているコードとともに整理します。

隔離サンドボックスでは「見えないから衝突する」

まず何が起きたのかを正確に書いておきます。二つの実行はどちらも同じ手順を踏みました。リポジトリを浅くクローンし、記事の MDX を書き込み、コミットして push する。単体では何の問題もありません。問題は、この一連の危険区間が重なったときにだけ現れます。

実測では、3週間・約210回の自動実行のうち、リース導入前に重複 push が3件、git pull --rebase の衝突リトライが11件発生していました。重複 push は、二つの実行が別々のファイルを書いて両方成功したケースです。壊れてはいませんが、同じ題材が二重に出たり、あとから見て「なぜ2コミット続いているのか」が追いにくくなります。リトライ11件のほうは、push 競合を検知して片方が rebase からやり直したもので、実害はないものの毎回数十秒を無駄にしていました。

一台のサーバーなら、この危険区間の入口に排他ロックを置けば終わりです。Managed Agents ではそれができません。理由を次に分けて書きます。

なぜローカルロックが効かないのか

「ロックが効かない」と一口に言っても、効かない層がいくつも重なっています。順に潰しておくと、あとで代替設計を選ぶときに迷いません。

手段一台のサーバー隔離サンドボックス(Managed Agents)
プロセス内ミューテックス効く別プロセス・別マシンなので無意味
ファイルロック(flock)効くファイルシステムが実行ごとに独立。共有されない
ポートやソケットの占有効くネットワーク名前空間が分離。衝突しない
外部ストアの条件付き書き込み効く効く(唯一の共有点)

要点はひとつです。二つの実行が確実に「同じものを見られる」場所は、サンドボックスの外にある共有ストアだけです。したがって排他制御は、そのストアの原子的な操作の上に組み立てるしかありません。ここでいう原子性とは、読んで・条件を確かめて・書く、を割り込まれずに一息で行える性質のことです。Firestore のトランザクション、Postgres のアドバイザリロックや UPDATE ... WHERE、Redis の SET NX などが候補になります。

私は普段 Google 系のストアに寄せているので、ここでは Firestore のトランザクションで最小のリースを組みます。要のふるまいは三つ、acquire(取得)・renew(延長)・release(解放)です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
隔離サンドボックス間では flock もプロセス内ミューテックスも効かない理由と、外部リースが唯一の共有点になる設計
acquire / renew / release の3手順で最小リースを Firestore トランザクションに実装する before / after のコード
期限切れリースを持つゾンビ実行の遅延書き込みを、フェンシングトークンの compare-and-set で弾く具体手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-06-16
Gemini Managed Agents を自動化に組み込む ― 会話状態と環境状態を分けて扱う実装メモ
Managed Agents は1回の API 呼び出しで Linux サンドボックスを立て、エージェントを走らせて結果を返します。自前ループから移すとき最初につまずく「会話状態と環境状態は別物」という設計を、実際に動かしながら整理しました。
API / SDK2026-08-02
environment hooks に置いた門番の実測 — 判定は46マイクロ秒、起動は23ミリ秒
Managed Agents の environment hooks に破壊的コマンドのガードを置くまでの記録です。正規表現の denylist が20件中9件を素通りさせた実測から、argv 分解による検出率100パーセントまでの3段階と、判定より500倍重い起動コストの内訳をまとめました。
API / SDK2026-07-19
Managed Agents を background: true で走らせて画面を止めない — 個人開発の非同期ラン設計
Managed Agents の background 実行は結果ではなくラン ID を即座に返します。ポーリングの最小構成と、個人開発での使いどころ、認証情報リフレッシュの注意点を実務目線でまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →