<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: monika096n</title>
    <description>The latest articles on DEV Community by monika096n (@monika096n).</description>
    <link>https://dev.to/monika096n</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F679738%2F05506913-83e2-40df-926d-49decfbbbf32.jpeg</url>
      <title>DEV Community: monika096n</title>
      <link>https://dev.to/monika096n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/monika096n"/>
    <language>en</language>
    <item>
      <title>Building Enterprise AI Agents with ADK 2.0 and Managed Agents API</title>
      <dc:creator>monika096n</dc:creator>
      <pubDate>Thu, 17 Sep 2026 02:58:28 +0000</pubDate>
      <link>https://dev.to/monika096n/building-enterprise-ai-agents-with-adk-20-and-managed-agents-api-4pji</link>
      <guid>https://dev.to/monika096n/building-enterprise-ai-agents-with-adk-20-and-managed-agents-api-4pji</guid>
      <description>&lt;h1&gt;
  
  
  Building Enterprise AI Agents with ADK 2.0 and Managed Agents API
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;AI agents are moving beyond simple chatbots. In real-world applications, an agent may need to reason, call tools, access data, follow business rules, pause for human approval, maintain state, and operate securely at enterprise scale.&lt;/p&gt;

&lt;p&gt;Two important concepts in the Google agent ecosystem are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ADK 2.0&lt;/strong&gt; — focuses on building and orchestrating sophisticated agent workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed Agents API on Gemini Enterprise Agent Platform&lt;/strong&gt; — focuses on running and managing enterprise agents with centralized infrastructure, security, and governance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This blog explains both concepts in a simple, practical way.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 1: ADK 2.0
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is ADK?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ADK (Agent Development Kit)&lt;/strong&gt; is a framework for building AI agents.&lt;/p&gt;

&lt;p&gt;A simple mental model is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;React    → Build user interfaces
Express  → Build APIs
ADK      → Build AI agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An ADK agent can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LLMs&lt;/li&gt;
&lt;li&gt;Tools&lt;/li&gt;
&lt;li&gt;State&lt;/li&gt;
&lt;li&gt;Other agents&lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;li&gt;Workflow logic&lt;/li&gt;
&lt;li&gt;Human-in-the-loop steps&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Why ADK 2.0?
&lt;/h1&gt;

&lt;p&gt;A basic AI agent might work like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  ↓
LLM
  ↓
Tool
  ↓
LLM
  ↓
Tool
  ↓
Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The LLM may end up deciding almost everything.&lt;/p&gt;

&lt;p&gt;For simple tasks this can work, but enterprise workflows often need more control.&lt;/p&gt;

&lt;p&gt;ADK 2.0 introduces a stronger workflow-oriented approach where the application can explicitly control execution.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  ↓
Security Check
  ↓
Router
  ├── Order Agent
  ├── Refund Agent
  └── Device Agent
          ↓
        Tool
          ↓
    Human Approval
          ↓
       Action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key idea is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Use the LLM for reasoning and use workflow logic for predictable execution.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  The 7 ADK 2.0 Concepts to Understand
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Nodes — A Step
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;node&lt;/strong&gt; represents one unit of work in a workflow.&lt;/p&gt;

&lt;p&gt;A node can represent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An agent&lt;/li&gt;
&lt;li&gt;A function&lt;/li&gt;
&lt;li&gt;A tool&lt;/li&gt;
&lt;li&gt;A security check&lt;/li&gt;
&lt;li&gt;A router&lt;/li&gt;
&lt;li&gt;A human approval step&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Security Check
      ↓
Intent Detection
      ↓
Order Agent
      ↓
Get Order
      ↓
Human Approval
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each box is a node.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Node = What should happen here?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. Edges — Where to Go Next
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;edge&lt;/strong&gt; connects nodes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Security
   ↓
Router
   ├──→ Order Agent
   └──→ Refund Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An edge determines what happens after the current step.&lt;/p&gt;

&lt;p&gt;Types include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed paths&lt;/li&gt;
&lt;li&gt;Conditional paths&lt;/li&gt;
&lt;li&gt;Loops&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Edge = Where should execution go next?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. State — What the Workflow Remembers
&lt;/h2&gt;

&lt;p&gt;State contains information accumulated during an agent execution.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;userId&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;U123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;orderId&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1234&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;intent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cancel_order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;orderStatus&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SHIPPED&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;riskScore&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;approvalRequired&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Different workflow steps can read or update relevant state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;State = What does the workflow know right now?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. Routing — Which Path Should I Take?
&lt;/h2&gt;

&lt;p&gt;Routing determines which branch of the workflow should execute.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 Router
                   │
       ┌───────────┼───────────┐
       ↓           ↓           ↓
     Order       Refund      Device
     Agent       Agent       Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The LLM could identify the user's intent, while normal application logic determines the next route.&lt;/p&gt;

&lt;p&gt;This makes business-critical execution more predictable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Routing = Which path should the workflow take?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  5. Agents — Reasoning Components
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;agent&lt;/strong&gt; is where LLM-based reasoning happens.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Order Agent
     ↓
Understand request
     ↓
Reason about order
     ↓
Decide what information/action is needed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An agent can then use a tool to perform an operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Agent = Reasoning&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. Tools — Perform Actions
&lt;/h2&gt;

&lt;p&gt;Tools allow an agent to interact with external systems.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;getCustomer()
getOrder()
cancelOrder()
searchProducts()
sendEmail()
queryDatabase()
createTicket()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Order Agent
     ↓
getOrderDetails()
     ↓
Order API
     ↓
Order Status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Agent = Decides what to do&lt;br&gt;&lt;br&gt;
Tool = Performs the action&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7. HITL — Human-in-the-Loop
&lt;/h2&gt;

&lt;p&gt;HITL means the workflow can pause and ask a human to make or approve a decision.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
  ↓
Refund ₹50,000?
  ↓
YES
  ↓
PAUSE
  ↓
Human Approval
  ↓
Approved
  ↓
Refund API
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful for sensitive or high-impact operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;HITL = Human takes control when required.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Putting the 7 Concepts Together
&lt;/h1&gt;

&lt;p&gt;A realistic workflow might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    User
                      ↓
               Security Node
                      ↓
                  Router
                      ↓
                Order Agent
                      ↓
                Get Order Tool
                      ↓
                 Risk Check
                      ↓
             Human Approval?
                 ↙       ↘
               YES        NO
                ↓          ↓
           Execute Tool   Stop
                ↓
               Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now map it:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Node&lt;/td&gt;
&lt;td&gt;Security, Agent, Router, Tool, HITL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge&lt;/td&gt;
&lt;td&gt;Connections between steps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State&lt;/td&gt;
&lt;td&gt;Order ID, risk, approval status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Routing&lt;/td&gt;
&lt;td&gt;Order vs Refund vs Device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent&lt;/td&gt;
&lt;td&gt;LLM reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool&lt;/td&gt;
&lt;td&gt;API/database/action&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HITL&lt;/td&gt;
&lt;td&gt;Human approval&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  ADK 2.0 + Antigravity + Vibecoding
&lt;/h1&gt;

&lt;p&gt;You do not necessarily need to memorize the complete ADK API.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;Antigravity + vibecoding&lt;/strong&gt; becomes useful.&lt;/p&gt;

&lt;p&gt;You can describe the architecture in high-level terms:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create an ADK 2.0 graph with a security check before the LLM, route requests based on intent, and pause for human approval for high-value transactions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Antigravity can help translate that design into implementation.&lt;/p&gt;

&lt;p&gt;However, coding agents can sometimes fall back to older ADK patterns when the prompt is ambiguous or when a long session causes earlier context to become less prominent.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Agents CLI skills&lt;/strong&gt; provide reference material that keeps the coding agent aligned with the intended API patterns.&lt;/p&gt;

&lt;p&gt;A useful mental model is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You
 ↓
High-level architecture
 ↓
Antigravity + ADK skills
 ↓
ADK 2.0 implementation
 ↓
Graph workflow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the generated code starts using older patterns, explicitly remind the coding agent to use the ADK 2.0 API and reload the relevant skill context.&lt;/p&gt;




&lt;h1&gt;
  
  
  Agents CLI: Scaffolding and Development
&lt;/h1&gt;

&lt;p&gt;The Agents CLI can help create and manage the project development workflow.&lt;/p&gt;

&lt;p&gt;A typical project creation flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli scaffold create my-agent &lt;span class="nt"&gt;--prototype&lt;/span&gt; &lt;span class="nt"&gt;--yes&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;my-agent
agents-cli &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What does &lt;code&gt;scaffold&lt;/code&gt; mean?
&lt;/h2&gt;

&lt;p&gt;Scaffolding means creating the initial project skeleton.&lt;/p&gt;

&lt;p&gt;Instead of manually creating:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-agent/
├── app/
├── tests/
├── pyproject.toml
├── uv.lock
├── Makefile
└── README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the CLI generates the starting structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does &lt;code&gt;agents-cli install&lt;/code&gt; do?
&lt;/h2&gt;

&lt;p&gt;Inside the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;runs the project's dependency synchronization process using &lt;code&gt;uv&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It installs the dependencies specified by the project's &lt;code&gt;pyproject.toml&lt;/code&gt; and lock file.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Makefile
&lt;/h1&gt;

&lt;p&gt;A generated project may contain a &lt;code&gt;Makefile&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It provides convenient shortcuts for common commands.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;make &lt;span class="nb"&gt;install
&lt;/span&gt;make playground
make lint
make &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of remembering the underlying commands, developers can use these consistent shortcuts.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Makefile = collection of project command shortcuts.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  The &lt;code&gt;app&lt;/code&gt; Object
&lt;/h1&gt;

&lt;p&gt;A scaffolded ADK project has an &lt;code&gt;app/agent.py&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;The module-level &lt;code&gt;app&lt;/code&gt; object is the entry point used by the development and runtime tooling.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app/agent.py
      ↓
     app
      ↓
 root_agent
      ↓
 Model + Instructions + Tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important convention is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;root_agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;root_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;app&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should be available at the module level with the expected name &lt;code&gt;app&lt;/code&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Testing the ADK Agent
&lt;/h1&gt;

&lt;p&gt;There are several levels of testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Quick Smoke Test
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli run &lt;span class="s2"&gt;"Approve expense for &lt;/span&gt;&lt;span class="nv"&gt;$45&lt;/span&gt;&lt;span class="s2"&gt; from bob@company.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful for a quick one-off check.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Interactive Playground
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli playground
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This launches the local ADK Developer UI.&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chat with the agent&lt;/li&gt;
&lt;li&gt;Inspect tool calls&lt;/li&gt;
&lt;li&gt;Inspect arguments&lt;/li&gt;
&lt;li&gt;Inspect results&lt;/li&gt;
&lt;li&gt;Inspect execution traces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The playground also supports rapid development because changes to the agent code can be picked up during development.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Linting
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli lint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This checks code quality and can catch problems such as import and formatting issues.&lt;/p&gt;

&lt;p&gt;Remember:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Lint checks the code structure; it does not prove that the AI workflow behaves correctly.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Testing an Ambient Agent
&lt;/h1&gt;

&lt;p&gt;An &lt;strong&gt;ambient agent&lt;/strong&gt; can be triggered by an external event rather than a person typing directly into the playground.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Expense System
      ↓
Pub/Sub
      ↓
ADK Trigger
      ↓
Expense Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During local development, you can simulate the Pub/Sub request with &lt;code&gt;curl&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The idea is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Real Pub/Sub message
        ↓
Production trigger

curl request
        ↓
Local simulation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The lesson's example uses a subscription such as &lt;code&gt;test-sub&lt;/code&gt; and maps that to the ADK session/user ID for inspection.&lt;/p&gt;




&lt;h1&gt;
  
  
  Evaluation: Testing Agent Behavior
&lt;/h1&gt;

&lt;p&gt;Running the agent once is not enough.&lt;/p&gt;

&lt;p&gt;AI agents can produce the correct final response while taking the wrong execution path.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$45 expense

Expected:
No LLM call
→ Auto approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But the agent might do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$45 expense
→ LLM call
→ Approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final answer looks correct, but the workflow is not behaving as intended.&lt;/p&gt;

&lt;p&gt;This is why agent evaluation looks at the execution behavior and trace.&lt;/p&gt;




&lt;h1&gt;
  
  
  Evaluation Dataset
&lt;/h1&gt;

&lt;p&gt;A dataset contains scenarios to test.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Low-value expense
2. High-value expense
3. Expense containing PII
4. Prompt-injection attempt
5. Human rejection
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A useful evaluation dataset tests both normal and problematic situations.&lt;/p&gt;




&lt;h1&gt;
  
  
  Evaluation Configuration
&lt;/h1&gt;

&lt;p&gt;The evaluation configuration describes how the agent should be judged.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;metrics&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;routing_correctness&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;Under $100 must auto-approve with no LLM call.&lt;/span&gt;
      &lt;span class="s"&gt;$100 or more must route to LLM review&lt;/span&gt;
      &lt;span class="s"&gt;and then pause for human approval.&lt;/span&gt;
    &lt;span class="na"&gt;score_range&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;5&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dataset answers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What should I test?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The metric configuration answers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How should I judge it?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Generate vs Grade
&lt;/h1&gt;

&lt;p&gt;There are two important commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli &lt;span class="nb"&gt;eval &lt;/span&gt;generate
agents-cli &lt;span class="nb"&gt;eval &lt;/span&gt;grade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;generate&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Runs the test scenarios and captures execution traces.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dataset
   ↓
Run agent
   ↓
Execution traces
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;grade&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Scores those existing traces against your evaluation metrics.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Execution traces
   ↓
Evaluation criteria
   ↓
Scores
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you change your agent code, run both:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agents-cli &lt;span class="nb"&gt;eval &lt;/span&gt;generate &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; agents-cli &lt;span class="nb"&gt;eval &lt;/span&gt;grade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because &lt;code&gt;grade&lt;/code&gt; alone only re-scores the existing traces. It does not execute your newly changed code.&lt;/p&gt;




&lt;h1&gt;
  
  
  A Complete ADK Development Loop
&lt;/h1&gt;

&lt;p&gt;The complete workflow looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Scaffold
   ↓
Install
   ↓
Build
   ↓
Lint
   ↓
Run / Playground
   ↓
Evaluate
   ↓
Fix
   ↓
Evaluate again
   ↓
Deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the &lt;strong&gt;local ADK development loop&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 2: Managed Agents API
&lt;/h1&gt;

&lt;p&gt;ADK focuses heavily on &lt;strong&gt;building the agent workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The Managed Agents API focuses on &lt;strong&gt;running and managing enterprise agents in a managed environment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ADK 2.0
   ↓
Build sophisticated agent workflows

Managed Agents API
   ↓
Run and manage enterprise agents
   ↓
Security + Governance + Operations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Why Use a Managed Agent?
&lt;/h1&gt;

&lt;p&gt;A simple chatbot may only need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User → LLM → Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A real enterprise task may need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request
 ↓
Reasoning
 ↓
Company Data
 ↓
Tools
 ↓
Business Rules
 ↓
Actions
 ↓
State
 ↓
Audit / Security
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At enterprise scale, manually managing all of these agents can create operational and security problems.&lt;/p&gt;




&lt;h1&gt;
  
  
  Control Plane vs Data Plane
&lt;/h1&gt;

&lt;p&gt;This is the most important concept in the Managed Agents API chapter.&lt;/p&gt;

&lt;p&gt;The platform separates management from execution.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             Gemini Enterprise
              Agent Platform
                     │
           ┌─────────┴─────────┐
           ↓                   ↓
      CONTROL PLANE        DATA PLANE
           ↓                   ↓
       Agents API       Interactions API
           ↓                   ↓
    Define / manage       Run / interact
        agents                agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Control Plane
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Agents API&lt;/strong&gt; is used to manage the agent.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What agents exist and how are they configured?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Data Plane
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Interactions API&lt;/strong&gt; is used to interact with the running agent.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run the agent and perform the task.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The simple rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Agents API → manage the agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interactions API → interact with the agent&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Managed Agent Components
&lt;/h1&gt;

&lt;p&gt;A managed agent can be thought of as a combination of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent Definition
       +
Sandboxed Environment
       +
Mounted Data
       +
Tools
       +
Skills
       +
MCP Servers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  1. Agent Definition
&lt;/h1&gt;

&lt;p&gt;The definition describes the agent's identity, instructions, configuration and capabilities.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Agent Definition = Blueprint&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  2. Sandboxed Environment
&lt;/h1&gt;

&lt;p&gt;The agent executes inside an isolated environment with controlled resources.&lt;/p&gt;

&lt;p&gt;The goal is to prevent the agent from having unrestricted access to your environment.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
  ↓
Sandbox
  ↓
Controlled resources
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  3. Mounted Data
&lt;/h1&gt;

&lt;p&gt;Agents often need access to business data.&lt;/p&gt;

&lt;p&gt;Mounted data provides controlled access to the information required for the task.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Company Data
     ↓
Controlled Mount
     ↓
Agent Environment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  4. Tools
&lt;/h1&gt;

&lt;p&gt;Tools allow the agent to perform actions.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Query database
Call API
Search inventory
Update product
Generate report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  5. Skills
&lt;/h1&gt;

&lt;p&gt;Skills provide reusable capabilities or instructions that extend what the agent can do.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Retail Agent
 ├── Sales analysis skill
 ├── Inventory analysis skill
 └── Product recommendation skill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  6. MCP Servers
&lt;/h1&gt;

&lt;p&gt;MCP provides a standardized way for agents to connect to external tools, data and services.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
  ↓
MCP
  ↓
External capability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Running Managed Agents
&lt;/h1&gt;

&lt;p&gt;The course introduces four important interaction capabilities:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Background interactions
Streamed reason-act loop
Resilient typed results
Multi-turn state
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Background Interactions
&lt;/h1&gt;

&lt;p&gt;Some agent tasks take time.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Analyze thousands of products
        ↓
Query data
        ↓
Run multiple operations
        ↓
Generate recommendation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of keeping the caller waiting synchronously, background interactions allow longer-running work to proceed asynchronously.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Start the task → let it work → retrieve/follow the result.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Streamed Reason-Act Loop
&lt;/h1&gt;

&lt;p&gt;Agents often operate as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reason
  ↓
Act
  ↓
Observe result
  ↓
Reason again
  ↓
Act again
  ↓
Final result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Analyze sales
      ↓
Search sales data
      ↓
Observe results
      ↓
Check inventory
      ↓
Observe results
      ↓
Generate recommendation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Streaming allows progress/events to be delivered as the interaction continues rather than waiting only for the final result.&lt;/p&gt;




&lt;h1&gt;
  
  
  Resilient Typed Results
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Typed results
&lt;/h2&gt;

&lt;p&gt;Instead of returning only free-form text:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Phone X should be promoted."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;an application can work with structured results such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"product"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Phone X"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recommendation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Promote"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"High inventory and declining sales"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Structured results are easier for applications to consume.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resilience
&lt;/h2&gt;

&lt;p&gt;Enterprise systems must also handle interruptions and failures reliably.&lt;/p&gt;

&lt;p&gt;The goal is not to assume:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request → Response → Everything works
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;but to support robust execution.&lt;/p&gt;




&lt;h1&gt;
  
  
  Multi-Turn State
&lt;/h1&gt;

&lt;p&gt;State allows an agent to maintain continuity across interactions.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;h3&gt;
  
  
  Turn 1
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User:
Analyze product sales in India.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Turn 2
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User:
Now compare that with last quarter.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second request can build on the previous interaction through persisted state.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Turn 1
  ↓
State
  ↓
Turn 2
  ↓
Same agent/session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Enterprise Security
&lt;/h1&gt;

&lt;p&gt;Managed agents are designed for organizations that may have many agents.&lt;/p&gt;

&lt;p&gt;Without centralized management:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Team A → Agent 1
Team B → Agent 2
Team C → Agent 3
Team D → Agent 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each team might configure security and infrastructure differently.&lt;/p&gt;

&lt;p&gt;This can lead to &lt;strong&gt;configuration drift&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is Configuration Drift?
&lt;/h1&gt;

&lt;p&gt;Suppose company policy requires:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;✓ Approved identity
✓ Authorized data access
✓ Controlled networking
✓ Auditing
✓ Security controls
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One manually deployed agent might accidentally have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;✗ Excessive IAM permissions
✗ Too much data access
✗ Different network configuration
✗ Missing audit controls
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That difference is configuration drift.&lt;/p&gt;

&lt;p&gt;Managed platforms aim to provide more centralized control and governance.&lt;/p&gt;




&lt;h1&gt;
  
  
  Zero-Trust AI
&lt;/h1&gt;

&lt;p&gt;Zero trust means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't automatically trust an agent just because it is inside the organization.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Access should be explicitly controlled.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
 ↓
Who are you?
 ↓
What are you allowed to access?
 ↓
Which resource?
 ↓
Is this action allowed?
 ↓
Allow / Deny
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is why IAM and networking concepts such as VPC and DNS are relevant to the course.&lt;/p&gt;




&lt;h1&gt;
  
  
  ADK 2.0 vs Managed Agents API
&lt;/h1&gt;

&lt;p&gt;The easiest comparison is:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;ADK 2.0&lt;/th&gt;
&lt;th&gt;Managed Agents API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primary focus&lt;/td&gt;
&lt;td&gt;Build agent workflows&lt;/td&gt;
&lt;td&gt;Run/manage enterprise agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Graph workflows&lt;/td&gt;
&lt;td&gt;Core concept&lt;/td&gt;
&lt;td&gt;Agent runtime context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nodes / edges&lt;/td&gt;
&lt;td&gt;Important&lt;/td&gt;
&lt;td&gt;Less central&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Routing&lt;/td&gt;
&lt;td&gt;Important&lt;/td&gt;
&lt;td&gt;Runtime interaction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tools&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Multi-turn state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HITL&lt;/td&gt;
&lt;td&gt;Workflow capability&lt;/td&gt;
&lt;td&gt;Managed interaction context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sandbox&lt;/td&gt;
&lt;td&gt;Application/workflow concern&lt;/td&gt;
&lt;td&gt;Managed environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise governance&lt;/td&gt;
&lt;td&gt;Can be implemented&lt;/td&gt;
&lt;td&gt;Major platform focus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control plane&lt;/td&gt;
&lt;td&gt;Development/application&lt;/td&gt;
&lt;td&gt;Agents API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data plane&lt;/td&gt;
&lt;td&gt;Agent execution&lt;/td&gt;
&lt;td&gt;Interactions API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Build-time/runtime design&lt;/td&gt;
&lt;td&gt;Centralized enterprise security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Operations&lt;/td&gt;
&lt;td&gt;Developer focused&lt;/td&gt;
&lt;td&gt;Enterprise focused&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  Final Mental Model
&lt;/h1&gt;

&lt;p&gt;The two chapters fit together like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 AI AGENT SYSTEM
                       │
          ┌────────────┴────────────┐
          ↓                         ↓
      BUILD IT                  OPERATE IT
          ↓                         ↓
      ADK 2.0               Managed Agents API
          │                         │
          ↓                         ↓
      Workflows               Enterprise Runtime
          │                         │
    ┌─────┼─────┐             ┌─────┼─────┐
    ↓     ↓     ↓             ↓     ↓     ↓
  Nodes  State Tools       Security Data  Governance
    │     │     │             │     │     │
    └─────┼─────┘             └─────┼─────┘
          ↓                         ↓
       Routing                   Operations
          ↓                         ↓
        HITL                    Enterprise
          │                       Scale
          └──────────┬──────────────┘
                     ↓
             Production AI Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The 12 things worth remembering
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;ADK&lt;/strong&gt; = framework for building AI agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ADK 2.0&lt;/strong&gt; = stronger workflow/graph-oriented agent development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node&lt;/strong&gt; = one step in a workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge&lt;/strong&gt; = connection/path between steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State&lt;/strong&gt; = information maintained during execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Routing&lt;/strong&gt; = deciding which workflow path to take.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent&lt;/strong&gt; = LLM-based reasoning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool&lt;/strong&gt; = performs an external action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HITL&lt;/strong&gt; = human approval/intervention.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed Agents API&lt;/strong&gt; = managed enterprise agent runtime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents API&lt;/strong&gt; = control plane; &lt;strong&gt;Interactions API&lt;/strong&gt; = data plane.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise focus&lt;/strong&gt; = isolation, security, governance, auditability, state, resilience and controlled operations.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  One final sentence
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ADK 2.0 helps you design and build the agent's brain and workflow; the Managed Agents API helps you run that kind of agent as a controlled, secure, and scalable enterprise service.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
