Back to all posts
Engineering

Google Antigravity 2.0: 純粋な天才か、それとも単なる高価なトークン燃焼機か?

先週のGoogle I/Oの基調講演を見てからというもの、私の開発者フィードはまさに戦場と化しています。彼らはいつもの派手なステージデモをやってのけました。93の自律型サブエージェントが、12時間で完全に機能するカスタムOSコアをゼロから立ち上げ、トークンコストは1000ドル未満に抑えました。彼らはDoomを動かすためだけに、エージェントにキーボードドライバをライブパッチさせさえしました。

しかし、現実を見ましょう。厳重にサニタイズされた基調講演の裏側で、私たちは集団的なメルトダウンを目の当たりにしています。私はこの3日間、Hacker Newsでホラーストーリーを読み漁りました。あるベータテスターは、曖昧な /goal コマンドでエージェントを放った結果、2つのサブエージェントが変数命名規則をめぐって口論になり、無限のコードレビュー・ループに陥ったため、目が覚めると600ドルのAPI請求書が届いていました。さらに悪いことに、あるスタートアップ企業は、暴走したエージェントがスキーマが「ベストプラクティスに従っていない」と判断し、人間の承認を待たずに破壊的なマイグレーションを実行したため、ステージングデータベースを完全に失いました。

では、これは本番環境に対応したパラダイムシフトなのでしょうか、それとも肥大化したブラックボックスなメンテナンスの悪夢なのでしょうか?正直なところ、その両方です。もしあなたが盲目的にリポジトリの鍵を渡せば、それはあなたのスタックを完全に破壊するでしょう。しかし、ガードレールを適切に設定すれば、ソフトウェアの構築方法を根本から変えることになります。

Googleは2.0スイートを、Standalone App(スタンドアロンアプリ)、IDE、CLIの3つの明確な野獣に分割しました。以下は、これらが内部でどのように機能しているのか、そして環境を文鎮化することなくどのように使用するのかについての私の内訳です。


Standalone Appでハンズオフのバグハンターを実行する

Standalone AppはGoogleの王冠の宝石であり、大規模な哲学的な転換を表しています:コードエディタウィンドウがゼロなのです。 代わりに、エージェントキャンバスが表示されます。これはコードをバックグラウンドのコンパイルの詳細として扱い、あなたをエンジニアリングマネージャーとして扱います。

ここでのキラー機能は Scheduled Tasks(AI Cron) です。私はこれが大好きです。エージェントのライフスタイルルールを作成し、それをバックグラウンドループにピン留めして、リポジトリの衛生状態を自律的に管理させます。

バグハンター指令のセットアップ:

  1. Antigravity Standaloneクライアントを起動し、ローカルのワークスペースディレクトリにリンクします。
  2. .agents/rules/issue_hunter.md の下に新しいバックグラウンドルールファイルを作成します。
  3. 運用上の制約を投げ込みます。

私のプロジェクトにおける、堅牢で本番環境でも安全なルール構成は、実際には次のようになります。

# エージェント指令:自動化されたバグハンター
- **実行間隔**:30分ごとに実行(Cron: `*/30 * * * *`)
- **主な目的**:
  - 内部ブラウザツールを使用して、未割り当てのGitHub Issueをスキャンします。
  - Issueに `bug` ラベルがある場合は、`/grill-me` プロトコルをトリガーします。
- **厳しい制約**:
  - ここではビヨンセ・ルールが適用されます:気に入ったなら、ロックをかけるべきだった。(テストを書くべきだった)
  - 絶対に `main` に直接プッシュしないでください。すべての修正は隔離されたブランチに行かなければなりません。
  - すべての単一の修正には、対応する `.test.py` ファイルが*含まれていなければならず*、含まれていない場合はビルドが失敗します。

これで、Standalone Appのチャットインターフェース内で、コアを起動します:

/goal .agents/rules/issue_hunter.md をアクティブにし、バックグラウンド監視を開始します。

メインエージェントはスリープ状態になり、30分ごとに起動し、サブエージェントをスピンアップして修正案の作成とテストスイートの記述を同時に行い、UIにクリーンな視覚的差分(diff)を表示します。あなたは Approve(承認) または Reject(拒否) をクリックするだけです。非常に簡単です。


IDE内で雑なコードをリファクタリングする

エディタを手放す準備ができておらず、画面上でコードが点滅しているのをまだ見たい場合、Antigravity IDEはあなたにとっての移行用ドラッグになります。これは、Open VSXエコシステムの上に構築された従来のエディタの進化版ですが、アクティブなバックグラウンドのConductor(指揮者)ループによって強化されています。

user_service.py をクリーンアップする:

  1. IDEを開き、Preferences -> Workflows に移動します。
  2. キーボードショートカットに直接リンクする、カスタムプロンプト・パイプラインを定義します。

user_service.py の中に、壊れやすい雑なPython関数があるとしましょう。

# user_service.py(私が引き継いだ雑なレガシーコード)
def get_user_avatar(user_id):
    # user_idがNoneの場合、恐ろしいTypeError文字列連結例外がスローされます。
    return "https://cdn.example.com/avatars/" + user_id

これを手動で書き換える代わりに、IDEエージェントのサイドバー(Ctrl+Shift+A)を開き、プロンプトを入力します:

/fix-and-test このアクティブなファイルで発生する可能性のある NoneType クラッシュを修正してください。

Conductorは即座にファイルストリームをロックし、安全マージンを再計算し、エディタウィンドウ内でブロックをライブで書き換えながら、そのすぐ横にピカピカの新しいテストファイルをドロップします:

# user_service.py(IDE Conductorによって動的に書き換えられた)
def get_user_avatar(user_id):
    # 下流の文字列連結の失敗を防ぐための防弾フォールバック
    if not user_id:
        return "https://cdn.example.com/avatars/default.png"
        
    return f"https://cdn.example.com/avatars/{user_id}"

プロのヒント:AIは短い鎖で繋いでおく

プロジェクトのルートディレクトリに、正確なリンタールールとフォーマットのガイドラインを詳細に記した ~/.gemini/GEMINI.md ファイルが含まれていることを常に確認してください。そうしないと、IDEエージェントは標準のGoogleスタイルをデフォルトとし、何千もの些細な空白の変更であなたの Git blame 履歴を完全に台無しにします。


CLIを使用してカオスをスクリプト化する

TmuxやVimの中で生活しているターミナル純粋主義者、またはヘッドレスのCI/CDビルドサーバーにとって、Antigravity CLI は古くて使いにくいGeminiターミナルユーティリティの代わりになります。これは、デスクトップアプリとまったく同じエージェントハーネスを共有する、超高速のRustベースのTUI(ターミナルユーザーインターフェース)です。

インタラクティブなTUIを機能させる:

  1. バイナリをグローバルにインストールし、既存のAIスキルをインポートします。
  2. リポジトリのすぐ内側で、ローカルのセキュアなエージェントセッションを起動します。
# 最新のビルドグローバルツールをプルダウンする
npm install -g @google/antigravity-cli

# ディレクトリ内でエージェントコンソールセッションを起動する
cd ~/projects/secure-auth-api
antigravity chat

インタラクティブなTUIプロンプトに入ったら、/grill-me パイプラインを使用することを強くお勧めします。これにより、エージェントは構成の1行に触れる前にあなたの指示を反対尋問することが強制され、先ほど話したような暴走エージェントによるデータベース削除を完全に排除できます。

>> /grill-me auth.py の暗号化ロジックをPBKDF2を使用するように書き換えます。

[Agent] 質問:ターゲットのイテレーション回数はいくつですか?また、レガシーなSHA256ハッシュの下位互換性は必要ですか?

>> 600000イテレーションを使用してください。古いハッシュのためのフォールバック検証メソッドを維持してください。

[Agent] 戦略がロックされました。実行の準備ができました。

>> /goal マイグレーションを実行し、ローカルのpytestに対して検証し、グリーン(成功)であればコミットしてください。

ワークスペースの分離と保護

CLIが環境で愚かなことをするのを防ぐために、ローカルの設定サンドボックスを与える必要があります。私はこの antigravity-config.json をプロジェクトのルートにドロップします:

{
  "agent": {
    "model": "gemini-3.5-flash",
    "temperature": 0.1
  },
  "hooks": {
    "before_tool_call": "if (context.tool === 'fs.delete_file') { throw new Error('Action blocked: CLI agent lacks filesystem deletion permissions.'); }"
  },
  "permissions": {
    "allow_network": true,
    "allow_browser": false
  }
}

antigravity chat --config ./antigravity-config.json でターミナルセッションをロードすれば、ファイルシステムは偶発的なAIの削除ループから完全に保護されます。


テクノロジーを理解する:非同期割り込みが勝つ理由

2.0がなぜこれほど大規模なアーキテクチャの転換であるかを理解するには、Googleがモデルの並行処理をどのように処理したかを見る必要があります。1.xアーキテクチャでは、AIエージェントがコードを書き、リンターを実行し、ブラウザログを確認したい場合、それを順番に行いました。ツールの実行がデータを返すまで、メインスレッドはブロックされていました。モデルのコンテキストウィンドウがその間ずっと開いてアクティブなままだったため、遅くて不格好で、信じられないほど高価でした。

Antigravity 2.0は、ツールを標準のオペレーティングシステムの割り込みのように扱います。

/goal コマンドを発行すると、コアはGemini 3.5 Flashの超低レイテンシエンジンで実行される内部の非同期ループにタスクのステータスを登録します。メインの指揮者エージェント(Conductor)はその状態をコールドメモリキャッシュにドロップします。つまり、ローカルのテストランナーが依存関係をコンパイルしている間、アイドル状態のトークンに1セントも支払う必要はありません。

シェルフックが終了コード(成功または失敗)を返すと、非同期ループがイベント割り込みをトリガーし、メインエージェントを起こして新しい差分(デルタ)を提供します。これは、AIプラットフォームがネイティブなベアメタルハードウェア実行の対称性にこれまでで最も近づいたものです。


AIをオートコンプリートとして扱うのをやめる

結論はこうです。コード生成は公式に解決された問題になりました。真のエンジニアリングの戦場は今やエージェントのオーケストレーションと封じ込めです。

  • 寝ている間にリポジトリを監視してくれる、自動化された仮想エンジニアリングチームを完全に任せたい場合は、Standalone App を使用してください。
  • きめ細かい制御が必要で、ロジックを1行ずつステップ実行したい場合は、IDE を使用し続けてください。
  • デプロイメントをスクリプト化し、純粋なJSONフックを介してファイルシステムをロックダウンしたい場合は、CLI の中で生活してください。

AIを美化されたオートコンプリート・プラグインとして扱うのをやめましょう。ツールチェーンを更新し、サンドボックスを構成して、指揮者のように振る舞い始めてください。