◉ANTIGRAVITY LABEN
記事一覧/Agents & Manager
◈ Agents & Manager/2026-06-15上級

Managed Agent の非同期ジョブを、投機実行・検証・採用の三段で受け入れる

Gemini API 経由で公開プレビューになった Managed な Antigravity Agent は、サンドボックス内で自律的に計画・実行・検証します。その非同期な成果物を本番に取り込む前に、投機実行・検証・採用の三段で受け止める設計を、実装コードと運用上の落とし穴とともにまとめました。

Managed AgentGemini API5非同期処理Antigravity385

✦ プレミアム記事

Managed な Antigravity Agent が Gemini API で公開プレビューになり、サンドボックス内で計画から実行までを自律でこなすようになりました。

便利さに最初は胸が高鳴ります。けれど少し運用すると、別の不安がやってきます。自律で動くということは、誰の確認も経ずに成果物が出てくるということです。その成果物を、本当にそのまま本番へ流して良いのか。

私自身、複数アプリの運用作業をこの仕組みに任せ始めて、ここで一度立ち止まりました。お伝えしたいのは、自律エージェントの非同期な成果物を、投機実行・検証・採用という三段で受け止める設計です。

自律実行を「いきなり採用」しない

問題の核心は、自律エージェントが「もっともらしいが間違った」成果物を、自信満々で返してくる点にあります。

ファイルを書き換え、ウェブを閲覧し、コードを実行する。その一つひとつは正しく動いていても、最終的な判断が外れていることはあります。これを無検証で本番に採用すると、誤りがそのまま利用者に届きます。

そこで私は、自律実行の出力を必ず「提案」として扱います。提案はまだ採用ではありません。間に検証の段を挟み、合格したものだけを採用へ進める。三段に分けるだけで、自律の暴走が本番に届く確率は大きく下がります。

第一段:投機実行(Propose)

最初の段では、Managed Agent に非同期ジョブを投げ、結果を受け取ります。ここでの出力は本番に触れず、隔離された場所に置きます。

import time
from google import genai
 
client = genai.Client()
 
def propose(task: str, poll_interval: float = 3.0, timeout: float = 300.0):
    """Managed Agent に非同期ジョブを投げ、成果物を提案として受け取る。"""
    job = client.agents.create_run(
        agent="antigravity-preview-05-2026",
        input=task,
    )
    deadline = time.monotonic() + timeout
    while True:
        status = client.agents.get_run(job.id)
        if status.state in ("succeeded", "failed"):
            break
        if time.monotonic() > deadline:
            client.agents.cancel_run(job.id)   # 放置せず必ず止める
            raise TimeoutError(f"job {job.id} がタイムアウトしました")
        time.sleep(poll_interval)
 
    if status.state == "failed":
        raise RuntimeError(f"job {job.id} 失敗: {status.error}")
    return {"job_id": job.id, "artifact": status.output}

ポイントは、タイムアウト時に必ず cancel_run を呼ぶことです。

非同期ジョブを投げっぱなしにすると、サンドボックス側で動き続けて課金だけがかさみます。私はこれで一度、深夜に走り続けたジョブの料金を翌朝に見て青ざめました。投げたら必ず止める経路を用意しておくことを強くお勧めします。

✦

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

この記事の続きを読む

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

この記事で得られること
✦自律エージェントの成果物を無検証で採用しないための三段ゲートの実装
✦検証フェーズで何を機械的に確認し、何を人間に上げるかの線引き
✦非同期ジョブのポーリングで踏みやすい落とし穴と、本番での対処
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◈ Agents & Manager2026-10-14
位置で読む API 応答を変えるとき、出荷済みの旧版を起動時に落とさないための門番を置きました
壁紙アプリのように、サーバーの一覧応答を「何番目の項目か」で読むクライアントは、出荷済みの旧版が長く残ります。項目の削除や並び替えで旧版を起動時に落とさないよう、末尾追加だけを通す検査と、出荷済みの版ディレクトリを凍結する台帳の作り方を、動かした出力つきで書き残します。
◈ Agents & Manager2026-10-14
エージェントの PR は人の PR より待たされると思っていましたが、公開リポジトリの 246 件を数えると逆でした
dotnet/runtime の 2026 年 7〜8 月の PR 246 件で、エージェントが開いた PR の「最初の人の反応」までの時間を人の PR と比べました。計測スクリプトと、個人開発向けの滞留チェックまで載せています。
◈ Agents & Manager2026-09-09
Antigravity の Scheduled Tasks を組んでも走らないとき、sidecar.json と enabled を順に確かめます
Antigravity 2.0 の Scheduled Tasks が予定時刻に走らないときの切り分け手順です。sidecar.json の置き場所と ID、config.json の有効化、sidecar_data のログを順に確かめます。