<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>デベロッパー</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/</link><description>デベロッパー</description><atom:link href="https://cloudblog.withgoogle.com/blog/ja/topics/developers-practitioners/rss/" rel="self"></atom:link><language>ja</language><lastBuildDate>Mon, 02 Nov 2026 03:54:46 +0000</lastBuildDate><image><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/static/blog/images/google.a51985becaa6.png</url><title>デベロッパー</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/</link></image><item><title>エージェント プラグインの開発から学んだ、評価エンジニアリングの 4 つの教訓</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/four-eval-engineering-lessons/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 17 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/four-eval-engineering-lessons?e=48754805&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェント システム開発における真の課題は、「作ること」ではなく「測ること」です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;評価エンジニアリングは、信頼性の高い AI システムを構築するための重要な基盤です。エージェントの挙動を正確に測る体系的かつ再現可能なテストを構築できるかどうか。それが、信頼できるツールをリリースできるか、それともサイレント エラーや API 呼び出しの失敗、誤作動を引き起こすツールになってしまうかの分かれ目となります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;私は Google で長年にわたり評価エンジニアリングの取り組みを推進してきました。新しくリリースされた &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/ja/topics/developers-practitioners/introducing-the-google-cloud-developer-plugin-for-ai-coding-agents?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Developer プラグイン&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の開発は、実際のデベロッパー ワークフローを通じてこれらの重要原則をストレステストし、検証する実践の場となりました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;新しいプラグインの開発から得られた、皆様のエージェント開発にも活かせる 4 つの評価の教訓をご紹介します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;1. 要約ではなく、実行ステップを評価する&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェントを初めて評価した際、私たちは LLM-as-a-Judge を導入し、エージェントが最終的に返したテキスト回答を点検して、チェックリストに基づいて採点していました。しかし、採点ツールはエージェントが「実際に何を行ったか」ではなく「出力したテキスト」しか見ていないため、この方法には根本的な欠陥があることにすぐ気づきました。Google Cloud Developer プラグイン向けに、最初の 11 種類のプロンプトからなる評価スイートを実行したところ、自動採点ツールは 3 つのプロンプトを「不合格」と判定しました。しかし、未加工のツール呼び出しログを開いて対話履歴を確認してみると、プラグインは実際には 3 つすべて合格していたのです。たとえば Cloud Run のクリーンアップに関するプロンプトでは、ルーブリックとして「コマンドを実行する前に構文チェックを行うこと」が定められていました。エージェントは、最初のステップとして gcloud help run services list を実行しました。作業自体は完了していたものの、エージェントが最後に出力したメッセージは、ヘルプ ドキュメントを確認したことをわざわざ報告するのではなく、データの永久損失についてユーザーに警告することを優先していたのです。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_1_XmJ1pt2.max-1000x1000.png"
        
          alt="Image 1"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;採点ツールは、エージェントが正しい対応をしたにもかかわらず、要約でそれを報告しなかったという理由だけで減点してしまったのです。ルーブリックの項目に「X を実行したか？」とあっても、実際のツール呼び出しの実行プロセスを評価しない限り、LLM による判定は単なる推測にすぎません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;要点:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; エージェントの評価を、最後に出力されるまとめの言葉だけで行わないでください。未加工の実行プロセスを採点し、実際にどんなコマンドが実行され、検証され、対象範囲が設定されたのかを確認してください。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;2. 非同期オペレーションの評価を設計する&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ツール呼び出しの実行プロセスを読み解く段階になると、何を読み取るかと同じくらい、そのテレメトリーをどう抽出するかが重要になってきます。エージェント テレメトリーを時系列のフラットなイベントリストとして抽出してしまうと、ツールの同時ディスパッチが見えなくなってしまいます。これは、動作不良を引き起こす重大な原因の一つです。最新のエージェント ハーネスは、多くの場合、配列を使用して複数のツール呼び出しをまとめ、1 回のアシスタント ターンでバッチ処理します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;実際の評価で、エージェントに「環境の検査」と「ドキュメントの検索」をリクエストしたところ、ハーネスはスキルの読み込みと 2 件のドキュメント検索を、1 つの tool_calls ペイロード内で同時にディスパッチしました。スキルの有効化は多段階のプロセスです。最初の呼び出しでは短い起動スタブのみが返され、その次のターンで初めて指示の本文が挿入されます。そのため、検索処理を制御すべき指示がプロンプト コンテキストに届いたときには、システムはすでに検索を完了してしまっていたのです。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/image_2_CHyk3qC.max-1000x1000.png"
        
          alt="image 2"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;システムはスキルに対して専用のターンを挟まなかったため、スキルの指示をエージェントの行動に反映させることができなかったのです。テレメトリー パイプラインがターン構造を取り除き、すべての呼び出しを 1 つのフラットなタイムラインに統合してしまうと、エンジニアは「なぜエージェントはスキルに埋め込まれた明確な指示を無視したのか？」と思い悩み、何日も無駄に過ごすことになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;要点: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;テレメトリーの抽出時にターン構造を保持してください。そうすることで、追加の指示がコンテキスト ウィンドウに読み込まれる前に、クライアントサイドで並列ディスパッチによるツール呼び出しが行われてしまう事象を検知できます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;3. ライブ実行と「ドライラン」を並行してテストする&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;並列ディスパッチなど、ハーネス独自の挙動を把握するには、実際の API 呼び出しを検査する必要があります。しかし、単一の環境条件だけでエージェントをテストしていると、重要な問題の半分を見落とすことになります。最初から、ライブ実行とプランのみの実行の 2 パターンを並行して実施する必要があります。ライブ実行の条件では、エージェントはサンドボックス化された実際の認証情報を保持し、実際にコマンドを実行します。これにより、構文が正常に動作するか、パラメータが綺麗にシリアライズされるか、破壊的な操作を行う前にエージェントに自制が効くかを確認できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ライブ実行では、ステップ 2 で予期しない権限エラーが発生し、テストしようとしている挙動に到達する前にテストが中止されることがよくあります。そこで必要になるのが「プランのみ」の条件です。あらかじめ認証情報を取り除いておき、何も実行せずに「何をしようとしているのか」をエージェントに説明させます。これにより権限の障害が取り除かれ、モデルの純粋な推論とルーティングの意図が明らかになります。最も重要な発見の約半分は、この 2 つの差から得られたものです。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/image_3_OixTmu5.max-1000x1000.png"
        
          alt="image 3"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;たとえば、あるオンボーディング用のプロンプトでは、プロジェクト リストの呼び出し時にライブ実行がすぐにブロックされてしまいました。対照的に、プランのみの実行はスムーズに完了し、組織のポリシー、管理者の承認、ガバナンスを完全に無視した 8,000 文字のプランを生成しました。プランのみの実行がわずか数秒で明らかにした重大な認知上の欠陥が、ライブ実行では覆い隠されてしまっていたのです。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;要点:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ライブ評価とプランのみの評価を並行して実施してください。ライブ実行では実際の実行と安全上の制御をテストします。プランのみの実行では、権限エラーに阻まれることなく、モデルの生の推論とルーティングを確認できます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;4. 「ゴールデン セット」を永続的なベースラインとして使用する&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;フロンティア モデルのアーキテクチャは数か月ごとに変化し、エージェント ハーネスは進化し、プラグイン マニフェストの標準も必然的に変わっていきます。Google Cloud Developer プラグインを構築するにあたり、私たちは評価を、こうした非決定的な環境における継続的インテグレーション テストとして扱いました。つまり、ハーネス、ライブモデル、そして各種ツールが連携して動作する複合スタックに対し、現実的なタスクを使用してストレステストを実施したのです。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このアプローチでは、最終的なテキスト出力から推測するのではなく、エージェントが何を考え、実際にどのようなコマンドを実行し、何も壊さずに問題を解決できたかという、実行プロセス全体を把握します。次に、理想的なパスを理解している人間の専門家がキュレートしたゴールデン セットに対して、その実行結果を採点します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;要点:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ハーネス、モデル、プラグインなど、システム全体が実際の運用環境で実行すべきことに基づいて、ゴールデン セットを構築してください。モデルは変化しますが、そうしたベースラインの実行結果がセーフティネットになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;注意: 「ワンショット」デモではなく評価スイートを使用する&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エンジニアが陥りがちな間違いの一つに、私がワンショット デモと呼んでいる手法があります。これは、LLM にプロンプトを入力し、LLM が完全な 3D ゲームを構築したりルービック キューブを一発で解いたりするのを見て、それを「評価」と呼んでしまうような状態のことです。しかし実際には、これは自己満足のための指標にすぎません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AI で質の高い作業を行うには、評価スイートが必要だと私は確信しています。評価なしで進めるのは、暗闇の洞窟へと目隠しで飛び込むようなものです。エンタープライズ グレードのエージェントを開発するなら、複数ステップに及ぶ対話の処理能力、権限の制御、そして破壊的な結果の回避能力をテストしなければなりません。たとえば、「コスト削減の機会を見つけて」とリクエストしただけなのに、プロジェクトが誤って削除されてしまうような事態を防ぐ必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次のステップ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェント プラグインや MCP サーバーの構築は、始まりにすぎません。実際のクラウド インフラストラクチャ環境で真に信頼できるものをリリースするには、期待どおりに動作することを確認するための評価作業に、かなりの労力が必要となります。結局のところ、モデルの入れ替わりを乗り越えられるのは、ストレステスト済みの評価スイートだけです。Google Cloud Developer プラグインの&lt;/span&gt;&lt;a href="https://g.dev/cloud/dev-setup" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をご確認いただくか、こちらの &lt;/span&gt;&lt;a href="https://g.dev/cloud/agent-plugins-codelab-agy" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Codelab&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; をご覧になり、Antigravity でプラグインの利用を始めてみてください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud、AI インフラストラクチャおよび応用エンジニアリング担当デベロッパー リレーションズ リード、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Casey West&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Mon, 02 Nov 2026 03:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/four-eval-engineering-lessons/</guid><category>AI &amp; Machine Learning</category><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/blog-post-banner_4eel_v2_2.png.jpg" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>エージェント プラグインの開発から学んだ、評価エンジニアリングの 4 つの教訓</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/original_images/blog-post-banner_4eel_v2_2.png.jpg</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/four-eval-engineering-lessons/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Casey West</name><title>Developer Relations Lead, AI Infrastructure &amp; Applied Engineering, Google Cloud</title><department></department><company></company></author></item><item><title>Google Antigravity で Claude Opus 5.5 と Claude Sonnet 5.5 が利用可能に</title><link>https://cloud.google.com/blog/ja/products/ai-machine-learning/claude-opus-55-and-claude-sonnet-55-available-in-antigravity/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="baf5s"&gt;※この投稿は米国時間 2026 年 10 月 21 日に、Google Cloud blog に&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/claude-opus-55-and-claude-sonnet-55-available-in-antigravity?e=48754805&amp;amp;hl=en"&gt;投稿&lt;/a&gt;されたものの抄訳です。&lt;/p&gt;&lt;p data-block-key="7buti"&gt;手早いバグの修正の繰り返しから複雑な移行の計画まで、タスクごとに適したモデルは異なります。&lt;/p&gt;&lt;p data-block-key="e4hhr"&gt;オープンなエコシステムへの取り組み、そしてあらゆるタスクに最適なモデルを開発者に提供するという Google Cloud のコミットメントに基づき、&lt;b&gt;Google Cloud をご利用のお客様は Google Antigravity で Claude Opus 5.5 と Claude Sonnet 5.5 をお使いいただけるようになりました。&lt;/b&gt;Claude Opus 5.5 は複雑なタスク向けに設計されているのに対し、Claude Sonnet 5.5 はより高速かつ低コストな補完モデルです。&lt;/p&gt;&lt;p data-block-key="v010"&gt;管理者によって有効化されると、開発者はモデル選択ツールから Claude Opus 5.5 と Sonnet 5.5 を直接選択できるようになります。管理者は、Gemini 3.8 Flash や Gemini 4 Argon を含む Google の Gemini モデルを選択することもできます。これらのモデルは、Antigravity 2.0、Antigravity CLI のほか、VS Code、JetBrains IntelliJ、Visual Studio 向けに最近リリースされた &lt;a href="https://antigravity.google/docs/ide/extensions/" target="_blank"&gt;Antigravity IDE 拡張機能&lt;/a&gt;に適用されます。これにより、エンタープライズ共通の請求枠組みとセキュリティ境界のもとで、タスクに最適なモデルを選択できるようになります。&lt;/p&gt;&lt;p data-block-key="3ksjp"&gt;この投稿では、これらのモデルを使用して Antigravity で開発を行うための 2 つのエンジニアリング パターンをご紹介します。全サブスクリプション プランにおいて Antigravity でサポートされているモデルの一覧については、&lt;a href="https://antigravity.google/docs/models/" target="_blank"&gt;こちらのドキュメント&lt;/a&gt;をご覧ください。&lt;/p&gt;&lt;h3 data-block-key="9s559"&gt;&lt;b&gt;Antigravity のマルチモデル エンジニアリング パターン&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="d9rod"&gt;同じエージェント ハーネス内で複数のモデル ファミリーを利用可能にすることで、レイテンシとコストを管理しながらコードの品質を高める、実践的なマルチモデル ワークフローが実現します。&lt;/p&gt;&lt;p data-block-key="3hgq9"&gt;&lt;b&gt;パターン 1: ループ ワークフローとグラフ ワークフローでのクロスモデル検証（「LLM-as-a-Judge」）&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="2k1jg"&gt;エージェント ループや複数ステップのグラフ ワークフローを構築する際、コードの記述と自身の出力のレビューに同じモデルを使用すると、そのモデル固有の盲点を補強してしまう恐れがあります。2 つの異なるモデル ファミリーを組み合わせ、一方を実装者、他方を検証者（判定者）とすることで、ワークフローの次のステージに進む前に第三者的な検証が可能になります。&lt;/p&gt;&lt;p data-block-key="bhc26"&gt;Antigravity では、このパターンをインタラクティブに実行することも、自動化されたサブエージェントを介して実行することもできます。&lt;/p&gt;&lt;ol&gt;&lt;li data-block-key="21am7"&gt;&lt;b&gt;モデル A で計画と実装を行う:&lt;/b&gt; Claude Opus 5.5 または Gemini 4 Argon を使用してプランニング モードで開始し、複数ファイルにわたる変更の設計と実装を行います。&lt;/li&gt;&lt;li data-block-key="8psbr"&gt;&lt;b&gt;モデル B で検証する:&lt;/b&gt; ループの変更を commit するか、次のステップへ進める前に、モデルを切り替えるか、CLI で単発の /model チェックを呼び出して、別のモデル ファミリーにテストスイートや要件に照らして実装を評価させます。&lt;/li&gt;&lt;/ol&gt;&lt;p data-block-key="9ctlv"&gt;&lt;b&gt;パターン 2: 推論モデルと Flash サブエージェントの組み合わせ&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="fgij4"&gt;複雑なエンジニアリング タスクでは、高度な推論を要する少数の意思決定と、大量の機械的なルックアップ（ファイルの検索、ログの grep、lint 出力の確認、テスト失敗の分類など）が組み合わされることがよくあります。すべてのルックアップをフロンティア モデルで実行すると、レイテンシとコストの両方が増加する可能性があります。&lt;/p&gt;&lt;p data-block-key="8arge"&gt;Antigravity のサブエージェント カスタマイズ システム（.agents/agents/*.md）を使用すると、特定のモデルティア（inherit、flash、pro）を専門のサブエージェントに割り当てることができます。プライマリ セッションでより強力なモデルを稼働させている場合、以下のように動作します。&lt;/p&gt;&lt;p data-block-key="5goh8"&gt;model: inherit が設定されたサブエージェントは、高度な推論を要するサブタスクに対してアクティブなセッション モデルを使用します。&lt;/p&gt;&lt;p data-block-key="5k1bl"&gt;model: flash が設定されたサブエージェントは、高速な検索、分類、トリアージ作業を Gemini Flash モデルにオフロードします。&lt;/p&gt;&lt;p data-block-key="45e7v"&gt;たとえば、.agents/agents/test-triager.md で高速なログ トリアージ サブエージェントを以下のように定義できます。&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;---\r\nname: test-triager\r\ndescription: Runs unit tests, classifies failures, and returns a concise summary of failing assertions.\r\nmodel: flash\r\ntools:\r\n  - read\r\n  - edit\r\n---\r\n\r\nRun the requested test targets, classify any failures by root cause (compilation error, assertion failure, or timeout), and return a structured summary to the parent agent.&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5011e1c90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="5p921"&gt;また、.agents/agents/gemini-judge.md では、クロスモデルのコードレビュー担当者サブエージェントを以下のように定義できます。&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;quot;---\r\nname:cross-model-judge\r\ndescription: Independent LLM-as-a-judge verifier that audits diffs and edge cases using Gemini Pro.\r\nmodel: pro\r\ntools:\r\n  - read\r\n---\r\n\r\nReview the current workspace diff against the user&amp;#x27;s requirements. Check for regressions, missing edge-case tests, and security issues. Output a pass/fail verdict with specific line references.&amp;quot;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500148450&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="5p921"&gt;この設定により、高速な「テストと分類」のループを test-triager に委任し、cross-model-judge をトリガーして最終的なコード差分を検証できます。これにより、各モデルの強みを単一のワークフロー内で活かすことが可能になります。&lt;/p&gt;&lt;h3 data-block-key="737rc"&gt;&lt;b&gt;ご利用にあたって&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="buj83"&gt;Claude Opus 5.5 と Claude Sonnet 5.5 は、Antigravity を使用している Google Cloud のお客様にご利用いただけます。&lt;/p&gt;&lt;ol&gt;&lt;li data-block-key="etdrc"&gt;&lt;b&gt;管理者（Gemini for Business）:&lt;/b&gt; サードパーティのパートナー モデルは、プールされている Gemini Enterprise Standard および Plus エディションの月間トークン割り当てから消費されることはありません。代わりに、既存の Google Cloud 請求先アカウントを通じて従量課金制で請求されるため、超過料金の設定を有効にする必要があります。Google Cloud コンソールで [Gemini Enterprise] &amp;gt; [設定] &amp;gt; [AI デベロッパー ツール] に移動して、超過料金の請求、費用の上限、組織のパートナー モデルの承認を構成します。詳しい手順については、&lt;a href="https://cloud.google.com/gemini/enterprise/docs/ai-developer-tools-settings"&gt;AI デベロッパー ツールの設定方法&lt;/a&gt;をご覧ください。&lt;/li&gt;&lt;li data-block-key="8mh4h"&gt;&lt;b&gt;管理者（Gemini プラットフォーム）:&lt;/b&gt; Gemini プラットフォームの API 経由で Antigravity をご利用の場合も、パートナー モデルを有効化できます。Model Garden で Claude モデルを有効化し、Anthropic の標準利用規約に同意してください。&lt;/li&gt;&lt;li data-block-key="5m63a"&gt;&lt;b&gt;開発者:&lt;/b&gt; Antigravity 2.0、Antigravity CLI、または Antigravity IDE 拡張機能を最新バージョンに更新し、モデル選択ツールを開いて（または /model を実行して）、タスクに適したモデルを選択します。エンタープライズ ガバナンスやマルチエージェント構成の詳細については、&lt;a href="https://antigravity.google/docs/enterprise/" target="_blank"&gt;Google Antigravity Enterprise のドキュメント&lt;/a&gt;をご覧ください。ワークスペースの状態、開いているアーティファクト、ターミナルのコンテキストを保持したまま、同じ会話スレッド内のターン間でアクティブなモデルを切り替えることが可能です。&lt;/li&gt;&lt;/ol&gt;&lt;p data-block-key="cnhj3"&gt;&lt;sup&gt;注: コンテキスト管理や要約といった高頻度で発生するクライアントサイドの調整処理のために、軽量なファースト パーティの Gemini モデルがバックグラウンドで引き続き稼働します。これらのモデルはファースト パーティ トークンを消費するため、料金が発生する場合があります。&lt;/sup&gt;&lt;/p&gt;&lt;p data-block-key="ad4r0"&gt;&lt;b&gt;&lt;i&gt;-&lt;/i&gt;&lt;/b&gt; &lt;i&gt;Google Cloud、プロダクト マーケティング マネージャー、&lt;/i&gt;&lt;b&gt;&lt;i&gt;Marialaura Garcia&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="7bk35"&gt;&lt;b&gt;&lt;i&gt;-&lt;/i&gt;&lt;/b&gt; &lt;i&gt;Google Antigravity、デベロッパーリレーションズ、&lt;/i&gt;&lt;b&gt;&lt;i&gt;Rich Hyndman&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 28 Oct 2026 01:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/products/ai-machine-learning/claude-opus-55-and-claude-sonnet-55-available-in-antigravity/</guid><category>Developers &amp; Practitioners</category><category>AI &amp; Machine Learning</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Google Antigravity で Claude Opus 5.5 と Claude Sonnet 5.5 が利用可能に</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/products/ai-machine-learning/claude-opus-55-and-claude-sonnet-55-available-in-antigravity/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Marialaura Garcia</name><title>Product Marketing Manager</title><department>Google Cloud</department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Rich Hyndman</name><title>Developer Relations</title><department>Google Antigravity</department><company></company></author></item><item><title>「MCP ツールボックス」Java SDK v1.0 のご紹介: 企業向けのエージェント型データアクセス</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-mcp-toolbox-java-sdk-v10-agentic-data-access-for-the-enterprise/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 7 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/announcing-mcp-toolbox-java-sdk-v10-agentic-data-access-for-the-enterprise?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;MCP ツールボックス v1.0 の&lt;/span&gt;&lt;a href="https://medium.com/google-cloud/mcp-toolbox-v1-0-the-open-source-framework-for-secure-agentic-data-access-3c2199546ba8" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;画期的な発表&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;に続き、&lt;/span&gt;&lt;a href="https://github.com/googleapis/mcp-toolbox-sdk-java" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;「MCP ツールボックス」Java SDK &lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;バージョン 1.0 が正式にリリースされたことをお知らせいたします。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このリリースにより、世界で最も広く採用されているエンタープライズ向けエコシステムの一つで、最高水準の型安全なエージェント オーケストレーションが実現します。Java の成熟したアーキテクチャは、厳しい要求に対応できるよう構築されており、本番環境でミッションクリティカルな AI エージェントを安全にスケールするために必要な高い同時実行性、厳格なトランザクション整合性、堅牢な状態管理を提供します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この投稿では、Java SDK v1.0 の新機能について説明し、実際の例を示しながら、独自の実装を始めるためのステップを解説します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;MCP: ユニバーサル インターフェース&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;現在、デベロッパーは複雑化する統合のボトルネックに直面しています。&lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;N&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; 個の異なる AI モデルと &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;M&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; 個のエンタープライズ データソースがある場合、&lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;N × M&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; 個のカスタム接続を構築、保護、維持する必要があります。このように統一されたインテグレーション レイヤがないため、エンジニアリング チームは、断片化されたアドホックなパイプラインが複雑に入り組んだ状態に頼らざるを得ません。その結果、エージェント アーキテクチャのスケーリングはすぐに持続不可能になり、機密性の高いエンタープライズ データベースが深刻なセキュリティ脆弱性、断片化されたアクセス制御、膨大なメンテナンス オーバーヘッドにさらされることになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Model Context Protocol（MCP）が解決する根本的な課題は、複雑に絡み合った独自のインテグレーションを解消することです。MCP は、AI オーケストレーションの「USB Type-C」のようなユニバーサル インターフェースとして機能し、モデルをデータソースから分離します。デベロッパーは、新しいモデルやデータベースごとにカスタムまたはマネージド API 統合コードを記述する代わりに、単一の標準化されたプロトコルに準拠してコードを記述します。このアプローチにより、MCP 準拠のエージェントは、MCP 対応のシステムとセキュアかつ即座にやり取りできます。MCP 接続により、デベロッパーは新しいモデルごとに個別のインテグレーションを構築することなく、エージェントを実世界のシステムに接続できます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Java SDK v1.0 の新機能: 本番環境ワークロードに対応&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;「MCP ツールボックス」Java SDK の&lt;/span&gt;&lt;a href="https://medium.com/google-cloud/announcing-the-mcp-toolbox-java-sdk-2ed3171bbaa0" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;公開ベータ版&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を発表した際、Google の目標は、最高水準の型安全なエージェント オーケストレーションをエンタープライズ Java 環境に提供することでした。それ以来、Google はデベロッパーやオープンソースのコントリビューターと協力して API の堅牢化に努めてきました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;v1.0 リリースは、エンタープライズ ワークロードに適した、安定した後方互換性を備えた基盤となります。v0.2 リリース以降の新機能と堅牢化された機能は次のとおりです。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;トランスポート層の抽象化と &lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;HttpMcpTransport&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;HttpMcpTransport&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; とともに、クリーンなトランスポート層の抽象化を導入しました。この機能により、コア プロトコル ロジックが基盤となる HTTP クライアントから分離されるため、ネットワーク実装の入れ替えや接続プールのカスタマイズが容易になります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;クライアント認証の疎結合化&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 企業のセキュリティ コンプライアンスを簡素化するため、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;CredentialsProvider&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; クラスと &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;AuthMethods&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; クラスを使用してクライアント認証を切り離しました。認証情報はリクエストごとに非同期で解決されるため、チームはトークンを動的に更新したり、独自のトークンソースをプラグインしたりできます（ADC 経由の Google OIDC は標準で組み込まれており、それ以外は 1 つのメソッドを実装するだけのインターフェースです）。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;デフォルト パラメータのサポート&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: ツール パラメータのデフォルト値をネイティブにサポートすることで、プロンプトのペイロード サイズを削減し、エージェントの信頼性を高めます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;バインドされたパラメータのプルーニング&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: サーバーサイドでバインドされた機密性の高いパラメータ（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;tenant_id&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; など）が、公開されたツール定義から自動的に削除されるようになり、LLM による操作を防ぎます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;バージョン選択とセッション トラッキング&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 標準化された MCP バージョン選択と堅牢なセッション トラッキングにより、一貫したプロトコル ネゴシエーションと会話状態のライフサイクルを実現します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;HTTP 認証情報の漏洩に関する警告&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 認証情報が平文の HTTP 接続で送信されようとしているときに、実行時に警告を発する組み込みの検出機能を追加しました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;汎用クライアント ヘッダーのマップ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: カスタムの企業プロキシ ヘッダー、トランザクション トレース ID、相関メタデータを、すべての送信リクエストに簡単に追加できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Java SDK v1.0 を使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;「MCP ツールボックス」Java SDK は、企業チームがスムーズに利用できるように設計されています。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;pom.xml&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; に次の依存関係を追加するだけで利用を開始できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;&amp;lt;dependency&amp;gt;\r\n    &amp;lt;groupId&amp;gt;com.google.cloud.mcp&amp;lt;/groupId&amp;gt;\r\n    &amp;lt;artifactId&amp;gt;mcp-toolbox-sdk-java&amp;lt;/artifactId&amp;gt;\r\n    &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;\r\n&amp;lt;/dependency&amp;gt;&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5000f7850&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;実際の例: 自律型交通コンシェルジュ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Java SDK を AlloyDB と組み合わせて活用する例として、企業のユースケースを見てみましょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;架空の都市間バス交通ネットワークである &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Cymbal Transit&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; をご紹介します。利用者は、旅行を計画するのに、ネストされたプルダウン メニューを何度もクリックするような操作は望んでいません。次のように質問したいと考えています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;「明日の朝、ニューヨークからボストンまで移動する必要がある。ゴールデン レトリバーを連れて行くことはできる？連れて行ける場合は、最も早い便を予約して。」&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AI エージェントがこの質問に答えるには、非構造化データ（ペットに関するポリシー）と構造化データ（運行スケジュール、座席の空き状況）を相互参照し、会話のコンテキストを維持しながらトランザクションを実行（予約）する必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;基盤: ネイティブ エンベディングを備えた AlloyDB スキーマ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この実装には、リレーショナル データと高次元ベクトルをネイティブに処理できる AlloyDB を使用しました。そして、次のステートメントを使用してデータベース テーブルを作成しました。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;quot;-- Enable necessary extensions for semantic search and embeddings\r\nCREATE EXTENSION IF NOT EXISTS vector;\r\nCREATE EXTENSION IF NOT EXISTS google_ml_integration;\r\n\r\n-- Table 1: Transit Policies (Unstructured Data for RAG)\r\nCREATE TABLE transit_policies (\r\n    policy_id SERIAL PRIMARY KEY,\r\n    category VARCHAR(50),\r\n    policy_text TEXT,\r\n    policy_embedding vector(768)\r\n);\r\n\r\n-- Table 2: Intercity Bus Schedules (Structured Data)\r\nCREATE TABLE bus_schedules (\r\n    trip_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\r\n    origin_city VARCHAR(100),\r\n    destination_city VARCHAR(100),\r\n    departure_time TIMESTAMP,\r\n    arrival_time TIMESTAMP,\r\n    available_seats INT DEFAULT 50,\r\n    ticket_price DECIMAL(6,2)\r\n);\r\n\r\n-- Table 3: Booking Ledger (Transactional Action Data)\r\nCREATE TABLE bookings (\r\n    booking_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\r\n    trip_id UUID REFERENCES bus_schedules(trip_id),\r\n    passenger_id VARCHAR(100),\r\n    status VARCHAR(20) DEFAULT &amp;#x27;CONFIRMED&amp;#x27;,\r\n    booking_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP\r\n);&amp;quot;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-sql&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5000f6610&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;インテントと SQL のマッピング: &lt;/strong&gt;&lt;code style="vertical-align: baseline;"&gt;tools.yaml&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;MCP ツールボックスを使用すると、カスタムツールをセキュアに定義できます。LLM にデータベースへの直接アクセスを許可するのではなく、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;tools.yaml&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; の設定によって、自然言語のインテントをパラメータ化された安全なクエリに直接マッピングします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;kind: source\r\nname: alloydb\r\ntype: alloydb-postgres\r\nproject: my-project\r\nregion: us-central1\r\ncluster: my-cluster\r\ninstance: my-instance\r\ndatabase: postgres\r\n---\r\nkind: tool\r\nname: query-schedules\r\ntype: postgres-sql\r\nsource: alloydb\r\ndescription: Find available bus schedules between cities.\r\nparameters:\r\n  - name: origin\r\n    type: string\r\n    description: The departure city name.\r\n  - name: destination\r\n    type: string\r\n    description: The arrival city name.\r\n  - name: limit\r\n    type: integer\r\n    description: Maximum number of schedules to return.\r\n    default: 5\r\nstatement: |\r\n  SELECT CAST(trip_id AS TEXT) AS trip_id, departure_time, ticket_price\r\n  FROM bus_schedules\r\n  WHERE lower(origin_city) = lower($1) AND lower(destination_city) = lower($2)\r\n  ORDER BY departure_time ASC\r\n  LIMIT $3&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500f2f190&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;完全な YAML ファイルについては、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;mcp-toolbox-sdk-java&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; リポジトリの&lt;/span&gt;&lt;a href="https://github.com/googleapis/mcp-toolbox-sdk-java/blob/main/demo-applications/cymbal-transit/tools.yaml" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;code style="text-decoration: underline; vertical-align: baseline;"&gt;tools.yaml&lt;/code&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; ファイルをご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Spring Boot のステートフル エージェント アーキテクチャ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エンタープライズ アプリケーションで会話型 AI を構築するうえで最も難しいのは、状態の管理です。ユーザーが「空席がある便の出発時間は？」と尋ねた後、「午前 8 時の便を予約して」と言った場合、エージェントはターンをまたいで前のコンテキストを覚えておく必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;「MCP ツールボックス」Java SDK を Spring Boot および LangChain4j と併せて使用すると、HTTP セッションで会話のメモリを適切に維持し、エージェントを次の 2 つの宣言型コンポーネントに明確に分離できます。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;HTTP セッションを介してプロンプト、ツール、会話のメモリを管理する宣言型エージェント インターフェース。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;エージェントのリクエストを MCP ツールボックス サーバーに直接ルーティングするツール実行サービス。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;interface TransitAgent {\r\n    @SystemMessage({\r\n        &amp;quot;You are the Cymbal Transit Concierge.&amp;quot;,\r\n        &amp;quot;Use the \&amp;#x27;querySchedules\&amp;#x27; tool for finding schedules.&amp;quot;,\r\n        &amp;quot;Use \&amp;#x27;bookTicket\&amp;#x27; to execute transactions.&amp;quot;,\r\n        &amp;quot;Use \&amp;#x27;searchPolicies\&amp;#x27; to look up luggage and pet rules.&amp;quot;\r\n    })\r\n    String chat(@MemoryId String sessionId, @UserMessage String userMessage);\r\n}\r\n\r\n@Service\r\nclass TransitAgentTools {\r\n    // These methods automatically invoke our MCP Toolbox server!\r\n    @Tool(&amp;quot;Query specific schedules between an origin and destination city.&amp;quot;)\r\n    public String querySchedules(String origin, String destination) { ... }\r\n\r\n    @Tool(&amp;quot;Book a ticket for a passenger.&amp;quot;)\r\n    public String bookTicket(String tripId, String passengerName) { ... }\r\n\r\n    @Tool(&amp;quot;Search transit policies for luggage and pet rules.&amp;quot;)\r\n    public String searchPolicies(String query) { ... }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500f2cc90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;code style="vertical-align: baseline;"&gt;@MemoryId&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; アノテーションがセッション トラッキングを抽象化している点に注目してください。これにより、Spring Boot は会話のコンテキストをユーザーの HTTP セッションに自動的に関連付けることができます。その一方で、LangChain4j と MCP ツールボックスが舞台裏でスキーマ変換とツール ルーティングを処理するため、手動で if/else 文によるインテント解析を書く必要はありません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;「MCP ツールボックス」Java SDK と LangChain4j を組み合わせることで、関心の分離を明確にし、手間をかけずに状態を管理できるようになります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ボイラープレート不要のセッション管理&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@MemoryId String sessionId&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; パラメータにより、会話履歴がユーザーの HTTP セッションに直接バインドされます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;宣言型エージェント コントラクト&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;TransitAgent&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; インターフェースは、複雑なプロンプト テンプレートを使用せずに、モデルのペルソナとシステム指示を定義します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;型安全なツールの実行&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;TransitAgentTools&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; Spring サービスが、リモート MCP データベース ツールをネイティブ Java メソッドとしてラップします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このアーキテクチャにより、エージェントのモジュール性を保つことができます。インターフェースでプロンプト ガイダンスを改良し、ユーザー セッションを自動的に管理しながら、密結合させることなく MCP ツールボックスを介して安セキュアなデータベース クエリを実行できます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;すべてをつなぎ合わせる: Java v1.0 におけるツールのリスト表示、呼び出し、実行&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;次に、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;TransitAgentTools&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; インターフェースの内部を見てみましょう。Spring &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@Service&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; の LangChain4j &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@Tool&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; メソッド内では、MCP ツールボックス Java SDK が、Java サービス メソッドを &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;tools.yaml&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; ファイルで定義された MCP ツールに橋渡しするという複雑な処理を肩代わりします。型安全なコードを数行記述するだけで、新しい v1.0 の疎結合な認証情報とヘッダーの抽象化を使用してクライアントを初期化できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;// 1. Initialize the Client with Decoupled Auth and Custom Headers (v1.0)\r\nString serviceUrl = &amp;quot;https://toolbox-my-project-uc.a.run.app/mcp&amp;quot;;\r\nMcpToolboxClient mcpClient = McpToolboxClient.builder()\r\n    .baseUrl(serviceUrl)\r\n    .credentialsProvider(new GoogleCredentialsProvider(serviceUrl)) // Decoupled OIDC credentials\r\n    .headers(Map.of( // Generic client headers\r\n        &amp;quot;X-Correlation-ID&amp;quot;, &amp;quot;enterprise-session-abc123&amp;quot;,\r\n        &amp;quot;X-Client-Platform&amp;quot;, &amp;quot;Spring-Boot&amp;quot;\r\n    ))\r\n    .build();\r\n\r\n// 2. Listing Discoverable Tools\r\nmcpClient.listTools().thenAccept(tools -&amp;gt; {\r\n    System.out.println(&amp;quot;Successfully discovered &amp;quot; + tools.size() + &amp;quot; tools.&amp;quot;);\r\n});\r\n\r\n// 3. Invoking a Tool (Read-Only Data with Default Parameter Support)\r\n// &amp;quot;limit&amp;quot; is omitted: the SDK fills it from the default in the tool definition\r\nString schedules = mcpClient.loadTool(&amp;quot;query-schedules&amp;quot;)\r\n    .thenCompose(tool -&amp;gt; tool.execute(Map.of(\r\n        &amp;quot;origin&amp;quot;, &amp;quot;New York&amp;quot;,\r\n        &amp;quot;destination&amp;quot;, &amp;quot;Boston&amp;quot;)))\r\n    .join().text();\r\n\r\n// 4. Executing a Transactional Tool (Using Bound Parameters)\r\nAuthTokenGetter toolAuthGetter = () -&amp;gt; CompletableFuture.completedFuture(myIdToken);\r\n\r\nString bookingConfirmation = mcpClient.loadTool(&amp;quot;book-ticket&amp;quot;, Map.of(&amp;quot;google_auth&amp;quot;, toolAuthGetter))\r\n    // Bind the authenticated user context securely. bindParam returns a new immutable\r\n    // Tool, and the bound parameter is pruned from the definition exposed to the LLM!\r\n    .thenCompose(tool -&amp;gt; tool.bindParam(&amp;quot;passenger_name&amp;quot;, &amp;quot;Jane Doe&amp;quot;)\r\n        // Execute the mutable transaction\r\n        .execute(Map.of(&amp;quot;trip_id&amp;quot;, &amp;quot;123e4567-e89b-12d3-a456-426614174000&amp;quot;)))\r\n    .join().text();&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500f2df50&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;セキュア バイ デフォルト: 認証とデプロイ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AI エージェントを本番環境に移行するには、堅牢な認証情報処理と、需要に応じてスケールするインフラストラクチャが必要です。さまざまな環境で認証情報の安全性を確保し、Cloud Run に独立してデプロイする方法を見ていきましょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;アプリケーションのデフォルト認証情報（ADC）と安全性&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code style="vertical-align: baseline;"&gt;GoogleCredentialsProvider&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; サービスを使用すると、Java アプリはアプリケーションのデフォルト認証情報（ADC）を介して、実行環境（ローカルまたは Google Cloud）から安全な ID を継承します。ハードコードされた鍵は不要で、OIDC トークンがオーディエンスごとにバックグラウンドで生成され、キャッシュに保存されます。さらに、v1.0 では HTTP 認証情報の漏洩警告が提供されます。これは、認証情報が平文の HTTP 接続で送信されようとしていることを自動的に検出し、HTTPS に切り替えるよう指示するランタイム警告を発します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;フリートを Cloud Run にデプロイ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;MCP ツールボックスと Spring Boot エージェントは完全に疎結合化されているため、Google Cloud Run で独立してスケールし、高い同時実行性とステートフルな会話の要件に対応できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Cloud Run でツールボックスをセットアップして構成するには、オープンソースのデータベース向け MCP ツールボックスをダウンロードしてから、&lt;/span&gt;&lt;a href="https://mcp-toolbox.dev/documentation/deploy-to/cloud-run" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;デプロイガイド&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;に沿って操作します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;「MCP ツールボックス」Java SDK v1.0 を使用すると、企業の Java チームは Spring Boot と LangChain4j エージェントをツールボックス サーバーに接続し、そこから AlloyDB やその他のサポートされているデータソースに接続できます。ツールボックスを使用すると、引数は JVM から送信される前にツール定義に照らして検証され、認証は疎結合化され、カスタム ヘッダーがすべての送信リクエストに添付されます。&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;導入手順&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;は次のとおりです。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;ステップ 1: 依存関係を追加する&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;SDK を使用して開発を始めるには、Maven プロジェクトの &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;pom.xml&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; ファイルに次の依存関係を追加します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;&amp;lt;dependency&amp;gt;\r\n        &amp;lt;groupId&amp;gt;com.google.cloud.mcp&amp;lt;/groupId&amp;gt;\r\n        &amp;lt;artifactId&amp;gt;mcp-toolbox-sdk-java&amp;lt;/artifactId&amp;gt;\r\n        &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;\r\n &amp;lt;!-- {x-version-update:mcp-toolbox-sdk-java:current} --&amp;gt;\r\n    &amp;lt;/dependency&amp;gt;&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500f2fe50&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;ステップ 2: リソースとデモを確認する&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="2" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;GitHub リポジトリ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;:&lt;/span&gt;&lt;a href="https://github.com/googleapis/mcp-toolbox-sdk-java" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;データベース向け MCP ツールボックスを操作するための Java SDK&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="2" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;公式ドキュメント&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;:&lt;/span&gt;&lt;a href="https://mcp-toolbox.dev/" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;MCP Toolbox for Databases（データベース向け MCP ツールボックス）&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;デモ アプリケーション&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;:「MCP ツールボックス」Java SDK V1.0 の最新版を体験するには、サンプル アプリケーションである &lt;/span&gt;&lt;a href="https://github.com/googleapis/mcp-toolbox-sdk-java/tree/main/demo-applications/cymbal-transit" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cymbal Transit プロジェクト&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をお試しください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Gradle の実装&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;チームが Maven ではなく Gradle を使用している場合は、この依存関係を書き換える必要がある点にご注意ください。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;quot;implementation &amp;#x27;com.google.cloud.mcp:mcp-toolbox-sdk-java:1.0.0&amp;#x27;&amp;quot;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5024bc310&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;バージョンの自動追跡&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この設定を自動化された内部リポジトリにコピーする場合は、XML コメント &amp;lt;!-- {x-version-update...} --&amp;gt; はそのままにします。これは、リリース マネージャーのデプロイ スクリプトがバージョンを自動的に更新するために必要です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;最新のエージェント ツールとサーバーを、安定した「MCP ツールボックス」Java SDK を使用してエンタープライズ Java アプリケーションに統合できるようになりました。今すぐお試しください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google、スタッフ デベロッパー アドボケイト&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt; Abirami Sukumaran&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;共同執筆者:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;- Google、戦略的クラウド エンジニア &lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Stenal Jolly&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;- Google、ソフトウェア エンジニア &lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Anubhav Dhawan&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 23 Oct 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-mcp-toolbox-java-sdk-v10-agentic-data-access-for-the-enterprise/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/announcing-mcp-toolbox-java-sdk-v10-agentic-.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>「MCP ツールボックス」Java SDK v1.0 のご紹介: 企業向けのエージェント型データアクセス</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/announcing-mcp-toolbox-java-sdk-v10-agentic-.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-mcp-toolbox-java-sdk-v10-agentic-data-access-for-the-enterprise/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Abirami Sukumaran</name><title>Staff Developer Advocate, Google</title><department></department><company></company></author></item><item><title>Agent Development Kit は 5 つの言語に対応</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/one-agent-development-kit-five-languages/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 14 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/one-agent-development-kit-five-languages?e=48754805&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェントといえば Python というイメージがありますが、実際は必ずしもそうではありません。現在の先進的なエコシステムでは、エージェントは&lt;/span&gt;&lt;a href="https://cloud.google.com/run"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Run&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; 上で Go マイクロサービスとして大規模に同時実行されることもあれば、&lt;/span&gt;&lt;a href="https://github.com/google/adk-js/blob/main/core/src/models/chrome_prompt_llm.ts" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ブラウザタブ内で動作&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;して Chrome のオンデバイス モデルを呼び出すこともあります。しかし、エージェント フレームワークの多くは Python のみのスタックを想定しています。そのため、エージェント ワークロードのためだけに Python サービスをスピンアップしたり、エージェント オーケストレーション ロジックを独自の言語でゼロから構築したりすることが必要になります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google の&lt;/span&gt;&lt;a href="https://adk.dev/" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Agent Development Kit（ADK）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;は、&lt;/span&gt;&lt;a href="https://github.com/google/adk-python" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Python&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/google/adk-go" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Go&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/google/adk-js" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;TypeScript&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/google/adk-java" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Java&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/google/adk-kotlin" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Kotlin&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; をサポートしているため、このようなトレードオフは発生しません。ADK の各バージョンはそれぞれの言語のランタイムと型システムに合わせてゼロから構築されており、かつ、オープン プロトコルによる相互運用性を備えた統合アーキテクチャを共有しています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;共通の基盤&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;5 つの言語すべてが同じオープン プロトコルをサポートしているため、使用する言語によってアーキテクチャが固定されることはありません。すべての言語の ADK に&lt;/span&gt;&lt;a href="https://modelcontextprotocol.io/" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Model Context Protocol&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; クライアントが含まれており、MCP サーバーとして公開されたカスタムツールを、どの言語からでもすぐに呼び出すことができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;マルチエージェント システムの場合、ADK は&lt;/span&gt;&lt;a href="https://github.com/a2aproject/A2A" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Agent2Agent（A2A）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;プロトコルをサポートしているため、エージェントは HTTP 経由でリモート エージェントと通信できます。エージェントが異なる言語やフレームワークで記述されていても、A2A を通じて相互運用することができます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;エージェント ファースト開発の第一歩&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;まず、1 回限りの設定コマンドを実行して Google Cloud 認証を確認し、CLI をインストールします。その後、&lt;/span&gt;&lt;a href="https://antigravity.google/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Antigravity&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://docs.anthropic.com/en/docs/claude-code" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Claude Code&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/openai/codex" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Codex&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; などのコーディング エージェントでファーストパーティの ADK スキルを設定します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;uvx google-agents-cli setup&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501646ed0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;次に scaffold コマンドを実行して、A2A エンドポイントと Cloud Run、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/runtime"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise Agent Runtime&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、または&lt;/span&gt;&lt;a href="https://cloud.google.com/kubernetes-engine"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Kubernetes Engine（GKE）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;のデプロイ構成を含む作業プロジェクトを生成します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Scaffold an ADK project (use --agent adk for Python or --agent adk_go for Go)\r\nagents-cli scaffold create my-go-agent \\\r\n  --agent adk_go \\\r\n  --deployment-target cloud_run \\\r\n  --region us-central1&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501644f90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;a href="https://github.com/google/adk-python/tree/main/.agents/skills/adk-agent-builder" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for Python&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; リポジトリと&lt;/span&gt;&lt;a href="https://github.com/google/adk-kotlin/tree/main/.agents/skills/adk-kotlin-agent-builder" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for Kotlin&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; リポジトリの両方とも、ソースツリーにはエージェント ビルダーのスキルも含まれています。また、&lt;/span&gt;&lt;a href="https://adk.dev/llms.txt" rel="noopener" target="_blank"&gt;&lt;code style="text-decoration: underline; vertical-align: baseline;"&gt;adk.dev/llms.txt&lt;/code&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; リソースにより、5 つの言語すべてのコーディング エージェントでオンデマンドの API ドキュメントを利用できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-a.max-1000x1000.jpg"
        
          alt="one-agent-development-kit-five-languages-architecture"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="9ieq2"&gt;コーディング エージェント スキルがプロジェクトの基盤を構築し、MCP と A2A が 5 つの言語ランタイムすべてを接続します。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;各 ADK の実践的なサンプル&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;5 つの言語の違いを感じるには、各言語で同じ天気ツールを定義し、その設計とランタイムの連携方法を確認することが最もわかりやすいでしょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/google/adk-python/blob/main/contributing/samples/core/quickstart/agent.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for Python&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; では、デコレータやスキーマ ビルダー クラスは必要ありません。プレーンな Python 関数を &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;tools&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; パラメータに渡すと、ADK の起動時にシグネチャ、型ヒント、docstring が検査され、ツール宣言と&lt;/span&gt;&lt;a href="https://docs.pydantic.dev/latest/" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Pydantic&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; パラメータ スキーマが自動的に構築されます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google.adk.agents.llm_agent import Agent\r\n\r\n\r\ndef get_weather(city: str) -&amp;gt; dict:\r\n  &amp;quot;&amp;quot;&amp;quot;Retrieves the current weather report for a specified city.\r\n\r\n  Args:\r\n      city (str): The name of the city for which to retrieve the weather report.\r\n  &amp;quot;&amp;quot;&amp;quot;\r\n  return {&amp;quot;status&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;report&amp;quot;: f&amp;quot;Sunny and 72F in {city}.&amp;quot;}\r\n\r\n\r\nroot_agent = Agent(\r\n    name=&amp;quot;weather_agent&amp;quot;,\r\n    model=&amp;quot;gemini-3.8-flash&amp;quot;,\r\n    instruction=&amp;quot;Answer questions about the weather in a city.&amp;quot;,\r\n    tools=[get_weather],\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016466d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Python は迅速なプロトタイピングが可能であるだけでなく、ADK のリファレンス実装でもあり、最も幅広い Google Cloud の統合（&lt;/span&gt;&lt;a href="https://cloud.google.com/bigquery"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;BigQuery&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/spanner"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/bigtable"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Bigtable&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;）とモデル アダプタ（&lt;/span&gt;&lt;a href="https://ai.google.dev/gemini-api/docs" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、Anthropic、OpenAI、LiteLLM）が提供されています。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;adk eval&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; コマンドまたは &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;agents-cli eval run&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; コマンドと組み合わせて評価ツールを使用することで、継続的インテグレーション（CI）でゴールデン データセットを基準としてエージェントの軌跡をスコアリングし、本番環境サービスが別の言語で実行されている場合でも、システム全体をエンドツーエンドでテストできます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Go&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Python がテストと評価に優れている一方で、&lt;/span&gt;&lt;a href="https://github.com/google/adk-go/blob/main/examples/quickstart/main.go" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for Go&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は本番環境のバックエンド エンジニアリングに最適です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Go ツールの関数は、&lt;/span&gt;&lt;a href="https://pkg.go.dev/google.golang.org/adk/v2/agent#Context" rel="noopener" target="_blank"&gt;&lt;code style="text-decoration: underline; vertical-align: baseline;"&gt;agent.Context&lt;/code&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; 構成と厳密に型指定された入力構造体を受け取ります。&lt;/span&gt;&lt;a href="https://pkg.go.dev/google.golang.org/adk/v2/tool/functiontool#New" rel="noopener" target="_blank"&gt;&lt;code style="text-decoration: underline; vertical-align: baseline;"&gt;functiontool.New&lt;/code&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; 関数は、Go ジェネリクスを使用して、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;struct&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; タグから入力スキーマと出力スキーマの両方を推測します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;type GetWeatherArgs struct {\r\n\tCity string `json:&amp;quot;city&amp;quot; jsonschema:&amp;quot;The city to look up weather for.&amp;quot;`\r\n}\r\n\r\ntype GetWeatherResult struct {\r\n\tReport string `json:&amp;quot;report&amp;quot;`\r\n}\r\n\r\nfunc getWeather(_ agent.Context, args GetWeatherArgs) (GetWeatherResult, error) {\r\n\treturn GetWeatherResult{Report: &amp;quot;Sunny and 72F in &amp;quot; + args.City}, nil\r\n}\r\n\r\nweatherTool, err := functiontool.New(functiontool.Config{\r\n\tName:        &amp;quot;get_weather&amp;quot;,\r\n\tDescription: &amp;quot;Retrieves the current weather report for a city.&amp;quot;,\r\n}, getWeather)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501644690&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;code style="vertical-align: baseline;"&gt;functiontool.New&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 関数はハンドラのシグネチャに対してジェネリクスを活用しているため、Go コンパイラは関数が想定されるコントラクトと一致することを確認してからバイナリを実行します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Go は、Python の次に&lt;/span&gt;&lt;a href="https://pkg.go.dev/google.golang.org/adk/v2/workflow" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK 2.0 Graph Workflow ランタイム&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;が提供された言語でもあります。LLM 推論と併せて決定的な制御フローを使用する必要がある場合は、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;workflow.New&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 関数を使用して、エージェントとプレーンな Go 関数を条件付きルーティングと並列ステップを持つ有向グラフに接続します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;ag, err := workflowagent.New(&amp;quot;order_pipeline&amp;quot;, []workflow.Edge{\r\n\t{From: workflow.Start, To: triageNode},\r\n\t{From: triageNode, To: fulfillNode, Route: workflow.StringRoute(&amp;quot;fulfill&amp;quot;)},\r\n\t{From: fulfillNode, To: notifyNode},\r\n})&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501644810&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Go が真価を発揮するのは、本番環境でCloud Run および GKE と組み合わせて使用する場合です。コンパイルされた Go エージェントは、約 2 MiB の&lt;/span&gt;&lt;a href="https://github.com/GoogleContainerTools/distroless" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google distroless 静的ベースイメージ&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;にパッケージ化され、言語 VM や重い依存関係ツリーはありません。静的な Go バイナリはコンテナが起動するとすぐにポートにバインドされ、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/run/docs/tips/general"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;動的言語&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;のモジュール インポートや、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/run/docs/tips/java"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;JVM サービス&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の JAR の展開と JIT のウォームアップはスキップされます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Go の同時実行モデルは、実行されたエージェントのワークロードと優れた適合性を発揮します。各 goroutine は&lt;/span&gt;&lt;a href="https://go.dev/doc/go1.4#runtime" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;2 KB のスタック&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;と&lt;/span&gt;&lt;a href="https://go.dev/doc/faq#goroutines" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;最小限のスケジューリング オーバーヘッド&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;で開始されるため、単一のインスタンスで数千の同時ストリーミング リクエストとツール呼び出しを多重化できます。ADK for Go には、&lt;/span&gt;&lt;a href="https://pkg.go.dev/google.golang.org/adk/v2/server/adka2a/v2" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;組み込みの A2A サーバー ハンドラ&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;と OpenTelemetry トレースも含まれています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;TypeScript&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;TypeScript は JavaScript へのコンパイル時に型アノテーションが消去されるため、ランタイム リフレクションは使用できません。代わりに、&lt;/span&gt;&lt;a href="https://github.com/google/adk-js/blob/main/core/src/tools/function_tool.ts" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for TypeScript&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は &lt;/span&gt;&lt;a href="https://zod.dev/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Zod&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; と連携します。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;z.object(...)&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; スキーマを &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;FunctionTool&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 関数に渡すと、TypeScript はその単一の宣言から &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;execute&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; コールバックのパラメータ型を静的に推測します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import { FunctionTool, LlmAgent } from &amp;quot;@google/adk&amp;quot;;\r\nimport { z } from &amp;quot;zod&amp;quot;;\r\n\r\nconst getWeatherTool = new FunctionTool({\r\n  name: &amp;quot;get_weather&amp;quot;,\r\n  description: &amp;quot;Retrieves the current weather report for a city.&amp;quot;,\r\n  parameters: z.object({\r\n    city: z.string().describe(&amp;quot;The name of the city.&amp;quot;),\r\n  }),\r\n  execute: async ({ city }) =&amp;gt; {\r\n    return { status: &amp;quot;success&amp;quot;, report: `Sunny and 72F in ${city}.` };\r\n  },\r\n});\r\n\r\nexport const rootAgent = new LlmAgent({\r\n  name: &amp;quot;weather_agent&amp;quot;,\r\n  model: &amp;quot;gemini-3.8-flash&amp;quot;,\r\n  instruction: &amp;quot;Answer questions about the weather in a city.&amp;quot;,\r\n  tools: [getWeatherTool],\r\n});&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501645a10&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ランタイム入力の検証、モデルに送信される JSON スキーマ、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;execute&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; コールバック内の IDE 予測入力はすべて、信頼できる唯一の情報源から取得されます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;TypeScript は ADK 2.0 Graph Workflow エンジンでも動作し、&lt;/span&gt;&lt;a href="https://github.com/google/adk-js/blob/main/core/src/index_web.ts" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;スタンドアロンのブラウザ バンドル&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;が提供されています。Node.js サービス以外にも、ページレベルのツール用の&lt;/span&gt;&lt;a href="https://github.com/google/adk-js/blob/main/core/src/tools/webmcp/webmcp_toolset.ts" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;WebMCP&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; と Chrome のオンデバイス&lt;/span&gt;&lt;a href="https://developer.chrome.com/docs/ai/prompt-api" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Prompt API&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を使用して、ブラウザタブで ADK エージェントを直接実行することができます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Java&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://github.com/google/adk-java/blob/main/tutorials/city-time-weather/src/main/java/com/google/adk/tutorials/CityTimeWeather.java" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for Java&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は、Maven、Gradle、Spring Boot で標準化している場合に最適です。メソッド パラメータに &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@Schema&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; アノテーションを追加し、Fluent API である &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;LlmAgent.builder()&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を使用してエージェントを組み立てます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;public class WeatherTools {\r\n  public static Map&amp;lt;String, String&amp;gt; getWeather(\r\n      @Schema(name = &amp;quot;city&amp;quot;, description = &amp;quot;The name of the city&amp;quot;)\r\n      String city) {\r\n    return Map.of(&amp;quot;status&amp;quot;, &amp;quot;success&amp;quot;, &amp;quot;report&amp;quot;, &amp;quot;Sunny and 72F in &amp;quot; + city);\r\n  }\r\n}\r\n\r\nLlmAgent agent = LlmAgent.builder()\r\n    .name(&amp;quot;weather_agent&amp;quot;)\r\n    .model(&amp;quot;gemini-3.8-flash&amp;quot;)\r\n    .instruction(&amp;quot;Answer questions about the weather in a city.&amp;quot;)\r\n    .tools(FunctionTool.create(WeatherTools.class, &amp;quot;getWeather&amp;quot;))\r\n    .build();&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501645510&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;実行時には、ランナーが&lt;/span&gt;&lt;a href="https://github.com/ReactiveX/RxJava" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;RxJava&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を介してエージェント イベントをリアクティブにストリーミングします。ローカルテストと既存の JVM アプリ向けに、ADK for Java には Maven Dev UI プラグインと、Spring AI および LangChain4j 用のファーストパーティ ブリッジが提供されています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Kotlin&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://github.com/google/adk-kotlin/blob/main/examples/src/main/kotlin/com/google/adk/kt/examples/tools/FunctionToolDemoAgent.kt" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ADK for Kotlin&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は、ビルド時の安全性を重視しています。&lt;/span&gt;&lt;a href="https://kotlinlang.org/docs/ksp-overview.html" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Kotlin Symbol Processing（KSP）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;コンパイラ プラグインが、ビルド時に &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@Tool&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; アノテーションと &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@Param&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; アノテーションを読み取り、ツールスキーマをバイトコードに直接出力します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;class WeatherTools {\r\n  @Tool(\r\n    name = &amp;quot;get_weather&amp;quot;,\r\n    description = &amp;quot;Retrieves the current weather report for a city.&amp;quot;,\r\n  )\r\n  suspend fun getWeather(\r\n    @Param(&amp;quot;The name of the city.&amp;quot;) city: String\r\n  ): Map&amp;lt;String, String&amp;gt; = mapOf(&amp;quot;status&amp;quot; to &amp;quot;success&amp;quot;, &amp;quot;report&amp;quot; to &amp;quot;Sunny and 72F in $city&amp;quot;)\r\n}\r\n\r\nval agent = LlmAgent(\r\n  model = Gemini(&amp;quot;gemini-3.8-flash&amp;quot;),\r\n  name = &amp;quot;weather_agent&amp;quot;,\r\n  instruction = Instruction(&amp;quot;Answer questions about the weather in a city.&amp;quot;),\r\n  tools = WeatherTools().generatedTools(),\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501644090&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ツール シグネチャが、サポートされていない型を使用したり、null 非許容パラメータにデフォルト値を宣言したりした場合、本番環境で問題が発生するのではなく、Gradle ビルドがただちに失敗します。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;.generatedTools()&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 関数はランタイム リフレクションを使用しないため、&lt;/span&gt;&lt;a href="https://developer.android.com/topic/performance/app-optimization/enable-app-optimization" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Android R8 圧縮&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;後も保持されます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;リフレクションを使用しないこの設計により、エージェント ループ全体を Android 上でローカルに実行できます。また、JVM サーバーをサポートしており、Spring AI ブリッジや試験運用版の ADK 2.0 グラフ ワークフローなどを使用できます。オンデバイスでは、ADK for Kotlin は&lt;/span&gt;&lt;a href="https://ai.google.dev/edge/litert-lm" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;LiteRT-LM&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;（ツール呼び出し）および&lt;/span&gt;&lt;a href="https://developers.google.com/ml-kit/genai" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ML Kit&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;（Gemini Nano、テキスト生成）と統合できます。さらに、Room および AppSearch と連携してローカル状態を管理したり、Android AppFunctions と連携して OS レベルのアクションを実行したりすることができ、このいずれにもネットワーク接続は必要ありません。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;妥協のない選択&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ADK は 5 つの言語にネイティブで対応しているため、組織全体で 1 つのランタイムに統一する必要がありません。すべてのバージョンが MCP と A2A に対応しており、システムの各コンポーネントで最適な言語を使用できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google の ADK で、どの言語を使用してエージェントを構築しましたか？皆様がどのようなスタックを使用しているか、&lt;/span&gt;&lt;a href="https://x.com/kweinmeister" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;X&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://www.linkedin.com/in/karlweinmeister/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;LinkedIn&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://bsky.app/profile/kweinmeister.bsky.social" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Bluesky&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; でぜひ教えてください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;- デベロッパーリレーションズ担当ディレクター、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Karl Weinmeister&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 21 Oct 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/one-agent-development-kit-five-languages/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-her.max-600x600.jpg" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Agent Development Kit は 5 つの言語に対応</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-her.max-600x600.jpg</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/one-agent-development-kit-five-languages/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Karl Weinmeister</name><title>Director, Developer Relations</title><department></department><company></company></author></item><item><title>AI 推論モデル提供のためのネットワーキング - GKE のみ、およびその他すべてのバックエンド</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/networking-for-ai-inference-model-serving-gke-only-and-for-all-other-backends/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 7 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/networking-for-ai-inference-model-serving-gke-only-and-for-all-other-backends?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;企業や個人の開発者は、複数の AI 推論モデルを頻繁に実行しています。適切なアーキテクチャを使用することで、モデルの呼び出し方法を簡素化すると同時に、一元化されたガバナンスを提供できます。この投稿では、ネットワークにおける AI 推論モデルの提供に焦点を当てた 2 つのリファレンス アーキテクチャについて説明します。1 つは&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/concepts/kubernetes-engine-overview"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Kubernetes Engine（GKE）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;用、もう 1 つはその他のすべてのバックエンド タイプ用です。まず、後ほど紹介するリファレンス アーキテクチャの共通点について説明します。次に、GKE バックエンドのアーキテクチャに固有のコンポーネントについて説明し、最後に、すべてのバックエンド タイプに共通するアーキテクチャの要素を確認します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;エントリ ポイント&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;推論呼び出しのフロントエンドとして機能する、高い安定性、セキュリティ、信頼性を持つエントリ ポイントの背後にモデルのデプロイを公開できます。このエントリ ポイントは、ポリシー、セキュリティ、ロジックを適用できる制御ゾーンとしても機能します。Cloud ロードバランサと推論ゲートウェイはどちらもエントリ ポイント機能を提供します。これらのタイプのエンドポイントは、TLS によるセキュアな接続の終端、API 管理コンポーネントとの統合、Service Extensions による機能の拡張、Model Armor の機能を活用したセキュリティ強化が可能です。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;設計における共通サービス&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;どちらのリファレンス設計でも、次のサービスを使用します。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/vpc/docs/private-service-connect#endpoints"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Private Service Connect 推論エンドポイント&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: 消費者の Virtual Private Cloud（VPC）ネットワーク内にエントリ ポイントを固定します。トラフィックはプライベート内部&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/vpc/docs/subnets#valid-ranges"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;IP アドレス&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;に到達するため、推論呼び出しはプライベート ネットワーク内に保持されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/apigee/docs/api-platform/get-started/what-apigee"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Apigee API Management&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt;（省略可）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Apigee Extension Processor コールアウトを介して統合され、リクエストがコンピューティング リソースに到達する前に、クライアント ID の検証、レート制限、割り当ての適用を処理します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/model-armor/overview"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Model Armor&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: インライン AI 安全性チェックポイントとして機能し、プロンプト インジェクションや機密データの漏洩がないか、プロンプトと出力補完をスクリーニングします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;GKE のみで提供される設計パターン&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このセクションでは、GKE のみのバックエンド設計に焦点を当てます。エンドツーエンドのコンセプトを完全に理解するには、アーキテクチャに関するドキュメント &lt;/span&gt;&lt;a href="https://docs.cloud.google.com/architecture/networking-for-ai-inference-gke"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;GKE での AI 推論モデル提供のためのネットワーキング&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をすべてお読みください。設計パターンは、次の図に基づいています。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/networking-ai-inference-model-serving-gke-.max-1000x1000.png"
        
          alt="networking-ai-inference-model-serving-gke-architecture"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;前のセクションで特定した共通サービスに加えて、GKE の設計では次のコンポーネントを使用します。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/concepts/about-gke-inference-gateway"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;GKE Inference Gateway&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: 内部アプリケーション ロードバランサ（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;gke-l7-rilb&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）としてデプロイされます。受信リクエストのペイロードを解析し、HTTPRoute ルールを評価して、適切なモデル提供ターゲットにクエリを転送する、特殊な内向きエンジンとして機能します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;推論プール&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 同じモデルのレプリカを含む論理グループ。Gateway はプロンプトを受け取ると、HTTPRoute ルールを評価し、モデル識別子に基づいて適切な推論プールを選択します。プールには初期サイズがあり、動的に自動スケーリングされるように構成できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;モデル レプリカセット&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: シングルノードまたはマルチノードの GPU または TPU ノードプールにデプロイされた個々のモデルレプリカ（推論サーバー インスタンス）。レプリカセットは、これらのモデルレプリカの均一なグループを表します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;GKE のトラフィック フローの例&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この GKE ベースのアーキテクチャを使用してバックエンド モデルを呼び出すクライアント アプリケーションは、次のようなフローをたどります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;内向き&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: コンシューマー VPC 内のクライアント アプリケーションが、ローカルの Private Service Connect エンドポイントに対して OpenAI 互換の API 呼び出しを発行し、リージョン内部アプリケーション ロードバランサを使用して GKE Inference Gateway に直接ルーティングします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ペイロード検査&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Gateway は、リクエスト本文で指定されたターゲット モデル パラメータを読み取り、HTTP ヘッダーに追加します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;コントロール プレーンの検証&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Apigee が使用されている場合、クライアントの認証情報と割り当てがチェックされます。Model Armor がプロンプトをスクリーニングし、ポリシー違反やデータ漏洩がないかを確認します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;バックエンドの選択&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Gateway は HTTPRoute マッピングを評価してターゲット プールを特定し、プレフィックス キャッシュ共有コンテキストを照合して、リアルタイムの Prometheus データに基づいて最も負荷の低い GPU または TPU レプリカにルーティングします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;外向き&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: レプリカが推論ワークロードを実行します。出力トークンは Model Armor を通過して最終的なレスポンス検証が行われ、その後、プライベート接続を介してストリーミングで送り返されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;すべてのバックエンドで提供される設計パターン&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このセクションでは、推論に使用できる複数のバックエンド タイプに焦点を当て、次の図に示すアーキテクチャの概要を説明します。エンドツーエンドのコンセプトを完全に理解するには、アーキテクチャに関するドキュメント&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/architecture/networking-for-ai-inference"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;すべてのバックエンドでの AI 推論モデル提供のためのネットワーキング&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をすべてお読みください。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/networking-ai-inference-model-serving-all-.max-1000x1000.png"
        
          alt="networking-ai-inference-model-serving-all-backends"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;GKE、Cloud Run、Agent Platform、オンプレミス データセンター、外部クラウドなどの混合環境にまたがるアーキテクチャでは、次のコンポーネントが追加で使用されます。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/load-balancing/docs/l7-internal#load-balancer-mode"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;リージョン内部アプリケーション ロードバランサ&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: ルーティング ロジック、SSL 終端、Service Extensions コールアウトを管理する、中央のレイヤ 7 ルーティング プロキシとして機能します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://github.com/llm-d/llm-d-inference-payload-processor" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;推論ペイロード プロセッサ&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt;（Service Extensions）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: これは、GKE Inference Gateway で使用される本文ベースのルーティングに似ていますが、アプリケーション ロードバランサでこの機能を有効にするには、Service Extensions が必要です。軽量の Cloud Run コールアウトが、受信した OpenAI API リクエストの JSON 本文を検査し、ターゲット モデル識別子を抽出して、URL マップによるルーティングを実行するために X-Gateway-Model-Name ヘッダーを書き込みます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/load-balancing/docs/negs"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;ネットワーク エンドポイント グループ（NEG）&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: 書き込まれたモデルヘッダーに基づいて、異種バックエンドへの柔軟なルーティングを実現します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;すべてのバックエンドのトラフィック フローの例&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このアーキテクチャを使用してバックエンド モデルを呼び出すクライアント アプリケーションは、次のようなフローをたどります。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;プライベート内向き&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: クライアント アプリケーションは、プライベート IP アドレス空間を介して Private Service Connect エンドポイントをターゲットにします。リージョン内部アプリケーション ロードバランサがリクエストを受信します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;モデル名の抽出&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: ロードバランサは、ペイロードを Cloud Run 本文ベースのルーター コールアウトに送信します。このコールアウトは、JSON ペイロードを検査して X-Gateway-Model-Name ヘッダーを挿入します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ポリシーと安全性の適用&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: リクエストは Apigee に渡されて ID と割り当てが検証され、その後 Model Armor に渡されて機密データが削除され、悪意のあるプロンプトがブロックされます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;NEG ルーティング&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: ロードバランサの URL マップがモデルヘッダーを検査し、一致するバックエンド NEG（Agent Platform、GKE、Cloud Run、ハイブリッド、インターネット）にリクエストを転送します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;プライベート配信&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: ターゲット バックエンドがモデル プロンプトを実行し、Model Armor が補完をスクリーニングして、結果が内向きパスに沿ってプライベートに返されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/networking-ai-inference-model-serving-flow.max-1000x1000.png"
        
          alt="networking-ai-inference-model-serving-flow"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次のステップ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud での AI ワークロードの構築について詳しくは、以下をご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ドキュメント セット:&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/architecture/agentic-ai-overview"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;エージェント型 AI アーキテクチャ ガイド&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;アーキテクチャ センター:&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/architecture/multi-agent-private-networking-patterns"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud におけるマルチエージェント プライベート ネットワーキング パターン&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ドキュメント:&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/machine-learning/general/netsec-overview"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise Agent Platform のネットワーキング アクセスの概要&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ご質問やご意見がございましたら、&lt;/span&gt;&lt;a href="https://www.linkedin.com/in/ammett/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Linkedin&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; 経由で筆者までご連絡ください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;デベロッパーリレーションズ エンジニア、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Ammett Williams&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 20 Oct 2026 01:30:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/networking-for-ai-inference-model-serving-gke-only-and-for-all-other-backends/</guid><category>Networking</category><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/networking-ai-inference-model-serving-hero.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>AI 推論モデル提供のためのネットワーキング - GKE のみ、およびその他すべてのバックエンド</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/networking-ai-inference-model-serving-hero.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/networking-for-ai-inference-model-serving-gke-only-and-for-all-other-backends/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Ammett Williams</name><title>Developer Relations Engineer</title><department></department><company></company></author></item><item><title>SRE ブックの 10 年間:『Site Reliability Engineering』第 2 版のご紹介</title><link>https://cloud.google.com/blog/ja/products/devops-sre/sre-book-second-edition/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 13 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/devops-sre/sre-book-second-edition?e=48754805&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;10 年前、Google は O'Reilly Media から『Site Reliability Engineering: How Google Runs Production Systems』を出版しました。大規模なインフラストラクチャを管理する Google の手法を集めたものとして始まった本書はベストセラーとなり、多くの組織がそこに示された信頼性プラクティス（スケーラブルで信頼性が高く、持続可能なシステムを構築するためにソフトウェア エンジニアリングを運用に適用すること）を採用するきっかけとなりました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;過去 10 年間で、コンピューティング環境は大きく変化しました。AI、マイクロサービス、マルチクラウド デプロイ、サーバーレス パラダイム、プラットフォーム エンジニアリングはすべて、ソフトウェアの構築と運用方法を再構築しました。このたび、本書の出版 10 周年を記念して、全面的に改訂された Google SRE ブック第 2 版を発表できることを嬉しく思います。Google 社内および業界全体で得た 10 年間の教訓を反映し、今日の運用上の課題に合わせた最新のガイダンスを提供します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-paragraph_with_image"&gt;&lt;div class="article-module h-c-page"&gt;
  &lt;div class="h-c-grid uni-paragraph-wrap"&gt;
    &lt;div class="uni-paragraph
      h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6
      h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"&gt;

      






  

    &lt;figure class="article-image--wrap-small
      
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/SRE_Book_2e_Front_Cover.max-1000x1000.jpg"
        
          alt="SRE Book 2e Front Cover"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  





      &lt;p data-block-key="1woq2"&gt;&lt;b&gt;改訂する理由&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="65h9k"&gt;初版を出版した当時、多くの組織はクラウドへの初期移行に注力しており、モノリシック アーキテクチャからの脱却を始めたばかりでした。昨今、組織が高速かつグローバル規模でソフトウェアを提供する中で、課題はもはやクラウド インフラストラクチャの導入ではなく、極めて複雑な状況に直面しながらも高い信頼性を維持することです。&lt;/p&gt;&lt;p data-block-key="b4ol2"&gt;最新の本番環境は、常に変化する状況下で運用されています。システムの境界はより複雑になり、依存関係は深まり、障害モードはこれまで以上に複雑化して深刻な被害をもたらすようになっています。生成 AI のようなリソースを大量に消費するワークロードの急増により、インフラストラクチャ管理における経済性と運用要件が変化しています。&lt;/p&gt;&lt;p data-block-key="8qgc8"&gt;この第 2 版を執筆するにあたり、私たちは一度立ち止まって、現代の環境で SRE を適切に実装するために何が必要かを評価する必要がありました。&lt;/p&gt;&lt;p data-block-key="4616e"&gt;&lt;b&gt;10 年間の進化: SRE 手法の進歩&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="a6ju2"&gt;第 2 版では、サイト信頼性エンジニアリングの基礎的なプラクティスが過去 10 年間でどのように成熟し、タスク固有の手動作業から、プラットフォーム全体の自動化機能へとシフトしたのかを深く掘り下げて解説しています。以下はその例です。&lt;/p&gt;&lt;p data-block-key="4mfb1"&gt;&lt;b&gt;SLO とエラー バジェット:&lt;/b&gt; 2016 年、チームは基本的な可用性指標と手動のエラー バジェット ポリシーに依存していました。現在は、動的なバーンレート アラートと自動化されたポリシー適用を組み込んだ、ユーザー中心の多層 SLO へと成熟しています。&lt;/p&gt;&lt;p data-block-key="1gib6"&gt;&lt;b&gt;モニタリングとオブザーバビリティ:&lt;/b&gt; 初期のセットアップは、静的なダッシュボード、基本的なログ、手動のアラート トリアージが中心でした。最新のオブザーバビリティは、OpenTelemetry、分散トレース、自動化された異常相関を活用して、根本原因を迅速に特定します。&lt;/p&gt;&lt;p data-block-key="89sp2"&gt;&lt;b&gt;自動化とプラットフォーム:&lt;/b&gt; 運用は、個別のタスク用にカスタム スクリプトを作成することから、宣言型の Infrastructure as Code、社内開発者プラットフォーム、復元力のある自己修復システムを使用することへと移行しています。&lt;/p&gt;&lt;p data-block-key="138a5"&gt;&lt;b&gt;信頼性テスト:&lt;/b&gt; 定期的なゲームデーや合成負荷テストのみに頼るのではなく、最新のエンジニアリングでは、継続的なレジリエンス チェック、自動化されたパイプライン テスト、本番環境でのライブカナリア検証を組み込んでいます。&lt;/p&gt;&lt;p data-block-key="8i1pe"&gt;&lt;b&gt;容量とリソースの管理:&lt;/b&gt; 手動でのプロビジョニングや静的な予測は、動的な自動スケーリング、クラウド FinOps との連携、GPU および TPU ワークロードに特化したコストとクラスタの最適化に置き換えられました。&lt;/p&gt;&lt;p data-block-key="fj7at"&gt;&lt;b&gt;組織モデル:&lt;/b&gt; SRE は、特定のアプリケーションに割り当てられた専任チームの枠を超えて拡大しています。昨今の組織は、ハイブリッド モデル、プラットフォーム エンジニアリングとの統合、各プロダクト チームに配置された信頼性チャンピオンを取り入れています。&lt;/p&gt;&lt;p data-block-key="2mmts"&gt;&lt;b&gt;AI 時代の SRE&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="e76vn"&gt;さらに、SRE と AI には相互に影響し合う 2 つの関係があります。それは、SRE が AI インフラストラクチャをいかに支えるか、そして SRE チームが AI を活用していかに運用の信頼性を高めるか、という点です。&lt;/p&gt;&lt;p data-block-key="6aumh"&gt;大規模言語モデル（LLM）や基盤モデルを実行すると、信頼性に関する新たな課題が生じます。本書では、AI インフラストラクチャを大規模に運用するための次の手法を概説しています。&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="c1f2i"&gt;大規模な GPU および TPU ハードウェア クラスタの信頼性とネットワーク トポロジの管理&lt;/li&gt;&lt;li data-block-key="eni8n"&gt;AI 固有の非決定論的な出力とレイテンシ特性のモニタリング&lt;/li&gt;&lt;li data-block-key="1fvjl"&gt;継続的なモデル トレーニング、ファインチューニング、データ処理のためのパイプライン信頼性の確保&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="dkp6a"&gt;AI は、信頼性エンジニアの能力を何倍にも引き上げる存在として急速に浸透しています。第 2 版では、人間の業務効率を向上させるための次の実践的なフレームワークを紹介しています。&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="feifm"&gt;生成 AI ツールを使用して、リアルタイムのインシデント トリアージと事後分析の生成を支援&lt;/li&gt;&lt;li data-block-key="ejrbp"&gt;自然言語クエリを使用して複雑なシステム テレメトリーを調査&lt;/li&gt;&lt;li data-block-key="76ib3"&gt;予測 ML モデルを使用して、サービス停止が発生する前にリソースのボトルネックを特定&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="54aaq"&gt;&lt;b&gt;変わらない点: 文化の重要性&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="e315n"&gt;テクノロジーとアーキテクチャは進化し続けていますが、SRE の基本原則は変わらず、信頼性を重視する文化を確立するための鍵となっています。そのため、第 2 版では、システム エンジニアリングの人的要素と、それを実現する方法を改めて強調し、詳しく解説しています。&lt;/p&gt;&lt;p data-block-key="7caii"&gt;この分野の初心者、実務担当者、エンジニアリング マネージャー、テクノロジー エグゼクティブのどなたであっても、改訂された『Site Reliability Engineering』第 2 版は、次世代の本番環境システムの決定版ロードマップとして役立ちます。&lt;/p&gt;&lt;p data-block-key="l4k"&gt;書籍版（&lt;a href="https://www.google.com/books/edition/_/iXnw0QEACAAJ?kptab=getbook"&gt;Google ブックス&lt;/a&gt;を参照）またはデジタル版を&lt;a href="https://www.oreilly.com/library/view/site-reliability-engineering/9798341607675/"&gt; O'Reilly&lt;/a&gt; から今すぐご注文いただけます。&lt;/p&gt;&lt;p data-block-key="1jr5c"&gt;&lt;i&gt;- SRE プログラム マネージャー、&lt;/i&gt;&lt;b&gt;&lt;i&gt;Betsy Beyer&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="7ocdv"&gt;&lt;b&gt;&lt;i&gt;-&lt;/i&gt;&lt;/b&gt; &lt;i&gt;ソフトウェア エンジニア、サイト信頼性エンジニア、&lt;/i&gt;&lt;b&gt;&lt;i&gt;David Huska&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;</description><pubDate>Mon, 19 Oct 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/products/devops-sre/sre-book-second-edition/</guid><category>Developers &amp; Practitioners</category><category>DevOps &amp; SRE</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>SRE ブックの 10 年間:『Site Reliability Engineering』第 2 版のご紹介</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/products/devops-sre/sre-book-second-edition/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Betsy Beyer</name><title>SRE Program Manager</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>David Huska</name><title>Software Engineer, Site Reliability Engineer</title><department></department><company></company></author></item><item><title>低コストでスムーズな開発を実現する Managed Lustre を誰でも利用可能に</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/democratizing-managed-lustre-with-lower-cost-and-frictionless-development/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 1 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/democratizing-managed-lustre-with-lower-cost-and-frictionless-development?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;本記事は、Google Cloud が TB/秒のスループット、大規模クライアント環境下でのミリ秒未満のレイテンシ、POSIX 対応といった高性能並列ファイル システムの基本価値を、より幅広いユースケースとユーザーに提供している方法を紹介する 2 部シリーズの第 1 回です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;これまで、並列ファイル システムはコストがかかり、特殊な向けであったため、コールドデータはファイル システムの外部に保存する必要がありました。また、AI 開発者は、コードの記述、ライブラリのコンパイル、リポジトリの管理のために、低速な環境を別途維持しなければなりませんでした。このような境の分断は、手動でのデータ ステージング、データセットのコピー、ばらばらな名前空間の管理といったトイルを増大させていました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud Managed Lustre は、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;1 GB あたり月額 6 セントのダイナミック ティアと、さまざまな開発タスクやワークロード向けに Managed Lustre のパフォーマンスを最適化することで、これらの問題を解決します。これにより、Managed Lustre は、高パフォーマンスの AI および HPC ワークロードのための「ワンストップ ショップ」となります。&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;低コスト: ダイナミック ティアで Lustre をより低コストで利用&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Managed Lustre のダイナミック ティアは、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;ホットデータに対してミリ秒未満のレイテンシを実現し、すべてのデータを単一の名前空間に保存できます。費用は月額わずか 6 セント/GB*です&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;スループット、容量スケール、クライアント スケール:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; スループットは最大 80 PB の容量まで直線的にスケールされます。また、ホットデータのミリ秒未満のレイテンシは、数万のクライアントにスケールしても安定して維持されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;単一の定額料金:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 予測可能な料金体系です。ディスク メディアタイプ、名前空間内のデータ移動、メタデータ IOPS に対する個別の料金は発生しません。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;読み取りレイテンシ:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 高パフォーマンス キャッシュ（SSD）ではミリ秒未満のレイテンシを実現します。容量プール（「HDD」）は Google Cloud Hyperdisk Throughput を基盤に構築されており、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/compute/docs/disks/hd-types/hyperdisk-throughput"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;平均読み取りレイテンシは 10～30 ミリ秒&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;です。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;ダイナミック ティアに推奨されるワークロード&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;マルチエポック トレーニングや最適化されたフェッチサイズでのトレーニング: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;ホットデータは、最初の実行後に高パフォーマンス キャッシュ（SSD）に昇格されます。データ プリフェッチを大きくすると、ダイナミック ティアの費用構造を活かしつつ、低レイテンシの SSD のメリットを享受できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;書き込み負荷の高いチェックポイント処理:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; バースト的なチェックポイントの書き込みは、高パフォーマンス キャッシュに直接保存されます。古いチェックポイントは、透過的に容量プール（HDD）に降格されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;迅速なチェックポイント復元:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 新しいチェックポイントは高パフォーマンス キャッシュに書き込まれるため、低レイテンシでのチェックポイント復元が可能になります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;開発者向けの快適な操作性:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; git クローン、ライブラリのコンパイル、ノートブックの実行などの低レイテンシ タスクは、大規模なトレーニング セットをホストする同じ共有ワークスペースで、ローカルディスクと同等の操作感（平均読み取りレイテンシ約 300µs）が得られます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;スムーズな開発: 開発者のワークロードをワンストップで処理する Lustre&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Managed Lustre は、大規模な AI および HPC ワークロード（チェックポイント / 再起動 / データ読み込み）に対応するスケーラビリティに加えて、インタラクティブな作業ニーズも満たします。つまり、開発者は Managed Lustre で作業を開始し、ワークロードのライフサイクル全体でもそのまま Managed Lustre を使用し続けることができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;統合された基盤とインタラクティブなパフォーマンス&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AI と HPC のライフサイクルを単一の名前空間に統合し、インタラクティブな作業に「ローカル ディスク」のような使用感を提供します（&lt;/span&gt;&lt;a href="https://cloud.google.com/products/managed-lustre"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Salesforce などが経験した Managed Lustre による低レイテンシのメリット&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;について詳しくは、こちらをご覧ください）。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;レイテンシ:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 平均読み取りレイテンシは約 300µs で、他の分散ファイル システムと比較して最大 4 倍の応答性を実現します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;セットアップの高速化:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Linux カーネルの展開は約 2 分（他のファイル ソリューションより 4.7 倍高速）、Python の 20 ワーカー並列 git クローンは約 40 秒、Python のコンパイルは約 200 秒で完了します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/democratizing-lustre-with-lower-cost-and-f.max-1000x1000.jpg"
        
          alt="democratizing-lustre-with-lower-cost-and-frictionless-development-02-managed-lustre-performance-values"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/democratizing-lustre-with-lower-cost-and-f.max-1000x1000_xLOfL6w.jpg"
        
          alt="democratizing-lustre-with-lower-cost-and-frictionless-development-01-performance-comparision"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;高同時実行ブロードキャストとクラスタ起動&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Managed Lustre は、クラスタの初期化中にストレージのボトルネックを解消することで、GPU の費用対効果を最大化します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;共有モデルのチェックポイント、ベースの重み、コンテナレイヤなど、数千のワーカーノードがまったく同じファイルを同時に読み取ろうとすると、従来の分散ファイル システムでは局所的なホットスポットが発生して処理が滞り、高価な GPU クラスタが数分間アイドル状態になることがあります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;同じファイルを読み取る多数のクライアントの総スループットを向上:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 代替ファイル ソリューションと比較して 67% の向上が実証されています。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;並列読み込み:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; PyTorch などのライブラリを 4,000 以上のプロセスに 60 秒未満でインポートします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/democratizing-lustre-with-lower-cost-and-f.max-1000x1000_9kShfM1.jpg"
        
          alt="democratizing-lustre-with-lower-cost-and-frictionless-development-03-performance-advantage"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;ワンストップ ショップ ワークフローを自分で実行&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ご自身でもテストを実施できるよう、今回実行したテストのコードを以下に示します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;インタラクティブなアクセスでの低レイテンシ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/axboe/fio" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;fio&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を使用して、小規模で同時実行性の低い読み取りと書き込みをエミュレートしました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;&lt;span style="vertical-align: super;"&gt;1 ストレージ システムの仕様: Managed Lustre の 500 MBps/TiB ティア、108,000 GiB の容量。Filestore Zonal の容量は 102,400 GiB。同じ 40 GiB ファイルを読み取る 2,048 台のクライアント VM の平均スループットは 36.7 GB/秒。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Read workload\r\nfio --ioengine=libaio --filesize=100M --ramp_time=2s \\\r\n    --runtime=2m --time_based --numjobs=1 --direct=1 --verify=0 --randrepeat=0 \\\r\n    --group_reporting --directory=~/LUSTRE_MOUNT \\\r\n    --name=randread --blocksize=4k --iodepth=1 --readwrite=randread \\\r\n    --buffer_compress_percentage=50\r\n\r\n# Write workload\r\nfio --ioengine=libaio --filesize=100M --ramp_time=2s \\\r\n    --runtime=2m --time_based --numjobs=1 --direct=1 --verify=0 --randrepeat=0 \\\r\n    --group_reporting --directory=~/LUSTRE_MOUNT \\\r\n    --name=randwrite --blocksize=4k --iodepth=1 --readwrite=randwrite \\\r\n    --buffer_compress_percentage=50&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501372510&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;迅速な設定&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Linux の展開方法&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Download a kernel tarball\r\nwget -P /tmp https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.18.9.tar.xz\r\n\r\n# Extract the archive to the Lustre mount\r\nmkdir ~/LUSTRE_MOUNT/kernel\r\ntar -C ~/LUSTRE_MOUNT/kernel -xf /tmp/linux-5.18.9.tar.xz&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501371b10&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;上記のユースケースでは、root として実行する際に発生する可能性のあるメタデータ パフォーマンスの負荷を回避するように注意する必要があります（つまり、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;tar&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; が抽出されたファイルの所有者と権限をアーカイブに記録されているものと一致させようとして、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;chown&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; と &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;chmod&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を呼び出しを発行します）。それでも root として実行したい場合（かつ、このアプローチが設定に適していることを確認している場合）は、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;`--no-same-owner --no-same-permissions`&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を指定することで、抽出されたファイルの所有者が root のままで、root のデフォルトのファイル権限を維持できます。つまり、root としての抽出が、root 以外としての抽出のように動作します（アーカイブ内の所有者と権限が無視されます）。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Python gitclone の実行方法&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;git config --global checkout.workers 20\r\nmkdir ~/LUSTRE_MOUNT/python\r\ngit clone https://github.com/python/cpython.git ~/LUSTRE_MOUNT/python&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501371ad0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Python コンパイルの実行方法&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;pushd ~/LUSTRE_MOUNT/python\r\n./configure &amp;gt; /dev/null\r\nmake &amp;gt; /dev/null\r\npopd&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501372390&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;大規模なディストリビューション&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;1 つの大きなファイルを多数のノードに分散する場合の集約スループット&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;各クライアント VM で以下を実行します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Start fio in server mode\r\nfio --server&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50034f050&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="iadne"&gt;選択したクライアント VM で以下を実行します。&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;quot;# Create a 40 GiB file\r\nfio --name=job1 \\\r\n    --ioengine=libaio \\\r\n    --direct=1 \\\r\n    --buffer_compress_percentage=50 \\\r\n    --blocksize=4m \\\r\n    --iodepth=32 \\\r\n    --filesize=40g \\\r\n    --readwrite=write \\\r\n    --filename ~/LUSTRE_MOUNT/40gb_test\r\n\r\n# Create an fio job file for the read workload\r\ncat &amp;lt;&amp;lt;&amp;#x27;EOF&amp;#x27; &amp;gt; /tmp/read.fio\r\n[job1]\r\nfilename=${HOME}/LUSTRE_MOUNT/40gb_test\r\nrw=read\r\nbs=4m\r\nexitall_on_error=1\r\nEOF\r\n\r\n# Run the read workload using all client VMs in ~/hostfile\r\nfio --client ~/hostfile /tmp/read.fio&amp;quot;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5022ce9d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;多数のプロセスにわたるライブラリの並列読み込み&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;選択したクライアント VM で以下を実行します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Install PyTorch in a virtual env\r\npython3 -m venv ~/LUSTRE_MOUNT/env\r\nsource ~/LUSTRE_MOUNT/env/bin/activate\r\npip3 install --upgrade pip\r\npip3 install torch torchvision torchaudio \r\ndeactivate\r\n\r\n# Import PyTorch on all client VMs in ~/hostfile, 4 processes per host\r\nmpirun --allow-run-as-root --oversubscribe --hostfile ~/hostfile -N 4 \\\r\n  bash -c \&amp;#x27;source ~/LUSTRE_MOUNT/env/bin/activate &amp;amp;&amp;amp; python3 -c &amp;quot;import torch&amp;quot;\&amp;#x27;&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500148190&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;未来と次のステップを見据えて&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud Managed Lustre は、手動のデータ ステージングの負担を排除し、ダイナミック ティアで導入コストを削減することで、単一目的に特化したエンジンから、AI ライフサイクル全体に対応する汎用性の高い統合ストレージ ファブリックへと進化しています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このシリーズの第 2 回では、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;今後提供予定のオブジェクト統合機能&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;に焦点を当てます。今後の情報にご注目ください。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次のステップ&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ご自身でベンチマークを実行してみましょう（まだの場合）: &lt;/span&gt;&lt;a href="https://console.cloud.google.com/"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud コンソール&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を使用して Google Cloud Managed Lustre インスタンスをデプロイし、上記で提供されているテストを実行して、自身のワークロードのベンチマークを実施してください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ダイナミック ティアについて: &lt;/span&gt;&lt;a href="https://docs.cloud.google.com/managed-lustre/docs/performance-tiers"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Managed Lustre のドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;で詳細をご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;パート 2 をお楽しみに: このシリーズの次回では、今後リリースされるオブジェクト統合機能と、それによって AI と HPC のストレージ運用がさらに簡素化される仕組みについて詳しく説明します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud Managed Lustre を活用して、開発からトレーニングまでのライフサイクルを一元化しましょう。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud Managed Lustre、シニア プロダクト マネージャー&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt; Barak Epstein&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud Managed Lustre、ソフトウェア エンジニア&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt; Yuval Ehrental&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Sun, 18 Oct 2026 16:35:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/democratizing-managed-lustre-with-lower-cost-and-frictionless-development/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/democratizing-lustre-with-lower-cost-and-fri.max-600x600_YyI34FQ.jpg" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>低コストでスムーズな開発を実現する Managed Lustre を誰でも利用可能に</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/democratizing-lustre-with-lower-cost-and-fri.max-600x600_YyI34FQ.jpg</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/democratizing-managed-lustre-with-lower-cost-and-frictionless-development/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Barak Epstein </name><title>Senior Product Manager, Google Cloud Managed Lustre</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Barak Epstein </name><title>Senior Product Manager, Google Cloud Managed Lustre</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Yuval Ehrental</name><title>Software Engineer, Google Cloud Managed Lustre</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Yuval Ehrental</name><title>Software Engineer, Google Cloud Managed Lustre</title><department></department><company></company></author></item><item><title>GKE CPU 起動ブースト: オーバープロビジョニングなしでアプリの起動を高速化</title><link>https://cloud.google.com/blog/ja/products/containers-kubernetes/gke-cpu-startup-boost-faster-pod-starts-lower-costs/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 3 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/containers-kubernetes/gke-cpu-startup-boost-faster-pod-starts-lower-costs?e=48754805&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;トラフィックの急増に対応してマイクロサービスを起動する場合でも、新しいソフトウェア リリースをデプロイする場合でも、アプリケーション レプリカをスケールアップする場合でも、Google Kubernetes Engine（GKE）で実行されるアプリケーションの高速で応答性の高いユーザー エクスペリエンスを維持するには、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Pod の起動時間&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;が重要です&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-paragraph_with_image"&gt;&lt;div class="article-module h-c-page"&gt;
  &lt;div class="h-c-grid uni-paragraph-wrap"&gt;
    &lt;div class="uni-paragraph
      h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6
      h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"&gt;

      






  

    &lt;figure class="article-image--wrap-small
      
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_mhC0eeP.max-1000x1000.png"
        
          alt="1"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  





      &lt;p data-block-key="0udcy"&gt;しかし、プラットフォーム エンジニアと開発者は、アプリケーションが起動時に定常状態の運用時よりも大幅に多くの CPU パワーを必要とすることが多いという、根強いジレンマに直面しています。通常の定常状態の使用量に合わせて CPU リクエストをサイジングすると、起動時に CPU スロットリングが発生し、コールド スタートの遅延や、readiness プローブのタイムアウトにつながる可能性があります。逆に、短時間の起動バーストに対応するためにベースライン CPU リクエストをオーバープロビジョニングすると、貴重なコンピューティング リソースが無駄になり、インフラストラクチャの費用が膨らみます。&lt;/p&gt;&lt;p data-block-key="c617f"&gt;このたび、GKE 向け&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup"&gt; &lt;b&gt;CPU 起動ブースト&lt;/b&gt;&lt;/a&gt;のプレビュー版をリリースいたしました。GKE の VerticalPodAutoscaler（VPA）に直接統合された CPU 起動ブーストは、初期化中にコンテナの CPU 割り当てを動的に引き上げ、アプリケーションの準備が整うとシームレスにベースラインの定常状態レベルにスケールバックします。&lt;b&gt;コンテナを再起動する必要はありません。&lt;/b&gt;&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;最新のアプリケーションが起動時に追加の CPU を必要とする理由&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;新しいコンテナが起動すると、ユーザー リクエストの処理を開始する前に、負荷の高い初期化タスクが実行されることがあります。技術スタックによっては、起動時のワークロードで膨大な CPU サイクルが必要となります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Java JVM アプリケーション&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Spring Boot などのフレームワークでは、クラスの読み込み、クラスパスのスキャン、依存関係インジェクション コンテナのインスタンス化、ジャストインタイム（JIT）コンパイルの実行に、高い CPU バースト性能が必要です。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Node.js サーバー&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: アプリは JavaScript ファイルを解析し、複雑なモジュール依存関係ツリー（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;require&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;/&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;import&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）を構築し、初期実行時に V8 エンジンの最適化と JIT コンパイルパスを実行します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Python と AI / ML マイクロサービス&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: これらのサービスは、初期サイクルで、重いライブラリ（PyTorch、NumPy、LangChain など）のインポート、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;.pyc&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; バイトコードのコンパイル、ORM データベース スキーマの確立、キャッシュ構造のプリロードを行います。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;定常状態のパフォーマンスに合わせて CPU リクエストを厳密にサイジングすると、これらの初期化ワークロードでは起動時に CPU スロットリングが発生し、readiness プローブが遅延します。コールド スタートの遅延を防ぐために、CPU リクエストをオーバープロビジョニングするケースがよく見られます。しかし、アプリケーションが安定すると、それらの余分な CPU リソースはアイドル状態になり、何のメリットもないままクラウド費用を増加させることになります。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-paragraph_with_image"&gt;&lt;div class="article-module h-c-page"&gt;
  &lt;div class="h-c-grid uni-paragraph-wrap"&gt;
    &lt;div class="uni-paragraph
      h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6
      h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"&gt;

      






  

    &lt;figure class="article-image--wrap-small
      
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_zZExLw4.max-1000x1000.jpg"
        
          alt="2"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  





      &lt;p data-block-key="0udcy"&gt;&lt;b&gt;CPU 起動ブーストが役立つ仕組み&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="fiprp"&gt;CPU 起動ブーストは、起動時にワークロードに一時的な vCPU「ブースト」を与え、初期化が完了すると自動的にベースラインに戻すことで、この問題を解決します。&lt;/p&gt;&lt;p data-block-key="1ko41"&gt;主な利点:&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="11iu"&gt;&lt;b&gt;コールド スタートの高速化&lt;/b&gt;: アプリケーションの初期化時間を最大 &lt;b&gt;2 倍&lt;/b&gt;短縮し、予期しないトラフィックの急増時に自動スケーリングの応答性を向上させます。&lt;/li&gt;&lt;li data-block-key="fgtoq"&gt;&lt;b&gt;クラウド支出の最適化&lt;/b&gt;: アイドル状態の起動ヘッドルームに費用をかけるのではなく、実際のランタイムのニーズに合わせて定常状態の CPU リクエストを適切にサイジングします。&lt;/li&gt;&lt;li data-block-key="am05d"&gt;&lt;b&gt;Pod の再起動が不要&lt;/b&gt;: 動的なリソースのサイズ変更は、実行中のコンテナ内で直接行われます。&lt;/li&gt;&lt;li data-block-key="46o9b"&gt;&lt;b&gt;柔軟なポリシー制御&lt;/b&gt;: Pod レベルのシンプルな乗数係数（起動時に CPU を 2 倍にするなど）を適用したり、複雑なマルチコンテナ Pod に対してコンテナ固有のきめ細かいルールを定義したりできます。&lt;/li&gt;&lt;/ul&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;仕組み: Kubernetes のインプレース Pod サイズ変更&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;これまで、Pod のリソース リクエストや上限を変更するには、Pod を削除して再作成する必要がありました。このように影響の大きいプロセスは、コンテナの再起動、キャッシュの無効化、そしてノードの再スケジューリングによるオーバーヘッドを引き起こしていました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;これを解決するために、CPU 起動ブーストは Kubernetes の&lt;/span&gt;&lt;a href="https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;インプレース Pod サイズ変更（IPPR）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を基盤としています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-pod-resize" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;KEP-1287&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; として管理されている IPPR は、動的なインプレース リソース ミューテーションを導入しました。Kubernetes 1.27 でアルファ版として導入され、v1.33 でベータ版に昇格、v1.35 で一般提供（GA）となった IPPR を使用すると、Kubernetes コントロール プレーンと &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;kubelet&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; が、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;コンテナ プロセスを再起動することなく&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;、実行中の Pod のコンテナ CPU とメモリのリクエストを更新できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;GKE は、VPA 内の IPPR を活用して、Pod のアドミッション時に起動時の CPU ブーストを適用し、準備完了後にスムーズに引き下げます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;CPU 起動ブーストの仕組み（Pod ライフサイクルの概要）&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;CPU 起動ブーストは、次の 3 つのフェーズで動作します。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;アドミッション フェーズ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Pod をデプロイすると、VPA アドミッション Webhook が作成リクエストをインターセプトします。ポリシー（2 倍の乗数や +2 vCPU など）に基づいて引き上げられた CPU リクエストを計算し、追跡アノテーションとともに Pod 仕様に挿入します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;起動フェーズ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Pod がスケジュールされ、ブーストされた CPU 割り当てで初期化されます。アプリケーションは、CPU スロットリングを発生させることなく、クラスの読み込み、JIT コンパイル、モジュールの解析を最高速度で完了します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ブースト解除フェーズ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Pod の &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;readinessProbe&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; が成功すると（さらに、構成された &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;durationSeconds&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; のクールダウン遅延が経過すると）、VPA アップデータはインプレース サイズ変更リクエストを発行します。コンテナは中断されることなく実行を続け、CPU リクエストはベースライン レベルに戻ります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;前提条件と提供状況&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;CPU 起動ブーストは、GKE でプレビュー版として提供されています。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;GKE バージョン&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Standard クラスタと Autopilot クラスタのバージョン &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;1.36.0-gke.4447000&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 以降。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;クラスタモード&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: GKE Autopilot でネイティブに有効（VPA はデフォルトで有効）。GKE Standard では、垂直 Pod 自動スケーリング（VPA）が有効になっていることを確認するだけです。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ワークロードのサポート&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Deployment や StatefulSet などの標準の Kubernetes コントローラと連携します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;スタートガイド: CPU 起動ブーストを構成する&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;CPU 起動ブーストの構成は、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;VerticalPodAutoscaler&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; マニフェストに &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;startupBoost&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; セクションを追加するだけです。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span style="vertical-align: baseline;"&gt;例 1: 固定定常状態での Pod レベルのブースト（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;updateMode: "Off"&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;定常状態の CPU リクエストをマニフェスト定義にロックしたまま、起動ブーストのみに VPA を使用する場合は、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;updateMode&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;"Off"&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; に設定します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;apiVersion: &amp;quot;autoscaling.k8s.io/v1&amp;quot;\r\nkind: VerticalPodAutoscaler\r\nmetadata:\r\n  name: java-app-startup-boost\r\n  namespace: default\r\nspec:\r\n  targetRef:\r\n    apiVersion: &amp;quot;apps/v1&amp;quot;\r\n    kind: Deployment\r\n    name: java-app\r\n  updatePolicy:\r\n    updateMode: &amp;quot;Off&amp;quot;\r\n  startupBoost:\r\n    cpu:\r\n      type: &amp;quot;Factor&amp;quot;\r\n      factor: 2\r\n      durationSeconds: 10&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500312d90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;この例では、GKE は起動時にコンテナの CPU リクエストを 2 倍にし、readiness プローブに合格してから 10 秒間、ブーストされた割り当てを維持した後、ベースラインにスケールバックします。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;例 2: 起動ブーストと継続的な VPA 自動スケーリングの組み合わせ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;GKE で起動時に CPU をブースト&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;し&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;、起動後に定常状態のリソースを継続的に最適化する場合は、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;updateMode&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;"InPlaceOrRecreate"&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; に設定します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;apiVersion: &amp;quot;autoscaling.k8s.io/v1&amp;quot;\r\nkind: VerticalPodAutoscaler\r\nmetadata:\r\n  name: nodejs-app-vpa\r\n  namespace: default\r\nspec:\r\n  targetRef:\r\n    apiVersion: &amp;quot;apps/v1&amp;quot;\r\n    kind: Deployment\r\n    name: nodejs-service\r\n  updatePolicy:\r\n    updateMode: &amp;quot;InPlaceOrRecreate&amp;quot;\r\n  startupBoost:\r\n    cpu:\r\n      type: &amp;quot;Factor&amp;quot;\r\n      factor: 3\r\n      durationSeconds: 15&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500311dd0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="vertical-align: baseline;"&gt;例 3: コンテナレベルでのきめ細かいブースト&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;起動時に追加の CPU を必要としないサイドカー（ロギング エージェントやサービス メッシュ プロキシなど）を実行する Pod の場合は、特定のアプリコンテナをターゲットにします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;apiVersion: &amp;quot;autoscaling.k8s.io/v1&amp;quot;\r\nkind: VerticalPodAutoscaler\r\nmetadata:\r\n  name: app-container-boost\r\nspec:\r\n  targetRef:\r\n    apiVersion: &amp;quot;apps/v1&amp;quot;\r\n    kind: Deployment\r\n    name: API-gateway\r\n  updatePolicy:\r\n    updateMode: &amp;quot;Off&amp;quot;\r\n  resourcePolicy:\r\n    containerPolicies:\r\n    - containerName: &amp;quot;web-app&amp;quot;\r\n      mode: &amp;quot;Off&amp;quot;\r\n      startupBoost:\r\n        cpu:\r\n          type: &amp;quot;Quantity&amp;quot;\r\n          quantity: &amp;quot;2&amp;quot;\r\n          durationSeconds: 5&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500310ad0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;クラスタでの起動ブーストの確認&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code style="vertical-align: baseline;"&gt;kubectl&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を使用して、GKE が起動ブーストを適用してダウンスケールしたことを確認できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;1. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Pod アノテーションを検査する&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;vpaCpuStartupBoost&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; トラッキング アノテーションを確認します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;kubectl get pod &amp;lt;POD_NAME&amp;gt; -o yaml&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500313d90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;元のベースラインとブーストされた CPU リクエストを示すアノテーションを探します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;インプレース サイズ変更イベントをモニタリングする&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: readiness の後、GKE が CPU リクエストをベースラインにスケールダウンしたことを確認します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;kubectl get events --field-selector reason=InPlaceResizedByVPA&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500313c10&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;code style="vertical-align: baseline;"&gt;reason=InPlaceResizedByVPA&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; のイベントは、起動後のインプレース ダウンスケーリングが成功したことを示しています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;本番環境ワークロードのベスト プラクティス&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;HorizontalPodAutoscaler（HPA）との組み合わせ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: CPU 起動ブーストと HPA を併用する場合は、堅牢な &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;readinessProbe&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を定義し、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;durationSeconds&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を短く（例: &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;0 秒&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;～&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;10 秒&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）設定します。これにより、HPA が初期化時の CPU スパイクを定常状態の高負荷と誤って解釈するのを防ぎます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/how-to/configure-capacity-buffer"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;GKE Capacity Buffers API&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; でトラフィックの急増に対応&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 大規模な起動オーバーヘッドを削減することで、より少ないノードでワークロードの密度を高め、全体的な使用率を向上させることができます。厳格な SLO を維持しながら、最小限の運用オーバーヘッドでトラフィックの急増を吸収するために、GKE Capacity Buffers API の導入を検討してください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;GKE Autopilot のリソース比率&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: GKE Autopilot では、Pod が有効な CPU とメモリの比率を維持する必要があります。起動時にブーストされた CPU 比率に対応できるよう、ベースラインのメモリ割り当てを確保します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;CPU 起動ブーストは、GKE ユーザーに両方のメリットをもたらします。Java、Node.js、Python などの CPU 負荷の高いワークロードのコールド スタートを高速化すると同時に、リソース効率を最大化してクラウド費用を削減します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;GKE ワークロードを高速化させるには、以下のリソースをご活用ください。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/cpu-startup-boost"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GKE CPU 起動ブーストのドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を確認する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/vertical-pod-autoscaling"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GKE での垂直 Pod 自動スケーリング&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の詳細を確認する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;GKE &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;1.36.0-gke.4447000&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 以降を実行している GKE Standard クラスタまたは Autopilot クラスタで、CPU 起動ブーストをお試しください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Cloud デベロッパー アドボケイト&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;、Abdel Sghiouar&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;クラウド プロダクト マネージャー&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;、Jakub Pawełczak&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 16 Oct 2026 01:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/products/containers-kubernetes/gke-cpu-startup-boost-faster-pod-starts-lower-costs/</guid><category>Compute</category><category>GKE</category><category>Developers &amp; Practitioners</category><category>Containers &amp; Kubernetes</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>GKE CPU 起動ブースト: オーバープロビジョニングなしでアプリの起動を高速化</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/products/containers-kubernetes/gke-cpu-startup-boost-faster-pod-starts-lower-costs/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Abdel Sghiouar</name><title>Cloud Developer Advocate</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jakub Pawełczak</name><title>Cloud Product Manager</title><department></department><company></company></author></item><item><title>Data Agent Kit の一般提供を開始: Google のデータクラウドがあらゆるコーディング エージェントで利用可能に</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 10 月 1 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このたび、&lt;/span&gt;&lt;a href="https://cloud.google.com/products/data-agent-kit?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Data Agent Kit&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; の一般提供を開始しました。Data Agent Kit は、Model Context Protocol（MCP）ツールとエージェント スキルの無料セットです。Antigravity や Claude Code、Codex、その他の一般的なツールなど、すでに使用しているコーディング エージェントを Google Cloud データ プロダクトと直接連携させることができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;一般提供では、オープン レイクハウスに対する&lt;/span&gt;&lt;a href="https://cloud.google.com/bigquery/docs/graph-overview?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;BigQuery Graph&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/bigtable?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Bigtable&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/overview?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Managed Service for Apache Spark&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; からのアクセスがサポートされるほか、日常業務をより迅速かつスムーズにするためのさまざまな機能強化が追加されています。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/00-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent-da.gif"
        
          alt="00-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent-dak-promo"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Data Agent Kit とは&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;コーディング エージェントは、SQL、PySpark、パイプライン コードの作成に非常に優れています。デフォルトで欠けているのは、開発環境に関するコンテキストです。たとえば、どのテーブルが存在するか、どのようにパーティション分割されているか、チームが信頼しているのはどれか、昨夜のジョブが失敗したのはなぜか、といった情報です。これらがないと、優れたエージェントであっても、推測に基づいて作業せざるを得ず、最終的にはスキーマやエラーログをチャットに貼り付けて不足している情報を補うことになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Data Agent Kit は、次の 2 つの要素でその不足を埋めます。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;MCP ツール:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 15 以上の Google データクラウド サービスに接続できるため、エージェントはスキーマの検査、クエリの実行、ジョブ ログの読み取り、本番環境でのリソース管理を行うことができます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Google が作成したスキル:&lt;/strong&gt;&lt;a href="https://github.com/GoogleCloudPlatform/data-agent-kit-plugin" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud エンジニアが提供するオープンソースの指示書&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;により、エージェントは BigQuery SQL の最適化、Bigtable 行キーの設計、dbt（&lt;/span&gt;&lt;a href="https://www.getdbt.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;データビルド ツール&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;）パイプラインの構築といった、データのベスト プラクティスを学習できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Data Agent Kit は、VS Code、Antigravity IDE、Cursor、その他の VS Code 互換エディタの IDE 拡張機能として、または Antigravity 2.0、Antigravity CLI、Claude Code、Codex のプラグインとして、あるいは&lt;/span&gt;&lt;a href="https://cloud.google.com/shell?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Shell&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; や&lt;/span&gt;&lt;a href="https://cloud.google.com/workstations?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Workstations&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; にプリインストールされた状態で、既存の作業環境でそのまま使用できます。また、IDE 拡張機能により、Google Cloud コンソールの軽量版がエディタに組み込まれるため、ウィンドウを切り替えることなく、データの閲覧、クエリの実行、エージェントの作業の確認を行うことができます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;仕組み&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;たとえば、エージェントに「ベストセラー商品の来月の需要を予測し、それに対応できる十分な在庫があるかどうかを確認して」と指示したとします。Data Agent Kit が関連するスキルを読み込むため、エージェントはタスクに関する Google のベスト プラクティスに従います。&lt;/span&gt;&lt;a href="https://cloud.google.com/dataplex/docs/introduction?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Knowledge Catalog&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を検索して、チームが信頼している販売テーブルと在庫テーブルを見つけます。次に、MCP ツールを使用して&lt;/span&gt;&lt;a href="https://cloud.google.com/bigquery?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;BigQuery&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; で予測を実行し、AlloyDB for PostgreSQL で現在の在庫レベルを確認して、統合された回答をエディタまたはターミナルに返します。すべてのステップが独自の IAM 権限で実行されます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/01-data-agent-kit-is-now-ga-bring-google-d.max-1000x1000.png"
        
          alt="01-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_how_it_works"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="qngqb"&gt;Data Agent Kit がデータに接続する仕組み。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;構築できるもの&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Data Agent Kit は、分析、オペレーショナル データベース、レイクハウス、パイプラインに対応しています。具体的にどのように機能するのか、まずは一般提供の新機能から見ていきましょう。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;分析とグラフ: BigQuery と BigQuery Graph（一般提供の新機能）&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;グラフは、ユーザーが一緒に購入する商品や、サプライヤーが在庫にどのように接続しているかなど、関係性を自然に探索する方法です。通常、グラフを構築するには、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;CREATE PROPERTY GRAPH&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; DDL を手動で記述し、GQL を学習して、どのキーが実際にエッジを形成するかを把握する必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;代わりに、必要なグラフを指示するだけで、エージェントがグラフを構築してくれます。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;bigquery-graph-author&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; スキルは、テーブルをノードとエッジにマッピングし、提案された各関係を実際のデータと照合したうえで、実際に作成する前に承認を求めるプランを表示します。既存の ER 図やデータモデルから始めることもできます。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;bigquery-graph-query&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; スキルが GQL を記述し、IDE のグラフ ビジュアライザで結果をクリックして確認できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/02-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_bq.gif"
        
          alt="02-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_bqgraph"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="qngqb"&gt;BigQuery プロパティ グラフを構築して可視化する。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;オペレーショナル データベースとリアルタイム データベース: Spanner、AlloyDB、Cloud SQL、Bigtable（一般提供版の新機能）&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;パーソナライズされたフィード、ライブ カウンタ、ストアフロントの「最近閲覧した商品」レールなど、一部の機能は即座に読み込む必要があります。Bigtable はまさにそのために構築されており、行キーを適切に設計することで、その恩恵を最大限に得られます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;一般提供により、Bigtable は&lt;/span&gt;&lt;a href="https://cloud.google.com/spanner?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/alloydb?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;AlloyDB&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/sql?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud SQL&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; とともに、Data Agent Kit で完全にサポートされるデータベースとなりました。新しい &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;bigtable-basics&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; スキルは、データの読み取り方法に基づいてスキーマを設計し、作成する前に、ホットスポットとフルテーブル スキャンにフラグを立てます。エージェントはテーブルを作成し、GoogleSQL でクエリを実行して、列ファミリーを読み取り可能な列にフラット化できます。IDE では、カタログ エクスプローラで Bigtable インスタンスとテーブルをブラウジングし、SQL エディタからクエリを実行できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/03-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_bi.gif"
        
          alt="03-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_bigtable"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="qngqb"&gt;エージェントのガイドによる Bigtable スキーマの設計とクエリ。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;レイクハウスと Spark: Managed Service for Apache Spark と Lakehouse for Apache Iceberg（一般提供の新機能）&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェントは、これまでも BigQuery を介して Lakehouse 内の Apache Iceberg テーブルにクエリを実行することができました。さらに今度は、&lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/overview?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Managed Service for Apache Spark&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; 上のサーバーレス Spark を使用して、同じテーブルを操作できるようになります。クラスタの管理は不要です。各セッションは状態を保持するため、一時ビューがステートメント間で引き継がれ、ブランチ、タイムトラベル、スキーマの進化など、Iceberg の全機能を利用できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;また、すべてのテーブルを Google Cloud 上に配置する必要もありません。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;federate-lakehouse-catalog&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; スキルは、Lakehouse を AWS Glue と Databricks Unity Catalog に接続します。これにより、エージェントは最初に取り込みパイプラインを構築することなく、そのデータを移動させずにその場でクエリできます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/04-data-agent-kit-is-now-ga-bring-google-d.max-1000x1000.png"
        
          alt="04-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_lakehouse"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="qngqb"&gt;Managed Service for Apache Spark を使用した Iceberg テーブルのブランチとクエリ。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;パイプラインとオーケストレーション: dbt、Dataform、Managed Service for Apache Airflow&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ロジックが機能するようになったら、エージェントはそれを独自に実行されるパイプラインに変換できます。エージェントが dbt または&lt;/span&gt;&lt;a href="https://cloud.google.com/dataform?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Dataform&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; モデルを作成すると、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;gcp-pipeline-orchestration&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; スキルがそれらをノートブックとともにまとめ、&lt;/span&gt;&lt;a href="https://cloud.google.com/composer?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Managed Service for Apache Airflow&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; 上のオーケストレーション パイプラインとしてスケジュールします。パイプラインには、モデルのアップロードやバッチ推論の実行など、Gemini Enterprise Agent Platform のステップを含めることもできます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;IDE では、ビジュアル パイプライン キャンバスで各実行を追跡できます。タスクに対応が必要な場合は、[&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;診断&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;] をクリックしてログをエージェントに渡します。Airflow と Spark のトラブルシューティング スキルが根本原因を特定し、ユーザーが承認するだけの修正案を提案します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/05-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_pi.gif"
        
          alt="05-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_pipelines"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="qngqb"&gt;エージェントを使用して失敗した Airflow DAG をトラブルシューティングする。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;デベロッパー エクスペリエンスの向上&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;一般提供では、セットアップや日常のワークフローも簡素化されます。利用を開始するには、1 回ログインして、使用する Google Cloud サービスを選択するだけです。Data Agent Kit は、必要な API を自動的に有効にし、対応するスキルをインストールして、手動で設定ファイルを作成することなく MCP サーバーを構成します。IDE では、SQL エディタとノートブックで、インライン コード生成、テーブルへの &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 参照、提案された変更の差分表示がサポートされるようになりました。この拡張機能は、アクティブなプロジェクト、開いているファイル、実行したばかりのクエリのエラーもエージェントと共有するため、「このクエリを修正して」と依頼するだけで機能します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;また、コアツールの高速化と応答性の向上も実現しました。新しい Spark ノートブックでは、Spark Connect ランタイムが自動的に作成、選択され、エディタ内の Spark SQL クエリは、組み込みの実行指標を使用して分離されたセッションで実行されます。カタログ エクスプローラの読み込みが速くなり、サイドバーに BigQuery の一般公開データセットが表示されるようになりました。チューニングされたノートブック スキルにより、エージェントはより少ないトークンでノートブック タスクをより迅速に完了できます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;エンタープライズに対応&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Data Agent Kit は追加料金なしでご利用いただけます。エージェントが使用する Google Cloud サービスの標準料金のみをお支払いいただきます。また、スキルはエージェントをコスト効率の良いクエリパターンへと誘導します。たとえば、BigQuery クエリの実行前に、誤ったフルテーブル スキャンを避けるためにパーティション キーを確認したり、ドライランを実行したりするように促します。また、スキルは GitHub でオープンソースとして公開されているため、チームはスキルを監査したり、フォークしたり、社内基準に合わせたカスタムスキルを独自に作成したりできます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;アクセス制御については、エージェントはユーザーまたはユーザーが権限を借用するサービス アカウントとして接続するため、行レベルおよび列レベルのセキュリティ ポリシーが自動的に適用されます。管理者は、Identity and Access Management（IAM）で MCP アクセスを管理し、&lt;/span&gt;&lt;a href="https://cloud.google.com/security-command-center/docs/model-armor-overview?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Model Armor&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; で MCP トラフィックをスクリーニングし、&lt;/span&gt;&lt;a href="https://cloud.google.com/vpc-service-controls?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;VPC Service Controls&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; とプリンシパル アクセス境界ポリシーでエージェントのスコープを設定することもできます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;インストールして使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Data Agent Kit は、IDE またはターミナルで 1 分以内に設定できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;オプション 1: IDE 拡張機能をインストールする&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;IDE 拡張機能:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; VS Code、Antigravity IDE、Cursor、または VS Code 互換エディタの拡張機能パネルで「Google Cloud Data Agent Kit」を検索します。&lt;/span&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=googlecloudtools.datacloud" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;VS Code Marketplace&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; または&lt;/span&gt;&lt;a href="https://open-vsx.org/extension/googlecloudtools/datacloud" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Open VSX&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; からインストールすることもできます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Antigravity 2.0:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;[設定] &amp;gt; [カスタマイズ] &amp;gt; [Build with Google Plugins]&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; に移動し、Data Agent Kit をダウンロードします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Shell と Cloud Workstations:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; デフォルトですでにインストールされています。エディタを開いてログインするだけです。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;オプション 2: CLI プラグインをインストールする&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;公式の &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/data-agent-kit-plugin" rel="noopener" target="_blank"&gt;&lt;code style="text-decoration: underline; vertical-align: baseline;"&gt;GoogleCloudPlatform/data-agent-kit-plugin&lt;/code&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; リポジトリを使用して、お好みのコーディング エージェントのコマンドを実行します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Antigravity CLI\r\nagy plugin install https://github.com/GoogleCloudPlatform/data-agent-kit-plugin\r\n\r\n# Claude Code\r\nclaude plugin install data-agent-kit-starter-pack@claude-plugins-official\r\n\r\n# Codex CLI\r\ncodex plugin marketplace add GoogleCloudPlatform/data-agent-kit-plugin\r\ncodex plugin add dak@dak-marketplace&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5015393d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;そして最初のプロンプトとして、次を入力します:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;先週のトップ 10 に入っていなかった、今週の米国で最も急上昇している検索キーワードは何ですか？BigQuery の一般公開 Google トレンド データセットを使用してください。&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5018d7b50&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/06-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_cl.gif"
        
          alt="06-data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent_cli"&gt;
        
        &lt;/a&gt;
      
        &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="qngqb"&gt;Claude Code で実行されている Data Agent Kit プラグイン。&lt;/p&gt;&lt;/figcaption&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次のステップとハンズオン リソース&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ドキュメントを読む:&lt;/strong&gt;&lt;a href="https://docs.cloud.google.com/data-agent-kit?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Data Agent Kit のドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;と&lt;/span&gt;&lt;a href="https://cloud.google.com/products/data-agent-kit?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;プロダクトの概要ページ&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;スキルを試す:&lt;/strong&gt;&lt;a href="https://github.com/GoogleCloudPlatform/data-agent-kit-plugin" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GitHub&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; でスキルを閲覧、スター付け、貢献する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;分析ワークフローを構築する:&lt;/strong&gt;&lt;a href="https://codelabs.developers.google.com/dak-analytics-eng-antigravity-ide?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Data Agent Kit と Antigravity IDE を使用した分析&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の Codelab をお試しください。また、関連ブログ記事 &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/ja/products/data-analytics/agentic-analytics-with-the-data-agent-kit?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog&amp;amp;e=0&amp;amp;hl=ja"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Data Agent Kit でエージェントを駆使した問題分析&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;もご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;データ サイエンス パイプラインを構築する:&lt;/strong&gt;&lt;a href="https://codelabs.developers.google.com/dak-data-science-antigravity-ide?utm_campaign=CDR_0xaea1deef_default_b566338695&amp;amp;utm_medium=external&amp;amp;utm_source=blog" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Data Agent Kit と Antigravity IDE を使用した不正行為検出パイプライン&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の Codelab をお試しください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google、プロダクト マネージャー&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt; Arun Nair&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google、デベロッパー アドボケイト、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Jeff Nelson&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 09 Oct 2026 03:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/dak_blog_banner.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Data Agent Kit の一般提供を開始: Google のデータクラウドがあらゆるコーディング エージェントで利用可能に</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/dak_blog_banner.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/data-agent-kit-is-now-ga-bring-google-data-cloud-to-any-coding-agent/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Arun Nair</name><title>Product Manager, Google</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jeff Nelson</name><title>Developer Relations Engineer, Google</title><department></department><company></company></author></item><item><title>強化学習（RL）による Gemini モデルのカスタマイズに関するベスト プラクティス ガイド</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/best-practices-guide-for-customizing-gemini-models/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 26 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/best-practices-guide-for-customizing-gemini-models?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;強化学習（RL）は、最新の LLM の事後学習の重要な要素となっていますが、大規模なトレーニング クラスタと、Gemini のような独自モデルでは外部の顧客がアクセスできないモデル内部へのアクセスを必要とします。そこで、Google Cloud は、これを&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;マネージド RL ファインチューニング サービス（RLFT サービス） &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;としてパッケージ化しました。お客様はプロンプトと報酬関数を用意するだけで、インフラストラクチャと独自モデルの内部は Google が処理します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このサービスを使用すると、固定されたラベル付き回答セットではなく、定義した報酬シグナルに基づいてモデルに学習させることで、Gemini をサービスに適応させることができます。これにより、教師ありファインチューニング（SFT）では対応が難しい問題、つまり、実証は難しいものの、スコア付けは容易なタスクを解決できるようになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このガイドでは、RL ファインチューニング サービスを使用するための実践的なベスト プラクティスについて説明します。まず、RL トレーニング ループの概要、RL を使用するかどうか、いつ使用するかを判断する方法、このアプローチから最大限の価値を引き出す方法について説明します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;RLFT とは&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;RLFT は、ラベル付きの回答ではなく、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;定義した報酬シグナル&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;に基づいて Gemini を調整します。大量のゴールド サンプルを作成する代わりに、回答をスコア付けするプログラムを 1 つ作成し、サービスがそれに基づいてモデルを改善します。これにより、実証は難しいが検証は容易なタスクを解決できるようになります。たとえば、すべてのスキーマに対して理想的な SQL を手動で記述することはできませんが、クエリを実行して結果を確認することはできます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_Single-Step_RL_Training_Loop.max-1000x1000.png"
        
          alt="1 - Single-Step RL Training Loop"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;各トレーニング ステップで、サービスはプロンプトに対して複数の回答候補を生成し、報酬でスコアを付け、元の Gemini に近い状態を維持しながら、スコアの高い回答が生成される可能性が高くなるようにモデルを改善します。これを可能にする強化学習はフルマネージドであるため、構成する必要はありません。あなたがコントロールし、結果を最も左右するものは、報酬です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;RLFT でできることとできないことは、次の 3 つの特性で定義されます。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;モデル自体の出力から学習する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 外部のターゲットをコピーするのではなく、モデルがすでに生成したものを改良するため、SFT よりも無関係な機能を損なう可能性が低くなります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;経路ではなく結果に報酬を与える:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 良い結果に到達した回答には報酬が与えられます。これは、有効な解決策が多数ある自由回答形式のタスクに適しています。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;既存の能力を増幅する: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;たまにしか起きない成功を確実に再現できるようにしますが、モデルが一度も実証したことのないスキルを教えることはできません。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;RLFT を使用する状況&lt;/strong&gt;&lt;/h4&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_RLFT_Approaches_-_Direct_RL_or_SFT_War.max-1000x1000.png"
        
          alt="2 - RLFT Approaches - Direct RL or SFT Warmup to Continuous RLFT"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;プロンプトと SFT でほとんどの適応に対処できるため、まずはこれらを試してください。RLFT がその価値を発揮するのは、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;回答を評価できるが、安価に作成できない&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;場合、重要な指標（忠実性、スキーマの有効性、トーン）で &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;SFT が頭打ち&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;になった場合、またはタスクに&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;等しく有効な回答が多数&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;あり、単一の参照ターゲットでは誤ってペナルティが課される場合です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;SFT と RLFT は競合するものではなく、補完的なものです。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;直接 RLFT&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: ベースモデルがすでに時々成功している場合（報酬によってより良い回答とより悪い回答が区別される程度）。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;SFT → RLFT の 2 段階&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: SFT データがある場合、またはベースの成功率が低すぎて RL が軌道に乗らない場合。SFT を短時間の安価なウォーム スタートとして使用します。デモンストレーションを過学習させると RL による改善の余地が少なくなるため、SFT は軽めにとどめておきます。その後、SFT チェックポイントから RL を初期化する&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;継続的チューニング&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を介して RL に移行します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;先行ユーザーの間では、これらのパターンは RLFT が最も価値を発揮する領域であることが示されています。いずれのパターンでも、企業が重視するものの、安価に実証できなかった成果を RLFT でスコア付けしています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;RLFT のユースケース&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;ゲーム内の AI を活用した NPC&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;内容:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 多言語対応でマルチターンの長い会話で、キャラクターやブランドにふさわしい対話が展開される。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;問題:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 既製のモデルでは、言語の誤り、ハルシネーションにより生じたアイテム、プレーヤーの無視、繰り返しのループなどにより、没入感が損なわれる。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;目標と報酬:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini 自動評価ツール（LLM-as-a-judge）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;が、ペルソナ、フロー、ゲーム状態のシンタックスに基づいて各ターンをスコア付けし、形式や言語のエラーにペナルティを課す。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;結果:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ループと言語のドリフトが解消され、状態のシンタックスが維持されたことで、ゲーム内のキャラクターを大規模にリリースすることが現実的なものになりました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;構造化されたエンティティの抽出&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;内容:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; サプライヤーの請求書や出荷明細書などの非構造化ドキュメントから一連の項目を抽出し、構造化レコードに自動的に変換する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;問題:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; SFT が頭打ちになるロングテール。必要なフィールドが見落とされている（再現率）か、存在しないフィールドが捏造されている（適合率）。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;目標と報酬:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;ルールベースの適合率 / 再現率の報酬&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を使用して、各フィールドがソーステキストにグラウンディングされるようにして、1 つの正解から模倣されないようにする。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;結果:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; チューニングが停滞していたノイズの多い実社会のドキュメントに対して、フィールド レベルの精度が向上し、手動によるレビュー手順を自動化できました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;コンテンツ管理&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;内容:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 複雑なポリシーとディシジョン ツリーを大規模に適用する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;問題:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; モデルのハルシネーションによる偽陽性や、無効な形式で評価を避けようとする報酬ハッキング。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;目標と報酬:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Run の報酬&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を使用して、形式の検証と決定論的な採点ツールを組み合わせて、複数ステップのポリシー遵守を強制する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;結果:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; モデルが複雑な免除措置を処理し、偽陽性を大幅に削減し、報酬ハッキングを阻止したことで、管理費用を増加させる人間へのエスカレーションの量が減少しました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;実行によって測定されるコード&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;内容:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 顧客データに対して実際に実行されるかどうかに基づいて評価される SQL または API 呼び出し。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;問題:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; SFT が 1 つの参照クエリを模倣し、未知の独自スキーマに対して機能しない。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;目的と報酬:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;コード実行の報酬&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を使用して、安全なサンドボックスでコードを実行し、コンパイル、実行を経て、正しい結果が返された場合にのみ報酬を与える。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;結果:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; モデルは、クローズド フロンティア品質の実行可能なクエリを最初の試行で生成し、推論コストを削減しました。これにより、技術者以外のユーザーも自然言語で独自のデータをクエリできるようになりました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;HTML によるプレゼンテーション スライドの生成&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;内容:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; HTML / CSS で作成された複数スライドの資料。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;問題:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; テキストのみでトレーニングすると、視覚的な品質が無視されるため、オーバーフロー、要素のクリッピング、一貫性のないスタイル設定などが見過ごされる。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;目標と報酬:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;コード実行の報酬&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を使用して、スライドをレンダリングし、ビジュアル デザイン、レイアウトの整合性、構造の完全性、評価基準の遵守をスコア付けする。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;結果:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; モデルは、テーマに一貫性があり、レイアウトのオーバーフローがない、モジュール化された、適切なスタイルのスライドを出力しました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;どこから始めるべきか&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;データセット。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;最初の実行には、検証用として取り分けたデータを含む、多様なプロンプトのセットで十分です。ループが収束し、報酬が期待どおりに推移していることを確認してから、スケールします。トレーニングと評価は厳密に分けるようにしてください。評価が汚染されると、過学習が見落とされてしまいます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;報酬関数。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;コードまたは構成としてのタスク仕様であり、品質を左右する重要な要因。優れた報酬は、人間の好みに相関し、不正な出力に対して堅牢であり（解析の失敗をキャッチし、クラッシュすることなく、明確に否定的なスコアを返します）、報酬ハッキングに耐性があります。具体的には、複数の評価を組み合わせ、長さへのペナルティを課し、異常な出力への下限を設定し、モデルの意見よりも検証可能なチェックを優先します。リリース前にオフラインで検証してください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;残りはサービスが処理します。デフォルト設定から開始し、コンソールで報酬と評価の曲線を確認して、最後の段階ではなく、検証報酬が頭打ちになった時点のチェックポイントを使用します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/3_-_rlft_tutorial.gif"
        
          alt="3 - rlft_tutorial"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;あなたは何を構築しますか？そのために必要なツールがここにあります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/tuning/reinforcement-tuning"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;ドキュメント: 強化学習ファインチューニング&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google、シニア ソフトウェア エンジニア、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Jiaqi Pan&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google、シニア プロダクト マネージャー、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Kunal Jha&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 06 Oct 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/best-practices-guide-for-customizing-gemini-models/</guid><category>AI &amp; Machine Learning</category><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>強化学習（RL）による Gemini モデルのカスタマイズに関するベスト プラクティス ガイド</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/best-practices-guide-for-customizing-gemini-models/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jiaqi Pan</name><title>Senior Software Engineer, Google</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Kunal Jha</name><title>Senior Product Manager, Google</title><department></department><company></company></author></item><item><title>AI ワークロードのコンピューティングを柔軟に選択できるよう Google Cloud ネットワーキングがサポート</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/how-google-cloud-networking-supports-your-fluid-compute-choices-for-ai-workloads/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="1cnbu"&gt;※この投稿は米国時間 2026 年 9 月 25 日に、Google Cloud blog に&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/how-google-cloud-networking-supports-your-fluid-compute-choices-for-ai-workloads?e=0&amp;amp;hl=en"&gt;投稿&lt;/a&gt;されたものの抄訳です。&lt;/p&gt;&lt;p data-block-key="3v1mu"&gt;AI ワークロード用のリソース、特にアクセラレータの可用性は、業界全体で課題となる可能性があります。特定のタイプのアクセラレータを中心に構築されている場合、AI ワークロードのデプロイが遅くなる可能性があります。&lt;b&gt;フルイド コンピューティング&lt;/b&gt;というコンセプトにより、ユースケースに適合する利用可能なリソースに基づき、複数のオプションを使用して AI デプロイを設計することが可能になります。&lt;/p&gt;&lt;p data-block-key="8pqb3"&gt;このブログ投稿では、Google Cloud ネットワーキングが AI ワークロードをどのようにサポートしているかを紹介するとともに、アクセラレータ（GPU または TPU）を選択する際の考慮事項について説明します。バックエンドのネットワーキング コンポーネント構成は、それぞれで完全に同じではないためです。&lt;/p&gt;&lt;h3 data-block-key="2j4h8"&gt;&lt;b&gt;リソース オプション&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="2qevg"&gt;AI デプロイで実現したいタスクを決定したら、次に重要な要素は、それを実行する実際のハードウェアです。この場合、プライベート LLM の推論を実行する必要があり、ターゲットは&lt;a href="https://cloud.google.com/compute/docs/gpus"&gt; A4 VM&lt;/a&gt;（a4-highgpu-8g）で利用可能な NVIDIA B200 GPU ファミリーです。&lt;/p&gt;&lt;p data-block-key="41vnm"&gt;これで、達成したいことと、利用可能なコンピューティング オプションは特定できました。しかし、「本当にそれが利用できるのか」という課題があります。&lt;/p&gt;&lt;p data-block-key="ft7hj"&gt;リソースにアクセスするには、次のような方法があります。&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="bltbi"&gt;&lt;a href="https://docs.cloud.google.com/compute/docs/instances/about-flex-start-vms"&gt;Dynamic Workload Scheduler（Flex Start VM）&lt;/a&gt;: 必要なアクセラレータ ノードがすべて同時に利用可能になるまでワークロードをキューに入れ、それらをまとめてプロビジョニングし、最大 7 日間プリエンプト不可で実行します。&lt;/li&gt;&lt;li data-block-key="7seee"&gt;&lt;a href="https://docs.cloud.google.com/compute/docs/instances/future-reservations-calendar-mode-overview"&gt;Dynamic Workload Scheduler（カレンダー モード）&lt;/a&gt;: 1～90 日前にアクセラレータ容量を予約でき、開始時間と終了時間が保証されるため、スケジュールされた事前トレーニングの実行やベンチマークに最適です。&lt;/li&gt;&lt;li data-block-key="84s61"&gt;&lt;a href="https://docs.cloud.google.com/compute/docs/instances/future-reservations-overview"&gt;将来の予約&lt;/a&gt;: 将来の特定の日付から、指定したゾーンで確約されたハードウェアへのアクセスを保証します。&lt;/li&gt;&lt;li data-block-key="d2q02"&gt;&lt;a href="https://cloud.google.com/compute/docs/instances/reservations-overview"&gt;フレックス予約&lt;/a&gt;: 短期契約により、複数年のロックインなしで、希少なアクセラレータ ノードを確保できます。&lt;/li&gt;&lt;li data-block-key="8o6bg"&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#enable-workload-level"&gt;動的なノード自動プロビジョニングと ComputeClasses&lt;/a&gt;: Google Kubernetes Engine（GKE）では、ComputeClasses 内にマルチファミリー フォールバック リストを定義することで、プライマリ プールがリージョンの制約に直面した場合に、クラスタが代替アクセラレータ タイプのプロビジョニングを自動的に試行できます。&lt;/li&gt;&lt;li data-block-key="e1f80"&gt;&lt;a href="https://cloud.google.com/compute/docs/instances/spot"&gt;Spot VM&lt;/a&gt;: フォールト トレラントなチェックポイント付きバッチジョブ向けに、余剰コンピューティングを大幅な割引価格で提供します。&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="49ldn"&gt;詳しくは、ブログ投稿 &lt;a href="https://medium.com/google-cloud/never-run-out-of-compute-a-practical-guide-to-gke-resource-obtainability-eab4dea059ca" target="_blank"&gt;&lt;i&gt;コンピューティング リソースの不足を防止する: GKE リソースの入手可能性に関する実践ガイド&lt;/i&gt;&lt;/a&gt; をご覧ください。&lt;/p&gt;&lt;h3 data-block-key="a2aiu"&gt;&lt;b&gt;ネットワーキングの選択肢&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="968lp"&gt;アクセラレータのネットワーキング コンポーネントは選択内容によって異なるため、標準ネットワーキング、高速 GPU ネットワーキング（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus/gpudirect"&gt;TCPX / TCPXO&lt;/a&gt; と&lt;a href="https://cloud.google.com/blog/products/networking/rdma-rocev2-for-ai-workloads-on-google-cloud?e=48754805"&gt; RoCEv2&lt;/a&gt;）、TPU ネットワーキング、Cloud Run の 4 つの構成について説明します。&lt;/p&gt;&lt;p data-block-key="c9avd"&gt;&lt;b&gt;標準ネットワーキング&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="5d3hq"&gt;&lt;b&gt;サポートされているアクセラレータ:&lt;/b&gt; NVIDIA T4（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus#n1-gpus"&gt;N1 シリーズ&lt;/a&gt;）、NVIDIA L4（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus#l4-gpus"&gt;G2 シリーズ&lt;/a&gt;）、NVIDIA A100（&lt;a href="https://docs.cloud.google.com/compute/docs/accelerator-optimized-machines#a2-vms"&gt;A2 マシンシリーズ&lt;/a&gt;のシングルノードとマルチノード）、Cloud TPU v3、&lt;a href="https://cloud.google.com/tpu/docs/v5e"&gt; Cloud TPU v5e&lt;/a&gt;（単一ホスト / スタンドアロン スライス）。&lt;/li&gt;&lt;li data-block-key="4048c"&gt;&lt;b&gt;アーキテクチャ:&lt;/b&gt; ノードは、標準の TCP / IP を介して&lt;a href="https://cloud.google.com/vpc/docs/vpc"&gt; Google Virtual NIC（gVNIC）&lt;/a&gt;を使用し、プライマリ&lt;a href="https://cloud.google.com/compute/docs/networking/using-gvnic"&gt; Virtual Private Cloud（VPC）&lt;/a&gt;ネットワーク経由で通信します。&lt;/li&gt;&lt;li data-block-key="e583n"&gt;&lt;b&gt;ワークロードの適合性:&lt;/b&gt; Google Cloud コンピューティング環境間で簡単に移植できます。標準の VPC ルーティングとネットワーク ポリシーを使用し、分散データの前処理、パイプライン ステージの分離、独立した推論レプリカ、コンピュータ ビジョン ワークロードをサポートします。&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="53g30"&gt;&lt;b&gt;高速 GPU ネットワーキング（TCPX / TCPXO、RoCEv2）&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="bltnj"&gt;分散トレーニングとマルチノード推論には、膨大なパラメータ交換と集団通信を処理するための特殊なマルチレール ネットワーク ファブリックが必要です。&lt;/p&gt;&lt;p data-block-key="ar6da"&gt;&lt;b&gt;GPUDirect-TCPX ファブリックと GPUDirect-TCPXO ファブリック&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="faaj8"&gt;&lt;b&gt;サポートされているアクセラレータ&lt;/b&gt;: NVIDIA H100（4 レールの &lt;a href="https://docs.cloud.google.com/compute/docs/accelerator-optimized-machines#a3-high-vms"&gt;A3 High VM&lt;/a&gt;）と NVIDIA H100 Mega（8 レールの &lt;a href="https://docs.cloud.google.com/compute/docs/accelerator-optimized-machines#a3-mega-vms"&gt;A3 Mega VM&lt;/a&gt;）。&lt;/li&gt;&lt;li data-block-key="d72s5"&gt;&lt;b&gt;アーキテクチャ:&lt;/b&gt; カスタムの&lt;a href="https://docs.cloud.google.com/compute/docs/gpus/gpudirect#a3-high-and-a3-edge"&gt; GPUDirect-TCPX&lt;/a&gt;（4 つの専用 VPC）と&lt;a href="https://docs.cloud.google.com/compute/docs/gpus/gpudirect#a3-mega"&gt; GPUDirect-TCPXO&lt;/a&gt;（8 つの専用 VPC）オフロード エンジンを使用して、ネイティブ RDMA ハードウェアを必要とせずに、標準のイーサネット インフラストラクチャ上で高スループットのマルチレール GPU 通信を実現します。&lt;/li&gt;&lt;li data-block-key="jgji"&gt;&lt;b&gt;デプロイ ブループリント:&lt;/b&gt; これらのマルチ VPC トポロジは、&lt;a href="https://docs.cloud.google.com/cluster-toolkit/docs/setup/cluster-blueprint"&gt;Cluster Toolkit&lt;/a&gt; の事前構築済みブループリントを使用するなど、さまざまな方法でデプロイできます。&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="8ldqv"&gt;&lt;b&gt;RoCEv2 ファブリック（VM とベアメタル）&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="37vje"&gt;&lt;b&gt;サポートされているアクセラレータ&lt;/b&gt;: NVIDIA H200（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus#h200-gpus"&gt;A3 Ultra VM&lt;/a&gt;）、NVIDIA B200（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus#b200-gpus"&gt;A4 VM&lt;/a&gt;）、NVIDIA GB200 NVL72（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus#gb200-gpus"&gt;A4X VM&lt;/a&gt;）、NVIDIA GB300（&lt;a href="https://docs.cloud.google.com/compute/docs/gpus#gb300-gpus"&gt;A4X Max ベアメタル&lt;/a&gt;）。&lt;/li&gt;&lt;li data-block-key="bpolt"&gt;&lt;b&gt;ゾーン ネットワーク プロファイル:&lt;/b&gt; RoCEv2 は、専用のゾーン ネットワーク プロファイルに接続された専用の RDMA VPC 上で動作します。VM インスタンス（A3 Ultra、A4、A4X）は&lt;a href="https://docs.cloud.google.com/vpc/docs/rdma-network-profiles#roce-supported-features"&gt; ZONE-vpc-roce&lt;/a&gt; プロファイルを使用し、ベアメタル インスタンス（A4X Max など）は専用の&lt;a href="https://docs.cloud.google.com/vpc/docs/rdma-network-profiles#roce-metal-supported-features"&gt; ZONE-vpc-roce-metal&lt;/a&gt; ベアメタル プロファイルを使用します。&lt;/li&gt;&lt;li data-block-key="71oou"&gt;&lt;b&gt;レール整列型ファブリック:&lt;/b&gt; この専用 VPC は GPU 通信用に厳密に分離されており、アクセラレータ NIC に直接マッピングされたサブネットが含まれています。バックエンドはレール整列型で、ジャンボ フレーム（&lt;a href="https://cloud.google.com/vpc/docs/mtu"&gt;MTU 8896&lt;/a&gt;）をサポートし、レール間の干渉を最小限に抑えながら、ノンブロッキングのマルチ テラビット帯域幅を実現します。&lt;/li&gt;&lt;li data-block-key="eorob"&gt;&lt;b&gt;GKE&lt;/b&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/how-to/allocate-network-resources-dra"&gt; &lt;b&gt;Dynamic Resource Allocation Network（DRANET）&lt;/b&gt;&lt;/a&gt;による自動配線: これらの GPU を GKE にデプロイする場合、GKE マネージド DRANET を使用して、追加のネットワークを自動的にプロビジョニングし、RDMA ネットワーク インターフェースを GPU にマッピングするドライバを割り当てることができます。これらは、標準の Kubernetes リソース クレームを使用して、ワークロード Pod に直接割り当てて使用できます。&lt;/li&gt;&lt;li data-block-key="e3092"&gt;&lt;b&gt;ターンキー デプロイ&lt;/b&gt;: RDMA VPC、MTU チューニング、DRA ドライバなど、このエンドツーエンドのスタック全体を、&lt;a href="https://cloud.google.com/cluster-toolkit/docs/overview"&gt;Cluster Toolkit&lt;/a&gt; の自動化されたブループリントを使用してデプロイできます。&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="6melj"&gt;&lt;b&gt;TPU ネットワーキング&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="9m3id"&gt;&lt;b&gt;サポートされているアクセラレータ&lt;/b&gt;:&lt;a href="https://cloud.google.com/tpu/docs/v4"&gt; Cloud TPU v4&lt;/a&gt;、&lt;a href="https://cloud.google.com/tpu/docs/v5p"&gt;Cloud TPU v5p&lt;/a&gt;、&lt;a href="https://cloud.google.com/tpu/docs/v5e"&gt;Cloud TPU v5e&lt;/a&gt;（マルチホスト Pod スライス）、&lt;a href="https://cloud.google.com/tpu/docs/v6e"&gt;Cloud TPU v6e&lt;/a&gt;（Trillium）、&lt;a href="https://docs.cloud.google.com/tpu/docs/tpu7x"&gt;TPU7x&lt;/a&gt;（Ironwood）。&lt;/li&gt;&lt;li data-block-key="7gcbd"&gt;&lt;b&gt;チップ間相互接続（ICI）&lt;/b&gt;: TPU Pod またはスライス内では、チップは 2D または 3D トーラス メッシュで構成された専用の超低レイテンシ光リンクを介して直接通信し、従来のネットワーク スタックを完全にバイパスします。&lt;/li&gt;&lt;li data-block-key="6m8bh"&gt;&lt;b&gt;光回線スイッチ&lt;/b&gt;（OCS）: TPU v4 と TPU v5p の SuperPod では、ソフトウェアで再構成可能な OCS ユニットが物理ネットワーク トポロジを動的に変更し、障害のあるトレイを迂回して、手動でケーブルを再接続することなく、カスタムサイズのアクセラレータ スライスをプロビジョニングします。&lt;/li&gt;&lt;li data-block-key="bnn71"&gt;&lt;b&gt;マルチ NIC アーキテクチャ&lt;/b&gt;（TPU v6e 以降）: 以前の TPU 世代は、スライス内の ICI とホスト トラフィック用の単一 NIC に依存していましたが、Cloud TPU v6e（Trillium）と TPU7x には、ネイティブのマルチ NIC アーキテクチャが導入されています。このアーキテクチャでは、ワーカーノードが標準の Kubernetes 管理トラフィックをプライマリ VPC に分離し、高スループットの TPU データとクロススライス通信用に構成されたセカンダリ専用 VPC を使用します。&lt;/li&gt;&lt;li data-block-key="3qvb3"&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/how-to/allocate-network-resources-dra#use-non-rdma-interfaces-tpu"&gt;&lt;b&gt;TPU デプロイ用の DRANET&lt;/b&gt;&lt;/a&gt;: これらの TPU を GKE にデプロイする場合、GKE マネージド DRANET を使用して、追加のネットワークを自動的にプロビジョニングし、TPU 通信用にドライバを割り当てることができます。これらは、標準の Kubernetes リソース クレームを使用して、ワークロード Pod に直接割り当てて使用できます。&lt;/li&gt;&lt;li data-block-key="3gpia"&gt;&lt;b&gt;データセンター ネットワーク（DCN）マルチスライス&lt;/b&gt;: 個々の TPU スライスを超えてスケールするモデルの場合、&lt;a href="https://docs.cloud.google.com/tpu/docs/multislice-introduction"&gt;Cloud TPU マルチスライス&lt;/a&gt;は、これらの専用マルチ NIC パスを利用し、Google の高速 Jupiter データセンター ネットワークを介して複数の独立した ICI メッシュを接続します。&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="5hotn"&gt;&lt;b&gt;Cloud Run&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="e7ibp"&gt;&lt;b&gt;サポートされているアクセラレータ:&lt;/b&gt;&lt;a href="https://cloud.google.com/run/docs/configuring/services/gpu"&gt; Cloud Run GPU サービス&lt;/a&gt;の NVIDIA L4（G2 シリーズ）と NVIDIA RTX PRO 6000（Blackwell）。&lt;/li&gt;&lt;li data-block-key="d0bn6"&gt;&lt;b&gt;ダイレクト VPC 下り（外向き）&lt;/b&gt;: &lt;a href="https://cloud.google.com/run/docs/configuring/vpc-direct-vpc"&gt;ダイレクト VPC 下り（外向き）&lt;/a&gt;を介して 1 分未満で IP を割り当てることで、サーバーレス コンテナをプライベート VPC ネットワークに直接バインドします。これにより、公共のインターネットを経由したり、レガシー コネクタ VM を必要としたりすることなく、内部データレイク、データベース、プライベート API にセキュアかつ低レイテンシでアクセスできます。&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/how-google-cloud-networking-supports-your-.max-1000x1000.jpg"
        
          alt="how-google-cloud-networking-supports-your-fluid-compute-choices-networks"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="1cnbu"&gt;&lt;b&gt;まとめ&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="2g3qn"&gt;Google Cloud のネットワーキング オプションは、さまざまなアクセラレータ タイプをサポートしています。フルイド コンピューティングを使用する場合、ワークロードのパフォーマンスが最適化されるベストな設計をサポートするようネットワーク設定を調整できます。&lt;/p&gt;&lt;h3 data-block-key="c8o1i"&gt;&lt;b&gt;次のステップ&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="3m8as"&gt;Google Cloud AI インフラストラクチャとネットワーキング アーキテクチャについて詳しくは、以下のリソースをご覧ください。&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="90jk2"&gt;ブログ記事:&lt;a href="https://cloud.google.com/blog/ja/topics/ai-infrastructure/best-practices-for-dynamic-capacity-management?e=48754805&amp;amp;hl=ja"&gt; AI インフラストラクチャの動的容量管理&lt;/a&gt;&lt;/li&gt;&lt;li data-block-key="2fp45"&gt;チュートリアル:&lt;a href="https://discuss.google.dev/t/how-to-build-an-elastic-scalable-llm-inference-platform-on-gke-using-fluid-compute/388108" target="_blank"&gt; フルイド コンピューティングを使用して GKE 上にエラスティックでスケーラブルな LLM 推論プラットフォームを構築する方法&lt;/a&gt;&lt;/li&gt;&lt;li data-block-key="crk17"&gt;ブログ記事:&lt;a href="https://cloud.google.com/blog/ja/products/networking/how-google-cloud-networking-supports-your-ai-workloads?e=48754805&amp;amp;hl=ja"&gt; Google Cloud ネットワーキングが AI ワークロードをサポートする仕組み&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="rl43"&gt;ご質問やご意見がございましたら、&lt;a href="https://www.linkedin.com/in/ammett/" target="_blank"&gt;LinkedIn&lt;/a&gt; 経由で筆者までご連絡ください。&lt;/p&gt;&lt;p data-block-key="c514a"&gt;&lt;b&gt;&lt;i&gt;- デベロッパーリレーションズ エンジニア、Ammett Williams&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 02 Oct 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/how-google-cloud-networking-supports-your-fluid-compute-choices-for-ai-workloads/</guid><category>Networking</category><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/how-google-cloud-networking-supports-your-fl.max-600x600_VSTWN6E.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>AI ワークロードのコンピューティングを柔軟に選択できるよう Google Cloud ネットワーキングがサポート</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/how-google-cloud-networking-supports-your-fl.max-600x600_VSTWN6E.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/how-google-cloud-networking-supports-your-fluid-compute-choices-for-ai-workloads/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Ammett Williams</name><title>Developer Relations Engineer</title><department></department><company></company></author></item><item><title>AlphaEvolve で動画処理を高速化する方法</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/how-to-speed-up-your-video-processing-with-alphaevolve/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 24 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/how-to-speed-up-your-video-processing-with-alphaevolve?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;リアルタイム ストリーミングでは、1 ミリ秒の違いが結果を左右します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;たとえば、30 フレーム/秒（fps）の場合、デベロッパーはカメラフレームの取り込み、ニューラル セグメンテーションの実行、シェーダーの適用、出力の合成を、わずか 33.3 ミリ秒（60 fps の場合は 16.6 ミリ秒）という厳格なフレーム バジェット内で行う必要があります。このバジェットを 1 ミリ秒でも超えると、ドロップフレーム（コマ落ち）やスタッタリング（カクつき）が発生します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;これを手動で最適化するのは、フレームグラフの分析や Swift、C++、Metal での低レベルコードの手動調整に何週間もかかるため、非常に面倒な作業になります。標準的な AI コーディング支援を使用すれば、ボイラープレートを生成することは可能です。しかし、ターゲット ハードウェアに合わせた最適化や実際の環境で生じるレイテンシへのベンチマークには対応できず、また最適化後に視覚的な忠実度を完全に維持することもできません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この状況を打破するには、自律的なクローズドループの進化史的最適化が有効です。&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/ja/products/ai-machine-learning/alphaevolve-is-available-for-everyone?e=0&amp;amp;utm_source=gemini&amp;amp;hl=ja"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;AlphaEvolve&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; のようなツールが、クラウド規模のモデル推論をローカル ハードウェアでの実行と組み合わせ、すでに実用環境に効果をもたらしています。&lt;/span&gt;&lt;a href="https://www.doit.com/about?utm_source=gemini" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;DoIt&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は、Google との提携により、AlphaEvolve を使用して、macOS のライブ ストリーミング アプリにおける本番環境 Swift コードの自律的最適化を実現しました。これにより、手動プロファイリングでは見つけられなかった伸びしろが見出され、パフォーマンスが改善されました（詳しくは完全版の&lt;/span&gt;&lt;a href="https://medium.com/google-cloud/running-alphaevolve-on-your-own-code-f8aeebceb4d0?utm_source=gemini" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;技術レポート&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をご覧ください）。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この投稿では動画パイプラインに焦点を当てていますが、分割ループパターンは、マイクロサービスのスループットやデータベースのクエリから、ML テンソル パイプラインや組み込みシステムまで、パフォーマンスが重要となるあらゆる場面に適用できます。どのユースケースにおいても仕組みは同じで、クラウドにおける Gemini のコード生成を、ドメイン固有のベンチマーク ハーネスおよび自動品質ゲートと組み合わせます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ここでは、AlphaEvolve を使用して動画処理を高速化する方法と、ユーザー固有のパフォーマンス ボトルネックに以下の原則をどのように適用できるかについて確認していきましょう。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;分割ループ アーキテクチャを理解する: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;AlphaEvolve が、マネージド クラウド生成（Google Cloud 上の Gemini モデル アンサンブル）をローカルでの評価プロセス（ネイティブ Swift / Metal コードのコンパイルと実行時間の計測など）からどのように分離しているのかを理解します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;評価ツールの設計と品質ゲートを適用する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 構造的類似性指数（SSIM）などの指標を使用してスコアリング関数を構築し、進化ループがベンチマークの裏をかく（例: 速度を上げるためにレンダリングを完全にスキップする）のを防ぎます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;自律的なアルゴリズム検出を活用する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Gemini 主導の進化史的最適化検索により、プロンプトなしでフレームワーク API を自律的に検出し、エンジニアリングのバランス（フレーム キャッシュの制限など）をインテリジェントに調整します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;現実的なパフォーマンス境界を設定する: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;物理的なハードウェアの限界に対応するコードの最適化を測定します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;1. AlphaEvolve の分割ループ アーキテクチャを理解する&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AlphaEvolve は、クローズドループの進化プロセスを実行します。つまり、シードプログラムとカスタム スコアリング関数を使用して、Gemini モデルの混成がコードのバリエーションを提案し、各候補に対してスコアリング関数を実行します。その過程で最もパフォーマンスの高いコードを保持し、複数の世代にわたって反復的に最適ソリューションへと進化していく仕組みです。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_OsAwmXL.max-1000x1000.jpg"
        
          alt="1"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AlphaEvolve アーキテクチャの主な利点は、次の 2 つの要素に明確に分けられていることです。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;生成サイド（Google Cloud マネージド サービス）:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; プロンプト サンプラー、Gemini モデル アンサンブル、プログラム データベースが含まれます。スケーリング、プロンプト オーケストレーション、生成メカニズムが Google Cloud で処理されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;評価サイド（ユーザー管理のコンピューティング）:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; コード品質のスコアリングが、厳密にドメイン限定で実行されます。評価モジュールは完全にユーザーが所有し、独自のハードウェアまたはターゲット アーキテクチャ（この場合はネイティブ Swift コードを実行する macOS）で実行されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AlphaEvolve は、クラウド生成サイドでは Python ファーストですが、評価サイドは任意の言語で記述できます。カスタム評価ツールでは、Swift コードの各候補を Swift を使用してコンパイルし、標準の参照ウェブカメラ クリップに照らして評価を実行します。&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;2. 評価ツールの機能と品質ゲートを適用する&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AlphaEvolve のような自動最適化ループは、実際には動画ストリームを「見る」ことはありません。評価ツールが返す数値の適合度スコアを確認するだけです。評価指標に盲点がある場合、進化史的最適化によるコード生成はそれを積極的に利用してしまいます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;たとえば、初期の実行では、未熟な適合度スコアが元のレイテンシを重視するあまりに、処理が異常に高速化されました。モデルはぼかしレンダリングを完全にバイパスし、未修正のフレームを 0 ミリ秒で返したのです。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;構造的類似性指数（SSIM）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;モデルがベンチマークの裏をかく行為を防ぐには、以下のように、スループットと&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;構造的類似性指数（SSIM）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;などの構造的忠実度指標を組み合わせた 2 段階のスコアリング関数を記述します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;speedup = baseline_ms_per_frame / candidate_ms_per_frame\r\nssim    = mean_ssim_vs_golden\r\n\r\n#Disqualify any candidate falling below visual threshold\r\n\r\n\r\nif ssim &amp;lt; 0.98 or worst_frame_ssim &amp;lt; 0.95:\r\n    return {&amp;quot;speedup&amp;quot;: -1e12}   # Disqualified\r\n\r\nreturn {&amp;quot;speedup&amp;quot;: speedup, &amp;quot;ssim&amp;quot;: ssim}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5022ce7d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;これにより、以下のことが可能になります。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;極めてハードルの高いクリップでテスト可能に:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 静止フレームや空白のカメラ映像をベンチマークにすることは絶対に避けるべきです。コードの各候補は、静的な背景のフレームでは平均 SSIM ゲートを簡単に通過できてしまいますが、人がさっと振り向くような映像では必ず不適格になります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;平均だけでなく最小値も追跡可能に:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 平均しきい値とフレームごとの最小値の両方を適用して、ドロップフレームやマスク更新の遅延を検出できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;自律的なアルゴリズム検出を活用する&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;一般的に、デベロッパーは生成 AI を使用して、ローカルのマイクロ最適化（ヘルパー関数のインライン化、ループの展開、メモリプールの調整など）を行っています。しかし、アーキテクチャの余地を与えれば、進化ループがシステム的な最適化手段を自律的に発見することができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;エンジニアリングのヒント:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;分離されたループではなく、フレームワークのコンテキストを提供する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 公開 SDK ヘッダー、インターフェース定義、API リファレンス識別子をプロンプトまたは検索ハーネスに含めます。LLM のコンテキスト ウィンドウに、分離されたフレーム処理コールバックのみが含まれている場合、LLM はシーケンス対応サブシステムを使用できません。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;マルチフレーム ライフサイクル フックを利用可能にする:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 純粋なステートレス関数を適用するのではなく、コードの候補が前の実行から次の実行に制限付きの状態データ（マスクの履歴やキャッシュのタイムスタンプなど）を引き継げるようにします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;品質ゲートで動画の質と処理速度のバランスを管理する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; AlphaEvolve に一時的なマスク キャッシュを導入した際、当初はマスクのキャッシュが過剰に行われ、動画にゴーストなどが残ってしまいました。そこで、SSIM ゲートによって動きのブレを規制し、パラメータを手動調整することなく、本番環境に対応したキャッシュ ウィンドウに検索を収束させました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;現実的なパフォーマンス境界を設定する&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;パフォーマンス エンジニアリングでよくある落とし穴は、闇雲に最適化を行うことです。2 倍の高速化を達成した場合、それで満足すべきでしょうか。それとも、さらに 3 倍を目指す余地があったのでしょうか。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;リアルタイムのメディアにおいて、合計フレーム時間は次の 2 つのカテゴリに分けることができます。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;変更可能なソフトウェアのオーバーヘッド:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; メモリ割り当て、バッファ形式の変換、スレッド コンテキストの切り替え、API ディスパッチの摩擦などがこれに相当します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;変更不可のハードウェア ベースライン:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 未処理のニューラル エンジン推論レイテンシ、GPU シェーダー コンピューティング時間、ハードウェア ディスプレイ同期などがこれに相当します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;AlphaEvolve を最大限に活用するには、理論上の最大ヘッドルームを基準に測定する必要があります。&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;最適化ループを実行する際は、次の原則を考慮しましょう。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;NoOps パイプラインを構築する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Swift / C++ オーケストレーション、データ マーシャリング、フレーム変換は排除し、ウォームアップ済みの ML モデルと未加工 GPU のレンダリング パスのみをダミーバッファにディスパッチします。結果として得られる時間が、物理ハードウェアの下限となります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;対応可能な上限を計算する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 最適化可能な最大値は次の式で計算できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/2_u73NadS.jpg"
        
          alt="2"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;3. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;ハードウェアの制約を考慮して測定する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 任意の高速化倍率ではなく、最適化効率を測定します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Y7cUASN.max-1000x1000.jpg"
        
          alt="3"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;実際に使ってみる&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;すべてのベンチマーク コード、テストクリップ、評価スクリプト、未加工の候補ログはオープンソースです。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;GitHub リポジトリ:&lt;/strong&gt;&lt;a href="https://github.com/SaschaHeyer/gen-ai-livestream/tree/main/alphaevolve/examples/camera-background-blur" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;AlphaEvolve Camera Background Blur Example&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;DoIt の事例紹介に関する詳細な技術レポート:&lt;/strong&gt;&lt;a href="https://medium.com/google-cloud/running-alphaevolve-on-your-own-code-f8aeebceb4d0" rel="noopener" target="_blank"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Running AlphaEvolve on Your Own Code&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="vertical-align: baseline;"&gt;- Google、グループ AI プロダクト マネージャー兼エンジニア、&lt;strong&gt;Anant Nawalgaria&lt;/strong&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="vertical-align: baseline;"&gt;- DoIt、プリンシパル AI リード、&lt;strong&gt;Sascha Heyer 氏&lt;/strong&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 02 Oct 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/how-to-speed-up-your-video-processing-with-alphaevolve/</guid><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>AlphaEvolve で動画処理を高速化する方法</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/how-to-speed-up-your-video-processing-with-alphaevolve/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Anant Nawalgaria</name><title>Group Product Manager &amp; Sr. Staff Engineer</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Sascha Heyer</name><title>Principal AI Lead, DoIt</title><department></department><company></company></author></item><item><title>Antigravity SDK を使用してエージェント ハブやカスタム ハーネスを単一ツールキットで実現</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/power-agent-hubs-or-custom-harnesses-with-the-antigravity-sdk/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 10 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/power-agent-hubs-or-custom-harnesses-with-the-antigravity-sdk?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エンタープライズ エージェントの導入に、万能の解決策はありません。エージェントを導入する際、多くの組織は、そのまますぐに使えるエージェントのデプロイとガバナンスの施行を求めて、&lt;/span&gt;&lt;a href="https://cloud.google.com/products/gemini-enterprise-agent-platform"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise Agent Platform&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; のような商用マネージド プラットフォームを選択する傾向があります。しかし、固有のワークフローやカスタム実行エンジンを利用しているデベロッパーは、独自の軽量エージェント ハブの構築を選択することもよくあります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;一元化されたエージェント ハブをゼロから構築するには、サンドボックス内で予測どおりに動作してすべてをログに記録してくれるツールが必要になります。&lt;/span&gt;&lt;a href="https://antigravity.google/product/antigravity-sdk" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Antigravity SDK&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を使用すると、Antigravity 2.0 や Antigravity CLI と同じランタイム エンジンを利用でき、安全性に関する宣言型ポリシー、リアルタイム テレメトリー、ステートフルなマルチターンの永続性を直接アプリケーションに組み込むことができます。しかも、コア ランタイムが更新されると、SDK エージェントは自動的に最適化されます。そこで今回は、Antigravity SDK を使用して、完全なマルチエージェント コントロール プレーンを実現する方法について詳しく解説していきます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Antigravity の仕組み&lt;/strong&gt;&lt;/h4&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/01-agy-harness.max-1000x1000.png"
        
          alt="01-agy-harness"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;マルチエージェント コントロール プレーンは、LLM ワークロードをモニタリングして管理します。これにより、エージェントが何を考え、どのツールを呼び出し、状態をどのように保存しているのかを、正確に把握することができます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/02-agents-dashboard.max-1000x1000.png"
        
          alt="02-agents-dashboard"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;そのワークフローは、次の 2 つの重要なコンポーネントで構成されています。&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;1. Antigravity SDK エージェント コア: モデルのインタラクション（Gemini 3.1 Pro や Gemini 3.8 Flash など）を管理し、ツールを実行し、思考トレースを生成し、スキルを実行するランタイム。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. オブザーバビリティとテレメトリーのミドルウェア: Antigravity SDK ライフサイクル フックを活用したイベント ドリブン レイヤ。ステップの開始、思考の更新、ツール呼び出しなどのエージェント アクションをインターセプトし、WebSocket 経由でテレメトリーをダッシュボードにストリーミングします。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;ユースケース: マルチエージェントのモニタリングとインタラクティブな制御&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;カスタム エージェント ハブを構築または維持している組織が、Antigravity SDK を活用したエージェントとの統合を考えている場合、どのようなアプローチがあるか、一緒に見ていきましょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;問題&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: オペレーション エンジニアは、バックグラウンド調査、ドキュメントの要約、タスクのスケジューリングを実行する複数のアクティブなエージェント（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;gemini-pro-agent、github-agent、email-agent&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; など）をモニタリングする必要があります。従来、エージェントの進捗状況をモニタリングするには、以下の必須タスクと課題がありました。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;複数のターミナル ウィンドウにまたがって断片化されたコンソールログを追跡&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;JSON の文字起こしを手動で検査して、ツール呼び出しの停止や失敗を診断&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;特定のエージェント セッションでどのスキルまたは MCP コネクタが読み込まれているかの把握が困難&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;累積トークン使用量と実行レイテンシの追跡が困難&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;解決策&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: この投稿では、リアルタイム オブザベーションのためのストリーミング API、ライフサイクル フックによるテレメトリーとインターセプト、ポリシー エンジンによる制御、機能管理のためのスキル、永続性を維持するセッション状態について、それぞれ詳しく説明します。SDK がもたらすダッシュボードにより、オペレーターは各エージェントの作業を 1 つのビューで確認できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/03-agy-bespoke-agent-hub.max-1000x1000.jpg"
        
          alt="03-agy-bespoke-agent-hub"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;実際のメカニズム&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;オペレーターまたはダッシュボードが Antigravity エージェントとやり取りすると、ランタイムは 5 つのコア メカニズムを通じて処理の実行を調整します。&lt;/span&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;セッションの初期化と状態のアタッチ（save_dir と conversation_id）:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ランタイムはセッションを初期化または再アタッチし、処理の実行をルート &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;save_dir&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; にバインドします。マルチターン軌跡のログ、ツール受信歴、アーティファクトは、永続的な監査を可能にするために &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;traj-&amp;lt;conversation_id&amp;gt;&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; に保存されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;スキル解決（skills_paths）:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ドメイン固有の機能と指示が、SKILL.md バンドルを指すファイルシステム パスから直接解決され、外部レジストリなしでエージェントのシステム プロンプトを動的に補充します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;同時ストリーム生成（ChatResponse）:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ランタイムは、単一のモデル レスポンスに対して同時進行の 3 つの非同期イテレータを公開します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li aria-level="2" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;code style="vertical-align: baseline;"&gt;response&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;（表示可能なテキスト トークンを生成）&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="2" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;code style="vertical-align: baseline;"&gt;response.thoughts&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;（内部の Chain-of-Thought 推論の差分を生成）&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="2" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;code style="vertical-align: baseline;"&gt;response.tool_calls&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;（.name と .args を含む型付き &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;ToolCall&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; イベントを生成）&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;宣言型ポリシーによるサンドボックス化と組み込みツールの実行:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; エージェントがワークスペース オペレーションを実行すると、組み込みツール（list_directory、find_file、search_directory、view_file、create_file、edit_file）は、安全性に関するポリシー（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;policy.workspace_only()&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; など）に則って管理される指定のワークスペース ディレクトリ内でのみ実行されます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ライフサイクル フックによるテレメトリーとインターセプト:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; パラメータを付与された非同期フック関数（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;@hooks.on_session_start、@hooks.pre_tool_call_decide、@hooks.post_tool_call、@hooks.on_session_end&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）が、エージェントのやり取りの推移をリアルタイムでインターセプトし、ツール呼び出しを検証または修正して、WebSocket 経由でテレメトリー ペイロードをライブ ダッシュボードにブロードキャストします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Antigravity SDK は、これらのメカニズムを 4 つの主要な構成要素に分けて実行します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;1. ドメイン別のスキル適用&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;スキルは、エージェントが動的に読み込める、再利用可能なドメイン固有の指示バンドルと参照アセットを提供します。インメモリ レジストリを管理する代わりに、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;SKILL.md&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; ファイルを含むファイル システム ディレクトリからスキルのパスを直接解決できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google.antigravity import Agent, LocalAgentConfig\r\n\r\n# Pass directory paths containing SKILL.md bundles directly to config.\r\n# The runtime dynamically resolves and injects them into the prompt.\r\nconfig = LocalAgentConfig(\r\n    model=&amp;quot;gemini-3.8-flash&amp;quot;,\r\n    system_instructions=(\r\n        &amp;quot;You are an enterprise operations assistant equipped with &amp;quot;\r\n        &amp;quot;specialized operational skills.&amp;quot;\r\n    ),\r\n    skills_paths=[&amp;quot;./skills/research&amp;quot;, &amp;quot;./skills/code_review&amp;quot;],\r\n)\r\n\r\nasync with Agent(config) as agent:\r\n    response = await agent.chat(&amp;quot;Analyze the deployment logs.&amp;quot;)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501467050&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;2. 組み込みツールとワークスペースのサンドボックス範囲指定&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;SDK には、すぐに使用できるプロダクション レディなファイルツールとワークスペース ツールが用意されているため、カスタム ファイルシステム ラッパーを記述する必要がありません。これらのツールは、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;ワークスペース&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;および安全性に関する宣言型ポリシーと組み合わさることで、承認されたディレクトリ内での使用に厳密に制限されます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google.antigravity import Agent, LocalAgentConfig, types\r\nfrom google.antigravity.policies import policy\r\n\r\nconfig = LocalAgentConfig(\r\n    model=&amp;quot;gemini-3.8-flash&amp;quot;,\r\n    # Selectively enable built-in tools via CapabilitiesConfig\r\n    capabilities=types.CapabilitiesConfig(\r\n        enabled_tools=[\r\n            types.BuiltinTools.LIST_DIR,       # &amp;quot;list_directory&amp;quot;\r\n            types.BuiltinTools.FIND_FILE,      # &amp;quot;find_file&amp;quot;\r\n            types.BuiltinTools.SEARCH_DIR,     # &amp;quot;search_directory&amp;quot;\r\n            types.BuiltinTools.VIEW_FILE,      # &amp;quot;view_file&amp;quot;\r\n            types.BuiltinTools.CREATE_FILE,    # &amp;quot;create_file&amp;quot;\r\n            types.BuiltinTools.EDIT_FILE,      # &amp;quot;edit_file&amp;quot;\r\n        ]\r\n    ),\r\n    # Enforce filesystem isolation: operations outside these paths are blocked\r\n    workspaces=[&amp;quot;./workspace&amp;quot;],\r\n    policies=[policy.workspace_only()],\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5017dc8d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;3. セッションの隔離と軌跡の永続化（save_dir&lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt; と &lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;conversation_id&lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;）&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Antigravity SDK の状態の永続性は、外部データベースではなく、宣言型の構成によって管理されます。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;save_dir&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を指定すると、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;traj-&amp;lt;conversation_id&amp;gt;&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; の下に、マルチターン軌跡、ツール受信歴、アーティファクトが保存されるルート ディレクトリが確立されます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google.antigravity import Agent, LocalAgentConfig\r\n\r\nconfig = LocalAgentConfig(\r\n    model=&amp;quot;gemini-3.8-flash&amp;quot;,\r\n    # Root directory storing all conversation trajectories\r\n    save_dir=&amp;quot;./storage/sessions&amp;quot;,\r\n    # Supply conversation_id to reattach to an existing trajectory;\r\n    # omit it to let the SDK mint a new ID on the first turn.\r\n    conversation_id=&amp;quot;ops-session-20260820-001&amp;quot;,\r\n)\r\n\r\nasync with Agent(config) as agent:\r\n    # Resumes prior context and continues the multi-turn session seamlessly\r\n    response = await agent.chat(&amp;quot;Summarize the issues identified in the last turn.&amp;quot;)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5017dd790&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;4. ライフサイクル フックによるリアルタイムのテレメトリーとインターセプト&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ライフサイクル フックにより、ダッシュボードとモニタリング エンジンは処理の実行の全段階を監視し、制御できます。パラメータを付与された非同期関数を使用することで、WebSocket 経由でステータスの更新をストリーミングしたり、ツールのパラメータを検査したり、ツールを実行する前に人間参加型の承認を強制したりできます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google.antigravity import Agent, LocalAgentConfig, types\r\nfrom google.antigravity.hooks import hooks\r\n\r\n# 1. Session start &amp;amp; end telemetry\r\n@hooks.on_session_start\r\nasync def on_session_start():\r\n    broadcast_to_dashboard({&amp;quot;type&amp;quot;: &amp;quot;STATUS&amp;quot;, &amp;quot;status&amp;quot;: &amp;quot;RUNNING&amp;quot;})\r\n\r\n@hooks.on_session_end\r\nasync def on_session_end():\r\n    broadcast_to_dashboard({&amp;quot;type&amp;quot;: &amp;quot;STATUS&amp;quot;, &amp;quot;status&amp;quot;: &amp;quot;IDLE&amp;quot;})\r\n\r\n# 2. Intercept tool calls before execution (human-in-the-loop / audit gate)\r\n@hooks.pre_tool_call_decide\r\nasync def intercept_tool(tool_call: types.ToolCall) -&amp;gt; types.HookResult:\r\n    broadcast_to_dashboard({\r\n        &amp;quot;type&amp;quot;: &amp;quot;TOOL_CALL&amp;quot;,\r\n        &amp;quot;tool&amp;quot;: tool_call.name,\r\n        &amp;quot;args&amp;quot;: tool_call.args,\r\n    })\r\n    # Return HookResult to approve or block execution\r\n    return types.HookResult(allow=True)\r\n\r\n# 3. Post-execution tool receipts\r\n@hooks.post_tool_call\r\nasync def record_tool_result(result):\r\n    broadcast_to_dashboard({\r\n        &amp;quot;type&amp;quot;: &amp;quot;TOOL_RESULT&amp;quot;,\r\n        &amp;quot;tool&amp;quot;: result.name,\r\n        &amp;quot;error&amp;quot;: getattr(result, &amp;quot;error&amp;quot;, None),\r\n    })\r\n\r\nconfig = LocalAgentConfig(\r\n    model=&amp;quot;gemini-3.8-flash&amp;quot;,\r\n    hooks=[on_session_start, on_session_end, intercept_tool, record_tool_result],\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5017df750&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;以下のリソースを参考にして、独自のエンタープライズ向けエージェント コントロール プレーンの構築を開始してみませんか。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://antigravity.google/docs/sdk/overview" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Antigravity SDK クイック スタート&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://github.com/google-antigravity/antigravity-sdk-python" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Antigravity GitHub リポジトリ&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud、フォワード デプロイド エンジニア、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Wei Yih Yap&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud、プラクティス カスタマー エンジニア、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Paul Datta&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 18 Sep 2026 01:10:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/power-agent-hubs-or-custom-harnesses-with-the-antigravity-sdk/</guid><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Antigravity SDK を使用してエージェント ハブやカスタム ハーネスを単一ツールキットで実現</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/power-agent-hubs-or-custom-harnesses-with-the-antigravity-sdk/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Wei Yih Yap</name><title>Forward Deployed Engineer, Google Cloud</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Paul Datta</name><title>Practice Customer Engineer, Google Cloud</title><department></department><company></company></author></item><item><title>AI コーディング エージェント向け Google Cloud Developer プラグインのご紹介</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/introducing-the-google-cloud-developer-plugin-for-ai-coding-agents/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 11 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/introducing-the-google-cloud-developer-plugin-for-ai-coding-agents?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェント スキルをドキュメントやリモート MCP サーバーと組み合わせて使用することは、AI ワークフローを成功させるための有効な手段となります。特定のユースケースではコンテキスト ウィンドウの使用量を削減する効果もあり、インストールも簡単です。しかし、個々のスキルの管理は煩雑になりがちであり、スキルによっては他のスキルや MCP サーバーと連携して同じ目標に向かって動作するときに最も効果を発揮するものもあります。こうした場合に役立つのがプラグインです。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;そこでこのたび、AI コーディング エージェント向けの新しい Google Cloud プラグインをリリースしました。これらのエージェント プラグインは、インストール可能なバンドルとして設計されており、Google Cloud 上でより効果的に動作するためのスキルとツールを任意の AI エージェントに提供します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;ツールの連動に関する問題を解決&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;コーディング エージェントの使用を拡大していくと、関連するスキルを組み合わせて使用したり、補完的なコンテキストやツールと併用したりすることで、その能力が大幅に向上する場合があります。たとえば、インフラストラクチャを分析するエージェントは、ドメインの知識、ワークフローの推奨事項、ライブ環境とやり取りする機能と組み合わせることで、効果が向上します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;プラグインは、関連する機能をまとまりのあるインストール可能なバンドルにパッケージ化することで、「ツールを連動させる」という課題を解決します。これにより、複雑な依存関係を管理することなく、幅広い基本機能とプロダクト固有の高度なツールの両方を活用できるようになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このリリースではまず、すべての Google Cloud ユーザーのエージェント機能に対応できる基本的なプラグインを提供します。エージェントが Google Cloud 関連のスキルを簡単に取得し、公式ドキュメントを活用して、Google Cloud とのプログラマティックなやり取りを処理できるようにすることに重点を置いています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;オープン スタンダードを基盤に構築&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;また、Google のプラグインは、エージェント スキルと Model Context Protocol（MCP）サーバーをポータブルで相互運用可能なユニットにパッケージ化するための、オープンかつベンダーに依存しない標準である &lt;/span&gt;&lt;a href="https://g.dev/cloud/agent-plugins-specification" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Agent Plugins 仕様&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;に準拠して構築されています。Agent Plugins 標準は、開発者が AI アシスタントごとに異なる構成やラッパーを管理する必要をなくし、統合されたマニフェストとディレクトリ構造を提供します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud のプラグインは、この標準を採用することで、さまざまな AI コーディング環境を利用するデベロッパーが Google Cloud での成功を支援するツールにアクセスする際の一貫性と品質を確保しています。この標準は、本日ご紹介するプラグインだけでなく、Google Agent Skills リポジトリに公開されている他のすべてのプラグインにも適用されています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ここでは、Google Agent Skills リポジトリに公開したばかりのフラッグシップ プラグインである &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;google-cloud-developer&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; について見ていきます。このプラグインは、エージェントが Google Cloud を操作する際の基本事項（認証、認可、プロジェクトの管理、gcloud CLI オペレーションのガードレールなど）を適切に処理できるようにするためのものです。このプラグインには、&lt;/span&gt;&lt;a href="https://g.dev/cloud/dk-mcp-connect" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Developer Knowledge MCP サーバー&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の構成もバンドルされています。そのため、エージェントは Google のデベロッパー向け公式ドキュメントを最新のグラウンディングとして利用できます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;プラグインの動作: プロジェクトのオンボーディングと ID の認証&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;このプラグインの仕組みを理解するため、スクリプト作成作業の一環として新しいプロジェクトをブートストラップする場合を考えてみましょう。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;google-cloud-developer&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; プラグインをインストールすると、エージェントに次のようなプロンプトを送信できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;このプラットフォームを初めて使用するので、アカウントを取得して、課金を設定した最初のプロジェクトを作成する必要があります。次に、作成中のスクリプトが自分自身としてではなく、サービス ID として API を呼び出せるように、ローカルマシンを認証する必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;環境の把握:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; エージェントは、CLI が利用可能か、既存のプロジェクトや組織があるかといった前提条件を確認するため、実際の環境に対してバックグラウンドでサイレントにチェックを実行します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;レビュー:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; エージェントは、プロンプトの内容に起因して発生しうるリスク（誤って鍵を漏洩する、Git への commit など）を考慮します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ガードレールとのやり取り:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; エージェントはワークフローのロードマップを提示し、リソースを変更する前に、それらのステップを実行するかどうかをユーザーに確認します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/screenshot_plugin_blog_post.max-1000x1000.png"
        
          alt="screenshot_plugin_blog_post"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Google Cloud プラグインのインストール&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud プラグインは、オープンな &lt;/span&gt;&lt;a href="https://g.dev/cloud/agent-plugins" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Agent Skills&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; リポジトリから入手可能です。標準の Agent Plugins レイアウトに準拠しているため、簡単にご利用の環境に追加できます。たとえば、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;google-cloud-developer&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; プラグインは以下の方法でインストールできます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Antigravity CLI&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Agent Skills リポジトリ内のパスを使用して、CLI からプラグインを直接インストールします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;agy plugin install https://github.com/google/skills/plugins/cloud/google-cloud-developer&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501465550&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Claude Code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google プラグイン マーケットプレイスを追加してから、プラグインをインストールします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;claude plugin marketplace add google/skills\r\nclaude plugin install google-cloud-developer@google-plugins&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500df6ad0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Codex CLI&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google プラグイン マーケットプレイスを追加してから、プラグインをインストールします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;codex plugin marketplace add google/skills\r\ncodex plugin add google-cloud-developer@google-plugins&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500df71d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次のステップ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;すでに Google Cloud を利用している場合は、上記の手順に沿ってインストールし、エージェントを成功へ導けるよう設定してみてください。皆様にその効果を実感していただけるものと確信しております。詳細なガイド付きの手法をご希望の方向けに、新しい &lt;/span&gt;&lt;a href="https://g.dev/cloud/agent-plugins-codelab-agy" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Codelab&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; では Antigravity でのプラグインのインストールと初期探索の方法について説明しています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud を初めてご利用になる場合は、&lt;/span&gt;&lt;a href="https://g.dev/cloud/dev-setup" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google のドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;の手順に沿ってローカル開発環境をセットアップすることもできます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;さらに詳しく知りたい方は、&lt;/span&gt;&lt;a href="https://g.dev/cloud/agent-plugins" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Agent Skills&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; リポジトリで、現在利用可能なプラグインとエージェント スキルの詳細をご確認ください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- コンテンツ ストラテジスト、&lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Jonathan Lee&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Sep 2026 03:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/introducing-the-google-cloud-developer-plugin-for-ai-coding-agents/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/agent-plugins-blog-cover.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>AI コーディング エージェント向け Google Cloud Developer プラグインのご紹介</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/agent-plugins-blog-cover.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/introducing-the-google-cloud-developer-plugin-for-ai-coding-agents/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jonathan Lee</name><title>Content Strategist</title><department></department><company></company></author></item><item><title>Spanner への移行: Antigravity CLI で二重書き込みを自動化してサービス停止を最小限に</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/using-antigravity-cli-to-streamline-dual-write-database-migration/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 5 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/using-antigravity-cli-to-streamline-dual-write-database-migration?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google のファイナンス エンジニアリング チームは、レガシー データレイヤーをモダナイズする必要が生じた際、グローバルに分散され、強整合性があり、高可用性機能を備えたマルチモデル データベースである &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner?e=48754805&amp;amp;hl=ja"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を選択しました。しかし、本番環境サービスをオフラインにせずに Spanner に移行することは、エンジニアリング上の大きな課題でした。アプリケーションを担当する社内チームとして、数十のデータアクセス オブジェクト（DAO）にわたって二重書き込みロジックを手動で書き換える必要がありましたが、このプロセスは時間がかかり、人的エラーが発生しやすいものでした。さらに、サービスを停止することなくこれを行うには、コードベース内のすべての DAO にわたって、マルチフェーズの二重書き込みアーキテクチャを実装する必要がありました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この課題を解決するために、別のアプローチを採用しました。ヘッドレス モードの Antigravity CLI を利用した自動リファクタリング パイプラインを構築したのです。これにより、本番環境の準備を進めるなか、ステージング環境で厳格なデータパリティを維持しながら、移行速度を大幅に向上させることができました。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;課題: 二重書き込みによる移行の仕組み&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;財務上の正確性が不可欠な高スループットの本番環境サービスを移行する場合、単純なカットオーバー スクリプトは機能しません。過去のデータのバックフィルと検証がすべて完了するまで、レガシー データストアと Spanner の両方が同じ書き込みを同時に受信することを確認する必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;移行は、次の 3 つのフェーズに分けて実施しました。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;過去のデータのバックフィル:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 参照整合性を維持しながら、既存の過去のレコードを Spanner にコピーします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;二重書き込み / 二重読み取りの実装:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 移行期間中に、すべての DAO を変更して、プライマリ ストアと Cloud Spanner の両方にミューテーションを並行して書き込みます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;自動化された API 検証とパリティ チェック:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; RPC トラフィックをインターセプトし、すべての書き込みが両方のストアでバイト単位で同等に完了することをエンドツーエンドで検証します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_Dual_Write_Architecture.max-1000x1000.png"
        
          alt="1 - Dual Write Architecture"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;アーキテクチャ パターンはクリーンですが、Google の規模では、摩擦が生じ始めました。これは、各 DAO に以下が必要なためです。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;複雑なドメインモデルを Spanner スキーマ列にマッピングする専用の MutationConverter クラス&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;二重書き込みブランチの処理とロールバックまたはエラー報告のロジック&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;疑似時間ソースとテストダブル（FakeTimeSource）を使用して、プライマリと Spanner の両方の書き込みを検証する単体テストのスイート&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;30 以上の DAO にわたって、同一の高精度なコード変更を手作業で行っていたら、エンジニアリングに数か月を要していたでしょう。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;解決策: 標準化されたミューテーション コンバータ パターン&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;自動化パイプラインがクリーンなコードを確実に生成できることを検証するために、まず、分離された MutationConverter インターフェースを中心に DAO リファクタリング パターンを標準化しました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;中核的な DAO ビジネス ロジック内に未加工の Spanner テーブル名と列割り当てを直接埋め込むのではなく、Spanner スキーマ変換を専用のコンバータ ユニットに分離します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;// Example of the standardized pattern generated by our pipeline\r\n\r\ntype BpcTransferAmountsMutationConverter interface {\r\n    ToInsertMutation(entity *model.BpcTransferAmount) (*spanner.Mutation, error)\r\n    ToUpdateMutation(entity *model.BpcTransferAmount) (*spanner.Mutation, error)\r\n}\r\n\r\ntype bpcTransferAmountsMutationConverterImpl struct {\r\n    tableName string\r\n}\r\n\r\nfunc (c *bpcTransferAmountsMutationConverterImpl) ToInsertMutation(entity *model.BpcTransferAmount) (*spanner.Mutation, error) {\r\n    if entity == nil {\r\n        return nil, errors.New(&amp;quot;entity cannot be nil&amp;quot;)\r\n    }\r\n    \r\n    // Map domain fields to Cloud Spanner table schema\r\n    cols := []string{&amp;quot;TransferId&amp;quot;, &amp;quot;AmountCents&amp;quot;, &amp;quot;CurrencyCode&amp;quot;, &amp;quot;LastModifiedTimestamp&amp;quot;}\r\n    vals := []interface{}{\r\n        entity.TransferId,\r\n        entity.AmountCents,\r\n        entity.CurrencyCode,\r\n        spanner.CommitTimestamp, // Use Spanner commit timestamps\r\n    }\r\n    \r\n    return spanner.Insert(c.tableName, cols, vals), nil\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5000f22d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;DAO と Spanner SDK（spanner.Mutation）の間に厳格で決定論的なコントラクトを確立することで、AI コーディング エージェントが推論して確実に生成できる正確なターゲット仕様を作成しました。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Antigravity CLI をヘッドレス モードで使用する理由&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;IDE のインタラクティブな AI チャット インターフェースは、探索的なコーディングには適していますが、コードベース全体にわたる体系的な複数ファイルのコード更新には適していません。エッジケースを見逃さずに、数十のターゲットに繰り返し可能なリファクタリングを適用する必要がある場合は、自動化されたワークフローが必要です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この問題に対処するため、Antigravity CLI をヘッドレス モード（-p）で実行するオーケストレーション スクリプト（migration_ui.py）を構築しました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ヘッドレス モードでは、ターミナルのプロンプトに手動で応答しなくても、シェル スクリプト、継続的インテグレーション パイプライン、バックグラウンド自動化ジョブ内で Antigravity を直接実行できます。このアプローチにより、主に 3 つの方法で作業を効率化できました。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;決定論的なプロンプト アーキテクチャ:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; プロンプトをバージョン管理されたエンジニアリング アーティファクトとして扱いました。タイムスタンプのシリアル化、null 可能性の変換、ミューテーションの曖昧さ、FakeTimeSource テスト インジェクションなど、Spanner の一般的なエッジケースを処理する正確なルールを、再利用可能なプロンプト テンプレートに直接コード化しました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;バッチ実行と自動検証:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; オーケストレーション スクリプトが、ターゲット DAO 名を入力として使用し、既存の単一書き込みソースコードとスキーマを取得して、構造規則とともにヘッドレス Antigravity にフィードします。Antigravity は、新しいコンバータ、リファクタリングされた二重書き込み DAO、対応する単体テストを生成します。その後、スクリプトは blaze test を実行します。linter エラーやテスト アサーションの失敗が発生すると、エラーログが Antigravity に直接フィードバックされ、自己修正が行われます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;夜間に大規模に実行:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ループは無人で実行されるため、エンジニアは 1 日の終わりに 10 個の DAO をキューに入れることができます。朝までに、パイプラインは人間によるコードレビューの準備が整った 10 個のクリーンな変更リストを生成、テスト、検証します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;クラウド エンジニアにとっての成果と重要なポイント&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Spanner の分散データベース プリミティブと Antigravity CLI のヘッドレス自動化を組み合わせることで、エンジニアリング組織全体に明確なメリットがもたらされました。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;移行作業の大幅な削減&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 二重書き込みによる DAO の移行は、以前は広範な手動コーディングとテストが必要でしたが、わずかな時間で完了し、確認されました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;信頼性の高いデータ移行:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 生成されたすべての DAO が、テスト済みのまったく同じ MutationConverter パターンに準拠し、Spanner テストダブルに対する自動単体テストを受けたため、広範な移行テスト中も高いデータ忠実度を維持できました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;より価値の高いエンジニアリングに集中:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; エンジニアは、繰り返しのボイラープレート リファクタリングを回避し、データ モデリング、アーキテクチャの復元力、パフォーマンスの最適化に集中する時間を確保できました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次回のデータベース移行に役立つ 3 つのヒント&lt;/strong&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;まずスキーマ変換を分離する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 移行スクリプトを記述する前に、新しいクラウド データベース SDK の要件を既存のビジネス ロジックから分離する厳密なインターフェース（MutationConverter など）を定義します。AI エージェントは、明確で限定された設計パターンを与えられた場合に、最も効果的に機能します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;インタラクティブなチャットからヘッドレス自動化に移行する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 3～4 個以上のファイルにわたって繰り返しリファクタリングを実行する場合は、スクリプト化されたヘッドレス ワークフローにリソースを投入します。プロンプト入力とテスト検証を自動化されたビルドステップとして扱うことで、品質と一貫性を維持できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ビルドシステムをガードレールとして機能させる:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; AI 生成ループをビルドおよびテストハーネス（bazel test または go test）に直接接続します。これにより、デベロッパーがコードを確認する前に、モデルがコンパイル エラーとアサーション エラーを修正できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;使ってみる&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;金融システムの移行でも、クラウドネイティブ アプリケーションのゼロからの構築でも、Spanner と Antigravity はスケーラブルなソフトウェア開発の基盤となります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Spanner を確認する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Spanner の分散アーキテクチャの詳細については、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/spanner/docs?hl=ja"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Spanner のドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;デベロッパー向け Gemini を確認する:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; AI を活用したコーディングとヘッドレス CLI の自動化がエンジニアリング ワークフローにどのように役立つかを、&lt;/span&gt;&lt;a href="https://cloud.google.com/use-cases/ai-for-developers?e=48754805&amp;amp;hl=ja"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;デベロッパー向け Google Cloud AI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; でご確認ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;アプリケーション エンジニア&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt; Sachin Mathapati&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Mon, 14 Sep 2026 02:10:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/using-antigravity-cli-to-streamline-dual-write-database-migration/</guid><category>AI &amp; Machine Learning</category><category>Cloud Migration</category><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Spanner への移行: Antigravity CLI で二重書き込みを自動化してサービス停止を最小限に</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/using-antigravity-cli-to-streamline-dual-write-database-migration/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Sachin Mathapati</name><title>Application Engineer</title><department></department><company></company></author></item><item><title>LLM ワークロードはすべて同じではない: 分類と生成における TPU のパフォーマンス ベンチマーク</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/not-all-llm-workloads-are-equal-benchmarking-tpu-performance-on-classification-vs-generation/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 5 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/not-all-llm-workloads-are-equal-benchmarking-tpu-performance-on-classification-vs-generation?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;大規模言語モデル（LLM）を試験運用版のプロトタイプからエンタープライズ規模の本番環境に移行すると、インフラストラクチャがパフォーマンスの上限とユニット エコノミクスの両方を左右するという重要な事実が明らかになります。多くの標準的なハードウェア ベンチマークでは、すべての LLM リクエストが同じようにシリコンに負荷をかけるわけではないという基本的な現実が見過ごされています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この投稿では、Google Cloud TPU v6e 上で Gemma 3 12B と Gemma 3 27B を比較する包括的なベンチマーク テストについて詳しく見ていくことで、「構造的に異なるワークロードを大規模に処理する場合、TPU インフラストラクチャの実際のパフォーマンスはどうなるのか？」というアーキテクチャに関する重要な問題を考えます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;主な結果と提案&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ベンチマークの手法を詳しく説明する前に、TPU v6e で Gemma 3 をデプロイするアーキテクトにとって重要なポイントを以下に示します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;生成タスクにおけるパフォーマンスの壁&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;デコード負荷が高い生成タスクでは、Gemma 3 27B モデルは同時ユーザー数が 64 人を超えるとパフォーマンスの限界に達し、128 人では正規化スループット係数が 4.12 倍で頭打ちになります。一方、12B モデルは最大 8.19 倍までスケールアップします。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;提案&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 多くの生成を同時実行するワークロードの場合は、12B モデルに縮小するか、27B モデルでレプリカあたりの同時リクエスト数を 64 に制限する厳格な Pod 自動スケーリング制限を設定します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;分類タスクでは互角&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;プリフィル負荷が高い分類タスクでは、モデルのパラメータ サイズの影響が大きく下がります。12B モデルと 27B モデルはどちらも、TPU を飽和させることなく、同様のピーク スケーリング（ユーザー 128 人で正規化スループットが約 6.0 ～ 6.4 倍）を達成しています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;提案&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 要約や分類のワークフローでは、スループットを低下させることなく、より大規模で高性能なモデルを安全にデプロイできます。平均の --max-num-seqs や --max-model-len は、平均ユーザー負荷とリクエストあたりの平均トークン数に基づいて慎重に維持する必要があります。そうしないと、リクエストのドロップが発生する可能性があります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;壁を回避するための設計&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ハードウェアの飽和は、深刻なレイテンシの急増と、リクエストのサイレント ドロップアウトとして現れます。これを軽減するには、標準の CPU / メモリ スケーリング トリガーに依存しないようにします。代わりに、エンドツーエンド（E2E）レイテンシ指標に基づいてスケールし、積極的な vLLM バケット パディング最適化（VLLM_TPU_BUCKET_PADDING_GAP）を実装してメモリを節約します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;アーキテクチャの構成&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;推論スタックは、次の 3 つの主な要素に分けることができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;1. インフラストラクチャ: GKE と TPU&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;今回のデプロイメントの基盤となったのは、Google Kubernetes Engine（GKE）Autopilot クラスタです。これに、2×2 チップ トポロジで構成された単一ホストの TPU v6e ノードプールを接続しました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;2. ソフトウェアとツール: vllm&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;サービング フレームワークには、&lt;/span&gt;&lt;a href="https://github.com/vllm-project/tpu-inference" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;vllm-project/tpu-inference&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を介して vLLM を活用しました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;3. モデル: Gemma 3 12B、27B&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;今回は、Gemma 3 12B と Gemma 3 27B という 2 つの高性能なオープン ウェイト モデルを評価しました。これらのモデルには HuggingFace 経由でアクセスしました。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;ワークロード: 分類と生成&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;すべての LLM リクエストがシステムに同じ負荷をかけるわけではありません。今回は、分類と生成という 2 つの異なるシナリオで、同時ユーザー数が 16 人、32 人、64 人、128 人の場合のベンチマークを実施しました。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;分類（高入力、低出力）:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; このユースケースは、e コマースのコンプライアンス タスクを模倣するものです。プロンプトには、商品ルール、アイテムの説明、OCR で抽出されたテキストの大きなブロックが含まれています。出力は非常に小さく、通常はアイテムを「許可」または「禁止」に分類するだけです。入力シーケンス長（ISL）は約 4,000 トークン、出力シーケンス長（OSL）は約 10 トークンです。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;生成（低 / 中入力、高出力）: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;このユースケースは、長文テキストの生成を模倣するものです。プロンプトでは、労働市場における AI の未来に関する詳細な分析的政策提言書を求めます。モデルは、ほとんどの時間を数百のトークンのデコードとストリーミングに費やします。入力シーケンス長（ISL）は 500 トークン、出力シーケンス長（OSL）は約 1,000 トークンです。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;結果と考察&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;スループット（リクエスト数/秒）、エンドツーエンドのレイテンシなどの指標を測定した結果、パラメータ サイズとハードウェア帯域幅の相互作用について興味深い知見が得られました。アーキテクチャの整合性を確保するため、ベンチマークはすべて &lt;/span&gt;&lt;a href="https://github.com/vllm-project/tpu-inference" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;vllm-project/tpu-inference&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; ハードウェア プラグインを使用して実行され、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;max-model-len=128000&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;max-num-batched-tokens=8192&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;max-num-seqs=512&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; という標準的なグローバル サービング構成が利用されました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;生成タスクにおけるスケーリングの相違&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;生成タスクでは、同時ユーザー数が 64 人まで、両モデルのパフォーマンスは同等です。しかし、同時ユーザー数が 128 人になると、Gemma 3 12B モデルのほうが大幅にスケーリングに優れ、正規化スループット係数が 8.19 倍に達します。一方、Gemma 3 27B モデルは 4.12 倍で頭打ちになります（ユーザー数 16 人での Gemma 3 12B のベースラインに対する正規化）。これは、生成負荷が高い状況では、より大規模な 27B モデルのほうが大幅に早くメモリまたはコンピュートの上限に達することを示唆しています。&lt;/span&gt;&lt;/p&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table border="1" style="border-collapse: collapse; width: 96.2054%; height: 206px;"&gt;
&lt;thead&gt;
&lt;tr style="background-color: #d2e3fc; text-align: center;"&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;strong style="vertical-align: baseline;"&gt;&lt;strong style="vertical-align: baseline;"&gt;同時ユーザー数&lt;/strong&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;strong style="vertical-align: baseline;"&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemma 3 12B のスループット（リクエスト数/秒）&lt;/strong&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;strong style="vertical-align: baseline;"&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemma 3 27B のスループット（リクエスト数/秒）&lt;/strong&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;16 人&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.00 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.05 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;32 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.98 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.97 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;64 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;2.96 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;4.00 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;128 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;8.19 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 33.3738%;"&gt;&lt;span style="vertical-align: baseline;"&gt;4.12 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/generation_scaling.max-1000x1000.jpg"
        
          alt="generation_scaling"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-aside"&gt;&lt;dl&gt;
    &lt;dt&gt;aside_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;上級者向けのヒント → 同時実行数が多い場合の指標のインフレ&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50014bb10&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;分類タスクにおけるパフォーマンスは互角&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;分類タスクでは、Gemma 3 12B モデルと Gemma 3 27B モデルのスケーリング動作にほとんど差はありません。どちらのモデルもハードウェアの容量内で効率的に動作し、スケーラビリティに優れています。同時ユーザー数が 128 人の場合、正規化スループットのピークは約 6.04～6.37 倍に達します（ユーザー数 16 人での Gemma 3 12B のベースラインに対する正規化）。&lt;/span&gt;&lt;/p&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table border="1" style="width: 100%; height: 134.391px;"&gt;
&lt;thead&gt;
&lt;tr style="text-align: center; background-color: #d2e3fc; height: 44.7969px;"&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 11.5729%; height: 44.7969px;"&gt;&lt;strong style="vertical-align: baseline;"&gt;&lt;strong style="vertical-align: baseline;"&gt;同時ユーザー数&lt;/strong&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.6214%; height: 44.7969px;"&gt;&lt;strong style="vertical-align: baseline;"&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemma 3 12B のスループット（リクエスト数/秒）&lt;/strong&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.7509%; height: 44.7969px;"&gt;&lt;strong style="vertical-align: baseline;"&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemma 3 27B のスループット（リクエスト数/秒）&lt;/strong&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style="height: 22.3984px;"&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 11.5729%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;16 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.6214%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.00 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.7509%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;0.76 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height: 22.3984px;"&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 11.5729%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;32 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.6214%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.18 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.7509%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.53 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height: 22.3984px;"&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 11.5729%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;64 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.6214%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;2.04 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.7509%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;3.15 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height: 22.3984px;"&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 11.5729%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;128 &lt;span style="vertical-align: baseline;"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.6214%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;6.37 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border: 1px solid #000000; padding: 16px; width: 37.7509%; height: 22.3984px;"&gt;&lt;span style="vertical-align: baseline;"&gt;6.04 &lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/classification_perf_table_image2.max-1000x1000.png"
        
          alt="classification_perf_table_image2"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;レイテンシしきい値の分析&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エンドツーエンド（E2E）のレイテンシは、モデルのサイズとタスクによって異なるスケーリング動作を示します。同一のサービング ハイパーパラメータ（--max-num-seqs=512）を使用した場合、Gemma 3 12B モデルにおける分類タスクのレイテンシは、ユーザー数が 32 人から 64 人に増えると約 2 倍になり、リソースの競合が発生していることを示します。これに対して、より大規模な Gemma 3 27B モデルでは、分類タスクのレイテンシはユーザー 32 人から 64 人の間で比較的横ばいであり、ユーザー 128 人で 2 倍になります。&lt;/span&gt;&lt;/p&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table border="1" style="border-collapse: collapse; width: 97.2684%; height: 182px;"&gt;
&lt;thead&gt;
&lt;tr style="background-color: #d2e3fc; text-align: center;"&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;strong&gt;モデル&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;strong&gt;タスク&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;strong&gt;16 人&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;strong&gt;32 人&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;strong&gt;64 人&lt;/strong&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;strong&gt;128 人&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;Gemma 3 12B&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;生成&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.00倍&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.13&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.40&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.70&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;Gemma 3 12B&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;分類&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.00&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;0.99&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.79&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;2.90&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;Gemma 3 27B&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;生成&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.20&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.68&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;2.93&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;3.33&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;Gemma 3 27B&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;分類&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.20&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.95&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;1.95&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="width: 16.6651%;"&gt;&lt;span style="vertical-align: baseline;"&gt;3.88&lt;span style="vertical-align: baseline;"&gt;倍&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/latency_threshold_image3.max-1000x1000.png"
        
          alt="latency threshold_image3"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-aside"&gt;&lt;dl&gt;
    &lt;dt&gt;aside_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;重要な TPU 最適化手法&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500f5c5d0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;まとめ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud TPU v6e アーキテクチャで Gemma 3 12B モデルと 27B モデルのベンチマークを実施した結果、推論パフォーマンスの予測因子は、生のパラメータ数だけではないことがわかりました。むしろ、サービング フレームワーク、ハードウェア トポロジ、ワークロード トークン比率の相互作用が効率を左右します。生成タスク（低入力、高出力）では、同時実行数が多い場合、12B モデルのほうが優れていることが実証されました。12B モデルは 8.19 倍の相対スループット係数を維持する一方、27B モデルは 4.12 倍で飽和しました。これに対して、プリフィル負荷が高い分類タスクでは、両モデルのパフォーマンスが同等であるため、組織はスケーリングを大幅に損なうことなく、より大規模なモデルをデプロイできます。今回の評価では、ハードウェアの飽和しきい値を正確にマッピングしました。たとえば、分類ではユーザー 64 人でエンドツーエンドのレイテンシが 2 倍になり、生成ではユーザー 128 人で急激に増加します。この結果をもとに、コストをかけてオーバープロビジョニングを行うのではなく、データドリブンな自動スケーリング トリガーを正確に設定できます。最終的に、これらのピーク指標を達成するには、vLLM のパラメータを積極的にチューニングする必要があります。たとえば、バッチ処理を行うトークンの調整や、TPU 固有のバケット パディングの構成によって、コンピュートの無駄を防ぎます。これは、AI インフラストラクチャの費用対効果を高めるためには、本番環境ワークロード固有の入出力プロファイルにモデルの選択とサービング構成を厳密に合わせる必要があることを実証しています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;LLM ワークロードをスケールするために&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;最適化されていないインフラストラクチャが、エンタープライズ AI の展開のボトルネックにならないようにしましょう。さまざまなワークロードの形状がハードウェアの飽和にどのように影響するかを理解したところで、これらの知見を実践に活かしましょう。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;今回のベンチマークを使用して本番環境アーキテクチャのサイズを適正化します&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;。プリフィル負荷が高い分類タスクには、スループットを低下させることなく、より大規模な Gemma 3 27B を安全に活用できます。一方、デコード負荷が高い生成タスクを高い同時実行数で処理する場合は、線形スケーリングを維持するために 12B モデルへの切り替えを検討してください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;TPU v6e ノードプールを備えた &lt;/strong&gt;&lt;a href="https://docs.cloud.google.com/kubernetes-engine/docs/tutorials/serve-vllm-tpu"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Google Kubernetes Engine（GKE）&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt;を使用してデプロイし、スケーラビリティに優れたマネージド AI 基盤と専用の &lt;/strong&gt;&lt;a href="https://github.com/vllm-project/tpu-inference" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;vllm-project/tpu-inference&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; ハードウェア プラグインを構築します&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;。また、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/open-models/vllm/use-vllm-tpu"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise Agent Platform の Model Garden&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; を介してデプロイすることも、Gemma 3 モデルのサービング用に &lt;/span&gt;&lt;a href="https://github.com/AI-Hypercomputer/tpu-recipes/tree/main/inference/trillium/vLLM" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;TPU VM&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; をスピンアップすることもできます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;本番環境へのデプロイで、同様のパフォーマンスの壁にぶつかったことはありませんか？&lt;/span&gt;&lt;a href="https://www.googlecloudcommunity.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud コミュニティ フォーラム&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;で、スケーリング戦略を共有し、質問を投稿し、ディスカッションに参加してください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;AI エンジニア&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt; Rupjit Chakraborty&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Mon, 14 Sep 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/not-all-llm-workloads-are-equal-benchmarking-tpu-performance-on-classification-vs-generation/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/hero_2_fvBime0.max-600x600.jpg" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>LLM ワークロードはすべて同じではない: 分類と生成における TPU のパフォーマンス ベンチマーク</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/hero_2_fvBime0.max-600x600.jpg</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/not-all-llm-workloads-are-equal-benchmarking-tpu-performance-on-classification-vs-generation/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Rupjit Chakraborty</name><title>AI Engineer</title><department></department><company></company></author></item><item><title>Google Gen AI SDK for Kotlin 1.0 の発表: Gemini への慣用的なマルチプラットフォーム アクセス</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-the-google-gen-ai-sdk-for-kotlin-10-idiomatic-multiplatform-access-to-gemini/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 9 月 4 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/announcing-the-google-gen-ai-sdk-for-kotlin-10-idiomatic-multiplatform-access-to-gemini?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Kotlin アプリケーションに最新の生成 AI 機能を統合するのに、低レベルな HTTP クライアントを操作したり、異なる Java ライブラリを連携させたりする必要はありません。このたび、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Google Gen AI SDK for Kotlin&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;google-genai-kotlin&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）のリリース 1.0 が公開されました。&lt;/span&gt;&lt;a href="https://github.com/googleapis/kotlin-genai" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GitHub の &lt;/span&gt;&lt;code style="text-decoration: underline; vertical-align: baseline;"&gt;googleapis/kotlin-genai&lt;/code&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; で、コードを詳しく調べ、実行可能なサンプルを試し、プロジェクトにスターを付けることができるようになっています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Kotlin マルチプラットフォーム（KMP）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;ライブラリとしてゼロから構築されたこの SDK は、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;JVM&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（バックエンド サービス、サーバーレス関数、デスクトップ）と &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Android&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; の両方をターゲットとするデベロッパーに、慣用的な Kotlin パラダイム（ファースト クラスの&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;コルーチン&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;、非同期 &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;Flow&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; ストリーミング、名前付きパラメータとデフォルト パラメータを持つ不変データクラスなど）を提供します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この SDK では、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini Developer API&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（Google AI Studio）と &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini Enterprise Agent Platform&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（Google Cloud）の両方を操作するための統合サーフェスが提供され、構成の調整は最小限で済みます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;1. はじめに: 依存関係を追加する&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;SDK は、Maven Central の &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;com.google.genai:google-genai-kotlin&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; で公開されています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Kotlin マルチプラットフォーム（KMP）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;マルチプラットフォーム アプリケーションの場合は、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;commonMain&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; ソースセットに依存関係を追加します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;// build.gradle.kts\r\nkotlin {\r\n    sourceSets {\r\n        commonMain.dependencies {\r\n            implementation(&amp;quot;com.google.genai:google-genai-kotlin:1.0.0&amp;quot;)\r\n        }\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff500df4110&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;標準の JVM プロジェクト&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;単一プラットフォームの Kotlin プロジェクトの場合、Gradle は Gradle Module Metadata を介して最適なバリアントを自動的に選択します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;// build.gradle.kts\r\ndependencies {\r\n    implementation(&amp;quot;com.google.genai:google-genai-kotlin:1.0.0&amp;quot;)\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50223e3d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;2. 単項およびストリーミングのテキスト生成とチャット&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;プライマリ エントリ ポイントは &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;Client&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; クラスです。環境変数（Google AI Studio の場合は &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;GEMINI_API_KEY&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; または &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;GOOGLE_API_KEY&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;、標準の Google Cloud アプリケーションのデフォルト認証情報の場合は &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;GOOGLE_GENAI_USE_ENTERPRISE=true&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;）に基づいて、HTTP 接続と認証を自動的に管理します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini Flash を使用した単一プロンプト リクエスト&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Kotlin の &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;use&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; 拡張機能を使用すると、クライアントの基盤となるネットワーク エンジンと HTTP 接続が確実に解放されます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import com.google.genai.kotlin.Client\r\nimport kotlinx.coroutines.runBlocking\r\n\r\nfun main() = runBlocking {\r\n    Client().use { client -&amp;gt;\r\n        val response = client.models.generateContent(\r\n            model = &amp;quot;gemini-flash-latest&amp;quot;,\r\n            text = &amp;quot;Explain quantum entanglement in two sentences.&amp;quot;\r\n        )\r\n\r\n        println(response.text)\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50223ee10&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;コルーチン Flow による低レイテンシ ストリーミング&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;インタラクティブな UI やレスポンシブな CLI ツールの場合、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;generateContentStream&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; はコールド Kotlin コルーチン &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;Flow&amp;lt;GenerateContentResponse&amp;gt;&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を返し、トークン チャンクをリアルタイムで提供します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import com.google.genai.kotlin.Client\r\nimport kotlinx.coroutines.runBlocking\r\n\r\nfun main() = runBlocking {\r\n    Client().use { client -&amp;gt;\r\n        val responseFlow = client.models.generateContentStream(\r\n            model = &amp;quot;gemini-flash-latest&amp;quot;,\r\n            text = &amp;quot;Outline the key architectural patterns for microservices on Google Cloud.&amp;quot;\r\n        )\r\n\r\n        responseFlow.collect { chunk -&amp;gt;\r\n            chunk.text?.let { print(it) }\r\n        }\r\n        println()\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016ad990&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;マルチターンの会話（チャット）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;リクエスト ターンをまたいで会話履歴を手動で管理するのは煩雑な作業になることがあります。SDK には、コンテキストの維持、ターンの追加、会話履歴のフォーマット、関数呼び出しの処理を自動的に行う専用の &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;chats&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; サービスが含まれています。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import com.google.genai.kotlin.Client\r\nimport com.google.genai.kotlin.types.Content\r\nimport com.google.genai.kotlin.types.GenerateContentConfig\r\nimport kotlinx.coroutines.runBlocking\r\n\r\nfun main() = runBlocking {\r\n    Client().use { client -&amp;gt;\r\n        val config = GenerateContentConfig(\r\n            systemInstruction = Content.fromText(&amp;quot;You are an expert Google Cloud Solutions Architect.&amp;quot;)\r\n        )\r\n\r\n        // Create a multi-turn chat session\r\n        val chat = client.chats.create(\r\n            model = &amp;quot;gemini-flash-latest&amp;quot;,\r\n            config = config\r\n        )\r\n\r\n        // Turn 1\r\n        val firstResponse = chat.sendMessage(&amp;quot;We are designing an event-driven ingestion pipeline on Google Cloud.&amp;quot;)\r\n        println(&amp;quot;Gemini: ${firstResponse.text}\\n&amp;quot;)\r\n\r\n        // Turn 2: context from the first turn is included automatically\r\n        val secondResponse = chat.sendMessage(&amp;quot;Which managed messaging service should we choose: Pub/Sub or Kafka?&amp;quot;)\r\n        println(&amp;quot;Gemini: ${secondResponse.text}\\n&amp;quot;)\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016ad050&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;code style="vertical-align: baseline;"&gt;chat.sendMessageStream(...)&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を使用して、マルチターン チャット レスポンスをストリーミングすることもできます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;3. Google 検索でグラウンディングされたマルチモーダル分析&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Gemini のマルチモーダル推論は、外部検証と組み合わせると特に効果的です。たとえば、技術、医療、科学に関する図を分析する場合、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Google 検索のグラウンディング&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;をアタッチして、事実に基づく主張をライブのウェブソースと照合できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import com.google.genai.kotlin.Client\r\nimport com.google.genai.kotlin.types.*\r\nimport java.io.File\r\nimport kotlinx.coroutines.runBlocking\r\n\r\nfun main() = runBlocking {\r\n    Client().use { client -&amp;gt;\r\n        val imageBytes = File(&amp;quot;src/main/resources/medical_diagram.png&amp;quot;).readBytes()\r\n\r\n        val content = Content(\r\n            parts = listOf(\r\n                Part(inlineData = Blob(mimeType = &amp;quot;image/png&amp;quot;, data = imageBytes)),\r\n                Part(text = &amp;quot;Is this anatomical diagram accurate? Verify labels against authoritative medical sources.&amp;quot;)\r\n            )\r\n        )\r\n\r\n        // Enable Google Search as a grounding tool\r\n        val config = GenerateContentConfig(\r\n            tools = listOf(Tool(googleSearch = GoogleSearch()))\r\n        )\r\n\r\n        val response = client.models.generateContent(\r\n            model = &amp;quot;gemini-flash-latest&amp;quot;,\r\n            content = content,\r\n            config = config\r\n        )\r\n\r\n        println(&amp;quot;=== Analysis ===&amp;quot;)\r\n        println(response.text)\r\n\r\n        // Inspect citations and search queries\r\n        val grounding = response.groundingMetadata\r\n        println(&amp;quot;\\n=== Search Queries Executed ===&amp;quot;)\r\n        grounding?.webSearchQueries?.forEach { println(&amp;quot;- $it&amp;quot;) }\r\n\r\n        println(&amp;quot;\\n=== Grounding Sources ===&amp;quot;)\r\n        grounding?.groundingChunks?.mapNotNull { it.web }?.forEach { source -&amp;gt;\r\n            println(&amp;quot;- ${source.title}: ${source.uri}&amp;quot;)\r\n        }\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016ad890&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;4. ビジュアル生成と会話型編集: Gemini 3 画像ファミリー&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この SDK は、Google の最新の画像生成モデル（リーダーボードでは &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Nano Banana&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; シリーズのモデルとして広く知られています）を完全にサポートしています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;画像の生成と保存&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;生成された画像バイトは、レスポンスの一部で &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;Blob&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; として直接提供されます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import com.google.genai.kotlin.Client\r\nimport java.io.File\r\nimport kotlinx.coroutines.runBlocking\r\n\r\nfun main() = runBlocking {\r\n    Client().use { client -&amp;gt;\r\n        val response = client.models.generateContent(\r\n            model = &amp;quot;gemini-3.1-flash-image&amp;quot;, // Nano Banana 2\r\n            text = &amp;quot;A photorealistic blueprint of an eco-friendly modern datacenter, isometric view, 4k&amp;quot;\r\n        )\r\n\r\n        val imagePart = response.parts?.firstOrNull { it.inlineData != null }\r\n        imagePart?.inlineData?.data?.let { bytes -&amp;gt;\r\n            File(&amp;quot;datacenter_blueprint.png&amp;quot;).writeBytes(bytes)\r\n            println(&amp;quot;Image generated and saved successfully.&amp;quot;)\r\n        }\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016ad210&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;画像から画像への会話型編集&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;同じリクエストで、既存の画像と会話型の編集指示を渡すことができます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;val originalImage = File(&amp;quot;input.png&amp;quot;).readBytes()\r\n\r\nval editPrompt = Content(\r\n    parts = listOf(\r\n        Part(inlineData = Blob(mimeType = &amp;quot;image/png&amp;quot;, data = originalImage)),\r\n        Part(text = &amp;quot;Change the daylight illumination to a dramatic twilight skyline with illuminated windows.&amp;quot;)\r\n    )\r\n)\r\n\r\nval editResponse = client.models.generateContent(\r\n    model = &amp;quot;gemini-3-pro-image&amp;quot;, // Nano Banana Pro\r\n    content = editPrompt\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016ae110&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;5. Gemini Live とのリアルタイムの双方向インタラクション&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;低レイテンシの音声、オーディオ、ライブのマルチモーダル インタラクションの場合、SDK は &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;client.live.connect(...)&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を使用した永続的な WebSocket 接続を介して &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini Live API&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; をサポートします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import com.google.genai.kotlin.Client\r\nimport com.google.genai.kotlin.types.AudioTranscriptionConfig\r\nimport com.google.genai.kotlin.types.LiveConnectConfig\r\nimport kotlinx.coroutines.launch\r\nimport kotlinx.coroutines.runBlocking\r\n\r\nfun main() = runBlocking {\r\n    Client().use { client -&amp;gt;\r\n        val model = if (client.enterprise) &amp;quot;gemini-live-2.5-flash-native-audio&amp;quot;\r\n                    else &amp;quot;gemini-3.1-flash-live-preview&amp;quot;\r\n\r\n        val config = LiveConnectConfig(\r\n            outputAudioTranscription = AudioTranscriptionConfig()\r\n        )\r\n\r\n        // Establish real-time bidirectional WebSocket session\r\n        client.live.connect(model, config).use { session -&amp;gt;\r\n            println(&amp;quot;Connected to Gemini Live session!&amp;quot;)\r\n\r\n            // Launch collector for server messages (audio and text transcriptions)\r\n            val receiveJob = launch {\r\n                session.receive().collect { serverMessage -&amp;gt;\r\n                    serverMessage.serverContent?.outputTranscription?.text?.let { text -&amp;gt;\r\n                        print(text)\r\n                    }\r\n                }\r\n            }\r\n\r\n            // Stream real-time text (or raw PCM audio blobs via session.sendRealtimeInput(audio = ...))\r\n            session.sendRealtimeInput(text = &amp;quot;Hello Gemini! Give me a 5-second motivational quote.&amp;quot;)\r\n\r\n            // When finished, clean up\r\n            receiveJob.cancel()\r\n            session.closeSession()\r\n        }\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016aef90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;6. 構造化されたツールと関数呼び出し&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェント ワークフローを構築する場合や、LLM をバックエンド マイクロサービスと連携させる場合、デベロッパーは &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;FunctionDeclaration&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; を介して構造化 JSON スキーマを渡すことができます。モデルは、ツールを呼び出すタイミングをインテリジェントに選択します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;val telemetryTool = FunctionDeclaration(\r\n    name = &amp;quot;getDatacenterMetrics&amp;quot;,\r\n    description = &amp;quot;Fetch real-time CPU and thermal telemetry for a Google Cloud region&amp;quot;,\r\n    parameters = Schema(\r\n        type = Type.OBJECT,\r\n        properties = mapOf(&amp;quot;region&amp;quot; to Schema(type = Type.STRING)),\r\n        required = listOf(&amp;quot;region&amp;quot;)\r\n    )\r\n)\r\n\r\nval response = client.models.generateContent(\r\n    model = &amp;quot;gemini-flash-latest&amp;quot;,\r\n    text = &amp;quot;Check telemetry for europe-west1&amp;quot;,\r\n    config = GenerateContentConfig(\r\n        tools = listOf(Tool(functionDeclarations = listOf(telemetryTool)))\r\n    )\r\n)\r\n\r\nresponse.functionCalls?.firstOrNull()?.let { call -&amp;gt;\r\n    println(&amp;quot;Model triggered tool: ${call.name} with arguments: ${call.args}&amp;quot;)\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016aead0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;さらに、チャット サービスを使用する場合は、自動関数呼び出し（AFC）を利用できます。つまり、次の例に示すように、チャットの会話で宣言された関数を、SDK がユーザーに代わって自動的かつ透過的に呼び出すことができます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;fun main() = runBlocking {\r\n    // A mocked function\r\n    val getWeather = callableFunction(&amp;quot;get_weather&amp;quot;, paramName = &amp;quot;city&amp;quot;) { city: String -&amp;gt;\r\n        &amp;quot;18 degrees and sunny in $city&amp;quot;\r\n    }\r\n\r\n    Client().use { client -&amp;gt;\r\n        val chat = client.chats.create(\r\n            model = &amp;quot;gemini-flash-latest&amp;quot;,\r\n            automaticFunctionCalling = AutomaticFunctionCalling(getWeather),\r\n        )\r\n\r\n        // SDK calls get_weather if needed in this conversation\r\n        println(chat.sendMessage(&amp;quot;What is the weather in Zurich?&amp;quot;).text)\r\n    }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff5016ac990&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;次のステップ&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Gen AI SDK for Kotlin のリリース 1.0 により、バックエンド サーバー エコシステム（Ktor、Spring Boot、Quarkus、Micronaut）とモバイル アプリケーションの Kotlin デベロッパーは、生成 AI アプリケーションを構築するためのクリーンなマルチプラットフォーム基盤を手に入れました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;詳細と利用方法については、以下のリソースをご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;GitHub リポジトリ:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ソース、スター、ディスカッションは &lt;/span&gt;&lt;a href="https://github.com/googleapis/kotlin-genai" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;github.com/googleapis/kotlin-genai&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; でご確認ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ドキュメントとサンプル:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;a href="https://github.com/googleapis/kotlin-genai/tree/main/examples" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Kotlin 生成 AI サンプル スイート&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;フィードバック:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; 問題の報告、機能の提案、pull リクエストの送信を &lt;/span&gt;&lt;a href="https://github.com/googleapis/kotlin-genai" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GitHub&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; で直接行っていただけます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Kotlin と Gemini を使用して、皆様がどのようなものを構築されるか楽しみにしております。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;デベロッパー アドボケイト、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Guillaume Laforge&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 11 Sep 2026 02:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-the-google-gen-ai-sdk-for-kotlin-10-idiomatic-multiplatform-access-to-gemini/</guid><category>Developers &amp; Practitioners</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/google-genai-sdk-kotlin.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Google Gen AI SDK for Kotlin 1.0 の発表: Gemini への慣用的なマルチプラットフォーム アクセス</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/google-genai-sdk-kotlin.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-the-google-gen-ai-sdk-for-kotlin-10-idiomatic-multiplatform-access-to-gemini/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Guillaume Laforge</name><title>Developer Advocate</title><department></department><company></company></author></item><item><title>Uber がクラウド移行を妨げることなくネットワークの信頼性を向上させた方法</title><link>https://cloud.google.com/blog/ja/products/networking/uber-de-risks-hybrid-ai-with-cloud-interconnect/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 8 月 27 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/networking/uber-de-risks-hybrid-ai-with-cloud-interconnect?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Uber には、サービスを展開している都市との共通点が数多くあります。どちらも常に変化と成長を続けており、混雑や無秩序な拡大を防ぐために、それに伴うトラフィックを慎重に管理する必要があります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Uber は、拡大するネットワークを管理するために技術戦略を絶えず進化させてきました。こうした綿密な計画と継続的な進化が、プラットフォーム全体のアプリケーション トラフィックの円滑な運用を支えています。最終的には、いつでもシームレスに動作する信頼性の高い大規模なプラットフォームを維持することが、ユーザーの信頼を維持する鍵となります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この取り組みにおける重要なソリューションの一つが、&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/ja/products/networking/cross-cloud-network-enhancements-for-distributed-workloads/?e=48754805&amp;amp;hl=ja"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Interconnect 上の Application Awareness&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; です。ハイブリッド ネットワーク全体でアプリケーションの優先順位付けを行う業界初のツールである Cloud Interconnect 上の Application Awareness は、Uber が重要なトラフィックを優先し、ネットワークの輻輳が発生した場合でもビジネスの継続性を確保するのに役立っています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Uber は、Cloud Interconnect 上の Application Awareness の初期設計パートナーとして、この機能が Uber のグローバル規模の運用ニーズを満たすものとなるよう貢献しました。これにより、Uber の日々の業務が改善されただけでなく、切り替え時のサービス中断のリスクを抑えられるという確信を得たことで、Google Cloud への移行を自信を持って進められるようになりました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この投稿では、Uber が最も求めていた機能とその理由、Cloud Interconnect 上の Application Awareness の内部の仕組み、そしてそれが他の組織にもどのように役立つかについて説明します。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;重要なトラフィックの優先順位付け&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;分散型、ハイブリッド、またはマルチクラウドのアプリケーションをグローバル規模で移行する場合、ネットワークの信頼性が最大の懸念事項となります。どんなに意義のある移行であっても、稼働中のサービスを中断させてしまうようでは、その価値は損なわれてしまいます。Uber のような組織にとって、台頭する AI ユースケースを含む大規模なデータ分析ワークロードを支えるための膨大なデータ転送は、ネットワーク リンクを飽和状態にし、重要なアプリケーション トラフィックの信頼性を損なうリスクを招きかねません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;標準的なクラウド接続手法では、企業は通常、膨大なインフラストラクチャのニーズを満たすために、単純に帯域幅をオーバープロビジョニングするという方法をとります。しかし、昨今のハイブリッド クラウドの需要と、Uber のような組織の規模を考えると、ピーク時の使用量に合わせてネットワーク容量をオーバープロビジョニングすることは、費用がかかりすぎるうえ、信頼性も低い場合があります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;最先端の AI イノベーションを統合すると、オーバープロビジョニングの欠点がさらに拡大します。Uber は、ネットワークを混雑させることなく、ビジネス クリティカルなアプリケーションのパフォーマンスを保護しながら、大量のデータ転送に対応できるシステムを必要としています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Cloud Interconnect の Application Awareness が備える 4 つの主要機能（トラフィック処理、輻輳対応、レイテンシ管理、コスト効率）を活用することで、Uber は最新の技術スタックに不可欠なネットワークの最適化を実現しました。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/aai_concept_value_prop_with_without_pictur.max-1000x1000.jpg"
        
          alt="aai concept value prop with_without picture"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Uber は限定公開プレビューの段階からこの機能の導入を開始しました。まずはアリゾナ州フェニックスとバージニア州アッシュバーンの Google Cloud Interconnect から着手し、その後インフラ全体へと展開を広げました。Cloud Interconnect 上の Application Awareness により、Uber は DSCP マーキングや構成済みのキューイング プロファイルを活用して、エンドユーザーのアプリケーション トラフィックを分類し、緊急性の低いデータよりも優先的に処理できるようになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;次の表では、Cloud Interconnect 上の Application Awareness の 4 つの主な機能、従来の方式との違い、そして Uber のような組織の運用継続性の向上にどのように役立つかについて説明しています。&lt;/span&gt;&lt;/p&gt;
&lt;div align="left"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table&gt;&lt;colgroup&gt;&lt;col/&gt;&lt;col/&gt;&lt;col/&gt;&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;機能&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;標準的な接続ソリューション&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Interconnect 上の Application Awareness&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;トラフィックの処理&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;すべてのトラフィックが平等に扱われる（先入れ先出し）&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;トラフィックを 6 つの異なるトラフィック クラスに分類&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;輻輳対応&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;バースト時に優先度の高いアプリケーション トラフィックがドロップされる可能性がある&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ビジネス クリティカルなトラフィックは、厳密な優先度ポリシーまたは帯域幅共有ポリシーによって保護される&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;レイテンシ管理&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;優先度の高いアプリケーションのレイテンシが予測不能&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;時間的制約のあるワークロードに対して、予測可能かつ一貫した低レイテンシを実現&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;コスト効率&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ピークを吸収するために高額なオーバープロビジョニングが必要&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: middle; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;効率的な帯域幅利用と TCO の削減&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;Uber の事例の要点&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Uber にとって、Cloud Interconnect 上の Application Awareness を導入し、ネットワーク上のビジネス クリティカルなトラフィックに優先順位を付けられることの価値は、すぐに目に見える形で現れました。この取り組みを通じて、Uber は、同様のハイブリッド クラウドの課題を抱える他の企業が再現できるブループリントも作成しました。このブループリントの主要な要素は次のとおりです。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ビジネス継続性の確保&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Uber は、トラフィック量の多い大規模なイベントが発生した際に、優先すべきアプリケーション トラフィックをリアルタイムに決定できます。これにより、計画的か不測の事態かを問わず、極端な負荷が発生するような状況下でも、ミッション クリティカルなアプリケーションの稼働を維持できます。Uber の経営陣は、Cloud Interconnect 上の Application Awareness はグローバルな事業運営に重要であると述べています。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;帯域幅の効率的な利用&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 輻輳を防ぐために帯域幅を盲目的にオーバープロビジョニングするのではなく、Application Awareness により、Uber は予想されるネットワーク帯域幅のニーズに合わせて、既存の Cloud Interconnect 容量をより有効に活用できるようになりました。その結果、ネットワーク インフラストラクチャの総所有コストが削減されています。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ワークロード移行の障害を排除&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 重要なアプリケーションをネットワークの輻輳から保護することで、Uber は重要なワークロードを Google Cloud に移行し、その過程で運用上のオーバーヘッドを大幅に削減できました。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;「Cloud Interconnect 上の Application Awareness は、より戦略的なワークロードの Google Cloud 移行を実現する鍵となりました。世界規模で需要が急増する際にも、サービスの信頼性を維持するうえで不可欠な役割を果たしています。トラフィックにインテリジェントに優先順位を付けることで、優先度の高いサービスを保護し、インフラストラクチャの効率を高め、総所有コストを削減できます。これは単なる機能の導入にとどまりません。当社のビジネスに不可欠なソリューションを共に創り上げた、両社の深いエンジニアリング パートナーシップの賜物です。」&lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;– Uber、エンジニアリング ディレクター、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Harry Liu 氏&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;AI とそれ以外のネットワークの信頼性を確保&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;クラウドベースの AI モデル、分散アプリケーション、データ分析を統合する企業が増えるにつれ、それに伴う大量のデータ転送に対応する準備を整えることが、ビジネス上の必須事項となっています。しかし、その一方で、重要なアプリケーションの信頼性を決して損なわないようにする必要もあります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Uber は、Cloud Interconnect 上の Application Awareness を使用することで、ビジネス クリティカルなトラフィックを保護するために単に帯域幅をオーバープロビジョニングするのではなく、最新のハイブリッド クラウド戦略やマルチクラウド戦略を採用するために必要な安定性を構築することが不可欠なステップであることを実証しました。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Cloud Interconnect が組織にもたらすメリットについて詳しくは、&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/ja/products/networking/cross-cloud-network-enhancements-for-distributed-workloads/?e=48754805&amp;amp;hl=ja"&gt;&lt;span style="font-style: italic; text-decoration: underline; vertical-align: baseline;"&gt;さまざまな業界における Cloud Interconnect の可能性&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;に関するブログをご覧ください。さらに詳しく知りたい場合は、Google のネットワーキングと業界の&lt;/span&gt;&lt;a href="https://cloud.google.com/contact/form?e=48754805"&gt;&lt;span style="font-style: italic; text-decoration: underline; vertical-align: baseline;"&gt;エキスパートがサポート&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;いたします。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Uber、上級エンジニア、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Jean He 氏&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud、プリンシパル アーキテクト、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Gopinath Balakrishnan&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 09 Sep 2026 03:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/products/networking/uber-de-risks-hybrid-ai-with-cloud-interconnect/</guid><category>Customers</category><category>Cloud Migration</category><category>Developers &amp; Practitioners</category><category>Hybrid &amp; Multicloud</category><category>Networking</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_fsLq9RR.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Uber がクラウド移行を妨げることなくネットワークの信頼性を向上させた方法</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_fsLq9RR.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/products/networking/uber-de-risks-hybrid-ai-with-cloud-interconnect/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jean He</name><title>Distinguished Engineer, Uber</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Gopinath Balakrishnan</name><title>Principal Architect, Google Cloud</title><department></department><company></company></author></item><item><title>Fault Injection Testing で復元力テスト戦略を簡素化</title><link>https://cloud.google.com/blog/ja/products/networking/introducing-google-cloud-fault-injection-testing-in-preview/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 8 月 27 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/networking/introducing-google-cloud-fault-injection-testing-in-preview?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;データベースの障害やネットワーク パスの不調が発生しても、ミッション クリティカルなクラウド サービスはオンラインの状態を維持し続けなければなりません。しかし、現代の分散システムは複雑化しており、高可用性の確保はますます困難になっています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;障害発生時にも可用性と信頼性を維持できるよう、Fault Injection Testing のプレビュー版をリリースいたしました。Fault Injection Testing は、開発者やアーキテクトが障害テストを自動化し、サービス中断時にも予測可能な動作を確保できるように設計されています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;意図的に障害を環境に注入することで、実際のサービス停止が顧客に影響を与える&lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;前&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;に、安全メカニズムを検証できます。&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;ネイティブな復元力テストが重要な理由&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;セルフホスト型のデータセンターとは異なり、クラウド アプリケーションでは、フェイルオーバー テストを容易にするために、基盤となるインフラストラクチャへの直接アクセスが制限されています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;アプリケーションが障害を乗り越えられることを証明するネイティブ ツールがなければ、信頼性戦略に重大なギャップが生じ、複数のリスクにさらされることになります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;信頼と評判の低下&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 障害が頻繁に発生したり、パフォーマンスが低下したりすると、顧客の不満を招き、ブランド イメージに長期的なダメージを与えます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;コンプライアンスと規制によるペナルティ&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 多くの業界、特に金融機関では、障害復旧機能を証明できないと、コンプライアンス違反、監査、罰金につながる可能性があります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;移行の遅延&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: ゾーン障害が発生しても重要なアプリケーションの安定性を維持できることを検証できない場合、大規模な移行プロジェクトは停滞してしまいがちです。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Fault Injection Testing の仕組み&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Fault Injection Testing では、テスト テンプレートを作成してテストを実行できます。これらのテンプレートはブループリントとして機能し、注入する特定の障害と、テストの対象となるリソースを定義します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この公開プレビュー版では、次の 2 つの主な障害シナリオをテストできます。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud SQL のフェイルオーバー&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: この障害は、高可用性 Cloud SQL インスタンスの、プライマリ ゾーンからスタンバイ ゾーンへのフェイルオーバーをトリガーします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;アプリケーション トラフィックの劣化&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: レイヤ 7 ロードバランサを介して、レイテンシと HTTP エラーコードを選択的に追加できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Fault Injection Testing では、障害が注入される前に自動ドライランが実行されます。この読み取り専用のシミュレーションでは、権限がチェックされ、影響を受けるすべてのリソースの最新リストが提供されます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;スコープを確認したら、手動で注入を開始できます。テンプレートで定義した期間が経過すると、タイマーが切れて障害が元に戻ります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;テスト中に、アプリケーションが計画どおりに動作していることを確認できます。計画どおりに進まない場合は、停止と復元の機能を使用して、テストを直ちに停止し、リソースを通常の状態に復元できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;プレビュー期間中は、ベスト プラクティスとして、本番環境以外で FIT を使用することをおすすめします。プレビュー版では、サービスが既存のテスト手法にどのように適合し、補完するのかを早期に確認できます。また、プロダクトの改善に役立つフィードバックを Google に提供することもできます。&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;企業向けに設計&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;KeyBank や Servier などのパートナーは、すでに Fault Injection Testing を使用してデプロイを検証しています。これらの組織はネイティブなフォールト インジェクションを活用することで、ゾーンの停止といった極めて過酷な障害シナリオをシミュレーションし、サービスの安定稼働を確かなものにしています。&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Fault Injection Testing を使ってみる&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Fault Injection Testing は、Google Cloud コンソール、gcloud CLI、REST API を介して利用できます。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;プレビュー版へのアクセスをリクエストする&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Google Cloud アカウント チームに連絡して、プロジェクトをプレビュー版に追加します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;API を有効にする&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Google Cloud コンソールで「Fault Testing API」を検索し、有効にします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ロールを割り当てる&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: チームに roles/faulttesting.operator ロールがあり、テストを構成して実行できることを確認します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;最初のドライランを実行する&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 本番環境以外で Cloud SQL またはロードバランサ リソースのテンプレートを作成し、ドライランを実行して潜在的な影響を確認します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;実装の詳細については、Google のアカウント担当者にお問い合わせいただくか、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/fault-injection-testing"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Fault Injection Testing のユーザーガイド&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;をご覧ください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud、グループ プロダクト マネージャー、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Toby Owen&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 09 Sep 2026 00:30:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/products/networking/introducing-google-cloud-fault-injection-testing-in-preview/</guid><category>Security &amp; Identity</category><category>Developers &amp; Practitioners</category><category>Networking</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Fault Injection Testing で復元力テスト戦略を簡素化</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/products/networking/introducing-google-cloud-fault-injection-testing-in-preview/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Toby Owen</name><title>Group Product Manager, Google Cloud</title><department></department><company></company></author></item><item><title>AI プロトタイプを本番環境に移行する前にすべてのスタートアップが答えておくべき 10 の質問</title><link>https://cloud.google.com/blog/ja/topics/developers-practitioners/10-questions-for-your-startup-developers/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;※この投稿は米国時間 2026 年 8 月 21 日に、Google Cloud blog に&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/10-questions-for-your-startup-developers?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;投稿&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;されたものの抄訳です。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud で AI を活用したスタートアップを立ち上げることが、これまでになく簡単になっています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;朝食時に &lt;/span&gt;&lt;a href="https://aistudio.google.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google AI Studio&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; から API キーを取得し、それを Antigravity に貼り付ければ、昼食時には製品のプロトタイプができ始めているでしょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;しかし、進歩の道のりは一直線ではありません。スタックを構築する際に、次の 3 つの課題に直面することがよくあります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;API キーが漏洩し、48&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt; &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;時間で高額な請求が発生する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;AI Studio から &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise Agent Platform&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; への移行を急いで進めたが、チームに Identity and Access Management（IAM）の担当者がいないため、ロードマップが数週間停滞する。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;リリースは成功したが、プロジェクトごとのデフォルトの割り当てが原因でアプリが「HTTP 429 Too Many Requests」を返すようになり、追加料金を支払わずに容量を増やす明確な方法がない。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;これらはどれも特殊なエッジケースではありません。​これらは、計画なしに急いで行動して失敗に陥ってしまうパターンであり、誰もが一度は経験したことがあるでしょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ここでは、スタートアップが事業を拡大する前に答えられるようにしておくべき 10 の質問を紹介します。これらの質問を、意思決定が将来を左右する 3 つのフェーズに分類しています。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;オンボーディング&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（独自のプロジェクトと ID を適切に設定する）&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;スケール&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（費用をかけずにスループットを高める）&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;管理&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（費用、キー、エージェントの暴走を防ぐ）。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;これらの 10 の質問は、プロトタイプから本番環境への移行そのものを対象としています。各質問の最後には、すぐに実行できる短いスニペットが用意されています。このスニペットは、ご自身のプロジェクトにコピーして使用できます。その移行に特有ではない周辺的な意思決定（データレイヤと RAG アーキテクチャ、CI / CD、ネットワーク設計など）については、同様に重要ですが、ここでは意図的に対象外としています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;オンボーディング: 基礎を固める（ごく初期の段階）。&lt;/strong&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#1 Google AI Studio と Gemini Enterprise Agent Platform のどちらから始めればよいですか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;どちらのサーフェスも同じ Gemini ファミリーのモデルを提供しますが、解決する問題は異なります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Google AI Studio&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（Gemini Developer API を使用）は、アイデアから実際に動作するコードへと至る最短経路となります。ブラウザ IDE、API キー、豊富な無料枠が用意されており、クラウド プロジェクトを構成する必要はありません。ほとんどのアイデアはここから始めるべきであり、Google のガイダンスでもそのように推奨されています。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini Enterprise Agent Platform &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;（旧称 Vertex AI）は、同じ Gemini モデル（サードパーティ製と OSS のモデルも含む）に加えて、企業向けの管理機能を備えています。具体的には、未加工のキーに代わる IAM とサービス アカウントによる認証、VPC Service Controls、Cloud Logging と Cloud Monitoring、予約済み容量、リージョン エンドポイント、そして最初の企業顧客によるセキュリティ審査で問われるコンプライアンス サーフェスです。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ほとんどのスタートアップにとっての正解は、両方を&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;意図した順序で&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;行うことです。まず AI Studio でプロトタイプを作成し、その後、実際のユーザーに提供する&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;前に&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;移行します。スタートアップにとって危険なのは、これらを交換可能なソリューションとして扱うことです。AI Studio のシンプルなキーモデルは企業向けの管理機能に適したものではなく、Agent Platform の IAM モデルは、認証情報が盗まれる被害から保護されていることを実感するまで、過剰なものに見えるかもしれません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;実際には、思ったより手間はかかりません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;統合された &lt;/span&gt;&lt;a href="https://github.com/googleapis/python-genai" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;google-genai&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; SDK は、両方を対象としています。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Prototype: Google AI Studio, raw API key\r\nfrom google import genai\r\nclient = genai.Client(api_key=&amp;quot;YOUR_AI_STUDIO_KEY&amp;quot;)\r\n\r\n# Production: GEAP, no key — uses Application Default Credentials (ADC)\r\nfrom google import genai\r\nclient = genai.Client(\r\n    vertexai=True,\r\n    project=&amp;quot;my-startup-prod&amp;quot;,\r\n    location=&amp;quot;us-central1&amp;quot;,\r\n)\r\n\r\nresp = client.models.generate_content(\r\n    model=&amp;quot;gemini-2.5-pro&amp;quot;,\r\n    contents=&amp;quot;Summarize this contract in three bullets.&amp;quot;,\r\n)\r\nprint(resp.text)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff501467890&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#2 IAM のエキスパートがいない場合に Google Cloud プロジェクトを設定するにはどうすればよいですか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;スタートアップが Agent Platform への移行を躊躇する最大の理由は、コードではなく、API キーを 1 つ用意するだけの運用から、フォルダ、サービス アカウント、組織のポリシー、ロギング、IAM バインディングを備えたクラウド プロジェクトに移行するという、運用上の大きな変化です。チームに専任のクラウド管理者がいない場合、最初のプロジェクトのセットアップに 1 週間分のエンジニアリング時間がかかることがあります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;3 つのステップで、この時間を大幅に短縮できます。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;コンソールを操作する代わりに、独自の設計思想が反映されたプロジェクト テンプレートを使用する。&lt;/strong&gt;&lt;a href="https://console.cloud.google.com/cloud-setup"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;クラウド設定のチェックリスト&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;と &lt;/span&gt;&lt;a href="https://cloud.google.com/architecture/framework"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud アーキテクチャ フレームワーク&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を使用すると、本番環境レベルのフォルダ階層（prod / non-prod / dev）、一元的なロギングとモニタリングのプロジェクト、&lt;/span&gt;&lt;a href="https://cloud.google.com/security-command-center"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Security Command Center&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; の有効化、ベースライン組織ポリシーが提供されるため、これらをゼロから設計する必要はありません。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;実際に使用する API を一度有効にする&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;必要なときにプロジェクトごとに実行しなくても済むように、バッチ処理します。請求先のリンクの手順は省略できません。これから有効にしようとしている有料 API は、請求先アカウントが関連付けられていないプロジェクトでは有効にできないため、まずはその設定を行います。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/iam/docs/role-picker-gemini"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini にロールを選択させます&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;が、限定的なロールをリクエストします。ロールのリファレンスを覚える必要はありません。アクセス権を付与するダイアログで [推奨ロールの表示] を使用すると、平易な言葉でタスクを説明できます（「このサービス アカウントは Gemini モデルを呼び出し、1 つの Cloud Storage バケットを読み取る必要があります」など）。すると、その理由とともに事前定義ロールが返されます。初日に知っておくべき注意点が 1 つあります。デフォルトでは、一般的なユースケースをカバーするロールが提案されます。通常は、サービスの管理者、編集者、閲覧者のロールです。これらは、必要以上に広い権限を持っています。プロンプトで「最小権限」または「最小限のアクセス」と指定すると、代わりに詳細なロールが返されます。入力する量は同じですが、認証情報が漏洩した場合の影響範囲は大幅に小さくなります。&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;出典: &lt;/span&gt;&lt;a href="https://cloud.google.com/iam/docs/role-picker-gemini"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini のアシスト機能を使用して事前定義ロールの候補を取得する&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# One-shot: create a Vertex-ready project and turn on the services a\r\n# typical AI startup uses.\r\ngcloud projects create my-startup-prod --name=&amp;quot;My Startup (prod)&amp;quot;\r\ngcloud config set project my-startup-prod\r\n\r\n# REQUIRED before enabling billing-dependent APIs (aiplatform, run, etc.).\r\n# Use `gcloud billing accounts list` to find your billing account ID.\r\ngcloud billing projects link my-startup-prod --billing-account=012345-6789AB-CDEF01\r\n\r\ngcloud services enable \\\r\n  aiplatform.googleapis.com \\\r\n  run.googleapis.com \\\r\n  artifactregistry.googleapis.com \\\r\n  logging.googleapis.com \\\r\n  monitoring.googleapis.com \\\r\n  secretmanager.googleapis.com \\\r\n  cloudbilling.googleapis.com&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138ce10&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;出典: &lt;/span&gt;&lt;a href="https://cloud.google.com/sdk/gcloud/reference/services/enable"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;gcloud services enable リファレンス&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/sdk/gcloud/reference/billing/projects/link"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;gcloud billing projects link（GA）&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/docs/start/cloud-environment"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GE Agent Platform 環境の設定&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;単独の創業者である場合は、個人の GCP アカウントで構築しないようにしてください。適切な組織または自己所有の組織を最初に作成し、その内部ににプロジェクトを作成します。この 1 つの決定により、IAM から請求、監査まで、その他すべての作業が大幅に簡素化されます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#3 Google Cloud を使用しています。コードの認証には、API キー、サービス アカウント、ユーザー認証情報のどれを使用すればよいですか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この問題には安全性の階層があり、最も簡単なオプションが本番環境において適切なオプションであることは稀です。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;未加工の API キー&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;は、ローカルでのプロトタイピングには適しています。これは、有効期間が長く、クライアント バンドルや公開リポジトリに漏洩しやすく、それに気づくまで無制限のアクセスを許可してしまうため、本番環境では危険です。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;OAuth によるユーザー認証情報（アプリケーションのデフォルト認証情報）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;は、対話型ツール、CLI のほか、デベロッパーのノートパソコンで実行されるコードに最適です。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;サーバー、コンテナ、スケジュールされたジョブで実行されるものには、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;最小権限の IAM ロールを持つサービス アカウント&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;が適しています。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;目指すべきパターンは、コードが鍵をまったく認識しないパターンです。&lt;/span&gt;&lt;a href="https://google-auth.readthedocs.io/en/latest/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Auth ライブラリ&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を呼び出すだけで、環境からアプリケーションのデフォルト認証情報（ADC）が読み取られます。これは、Cloud Run サービス、GKE ワークロード、または Compute Engine VM にアタッチされているサービス アカウントに対して発行された有効期間の短いトークンです。認証コードを記述しなくても、エンタープライズ グレードの認証を利用できます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# On a developer laptop\r\ngcloud auth application-default login\r\n\r\n# On a server (Cloud Run, GKE, etc.) — no login, no key file.\r\n# Attach a service account with just the roles the app needs.\r\ngcloud run deploy my-agent \\\r\n  --image=us-docker.pkg.dev/my-startup-prod/agents/api:v1 \\\r\n  --service-account=agent-runtime@my-startup-prod.iam.gserviceaccount.com \\\r\n  --region=us-central1&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138ea90&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Application code — notice: no keys, no secrets.\r\nfrom google import genai\r\n\r\nclient = genai.Client(\r\n    vertexai=True,\r\n    project=&amp;quot;my-startup-prod&amp;quot;,\r\n    location=&amp;quot;us-central1&amp;quot;,\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138e810&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;最後に、今後に備えて、そのサービス アカウントに、ワークロードが実際に必要とする最小限の IAM ロールを付与します。通常は、より広範な管理者ロールではなく、モデルを呼び出すための &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/docs/general/access-control"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;roles/aiplatform.user&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; にします。30 秒ほど余分に時間がかかりますが、認証情報が漏洩したとしても、それがマスターキーになるのを防ぐことができます。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#4 AI Studio の API キーから Agent Platform の IAM モデルへの移行は、いつまで引き延ばせますか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;思っているよりも早く対応すべきです。正しいトリガーは、実害が出たときでは&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;ありません&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;。次のいずれかに該当する場合です。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;キーがノートパソコンから流出した（リポジトリにチェックインした、Slack に貼り付けた、モバイルアプリに組み込んだ）。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;チームに API を呼び出す必要がある人が複数いる。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;1 か月あたり数百ドル以上を費やしている。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;有料ユーザーのオンボーディングが間近に迫っている。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;成長中のスタートアップが不意を突かれる可能性のある落とし穴は、単純なものです。たとえば、通常は月額 180 ドルを支払っているアカウントの Gemini API キーが公開リポジトリから漏洩し、蒸留攻撃に悪用されるケースです。この場合、所有者が最初の請求アラートを確認する前に、数万ドルの料金が累積してしまいます。&lt;/span&gt;&lt;a href="https://cloud.google.com/architecture/framework/security/shared-responsibility-shared-fate"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud の責任の共有モデル&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;は明確です。お客様は、有効な認証情報を使用して発生した料金について責任を負います。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;移行自体は、移行に対する不安よりもはるかに小規模なものです。&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;google-genai &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;では、#1 に示す 2 行の変更です。実際に時間がかかるのは、それに伴うプロジェクトのセットアップです。まさにそのために 2 が存在します。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;カットオーバー日の実用的なチェックリスト:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# 1. Revoke every existing AI Studio key that has ever left a laptop.\r\n#    (Go to https://aistudio.google.com/apikey and delete them.)\r\n\r\n# 2. Confirm your production code has no api_key= arguments.\r\ngrep -rn &amp;quot;api_key&amp;quot; src/\r\n\r\n# 3. Enable GEAP and confirm ADC works locally.\r\ngcloud services enable aiplatform.googleapis.com\r\ngcloud auth application-default login\r\npython -c &amp;quot;\r\nfrom google import genai\r\nc = genai.Client(vertexai=True, project=\&amp;#x27;my-startup-prod\&amp;#x27;, location=\&amp;#x27;us-central1\&amp;#x27;)\r\nprint(c.models.generate_content(model=\&amp;#x27;gemini-2.5-flash\&amp;#x27;, contents=\&amp;#x27;ping\&amp;#x27;).text)\r\n&amp;quot;&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138d510&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ステップ 3 でレスポンスが出力された場合は、Agent Platform を使用しています。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;スケール: 追加料金を支払うことなく容量を増やす。&lt;/strong&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#5 リリースしたのに、HTTP 429 エラーが頻発しています。これを解消するにはどうすればよいですか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Agent Platform からの「429 Too Many Requests」はほとんどの場合、次の 2 つのいずれかを意味します。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;プロジェクトの階層の&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;動的共有割り当て（DSQ）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;の上限に達した場合。DSQ は、プロジェクトの履歴に基づいてサイズが設定される共有プールです。プラットフォーム全体での不正使用を防ぐため、新しいプロジェクトは設計上、控えめな上限から始まります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;世界的に需要が急増しているときに、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;グローバル エンドポイント&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を呼び出し、共有容量をめぐって世界中のトラフィックと競合している場合。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;対策としてすぐ思いつくのは、割り当て増加のチケットを送信することです。必要であればそうすることもできますが、通常は 2 つのアーキテクチャ上の変更で、より迅速かつ安価に問題を解決できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;リージョン エンドポイントに固定する。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Agent Platform でのスタートアップ トラフィックの半分以上は、デフォルトでグローバル ルーティングに設定されています。特定のリージョン（&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;us-central1&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; など）に固定すると、グローバルな競合を回避でき、通常はレイテンシも改善されます（次の質問で説明しますが、1 つだけ例外があります。Priority PayGo を特に希望される場合、この機能は現在グローバル エンドポイントでのみ提供されています。それ以外の場合は、リージョンに固定します）。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google import genai\r\n\r\n# Global (default): competes against worldwide demand.\r\n# Regional: routes only to the regional cluster, less contention.\r\nclient = genai.Client(\r\n    vertexai=True,\r\n    project=&amp;quot;my-startup-prod&amp;quot;,\r\n    location=&amp;quot;us-central1&amp;quot;,   # &amp;lt;-- this is the one-line fix\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138f210&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;適切な再試行とバックオフを追加する。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;429 は再試行可能なシグナルであり、致命的なエラーではありません。本番環境のクライアントには、ジッターを伴う指数バックオフが必要です。最新の google-genai SDK には、&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/docs/reference/rest#retry_settings"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;この動作&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;が組み込まれていますが、実際に有効にした場合にのみ機能します。これは見落としがちです。古い Vertex コードで見たことがあるかもしれませんが、従来の `google.api_core.retry.if_transient_error` デコレータは使用しないでください。これは従来の例外クラス向けに設計されており、新しい `google.genai.errors.APIError` を認識しないため、429 エラーを再試行せずに無視します。代わりに、SDK の組み込みの再試行オプションを使用します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from google import genai\r\nfrom google.genai import types\r\n\r\nclient = genai.Client(\r\n    vertexai=True, project=&amp;quot;my-startup-prod&amp;quot;, location=&amp;quot;us-central1&amp;quot;,\r\n    http_options=types.HttpOptions(retry_options=types.HttpRetryOptions(\r\n        attempts=5, initial_delay=1.0, max_delay=60.0, exp_base=2.0, jitter=1.0,\r\n        http_status_codes=[408, 429, 500, 502, 503, 504],\r\n    ))\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138fe50&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;この状況をどのように予測しますか？できれば、ユーザーから報告を受ける形ではなく。Agent Platform はサービング指標を Cloud Monitoring に公開します。また、[コンソール] &amp;gt; [Agent Platform] &amp;gt; [ダッシュボード] &amp;gt; [モデルのオブザーバビリティ] に、アセンブル不要の事前構築済みダッシュボードがあります。1 秒あたりのリクエスト数、トークン スループット、最初のトークンのレイテンシ、エラー率をすぐに確認できます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;実際にアラートを生成する指標は &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;aiplatform.googleapis.com/publisher/online_serving/model_invocation_count&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; です。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;error_category&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; ラベルが付き、値は &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;user&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;system&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;capacity&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; のいずれかになります。&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;capacity&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;に関するアラートは、自分自身の間違ったリクエストから実際のスロットリングを分離します。これは、未加工の 429 エラーのカウントでは行われません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;注意すべき点として、Standard PayGo では「使用量が割り当ての 80% に達したら警告して」というアラートを作成できません。動的共有割り当てでは、80% を限度とする、プロジェクトごとの固定値はありません。429 エラーは、共有容量の一時的な競合を意味し、限度を超えたことを意味するものではありません。割合を上限とするアラートは、実際の上限指標が提供されるプロビジョンド スループットを使用している場合にのみ意味を持ちます。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;gcloud monitoring policies create --policy-from-file=capacity-alert.yaml&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138d710&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;出典: &lt;/span&gt;&lt;a href="https://cloud.google.com/monitoring/api/metrics_gcp_a_b"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Agent Platform の指標リスト&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/model-observability"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;モデルのオブザーバビリティ ダッシュボード&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/googleapis/python-genai/blob/main/google/genai/types.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;RetryOptions のソース&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/googleapis/google-cloud-python/blob/main/packages/google-api-core/google/api_core/retry/retry_base.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;コア retry_base.py&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/googleapis/python-genai/blob/main/google/genai/errors.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;genai &lt;/span&gt;&lt;/a&gt;&lt;a href="http://errors.py/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;errors.py&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/reduce-429-errors-on-vertex-ai?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;429 エラーの削減&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/sdk/gcloud/reference/monitoring/policies/create"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;gcloud monitoring policies create&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/dynamic-shared-quota"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;動的共有割り当て&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/quotas"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Agent Platform のレート制限に関するドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;に沿って、プロジェクトの現在の上限が実際にどの程度であるかを把握してから、上限を超えているかどうかを判断してください。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#6 Standard PayGo、Priority PayGo、プロビジョンド スループットのうち、どの消費モデルを利用すればよいですか。&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;3 つの消費モデルは、ワークロードの形態も進め方もまったく異なります。適切なものを選択することで、スタートアップは AI の請求額を大幅に削減できます。まず、それぞれの定義を確認し、どのような場合に適しているか、または適していないかを見ていきましょう。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Standard PayGo（DSQ）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 共有プールからのトークン単位の課金。低価格、保証なし。&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Priority PayGo&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: トークン単位の課金、プレミアム料金のためキューをスキップ可能。&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;プロビジョンド スループット（PT）&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: 予約済み容量を前払い。予測可能、使用しないと無効。&lt;/span&gt;&lt;/p&gt;
&lt;div align="left"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;
&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table&gt;&lt;colgroup&gt;&lt;col/&gt;&lt;col/&gt;&lt;col/&gt;&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;消費タイプ&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;最適な用途&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;注意点&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Standard PayGo（DSQ）&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;初期段階、低 QPS、急激に変動するプロトタイプ トラフィック&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;急増時に 429 エラーが発生、信頼性 SLO なし&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Priority PayGo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;429 を許容できない、バースト性の高い、収益に不可欠なトラフィック&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;標準トークン価格の約 1.8 倍&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/provisioned-throughput"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;プロビジョンド スループット（PT）&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;安定した、予測可能な、大量の本番環境トラフィック&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;使用率が 40% 未満の場合、費用が無駄になる。スパイク時には PayGo にオーバーフロー&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;スタートアップによくある間違いは、PT を早すぎる時期に購入することです。特に、大規模なリリースの翌週、トラフィックが増加する一方のように感じられるときに、こうした間違いが起きます。PT は予約済みの容量です。使用するかどうかにかかわらず料金を支払う必要があり、ベースラインが単なる願望ではなく、真に予測可能になった場合にのみ、元が取れるようになります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;実用的な手順は次のとおりです。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Standard PayGo の第 1～4 週。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;これを使用して、実際のリクエストの形態（p50 と p99 での 1 分あたりのトークン数、リクエストのバースト、バッチ処理可能とリアルタイム処理の内訳）を測定します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;初めて 429 エラーが大量に発生したとき&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;は、実際に重要なトラフィックに対して Priority PayGo を有効にします。これは構成の変更であり、注文書ではないため、調達部門の担当者は関与する必要はありません。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Priority PayGo request: use the global endpoint + two extra headers.\r\nfrom google import genai\r\nfrom google.genai import types\r\n\r\nclient = genai.Client(vertexai=True, project=&amp;quot;my-startup-prod&amp;quot;, location=&amp;quot;global&amp;quot;)\r\nresp = client.models.generate_content(\r\n    model=&amp;quot;gemini-2.5-pro&amp;quot;,\r\n    contents=&amp;quot;Rank these support tickets by urgency: ...&amp;quot;,\r\n    config=types.GenerateContentConfig(\r\n        # Priority PayGo headers, per current GEAP docs.\r\n        http_options=types.HttpOptions(headers={&amp;quot;X-Vertex-AI-LLM-Request-Type&amp;quot;: &amp;quot;shared&amp;quot;, &amp;quot;X-Vertex-AI-LLM-Shared-Request-Type&amp;quot;: &amp;quot;priority&amp;quot;}),\r\n    ),\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138fd10&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;3. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;ベースラインの TPM を予測できるようになったら、&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;PT を購入してフラット ベースラインをカバーし、ベースラインを超える分は PayGo にオーバーフローします。これが、&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/provisioned-throughput-on-vertex-ai"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google が推奨する組み合わせパターン&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;であり、まったく理にかなったものです。単なる宣伝文句ではなく、両方の利点を活かしています。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt; 出典: &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Priority PayGo のドキュメント&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://github.com/googleapis/python-genai/blob/main/google/genai/types.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;google-genai HttpOptions のソース&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GEAP REST リファレンス&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#7 どのリクエストをライブにして、どのリクエストをバッチジョブにする必要がありますか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;スタートアップのワークロードのほとんどは、リアルタイムを装ったバッチジョブであることが実態です。ジョブをインタラクティブなパスから外すたびに、本当に高速であることが必要なトラフィック、つまりユーザーが実際にスピナーを見つめているトラフィックのために DSQ のヘッドルームが解放されます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;トラフィックを分類するのに役立つ 3 つの質問:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ユーザーが 1 秒以内に結果を確認する必要がありますか？この場合は、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;ライブ推論&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;です。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ユーザーはスピナーを見ながら数秒間待つことができますか？この場合もライブですが、ストリーミングの候補でもあります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ユーザーは「準備が整い次第メールでお知らせします」または「しばらくしてからもう一度ご確認ください」というメッセージを許容できますか？この場合は、&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;バッチ予測&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt;です。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Agent Platform でのバッチ予測は完全に独立したキューで実行され、インタラクティブな DSQ を消費しません。また、通常はオンデマンド推論の半額程度です。これは、ライブ トラフィックの高速化と費用の削減という二重のメリットをもたらす、まれな例です。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Kick off a batch prediction job from a JSONL file in Cloud Storage.\r\n# Each line is one prompt; results land in another Cloud Storage prefix.\r\nfrom google import genai\r\nfrom google.genai import types\r\n\r\nclient = genai.Client(vertexai=True, project=&amp;quot;my-startup-prod&amp;quot;, location=&amp;quot;us-central1&amp;quot;)\r\n\r\njob = client.batches.create(\r\n    model=&amp;quot;gemini-2.5-flash&amp;quot;,\r\n    src=&amp;quot;gs://my-startup-prod-batch/inputs/nightly-summaries.jsonl&amp;quot;,\r\n    config=types.CreateBatchJobConfig(\r\n        dest=&amp;quot;gs://my-startup-prod-batch/outputs/&amp;quot;,\r\n    ),\r\n)\r\nprint(job.name, job.state)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138e210&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;一般的な候補: 夜間のドキュメント要約、新規登録者のバックグラウンド分類、一括翻訳、エンベディングのバックフィル、テストセットに対する評価実行。これらのいずれかが現在のライブパスにあれば、通常、それらを移動することが、今週できる最も効果的な変更となります。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;管理: 費用、鍵、エージェントを管理する。&lt;/strong&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#8 請求額が 3 倍になっても丁寧なメールが届くだけでなく、実際に費用を削減できる利用額上限を設定するにはどうすればよいですか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;正直なところ、最近まで予算は通知するだけで、ブレーキペダルは自分で作る必要がありました。7 月にこの状況が変わりました。メカニズムは 3 つあり、これらはレイヤとして考えることができます。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/budgets-spend-caps"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;利用額上限の予算&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;（プレビュー）。Cloud Billing の予算で、メール通知だけでなく、強制的な適用が可能になりました。プロジェクトに利用額上限を設定すると、使用料金が予算の 100% を超えた時点で、Google はサービスを一時停止します。サービスを再開するには、手動で一時停止を解除する必要があります。Gemini API、Cloud Run、Cloud Run Functions とともに、Agent Platform が対象リストに明示的に記載されています。アラートは 50% と 80% で引き続き発生するため、予告もなく一時停止になるわけではありません。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;利用する前に知っておくべき 3 つのこと:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;各上限は、1 つのプロジェクトと 1 つの対象サービスに適用されます。アカウント全体の保護ではありません。Agent Platform と Cloud Run の両方に上限を設定する場合は、2 つの上限を設定することになります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;適用は即時ではなく、推定費用に基づきます。上限を超えた分は通常どおり請求されるため、実際の予算上限よりも低い数値を設定してください。上限の解除は手動で行われ、サービスの再開には最長で 1 時間かかることがあります。また、プロビジョンド スループットの使用も一時停止されるため、容量を前払いしている場合は、上限に達するとその容量も使えなくなります。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;公開時点ではプレビュー版であり、対象サービスのリストは今後増えていくことが記載されています。設計する前に、現在のリストを確認してください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;課金を無効にする Pub/Sub トリガーによる予算設定&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;。利用額上限では対応できない、広範な影響範囲（複数のサービスの一括設定、プロジェクト全体、まだ対象になっていないサービスなど）が必要な場合は、依然として適切なツールです。予算がしきい値に達すると、Pub/Sub が Cloud Functions の関数を起動して請求先アカウントを切り離し、数分以内にすべての課金対象アクティビティを停止します。ネイティブの上限よりも大雑把で危険です。リソースが回復不能になる可能性があるため、最初にではなく、2 番目に試みてください。詳細なチュートリアル: &lt;/span&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/notify"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;予算通知に自動的に応答する&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Sketch: create a budget SCOPED TO ONE PROJECT that publishes to Pub/Sub at 50%, 90%, 100%.\r\ngcloud billing budgets create \\\r\n  --billing-account=012345-6789AB-CDEF01 \\\r\n  --display-name=&amp;quot;my-startup-prod hard stop&amp;quot; \\\r\n  --budget-amount=2000USD \\\r\n  --filter-projects=projects/my-startup-prod \\\r\n  --threshold-rule=percent=0.5 \\\r\n  --threshold-rule=percent=0.9 \\\r\n  --threshold-rule=percent=1.0,basis=current-spend \\\r\n  --notifications-rule-pubsub-topic=projects/my-startup-prod/topics/budget-alerts&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138c7d0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;出典: &lt;/span&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/budgets-spend-caps"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;利用額上限の予算を管理する&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;プログラムによる通知を設定する&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/sdk/gcloud/reference/billing/budgets/create"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;gcloud billing budgets create リファレンス&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/budgets"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Billing の予算のコンセプト&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/disable-billing-with-notifications"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;通知で課金を無効にするチュートリアル&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;、&lt;/span&gt;&lt;a href="https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;プログラムによる通知のペイロード スキーマ&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;デフォルト設定が予期しない問題を引き起こす可能性があるため、事前に対応すべきことが 2 つあります。&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;予算の範囲を制限する: --filter-projects を使用しない場合、予算は請求先アカウント全体に適用されます。いずれかのプロジェクトで急増が発生すると、すべてのキルスイッチがトリガーされます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;ローカルにデプロイする: 予算通知では、影響を受けるプロジェクトが指定されていません。キルスイッチが目的のプロジェクトにのみ影響するように、保護するプロジェクト（my-startup-prod など）と同じプロジェクトに Cloud Functions の関数をデプロイします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;次に、そのトピックに小さな Cloud Functions の関数を接続し、100% のしきい値に達したときに &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;projects.updateBillingInfo &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;を呼び出して請求先アカウントのリンクを解除します。これが、回路ブレーカーの役割を果たします。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;割り当てのオーバーライドによる機械的な上限。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;上記のキルスイッチを設定しなくても、プラットフォームのデフォルトを下回る、モデルごと、リージョンごとの割り当てを明示的に設定することで、費用が累積するレートに上限を設けることができます。アプリの本来の用途において &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;gemini-2.5-pro&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; に対する 1 分あたりのリクエスト数が 500 を超えることがない場合は、&lt;/span&gt;&lt;a href="https://cloud.google.com/docs/quotas/view-manage"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Quotas コンソール&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;で上限を 500 に設定します。割り当てによってサービスが拒否されるため、キーが漏洩してもリソースが消費されることはありません。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#9 シークレットはどこに保存すべきですか？（.env ファイルではありません）&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;簡潔に言うと、&lt;/span&gt;&lt;a href="https://cloud.google.com/secret-manager"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Secret Manager&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; です。環境変数、&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;.env&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; ファイル、リポジトリのいずれにも保存しないでください。IAM を介して、読み取りアクセス権を、そのアクセス権を必要とするサービス アカウントにのみ付与します。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Store a third-party API key (Stripe, OpenAI, whatever).\r\necho -n &amp;quot;sk_live_xxx&amp;quot; | gcloud secrets create stripe-live-key --data-file=-\r\n\r\n# Grant only the runtime service account access to read it.\r\ngcloud secrets add-iam-policy-binding stripe-live-key \\\r\n  --member=serviceAccount:agent-runtime@my-startup-prod.iam.gserviceaccount.com \\\r\n  --role=roles/secretmanager.secretAccessor&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138f350&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Application code fetches it at startup; nothing lives on disk.\r\nfrom google.cloud import secretmanager\r\nsm = secretmanager.SecretManagerServiceClient()\r\nresp = sm.access_secret_version(\r\n    name=&amp;quot;projects/my-startup-prod/secrets/stripe-live-key/versions/latest&amp;quot;\r\n)\r\nstripe_key = resp.payload.data.decode(&amp;quot;utf-8&amp;quot;)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138fcd0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;次に、2 つのちょっとした習慣を紹介します。これらは、いざ必要になったときにその価値がわかります。&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;定期的なローテーションと、疑いがあるときのローテーション。&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Secret Manager のバージョンは安価です。既存のバージョンを書き換えずに、ロール フォワードしてください。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;シークレットが漏洩したときの検出。&lt;/strong&gt;&lt;a href="https://cloud.google.com/secret-manager/docs/event-notifications"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Secret Manager の通知&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;と Google Cloud の&lt;/span&gt;&lt;a href="https://cloud.google.com/sensitive-data-protection"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Sensitive Data Protection&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;により、攻撃者に先んじて、リポジトリにチェックインされたキーやログストリームに貼り付けられたキーを捕捉できます。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ユーザーに代わって動作する AI アプリケーション（ユーザーに代わって Gmail を呼び出す、ドライブのフォルダを読み取る、ユーザーの認証情報を使用してサードパーティの SaaS にアクセスするなど）には、有効期間の長いトークンを保存しないでください。有効期間の短いアクセス トークンと更新フローとともに OAuth 2.0 を使用します。これにより、ユーザーが突然退職した場合や、不正使用されたアカウントが取り消された場合、エージェントは同時にアクセス権を失います。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;#10 新しい AI エージェントが、決してすべきではないことをしないようにするにはどうすればよいでしょうか？&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ツールの呼び出し、ウェブの閲覧、コードの実行が可能なエージェントには、他のあらゆる本番環境サービスと同様の、あるいはそれ以上に「多層防御」の考え方が求められます。なぜなら、そうしたエージェントは、ユーザーにとってもモデルにとっても事前に完全には予測できないような判断を下すからです。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;4 つのレイヤがあり、実際のユーザーがいる場合は、どれも省略できません。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;1. エージェント自体の ID。エージェントに独自のサービス アカウントを付与し、本当に必要なリソースとツールのみにスコープを限定します。これは、他のワークロードと同じ最小権限の原則です。Agent Engine はファースト クラスの&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/identity"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;エージェント ID&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; をサポートしているため、監査ログですべてのアクションを特定のエージェント インスタンスに関連付けることができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. サンドボックス化されたコード実行。エージェントが生成されたコードを実行する場合（データ分析や「この Python を実行して」のフローにおける一般的なパターン）、アプリケーション プロセスで実行しないでください。&lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/code-execution"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;隔離されたサンドボックス&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;を使用することで、不適切な組み合わせが本番環境データに影響を与えないようにします。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;# Enable server-side code execution inside a sandbox for a request.\r\nfrom google import genai\r\nfrom google.genai import types\r\n\r\nclient = genai.Client(vertexai=True, project=&amp;quot;my-startup-prod&amp;quot;, location=&amp;quot;us-central1&amp;quot;)\r\nresp = client.models.generate_content(\r\n    model=&amp;quot;gemini-2.5-pro&amp;quot;,\r\n    contents=&amp;quot;Compute the correlation between these two columns: ...&amp;quot;,\r\n    config=types.GenerateContentConfig(\r\n        tools=[types.Tool(code_execution=types.ToolCodeExecution())],\r\n    ),\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7ff50138f250&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;3. プロンプトと回答のフィルタリング。&lt;/span&gt;&lt;a href="https://cloud.google.com/security-command-center/docs/model-armor-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Model Armor&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は、モデル呼び出しの手前に配置され、プロンプト インジェクション、ジェイルブレイク、機密データの引き出し、ブランドにそぐわない出力をスクリーニングします。これらはすべて、実際のユーザーが使い始めれば、実質的に避けられないものとなります。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;4. 行動のモニタリング。&lt;/span&gt;&lt;a href="https://cloud.google.com/security-command-center/docs/concepts-security-sources"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;脅威検出&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;機能を備えた &lt;/span&gt;&lt;a href="https://cloud.google.com/security-command-center"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Security Command Center&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; は、エージェントの動作における異常にフラグを立てます。たとえば、サービス アカウントがこれまで使用したことのない API を突然呼び出す、エージェントが未知の外部ホストにアクセスする、特権操作が予期せず急増する、といったことです。これは、ほぼリアルタイムで行われます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;エージェントが実際のユーザーに代わって行動したり、実際のお金を扱ったりするようになると、これらはどれも省略できなくなります。&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong style="vertical-align: baseline;"&gt;いわば宿題として&lt;/strong&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;リポジトリ、ノートブック、本番環境ランタイムで、未加工の API キーを監査します。そこにあるべきでないキーをローテーションします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;同期レスポンスを必要としないワークロードは、Batch API に移行します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;モデルのオブザーバビリティ ダッシュボードを有効にして、容量エラーに関するアラートを 1 つ設定し、次の 429 エラーが顧客より前に自分に届くようにします。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt;
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;プロジェクトの利用額上限を設定し、50% と 80% のアラートに注意します。使用量が予算の 100% を超えると、手動で解除するまで、Google はサービスを一時停止します。&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;今週この 4 つの事項を実施すれば、AI 機能をリリースしているほとんどのスタートアップよりも先を行くことができます。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;次回取り上げてほしいシナリオはありますか？&lt;/span&gt;&lt;a href="https://cloud.google.com/startup"&gt;&lt;span style="font-style: italic; text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud for Startups&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt; までお問い合わせください。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Google Cloud AI、テクニカル ソリューション、&lt;/span&gt;&lt;strong style="font-style: italic; vertical-align: baseline;"&gt;Sergio Villani&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 04 Sep 2026 11:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ja/topics/developers-practitioners/10-questions-for-your-startup-developers/</guid><category>AI &amp; Machine Learning</category><category>Startups</category><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>AI プロトタイプを本番環境に移行する前にすべてのスタートアップが答えておくべき 10 の質問</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ja/topics/developers-practitioners/10-questions-for-your-startup-developers/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Sergio Villani</name><title>Technical Solutions, Google Cloud AI</title><department></department><company></company></author></item></channel></rss>