Google Antigravity移行ガイド:10月5日までのローカルジョブ対応

Google Antigravityの5月版エージェントは2026年10月5日に停止予定です。出力のみのジョブはID変更で済みますが、ローカルツールやfunction_callを扱う環境には、新しいツール名、PascalCase引数、行範囲編集に対応するアダプター改修が必要です。安全な移行手順を解説します。

Friday, September 18, 2026Omid Saffari
Google Antigravity移行ガイド:10月5日までのローカルジョブ対応

Googleの5月版エージェントで構築したGoogle AntigravityのAPIジョブに残された移行期間は18日です。Googleは2026年9月17日にantigravity-preview-09-2026をリリースし、廃止スケジュールではantigravity-preview-05-2026の停止日を10月5日としています。ジョブがツールをローカルで実行する、またはfunction_callステップを読み取る場合、必要なのはバージョン文字列を1行変えるだけではなく、アダプターの改修です。

Google Antigravityで実際に変わるもの

今回の対象は、Gemini APIのAntigravityマネージドエージェントです。パソコンにインストールするAntigravity IDEのアップデートではありません。

両製品はランタイムの基盤を共有しているため、名称が重なっています。今回変わるのは、アプリケーションがGoogleのInteractions APIへ送信するエージェントIDと、一部の連携でアプリケーション側が処理する組み込みツール呼び出しです。IDEを更新しても、このAPI契約が自動的に更新されるわけではありません。

新しいエージェントはantigravity-preview-09-2026です。デフォルトの推論モデルはGemini 3.8 Flashですが、Antigravity Agentガイドのとおり、アプリケーションはagent_configを使って別の対応モデルを選べます。ホスト型ワークスペース、バックグラウンドジョブ、ツールループについては、以前のGemini Managed Agents解説で説明しました。今回の移行は、その一段下にある問題です。ジョブが今後も開始できるか、ツール呼び出しを引き続き実行できるかを左右します。

Googleは、9月17日のリリースノートで移行を2つの経路に分けています。

  • リモートサンドボックスで動き、output_textまたはmodel_outputだけを読むジョブは、エージェント文字列を変更します。
  • local_environmentを使う、またはfunction_callステップを解析するジョブは、ツールアダプターも更新する必要があります。

判断基準はこの違いだけです。アダプターとは、ツール名と引数を受け取り、検証してローカルの処理を実行し、結果を返す小さなアプリケーションコードを指します。

ローカルツールの契約は5つの点で変わった

旧エージェントは、ファイル操作の大半を汎用的な読み取りと書き込みとして扱っていました。9月版エージェントでは、ファイル操作ごとに名前と引数が細かく分かれています。引数キーもsnake_caseからPascalCaseへ変わりました。

機能5月版エージェント9月版エージェントアダプター側で必要な対応
ファイルを作成write_file(path, content)write_to_file(TargetFile, CodeContent, Overwrite, Description)新しい名前と4つのPascalCase引数に対応
ファイルを編集write_file(path, content)でファイル全体を書き換えreplace_file_content(TargetFile, StartLine, EndLine, TargetContent, ReplacementContent)ファイル全体ではなく、指定した行範囲を置換
ファイルを読み取りread_file(path, offset, limit)でバイトオフセットを指定view_file(AbsolutePath, StartLine, EndLine, ContentOffset)新しい名前と、行・コンテンツオフセットの組み合わせに対応
ディレクトリを一覧表示list_files(path)list_dir(DirectoryPath)新しい名前と引数の大文字・小文字に対応
ファイルとコードを検索シェルコマンドfind_by_name(SearchDirectory, Pattern, MaxDepth)grep_search(SearchPath, Query, IsRegex)2つの明示的な検索呼び出しを登録・検証
シェルコマンドを実行code_execution(command, timeout_seconds)変更なし既存ハンドラーを維持し、回帰テストを実施
Webを検索google_search(queries)変更なし既存ハンドラーを維持し、回帰テストを実施

変更されたのは、ファイル操作と検索に関する5つの機能群です。表に挙げた組み込みツールのうち、2つは変わっていません。そのため、write_fileを前提にした包括的なハンドラーでは、新しいエージェントIDが正しくても失敗する可能性があります。

新しい編集契約は、操作の範囲もより明確です。小さな変更のためにファイル全体を送り返すのではなく、行範囲、そこに存在するはずのテキスト、置換後のテキストをエージェントが指定します。TargetContentが現在のファイルと一致しない場合、アダプターは呼び出しを拒否すべきです。そうしなければ、遅れて実行されたジョブが、人による新しい編集を上書きしかねません。

本格的な移行対応が必要なジョブはどれか

出力のみを扱うAntigravityジョブはエージェントID変更へ、ローカルツールやfunction callを扱うジョブは10月5日の期限前にアダプターテストへ進むことを示す構成図
移行経路は、アプリケーションが利用するデータによって分かれます。

リモートでレポートジョブを動かす個人開発者

夜間ジョブがGoogleのサンドボックス内でAntigravityにデータ収集とレポート保存を依頼し、最後に完成したテキストを返すケースを考えます。アプリケーションはoutput_textを読み、途中のステップは一切確認しません。

この場合、移行は小規模です。antigravity-preview-05-2026antigravity-preview-09-2026へ変更し、代表的なレポートを旧ジョブと並行実行して最終成果物を比較した後、スケジュールを移します。そもそも存在しないローカルツールディスパッチャーを作り直す必要はありません。

自社マシンでツールを動かすプラットフォームチーム

次は、ツール呼び出しを自社のランナー内で実行するリポジトリワーカーです。ファイルの読み取り、コード検索、設定編集を行い、その結果をインタラクションへ返します。

このチームには、より大きな移行作業が発生します。ディスパッチャーは新しい名前を認識し、PascalCaseの引数を検証し、パスとコマンドのポリシーを適用し、行範囲の編集を安全に処理したうえで、インタラクションが期待する形式で結果を返さなければなりません。その見返りは継続性です。5月版エンドポイントが消えた後も、コードレビュー、レポート生成、メンテナンスジョブを動かし続けられます。

すべてのステップを取り込むオブザーバビリティチーム

処理自体はすべてリモートで実行しながら、function_callステップを監査ログ、進捗UI、承認キュー、コストダッシュボードへコピーするアプリケーションもあります。こうしたチームは、出力だけを扱う利用者ではありません。

組み込みのファイルシステム操作をGoogleが実行する場合でも、パーサーがwrite_filepathcontentを前提としている可能性があります。許可リストとフィクスチャを更新し、実際の編集が「不明」と表示されたり、引数が欠落したり、誤った承認ポリシーへ振り分けられたりしないようにします。

無人トリガーを管理する運用担当者

スケジュールトリガーは、呼び出し時に人が見ていないため最もリスクが高いケースです。トリガーには、エージェント、環境、プロンプト、cronスケジュールが紐づきます。保存済みのインタラクションが5月版エージェントを指定したままだと、スケジュール自体は正常に見えても、停止後は背後の実行が失敗する可能性があります。

メインアプリケーションのSDK呼び出しだけでなく、すべてのトリガー定義に含まれるエージェントIDを棚卸ししてください。そのうえで、ツールの使い方が異なるパターンごとにジョブを1つずつシャドー実行します。どちらもAntigravityを使っているからといって、レポートジョブとリポジトリ修復ジョブを同じ移行テストで済ませることはできません。

小さなファイル編集契約テスト

最初に行うべき安全なテストに、本番環境の認証情報は必要ありません。記録済みの呼び出し形式を模したフィクスチャをアダプターへ渡し、使い捨てファイルを編集して、意図した行だけが変わったことを確認します。

以下のコードは、Googleが公開したreplace_file_contentという名前とPascalCaseフィールドを使い、Nodeで実行しました。これはローカルアダプターのテストであり、実際のGemini API呼び出しではありません。

JavaScript
import assert from "node:assert/strict";
import { mkdtempSync, readFileSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";

function applyReplaceFileContent(call) {
  assert.equal(call.name, "replace_file_content");

  const {
    TargetFile,
    StartLine,
    EndLine,
    TargetContent,
    ReplacementContent,
  } = call.arguments;

  const lines = readFileSync(TargetFile, "utf8").split("\n");
  const current = lines.slice(StartLine - 1, EndLine).join("\n");
  assert.equal(current, TargetContent, "line window no longer matches");

  lines.splice(
    StartLine - 1,
    EndLine - StartLine + 1,
    ...ReplacementContent.split("\n"),
  );
  writeFileSync(TargetFile, lines.join("\n"));
}

const dir = mkdtempSync(join(tmpdir(), "antigravity-adapter-"));
const file = join(dir, "scheduled-job.env");
writeFileSync(file, "owner=ops\nstatus=old\nmode=scheduled\n");

applyReplaceFileContent({
  name: "replace_file_content",
  arguments: {
    TargetFile: file,
    StartLine: 2,
    EndLine: 2,
    TargetContent: "status=old",
    ReplacementContent: "status=ready",
  },
});

assert.equal(
  readFileSync(file, "utf8"),
  "owner=ops\nstatus=ready\nmode=scheduled\n",
);
console.log("PASS: line 2 changed from status=old to status=ready");

テストは成功しました。それ以上に重要なのは、フィクスチャのTargetContentを変更すると、古い内容を編集せずに処理が停止することです。

  1. 連携方式を分類する

    各ジョブが出力のみを扱うのか、ステップを解析するのか、ローカルツールを実行するのか、あるいは複数に該当するのかを書き出します。リポジトリ単位ではなく、ジョブの種類ごとに実施してください。

  2. 実際のフィクスチャを記録する

    本番以外の経路で9月版エージェントを実行し、ファイルの作成、編集、読み取り、一覧表示、検索を代表するfunction_callステップを保存します。ローカルテストを本番へ移す前に、記録した呼び出しで実際の行番号の付け方と結果のエンベロープを確認してください。

  3. 拒否する経路をテストする

    TargetContentを変更する、許可されたワークスペース外を指定する、未知のツール名を渡す、というテストを行います。いずれも安全側に倒して失敗し、監査記録を残す必要があります。

  4. ジョブ全体を1つシャドー実行する

    新しいエージェントIDとアダプターを使い、使い捨て環境で実行します。スケジュールを移す前に、現在のジョブと最終成果物、ツールトレース、承認、実行時間、トークン使用量を比較してください。

判断すべき事業コストは、移行作業と未実行ジョブのどちらが重いか

Googleは、今回のエージェント移行に伴う新しいトークン単価を発表していません。変化する予算項目は、エンジニアリングと運用にかかる時間です。

次の2つのシンプルな式を使います。

移行コスト = アダプターの開発時間 + シャドー実行のAPI費用 + 監視時間

停止時の損失 = 実行できなかったスケジュールジョブ数 × 1回あたりの価値 + 復旧作業

出力だけを扱うリモートジョブなら、エージェント文字列の変更と1回のシャドー実行だけで済む場合があります。ローカルツール連携では、変更された5つの機能群、パーサーのフィクスチャ、安全性テスト、そして異なるワークフロー形態ごとの完全な実行1回を予算に含めてください。

もっともらしい一律の所要時間を作ってはいけません。用途を絞ったレポート生成ツールとローカルのコーディングエージェントでは、対象ツール、承認ロジック、障害コストが異なります。自社の諸経費込みエンジニア単価と、ジョブ1回あたりの事業価値を式に入れてください。そうすれば、ベンダー機能の一覧ではなく、財務判断に使える材料になります。

率直に言えること

上のローカルテストで証明できるのは、フィクスチャとアダプターが合っていることです。実際のエージェントがすべてのプロンプトに対して何を出力するかまでは証明できません。今回の検証環境にはGemini APIの認証情報がなかったため、ホスト型エージェントを実行したかのようには扱っていません。最後の合否判定には、使い捨て環境で記録した9月版エージェントの呼び出しを使ってください。

また、すべてのAntigravityユーザーに同じ対応が必要なわけではありません。

  • 本番ジョブがantigravity-preview-05-2026を指定している、local_environmentを使う、function_callステップを解析する、または無人のスケジュールで動く場合は、今週中に着手してください。
  • リモートサンドボックスで実行し、output_textまたはmodel_outputだけを利用する場合は、小規模な移行で済みます。IDを変更してシャドー実行してください。
  • APIをまだ評価中で、5月版エージェントの本番ジョブがない場合は、新しいIDから開始してください。
  • Antigravity IDEだけを使い、Gemini API経由でマネージドエージェントを呼び出していない場合は、今回の移行対応は不要です。

月曜日にまずやること

棚卸しの責任者を1人決めてください。デプロイ済みの設定、トリガー定義、環境変数、ダッシュボード、フィクスチャから、5月版エージェントIDと旧ツール名を検索します。誰かがコードを変更し始める前に、結果を「出力のみ」と「アダプター対応が必要」の2つのリストに分けてください。

次に、各リストから代表的なジョブを1つずつ移行します。9月版の実行結果を確認する間は、旧スケジュールを一時停止した状態で残します。その後、ワークフローの種類ごとに残りのジョブを移し、10月5日まで未知のツール呼び出しにアラートを設定してください。月曜日の成果物はスライドではありません。担当者付きの棚卸し表、成功したシャドー実行、残るすべてのジョブの移行日です。

実際のワークフローを壊しかねない変更について、平易な言葉でまとめた運用ノートを受け取りたい方は、ニュースレターにご登録ください。

最終更新
2026年9月18日
カテゴリー
Explained

Googleでこのサイトを優先する

omidsaffari.comをGoogle検索の優先ソースに追加

omidsaffari.comを優先ソースに設定すると、GoogleがTop Stories・AI Overviews・AI Modeであなたのために優先表示します。

Cloudflare WorkersのRPCトレースで遅延箇所を特定する

Cloudflare WorkersのRPCトレースで遅延箇所を特定する

Cloudflare WorkersのRPCトレースで、遅い顧客リクエストを別のWorkerやDurable Objectまで追跡。担当サービスとメソッドを見つける手順、サンプリング率、保持期間、2026年10月1日以降のスパン単位の料金まで、チェックアウトの例で実践的に解説します。2026年9月17日Explained
Vercel 料金の盲点:Hobbyのプレビューは30日以内でも消える

Vercel 料金の盲点:Hobbyのプレビューは30日以内でも消える

Vercel Hobbyでは、Deployment Storageが10GBを超えると、保護されていないプレビューやロールバック先が通常の30日を待たずに削除される可能性があります。残るデプロイの条件、履歴を守る監査手順、Proの月額$20を含むVercel 料金の考え方を、実務で迷わないよう具体的に整理します。2026年9月17日Explained
Cloudflare AI Gatewayで請求先の取り違えを防ぐ方法

Cloudflare AI Gatewayで請求先の取り違えを防ぐ方法

Cloudflare AI Gatewayで顧客のプロバイダーキー欠落時に、Unified Billingへフォールバックして自社負担になるのを防ぐ方法を解説。Require provider credentialsとBYOKの優先順位、HTTP 400の検証、Spend limitとの違いを実務目線で整理します。2026年9月17日Explained
Cloudflare Workers Pythonで既存DBへ直結、ブリッジを外せるか

Cloudflare Workers Pythonで既存DBへ直結、ブリッジを外せるか

Cloudflare Workers Python環境で、Hyperdrive経由のPostgreSQL/MySQL直接接続が可能になりました。データベース専用ブリッジを外せる条件、Workers Paidの料金、対応ドライバー、キャッシュとSQLの制約、安全な接続テストの手順を解説します。2026年9月16日Explained
音声AIエージェントを止めないGemini 3.8 Liveの非同期ツール呼び出し

音声AIエージェントを止めないGemini 3.8 Liveの非同期ツール呼び出し

Gemini 3.8 Liveの非同期関数呼び出しで、音声AIエージェントは照会処理中も会話を継続できます。料金の見方、Extended Thinkingとの使い分け、完了判定、重複実行を防ぐ実装、検証すべき運用指標まで、電話対応への導入ポイントを実務目線で分かりやすく整理します。2026年9月16日Explained
Cloudflare Workers デプロイをクライアント単位で分離する権限設計

Cloudflare Workers デプロイをクライアント単位で分離する権限設計

Cloudflare Workers デプロイをクライアント単位で安全に分離する方法を解説します。4つのロール、アカウント所有APIトークン、Wranglerの設定、バインディングやDurable Objects、Routesに残る権限上の注意点まで、制作会社が実運用へ移す手順を具体的に整理しました。2026年9月15日Explained
Claude Code セキュリティ:依存関係のインストールだけに通信を許可する

Claude Code セキュリティ:依存関係のインストールだけに通信を許可する

Claude Code 2.1.271では、サンドボックスの自動モードでネットワーク許可をコマンド単位に限定できます。依存関係のインストール時だけレジストリを開き、その後のビルドやテストへ通信権限を引き継がせない設定方法、適用範囲、永続許可との違い、見落としやすい制約を実務目線で解説します。2026年9月15日Explained
Vercel AI SDKの料金設計:既存サブスクリプションでエージェント費用を抑える

Vercel AI SDKの料金設計:既存サブスクリプションでエージェント費用を抑える

Vercel AI SDKがClaude CodeやCodexなどの既存サブスクリプションを使う仕組みを解説。認証情報の優先順位、プラン利用枠とAPI・AI Gatewayの請求先、Vercel Sandboxに残る実行コストまで、どの経路が誰に向くかを実例と設定手順で整理します。2026年9月15日Explained
ニュースレター

毎週日曜、一通の手紙。動くシステムの話。感想戦ではなく。

週刊。スパムなし。いつでも解除できます。