llm-catalog-archive

Change

1e231dd

1e231ddf1bcc2ea84bf17210b71e64fcb52140f7 · commit on GitHub

gcloud-blog-feed: changed (543595 bytes, HTTP 200)

raw/gcloud-blog-feed/response.xml modified

Lines added
+57
Lines removed
-50
Stored bytes at this commit
543,595
Timestamp
observed
Raw artifact at this commit
raw/gcloud-blog-feed/response.xml
Recorded headers
observed_at2026-09-03T04:33:48.087Z
origin_datenull
status200
final URLhttps://cloudblog.withgoogle.com/products/ai-machine-learning/rss/
etagnull
last-modifiednull
dateThu, 03 Sep 2026 04:33:48 GMT
agenull
cache-controlmax-age=600
cf-cache-statusnull
content-encodinggzip
content-lengthnull
@@@ -1,5 +1,36 @@
<?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>AI &amp; Machine Learning</title><link>https://cloud.google.com/blog/products/a
+<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>AI &amp; Machine Learning</title><link>https://cloud.google.com/blog/products/a
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Available to all as an open-source framework, Mantis is part of Google’s internal approach to find and fix vulnerabilities at machine-speed. It creates a more effective scalable, context-aware repository analysis. &lt;/span&gt;&lt;/p&gt;
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;While sloppiness in AI code scanning frequently leads to hallucinated bugs and weak true-positive rates under 7%, we designed Mantis to be effective by combining industry-standard agentic techniques like critic and review agents with sandboxed r
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;As we &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/identity-security/cloud-ciso-perspectives-how-google-cloud-security-uses-ai-internally/?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&g
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;It constructs a hierarchical security summary tree, condensing individual files into directory and root-level summaries. This technique reduced token overhead by over 85%, while preserving critical structural context across massive repositories.
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Mantis distills decades of cybersecurity expertise across a wide spectrum of codebases, and is &lt;/span&gt;&lt;a href="https://github.com/google/mantis" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-alig
+&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;First&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;, clone the Mantis repo locally using:&lt;/span&gt;&lt;/p&gt;
+&lt;/li&gt;
+&lt;/ul&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 clone https://github.com/google/mantis.git&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7faa2153de20&amp;gt;)])]&a
+&lt;/dl&gt;&lt;/div&gt;
+&lt;div class="block-paragraph_advanced"&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;Second&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;, open your &lt;/span&gt;&lt;a href="https://antigravity.google/docs/enterprise/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underli
+&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Internally at Google, this exact prompt has been used to find real vulnerabilities across our many code repositories. As part of the Mantis repository on GitHub, we’ve included sample sandboxing options. You can also implement your own sandbox t
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Mantis is intended to be an easy place to start with vulnerability discovery, true positive filtering, and patching. Once you've got a handle on AI-discovered vulnerabilities, you can use the new &lt;/span&gt;&lt;a href="https://github.com/googl
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To get the most out of AI-driven vulnerability discovery and modernize your development practices, we strongly recommend two essential practices:&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;Feed your tools the right context&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: While Mantis automatically analyzes commit history and code to build documentation for itself, human-curated knowledge often ca
+&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;Build a cyber sandbox with vulnerability acceptance criteria&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;. Safe, sandboxed environments where you can reproduce vulnerabilities with clear vulnerability-reprod
+&lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can &lt;/span&gt;&lt;a href="https://github.com/google/mantis/issues" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;learn more about Mantis here&lt;/span&gt;&lt;/a&gt;&lt;span sty
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This month, we focused on making AI highly practical for your business, including its associated costs. This meant tailoring our models for specialized industries – starting with Financial Services and
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Top announcements&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
@@@ -41,7 +72,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Stay tuned for monthly updates on Google Cloud’s AI announcements, news, and best practices. For a deeper dive into the latest from Google Cloud customers, read our monthly recap, &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/cus
&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;$300 in free credit to try Google Cloud AI and ML&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f4f537ef0d0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud AI and ML&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7faa20cd6e20&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;hr/&gt;
&lt;h2 style="text-align: center;"&gt;&lt;span style="vertical-align: baseline;"&gt;July&lt;/span&gt;&lt;/h2&gt;
@@@ -1580,7 +1611,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;&lt;a href="https://cloud.google.com/ai/financial-services"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise for Financial Services&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&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;Get vital board insights with Google Cloud&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f4f623b8b20&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Visit the hub&amp;#x27
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Get vital board insights with Google Cloud&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7faa20b74c10&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Visit the hub&amp;#x27
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="hswvv"&gt;&lt;b&gt;How to stay strong with security fundamentals in the AI era&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="eoh1k"&gt;&lt;i&gt;By Chris Betz, CISO, Google Cloud&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-paragraph_with_image"&gt;&lt;div class="article-module h-c-page"&gt;
@@@ -1661,12 +1692,12 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To learn more about building and maintaining strong security foundations in the AI era, read our newest &lt;/span&gt;&lt;a href="https://cloud.google.com/security/resources/cyber-snapshot-reports"&gt;&lt;span style="text-decoration: underline; v
&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;Learn something new&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f4f621f67c0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Watch now&amp;#x27;), (&amp;#x27;href&amp;#x2
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Learn something new&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7faa20b74c70&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Watch now&amp;#x27;), (&amp;#x27;href&amp;#x2
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="4bd61"&gt;&lt;b&gt;In case you missed it&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="5tvtn"&gt;Here are the latest updates, products, services, and resources from our security teams so far this month:&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="4
&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;Join the Google Cloud CISO Community&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f4f621f6850&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Learn more&amp;#x27;), (&amp
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Join the Google Cloud CISO Community&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7faa20b74cd0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Learn more&amp;#x27;), (&amp
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="29tyz"&gt;&lt;b&gt;Threat Intelligence news&lt;/b&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="cm2sc"&gt;&lt;b&gt;Staying ahead of adversarial AI through agentic source code review&lt;/b&gt;: To help defenders implement agentic approaches s
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="rcfc5"&gt;&lt;b&gt;Now hear this: Podcasts from Google Cloud&lt;/b&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="drbpp"&gt;&lt;b&gt;Cloud Security Podcast: All about Project Atlas, Wiz's AI vulnerability research&lt;/b&gt;: Near Orfeld, head
@@@ -2069,7 +2100,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The unified &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="verti
&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
+ &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
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;#2  How do I set up a Google Cloud project without becoming an IAM expert?&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The biggest reason startups stall on the migration to Agent Platform isn't the code, it's the operational leap from "here's an API key" to a cloud project with folders, service accounts, org policies, logging, and IAM bindings. If your team does
@@@ -2087,7 +2118,7 @@
&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 m
+ &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 m
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Sources: &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 refe
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If you're a solo founder, resist the urge to build in your personal GCP account. Create a proper organization or self-owned org first, then create the project &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;inside&
@@@ -2107,11 +2138,11 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The pattern you're aiming for is one where your &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;code never sees a key at all&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;. It just calls the &lt;/span&g
&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 dep
+ &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 dep
&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-centr
+ &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-centr
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Do one last favor to your future self: give that service account the &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;minimum&lt;/span&gt;&lt;span style="vertical-align: b
&lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;#4 When should I actually stop procrastinating and migrate from AI Studio's API key to Agent Platform's IAM model?&lt;/span&gt;&lt;/h3&gt;
@@@ -2135,7 +2166,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Practical checklist for cutover day:&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 -r
+ &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 -r
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If step 3 prints a response, you're on Agent Platform.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline;"&gt;Scale: get more capacity without paying a premium.&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
@@@ -2153,19 +2184,19 @@
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Pin to a regional endpoint.&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Over half of startup traffic on Agent Platform defaults to global routing. Pinning to a specific region (say &lt;/span&gt;&lt;strong style="vertical-align
&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 proje
+ &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 proje
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Add real retry and backoff.&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; A 429 is a retryable signal, not a fatal error. Any production client should have exponential backoff with jit
&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_option
+ &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_option
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;How do you see this coming?  &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Preferably not from a user telling you. Agent Platform publishes serving metrics to Cloud Monitoring, and the
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The metric to actually alert on is &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;. It carries an &lt
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;One thing worth internalizing, because it trips people up: you cannot build a "warn me at 80% of my quota" alert for Standard PayGo. Under Dynamic Shared Quota there is no fixed per-project number to be at 80% of. A 429 means transient contentio
&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 0x
+ &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 0x
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Sources: &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 metrics list&lt;/s
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Follow the &lt;/span&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 rate limits documentation&lt;/span&gt;&lt;/a&gt;&lt;spa
@@@ -2254,7 +2285,7 @@
&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;q
+ &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;q
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;3. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Once you can predict your baseline TPM,&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; buy PT to cover
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt; Sources: &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 docs&lt;/span&gt;&lt;/a&gt;&lt;span style="verti
@@@ -2275,7 +2306,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Batch prediction on Agent Platform runs in a completely separate queue, does not consume your interactive DSQ, and is typically about half the price of on-demand inference. That's a rare double win: faster live traffic &lt;/span&gt;&lt;span styl
&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\nc
+ &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\nc
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Common candidates: nightly document summarization, background classification of new signups, bulk translation, embedding backfills, evaluation runs against your test set. If any of those are on your li
&lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;Govern: Keep costs, keys, and agents under control.&lt;/span&gt;&lt;/h3&gt;
@@@ -2305,7 +2336,7 @@
&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;2. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;A billing budget with a Pub/Sub trigger that disables billing&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;. Still the right tool when you need bl
&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
+ &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
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Sources: &lt;/span&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: underl
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Two things to get ahead of  for, as the defaults can cause unexpected issues: &lt;/span&gt;&lt;/p&gt;
@@@ -2323,11 +2354,11 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The short answer is: &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;"&g
&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 rea
+ &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 rea
&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;
+ &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;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Then two little disciplines that pay for themselves the first time you need them:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
@@@ -2346,7 +2377,7 @@
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;2. Sandboxed code execution.&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; If your agent runs generated code,  a common pattern for data-analysis or "run this Python for me" flows, do not run it in your application process. Use
&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
+ &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
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;3. Prompt and response filtering.&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;a href="https://cloud.google.com/security-command-center/docs/model-armor-overview"&gt;
&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;4. Behavioral monitoring.&lt;/strong&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;Secu
@@@ -2721,7 +2752,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We define the upstream CPU model using &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;HuggingFacePipelineModelHandler&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;. This model classifies sentiment into &lt;/span&gt;&lt;c
&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;model_handler = HuggingFacePipelineModelHandler(\r\n task=&amp;quot;sentiment-analysis&amp;quot;,\r\n model=&amp;quot;distilbert-base-uncased-finetuned-sst-2-english&amp;quot;\r\n)&amp;#x27;), (&amp;#x27;langua
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;model_handler = HuggingFacePipelineModelHandler(\r\n task=&amp;quot;sentiment-analysis&amp;quot;,\r\n model=&amp;quot;distilbert-base-uncased-finetuned-sst-2-english&amp;quot;\r\n)&amp;#x27;), (&amp;#x27;langua
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;2. Building the heavyweight ADK agent&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The ADK agent acts as our remediation assistant. We equip it with three tools:&lt;/span&gt;&lt;/p&gt;
@@@ -2738,18 +2769,18 @@
&lt;/ul&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;def make_adk_tools(project: str, dataset: str = &amp;quot;sentiment_demo&amp;quot;):\r\n def lookup_user(user_id: int) -&amp;gt; dict:\r\n &amp;quot;&amp;quot;&amp;quot;Look up user information (email addre
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;def make_adk_tools(project: str, dataset: str = &amp;quot;sentiment_demo&amp;quot;):\r\n def lookup_user(user_id: int) -&amp;gt; dict:\r\n &amp;quot;&amp;quot;&amp;quot;Look up user information (email addre
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We configure the &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;LlmAgent&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; and package it in the &lt;/span&gt;&lt;code style="vertic
&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;adk_agent = LlmAgent(\r\n name=&amp;quot;remediation_agent&amp;quot;,\r\n model=&amp;quot;gemini-3.5-flash&amp;quot;,\r\n instruction=(\r\n &amp;quot;You are a customer service remediation assistant w
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;adk_agent = LlmAgent(\r\n name=&amp;quot;remediation_agent&amp;quot;,\r\n model=&amp;quot;gemini-3.5-flash&amp;quot;,\r\n instruction=(\r\n &amp;quot;You are a customer service remediation assistant w
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;3. Assembling the Dataflow DAG&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The entire pipeline is declared cleanly. The upstream sentiment inference feeds directly into the filtering step (&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;FilterNegativeADK&lt;/code&gt;&lt;span style="vertical-align: baseline;"
&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;with beam.Pipeline(options=pipeline_options) as p:\r\n # 1. Read from Pub/Sub and classify sentiment on CPU\r\n sentiment_results = (\r\n p\r\n | &amp;quot;ReadFromPubSub&amp;quot; &amp;gt;&amp;gt
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;with beam.Pipeline(options=pipeline_options) as p:\r\n # 1. Read from Pub/Sub and classify sentiment on CPU\r\n sentiment_results = (\r\n p\r\n | &amp;quot;ReadFromPubSub&amp;quot; &amp;gt;&amp;gt
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Cost and performance advantages&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;By introducing this filtering step, we gain major engineering and operational advantages:&lt;/span&gt;&lt;/p&gt;
@@@ -2879,7 +2910,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Because public projects like &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;bigquery-public-data&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; are strictly read-only, you must map the logical property graph inside your o
&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. Map the graph inside YOUR project \r\n\r\n\r\nCREATE OR REPLACE PROPERTY GRAPH `YOUR_PROJECT_ID.YOUR_DATASET.thelook_ecommerce_graph`\r\nNODE TABLES(\r\n `bigquery-public-data.thelook_ecommerce.users` AS User\
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;-- 1. Map the graph inside YOUR project \r\n\r\n\r\nCREATE OR REPLACE PROPERTY GRAPH `YOUR_PROJECT_ID.YOUR_DATASET.thelook_ecommerce_graph`\r\nNODE TABLES(\r\n `bigquery-public-data.thelook_ecommerce.users` AS User\
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Democratizing graph intelligence in BigQuery Studio&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To make managing and deploying these relationship networks frictionless for both developers and business users, we have built native, intuitive operational tools directly into BigQuery Studio:&lt;/span&gt;&lt;/p&gt;
@@@ -3037,7 +3068,7 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Looker’s semantic layer eliminates this guesswork, serving critical context to Gemini Enterprise in the form of codified data, allowing the agent to give deterministic, predictable responses.&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;[ Gemini Enterprise Chat UI ] \r\n │\r\n (A2A Protocol / NLP)\r\n ▼\r\n [ Looker Governed Agent ] ──► Generates Deterministic SQL\r\n │\r\n [ Looker Semantic Layer
+ &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;[ Gemini Enterprise Chat UI ] \r\n │\r\n (A2A Protocol / NLP)\r\n ▼\r\n [ Looker Governed Agent ] ──► Generates Deterministic SQL\r\n │\r\n [ Looker Semantic Layer
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;When a Gemini Enterprise user requests a business KPI in Gemini Enterprise, the request is routed directly to a Looker agent. The semantic layer generates deterministic, precise SQL based on version-co
&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Robust governance and secure access management&lt;/strong&gt;&lt;/h3&gt;
@@@ -3631,28 +3662,4 @@
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We believe this recognition reflects our commitment to delivering an open, scalable, and powerful AI platform. As agentic systems reshape how enterprise software is built, Gemini Enterprise will continue to provide the foundation developers need
&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Want to dive deeper into the report? Access the full Forrester Wave™: AI Platforms, Q3 2026 report &lt;/span&gt;&lt;a href="https://cloud.google.com/resources/content/forrester-wave-aiplatforms-2026"&gt;&lt;span style="text-decoration: underline
&lt;hr/&gt;
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Forrester does not endorse any company, product, brand, or service included in its research publications and does not advise any person to select the products or services of any company or brand based on the ratings included in such publications
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The answer isn't theoretical — it's hands-on. Whether it’s designing a system that allows your agents to interact with external data sources while maintaining strict security guardrails or creating self-optimizing supply chain workflows or whate
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;That’s why we’ve designed a path to help you take your AI ideas from a rough sketch to fully autonomous agents running in production. This summer, you can harness the same frameworks and approaches used by Google experts to build and scale agent
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Powered by &lt;/span&gt;&lt;a href="https://developers.google.com/program/gear" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Enterprise Agent Ready (GEAR)&lt;/strong&gt;&lt;
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt; Find your roadmap to future-proof your skills this summer, starting here.&lt;/span&gt;&lt;/p&gt;
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;1. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3546/course_templates/1583" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Intro to AI Agents&lt;/strong&gt;&lt;/a&gt;
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;2. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3546/course_templates/1562" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Agent Fundamentals&lt;/strong&gt;&lt;/a&gt;
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;3. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3546/course_templates/1587" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Enterprise Agents and Use Cases&lt;/strong&
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;4. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3546/course_templates/1586" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Create Your First Gemini Enterprise Applica
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;5. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3980/course_templates/1643" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Human-Centered AI&lt;/strong&gt;&lt;/a&gt;&
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;6. &lt;/strong&gt;&lt;a href="https://www.skills.google/course_templates/1672" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Agentic Strategy: Discover, Design, and Prototype&lt;/
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;7. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3980/course_templates/1682" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Orchestrate Multi-Agent Workflows with Gemi
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;8. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3545/course_templates/1596/labs/618257" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Engineer AI Agents with Agent D
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;9. &lt;/strong&gt;&lt;a href="https://www.skills.google/focuses/143124?parent=catalog&amp;amp;path=3545" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Add Currency Tools to an Age
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;10. &lt;/strong&gt;&lt;a href="https://www.skills.google/paths/3545/course_templates/1584" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Manage Agent Memory and State&lt;/strong&g
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;11. &lt;/strong&gt;&lt;a href="https://www.skills.google/course_templates/1832" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Create Agent Skills with Google&lt;/strong&gt;&lt;/a&
-&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;12. &lt;/strong&gt;&lt;a href="https://www.skills.google/course_templates/1782?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&amp;amp;search_id=91630203" rel="noopener" target="_blank"&gt;&lt;strong style="
-&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Test your skills at the summertime Hackathon&lt;/strong&gt;&lt;/h3&gt;
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Keep moving with agents! The &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;All Things Agentic&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Hackathon is officially live.&lt;/span&gt;&lt;/p&gt;
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The next leap in AI won't build itself — it needs you. Step up to the challenge with Gemini 3.5 and Google Cloud and deploy autonomous agents that do the heavy lifting in the background. Build what’s next, show the world what you can do, and com
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Submissions are open from August 3, 2026 to August 31, 2026. Register &lt;/span&gt;&lt;a href="http://allthingsagentichackathon.devpost.com" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"
-&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Join GEAR today&lt;/strong&gt;&lt;/h3&gt;
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Don't wait for the summer to pass you by. Get hands-on with the tools, earn real-world credentials, and build in-demand skills, with confidence.&lt;/span&gt;&lt;/p&gt;
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Ready to level up your agentic skills? Check out our two newest learning paths: &lt;/span&gt;&lt;a href="https://www.skills.google/paths/4459" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline
-&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Learn more → &lt;/span&gt;&lt;a href="https://developers.google.com/program/gear" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Join GEAR today&lt;/span&gt;&lt;/a&gt;&lt;span style="v
+&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Forrester does not endorse any company, product, brand, or service included in its research publications and does not advise any person to select the products or services of any company or brand based on the ratings included in such publications

119 lines shown here cut at 300 characters. The raw artifact at this commit is linked above.