Cloud Workstations は、Antigravity CLI や Claude Code などの自律型 AI コーディング エージェントとインタラクティブ AI コーディング エージェント向けに最適化されたランタイム環境を提供します。エージェント型開発ワークフローを実行する場合、エージェントは長時間実行される非同期タスク(コード生成、ディープ リファクタリング、テスト実行など)を頻繁に実行したり、人間の入力やレビューを待つために一時停止したりします。
標準のワークステーションのアイドル タイムアウトでは、長期間アクティビティがない場合に、エフェメラル ワークステーション VM がシャットダウンされて削除されることがあります。これにより、コンテナが終了し、エージェント コンテキストの再初期化が必要になります。エージェント向けに最適化された開発では、次の 2 つの主要な機能を組み合わせてこの問題を解決します。
- ワークステーションの一時停止(
IdleAction.SUSPEND): この機能は、ワークステーション VM がアイドル タイムアウトに達したときに、停止するのではなく自動的に一時停止します。ワークステーションを一時停止すると、仮想マシンの RAM、実行中のプロセス、開いているファイル、アクティブなエージェント コンテキストが永続ストレージに保存され、vCPU とメモリのコンピューティング費用が停止します。 - ライフサイクル キープアライブ フック: これらのフックを使用すると、AI エージェントはアクティブな処理中にバックグラウンド キープアライブ スクリプト(
/google/scripts/keep_alive.sh)を実行してタイムアウトを防ぎ、ユーザー入力の待機中またはタスクの完了後にスクリプトを終了して、ワークステーションをアイドル状態にして一時停止できます。
エージェントの最適化の仕組み
エージェントの最適化により、長時間実行タスク中の永続的な状態、費用対効果、シームレスなオペレーションが保証されます。
- アクティブな処理: エージェントがユーザーの指示の実行を開始すると、ライフサイクル フックがバックグラウンドで
/google/scripts/keep_alive.shを開始します。このスクリプトは、Cloud Workstations がワークステーションをアイドル状態としてマークしないように、定期的にキープアライブ シグナルを送信します。 - ユーザー入力またはタスク完了の待機: エージェントが作業を完了するか、デベロッパーにレビューや追加の入力を求めるために一時停止すると、イベントフックによってバックグラウンドのキープアライブ プロセスが終了します。
- 自動停止: アクティブなキープアライブ シグナルや受信トラフィックがない場合、ワークステーションのアイドル タイマーは、構成されたアイドル タイムアウトしきい値までカウントダウンします。タイムアウトすると、Cloud Workstations はワークステーションをシャットダウンするのではなく、
STATE_SUSPENDEDに移行します。 - インスタント再開: デベロッパーが戻って再接続すると( Google Cloud コンソール、IDE、SSH 経由)、ワークステーションは永続ストレージからすぐに再開され、エージェントの状態、ターミナル セッション、ワークスペース コンテキストが完全に保持されます。
ワークステーションのサスペンドを構成する
ワークステーションの停止を有効にするには、idleAction を SUSPEND に設定し、idleTimeout の期間を秒単位で指定して、ワークステーション構成を更新します。たとえば、30 分の場合は 1800s と指定します。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
Google Cloud コンソールで Cloud Shell をアクティブにします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。
外部 ID プロバイダ(IdP)を使用している場合は、まず
フェデレーション ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
コンソール
Google Cloud コンソールでワークステーション構成の停止を構成するには:
Google Cloud コンソールで、[ワークステーションの構成] に移動します。
[追加] [作成] をクリックするか、既存の構成をクリックして [編集] [編集] をクリックします。
[基本情報] セクションに入力し、[マシンの設定] に進みます。
[アイドル タイムアウト] で、アイドル タイムアウト期間(30 分など)を設定します。
[アイドル状態のアクション] プルダウンで、[一時停止](または [アイドル タイムアウト時にワークステーションを一時停止])を選択します。
残りの構成手順を完了し、[作成](または [保存])をクリックします。
gcloud
一時停止を有効にして新しいワークステーション構成を作成するには、--idle-action=suspend フラグを指定して gcloud workstations configs create コマンドを実行します。
gcloud workstations configs create CONFIG_NAME \
--cluster=CLUSTER_NAME \
--region=LOCATION \
--idle-timeout=1800 \
--idle-action=suspend
サスペンションを使用するように既存のワークステーション構成を更新するには、gcloud workstations configs update コマンドを実行します。
gcloud workstations configs update CONFIG_NAME \
--cluster=CLUSTER_NAME \
--region=LOCATION \
--idle-timeout=1800 \
--idle-action=suspend
次のように置き換えます。
CONFIG_NAME: ワークステーション構成の名前。CLUSTER_NAME: ワークステーション クラスタの名前。LOCATION: ワークステーション クラスタが配置されているリージョン。
REST
REST API を使用して一時停止を構成するには、workstationConfigs ペイロードで idleAction を SUSPEND に、idleTimeout を選択した期間に設定します。
{
"idleTimeout": "1800s",
"idleAction": "SUSPEND"
}
サンプルのキープアライブ フックを使用してエージェントを構成する
Cloud Workstations の事前構成済みベースイメージには、/google/samples/agents/keepalive/ にサンプル エージェント構成ファイルがプリインストールされています。これらのサンプルでは、キープアライブ ライフサイクルを自動的に管理するように AI コーディング エージェントを構成する方法を示します。
エージェントのキープアライブ フックの仕組み
最新の AI コーディング エージェントは、ライフサイクルの重要なマイルストーンでコマンドを実行するイベントフック システムを提供します。
- 実行開始フック: エージェントがユーザー入力の処理を開始する前にトリガーされます。フックはバックグラウンドで
/google/scripts/keep_alive.shを起動し、バックグラウンド プロセス ID(PID)を一時ファイル(/tmp/agent_keep_alive.pidなど)に書き込みます。 - 通知 / ユーザー入力待機フック: エージェントがタスクを完了したとき、またはユーザーに入力を求めるために一時停止したときにトリガーされます。フックは一時ファイルから PID を読み取り、バックグラウンドの
keep_alive.shプロセスを終了します。
Claude Code の構成
Claude Code は、設定で構成されたライフサイクル イベントフックをサポートしています。Claude Code の構成ファイルのサンプルは、次の場所にあります。
/google/samples/agents/keepalive/claude/
Claude Code では、次のイベントフックがキープアライブ プロセスを管理します。
UserPromptSubmit: ユーザーがプロンプトを送信したときにフックが実行されます。バックグラウンドでキープアライブ スクリプトを開始します。/google/scripts/keep_alive.sh & echo $! > /tmp/claude_keep_alive.pidNotification: Claude Code が通知を送信するか、ユーザー入力のために一時停止すると、フックが実行されます。アクティブなキープアライブ バックグラウンド プロセスを強制終了します。if [ -f /tmp/claude_keep_alive.pid ]; then kill "$(cat /tmp/claude_keep_alive.pid)" 2>/dev/null || true rm -f /tmp/claude_keep_alive.pid fi
サンプル構成を適用するには、/google/samples/agents/keepalive/claude/ から Claude 構成ディレクトリ(~/.claude/settings.json やプロジェクト レベルの構成など)にサンプル ファイルをコピーするか、サンプル ファイルをマージします。
Antigravity CLI の構成
Antigravity CLI は、設定で定義されたライフサイクル イベントフックをサポートしています。Antigravity CLI の構成ファイルのサンプルは次の場所にあります。
/google/samples/agents/keepalive/gemini/
Antigravity CLI では、次のイベントフックがキープアライブ プロセスを管理します。
BeforeAgent: Antigravity CLI がアクションの実行を開始する前にフックが実行されます。キープアライブ スクリプトをバックグラウンドで起動します。/google/scripts/keep_alive.sh & echo $! > /tmp/gemini_keep_alive.pidNotification: エージェントがターンを完了したとき、またはユーザーのフィードバックが必要なときにフックが実行されます。keep-alive プロセスを終了します。if [ -f /tmp/gemini_keep_alive.pid ]; then kill "$(cat /tmp/gemini_keep_alive.pid)" 2>/dev/null || true rm -f /tmp/gemini_keep_alive.pid fi
サンプル構成を適用するには、/google/samples/agents/keepalive/gemini/ から Antigravity CLI 構成ディレクトリ(~/.gemini/config.yaml やプロジェクト設定など)にサンプル ファイルをコピーまたは統合します。
カスタム エージェントの統合
カスタム AI エージェントを構築または使用する場合は、アクティブなエージェントの実行中に /google/scripts/keep_alive.sh をバックグラウンド プロセスとして起動し、エージェントがアイドル状態または待機状態になったときにプロセスを終了することで、同じキープアライブ パターンを実装できます。
一時停止されたワークステーションを再開する
ワークステーションが STATE_SUSPENDED の場合は、いつでも再開できます。
- Google Cloud コンソール: Google Cloud コンソールで、[ワークステーション] ページに移動し、一時停止したワークステーションの横にある [起動] または [開始] をクリックします。
gcloudCLI:gcloud workstations startコマンドを実行します。gcloud workstations start WORKSTATION_NAME \ --cluster=CLUSTER_NAME \ --region=LOCATION \ --config=CONFIG_NAME次のように置き換えます。
WORKSTATION_NAME: ワークステーションの名前。CLUSTER_NAME: ワークステーション クラスタの名前。LOCATION: ワークステーション クラスタが配置されているリージョン。CONFIG_NAME: ワークステーション構成の名前。
ブラウザまたは SSH 接続: ワークステーションのウェブ URL に移動するか、SSH を使用して接続すると、ワークステーションが自動的に再開されます。
再開すると、すべてのターミナル バッファ、エージェント コマンド履歴、ワークスペース ファイルが、中断したときと同じ状態で復元されます。
次のステップ
- ワークステーション構成を作成する。
- 詳しくは、Gemini CLI を使用した AI エージェントによるコーディングをご覧ください。
- 事前構成されたベースイメージを確認する。
- SSH サポートに接続する方法を確認する。