• About Us
  • Disclaimer
  • Contact Us
  • Privacy Policy
Monday, March 30, 2026
mGrowTech
No Result
View All Result
  • Technology And Software
    • Account Based Marketing
    • Channel Marketing
    • Marketing Automation
      • Al, Analytics and Automation
      • Ad Management
  • Digital Marketing
    • Social Media Management
    • Google Marketing
  • Direct Marketing
    • Brand Management
    • Marketing Attribution and Consulting
  • Mobile Marketing
  • Event Management
  • PR Solutions
  • Technology And Software
    • Account Based Marketing
    • Channel Marketing
    • Marketing Automation
      • Al, Analytics and Automation
      • Ad Management
  • Digital Marketing
    • Social Media Management
    • Google Marketing
  • Direct Marketing
    • Brand Management
    • Marketing Attribution and Consulting
  • Mobile Marketing
  • Event Management
  • PR Solutions
No Result
View All Result
mGrowTech
No Result
View All Result
Home Google Marketing

Announcing ADK for Java 1.0.0: Building the Future of AI Agents in Java

Josh by Josh
March 30, 2026
in Google Marketing
0
Announcing ADK for Java 1.0.0: Building the Future of AI Agents in Java


adk-java-1-0-release-1600x476

The fields of AI and agents are evolving so fast, and we’ve always wanted all developers to feel productive for authoring their smart creations. That’s why Google has been offering its open source Agent Development Kit framework. What started with Python has now grown into a multi-language ecosystem: Python, Java, Go and Typescript.

Today, we’re happy to announce the release of version 1.0.0 of ADK for Java. Let’s have a look at some of the highlights in this new release, and take it for a spin!

But before reading more, please have a look at this video which illustrates a fun and concrete use case of an agent implemented with ADK for Java 1.0.0:

Feature highlights

The release of ADK for Java 1.0.0 introduces several major enhancements to the framework:

  • New powerful tools: Includes new grounding capabilities like the GoogleMapsTool for location-based data and the UrlContextTool for fetching web content. It also features robust code execution via ContainerCodeExecutor and VertexAiCodeExecutor.
  • Centralized plugin architecture: A new App container manages application-wide Plugins for global execution control, such as logging or guardrails.
  • Enhanced context engineering: Introduces event compaction to manage context window sizes through summarization and retention strategies.
  • Human-in-the-Loop (HITL): Supports ToolConfirmation workflows, allowing agents to pause for human approval or additional input.
  • Session and memory services: Defines clear contracts for state management with persistence options in Vertex AI and Firestore.
  • Agent2Agent (A2A) Support: Native support for the A2A protocol enables seamless collaboration between remote agents across different frameworks.

Time to zoom in on those features!

Agents are all about perceiving and interacting with the external world, beyond the confines of the intrinsic knowledge of the Large Language Models (LLM) that power them. For that purpose, agents can be equipped with useful tools.

To get more accurate answers from your agents, you probably know that you can ground your agent responses with search results from Google Search thanks to the GoogleSearchTool. Now it’s also possible to ground answers with information coming from Google Maps thanks to the GoogleMapsTool (in Gemini 2.5):

var restaurantGuide = LlmAgent.builder()
    .name("restaurant-guide")
    .description("A restaurant guide for the traveler")
    .instruction("""
        You are a restaurant guide for gourmet travelers.
        Use the `google_maps` tool
        when asked to search for restaurants
        near a certain location.
        """)
    .model("gemini-2.5-flash")
    .tools(new GoogleMapsTool())
    .build();

Java

If you’d ask your restaurant guide about the most “gourmet” restaurant near the Eiffel tower in Paris, it would tell you about the famous Jules Vernes restaurant within the Eiffel tower itself, and would even tell you about its rating and reviews:

01-maps-grounding

A user asks a Google Maps grounded agent a question about restaurant options near the Eiffel tower.

Another useful grounding tool is the UrlContextTool, which lets Gemini fetch the URLs given in the prompt. No need to create a web fetching pipeline to feed your agent, it’s built-in.

Passing new UrlContextTool() this time instead of the maps tool in our previous example, when asked: “Tell me more about: https://blog.google/innovation-and-ai/technology/ai/nano-banana-2/”, your agent would summarize the article as follows:

“Google DeepMind has introduced Nano Banana 2, an advanced image generation model that combines the sophisticated features of Nano Banana Pro with the rapid speed of Gemini Flash. This new model offers high-quality image generation, faster editing, and improved iteration across various Google products, including the Gemini app and Google Search. It provides enhanced creative control, including subject consistency for up to five characters and 14 objects, precise instruction following, and production-ready specifications for various aspect ratios and resolutions. Google is also enhancing its SynthID technology with C2PA Content Credentials to better identify AI-generated content.”

There are several other tools you might be interested in:

  • The code executors ContainerCodeExecutor and VertexAiCodeExecutor can respectively execute code locally against Docker containers or in the cloud within Vertex AI.
  • The ComputerUseTool abstraction can be used to drive a real web browser or computer (but you’ll have to implement a concrete implementation of BaseComputer to drive, for example, the Chrome browser, via a Playwright integration.)

Advanced execution control and plugins with App and Plugin

app-plugins-callbacks (1)

Diagram showing where plugins and callbacks can interact with the flow of the agent.

When defining your agents, you used callbacks at different points in the lifecycle of an agent interaction. Typically, with a beforeToolCallback(), you can either log the tool that is being invoked by the agent, or even prevent its execution and return a canned response instead.

Callbacks are very useful, but have to be applied at the level of each agent and sub-agent that you define. What if you need to apply some sane logging practices throughout your agent hierarchy? That’s where the notion of App and Plugins come into play.

The App class is the new top-level container for an agentic application. It anchors the root agent, holds global configurations (like event compaction that we’ll talk about later), and manages application-wide plugins.

Plugins provide a powerful, aspect-oriented way to intercept and modify agent, tool, and LLM behaviors globally across all agents within the App or Runner and provide additional extension points beyond the existing callbacks.

A handful of plugins are available out of the box:

  • LoggingPlugin: Provides detailed, structured logging of agent executions, LLM requests/responses, tool calls, and errors.
  • ContextFilterPlugin: Keeps the LLM context window manageable by intelligently filtering out older conversation turns while safely preserving required function call/response pairs.
  • GlobalInstructionPlugin: Applies a consistent, application-wide instruction (e.g., identity, safety rules, personality) to all agents dynamically.

Let’s say you want your support agent to always write in ALL CAPS, configure the app and plugin by defining your own Runner loop:

// Define plugins
List<Plugin> plugins = List.of(
        new LoggingPlugin(),
        new GlobalInstructionPlugin("ALWAYS WRITE IN ALL CAPS")
);

// Build the App
App myApp = App.builder()
        .name("customer-support-app")
        .rootAgent(supportAssistant)
        .plugins(plugins)
        .build();

// Run the application
Runner runner = Runner.builder()
        .app(myApp) // the App!
        .artifactService(artifactService)
        .sessionService(sessionService)
        .memoryService(memoryService)
        .build();

Java

Beyond the existing plugins, you might want to extend the BasePlugin abstract class yourself, to apply your own rules to your agentic application and its agents.

Context engineering with event compaction

In the previous section, we uncovered the App concept, and it has another important configuration method that we’ll study now: eventsCompactionConfig().

Event compaction allows you to manage the size of an agent’s event stream (history) by keeping only a sliding window of the last events and/or summarizing older events, preventing context windows from exceeding token limits and reducing latency/costs on long-running sessions. This is a common practice of context engineering.

In the example below, we configure the event compaction strategy. Not all parameters are mandatory, but they illustrate the level of control you can have, on the compaction interval, the overlap size, a summarizer to summarize the events that will be discarded, a threshold with a number of tokens, and the event retention size.

App myApp = App.builder()
    .name("customer-support-app")
    .rootAgent(assistant)
    .plugins(plugins)
    .eventsCompactionConfig(
        EventsCompactionConfig.builder()
            .compactionInterval(5)
            .overlapSize(2)
            .tokenThreshold(4000)
            .eventRetentionSize(1000)
            .summarizer(new LlmEventSummarizer(llm))
            .build())
    .build();

Java

For even more control, you can implement the interfaces BaseEventSummarizer and EventCompactor to completely customize the way events are summarized and compacted.

AI Agents enroll Humans in the Loop

The LLM is the brain of your agent, but oftentimes it needs your approval to proceed further in its quest to reach its goal. There are many valid reasons for an agent to request your feedback, like accepting to execute a dangerous operation, or because there are certain actions that have to be validated by a person as demanded by laws, regulations, or simply the rules of your company processes.

The Human-in-the-Loop (HITL) workflow in ADK is built around the concept of ToolConfirmation. When a tool requires human intervention, it can pause the execution flow and ask the user for confirmation. Once the user provides the necessary approval (and optional payload data), the execution correctly resumes.

The process works as follows:

  1. Interception: A registered tool can access its ToolContext and call requestConfirmation(). This automatically intercepts the run, pausing the LLM flow until input is received.
  2. Resumption: Once the human provides a ToolConfirmation (approval and optional payload), the ADK resumes the flow.
  3. Context Management: ADK automatically cleans up intermediate events and explicitly injects the confirmed function call into the subsequent LLM request context. This ensures the model understands the action was approved without looping.

Imagine we need a custom tool for handling user confirmation before an agent is allowed to take on any action, it may be implemented in that way:

@Schema(name = "request_confirmation")
public String requestConfirmation(
        @Schema(name = "request_action",
            description = "Description of the action to be confirmed or denied")
        String actionRequest,
        @Schema(name = "toolContext")
        ToolContext toolContext) {

    boolean isConfirmed = toolContext.toolConfirmation()
            .map(ToolConfirmation::confirmed)
            .orElse(false);

    if (!isConfirmed) {
        toolContext.requestConfirmation(
                "Should I execute the following action? " + actionRequest, null);
        return "Confirmation requested.";
    }

    return "The following action has been confirmed: " + actionRequest;
}

Java

Now let’s see what it looks like from the perspective of the agent definition, where I’m combining a GoogleSearchAgentTool with this confirmation tool, to allow a report agent to use the search tool to create a report:

LlmAgent assistant = LlmAgent.builder()
    .name("helpful-report-assistant")
    .description("A report assistant")
    .instruction("""
        You are a helpful and friendly report assistant.
        You can use the `google_search_agent` tool to search the internet
        in order to create detailed reports about user's requested topics.
        Before taking any action, ask the user for confirmation first,
        using the `request_confirmation` tool.
        """)
    .model("gemini-2.5-flash")
    .tools(
        // a Google Search agent tool
        GoogleSearchAgentTool.create(
                Gemini.builder().modelName("gemini-2.5-flash").build()),
        // our newly created user confirmation tool
        FunctionTool.create(this, "requestConfirmation", true)
    )
    .build();

Java

As you can see in the following screenshot of my exchange with the report assistant, it requested my confirmation before using the research agent to prepare a report:

hitl-confirmation-tool

The ADK Dev UI showing a chat between a user and an agent, in which the agent requests user’s approval to proceed with the next actions.

Agents may require your help, once in a while, for validation, clarification, and more. ADK now offers the ability to configure precisely how and when to interact with your friendly humans.

Session and Memory services

ADK defines clear contracts for managing state, history, and files across conversations.

In order to manage the lifecycle of a single conversation and its state, the session services below can be configured in your runner loop:

  • InMemorySessionService: Lightweight, in-memory, local development storage.
  • VertexAiSessionService: Backed by Google Cloud’s managed Vertex AI Session API.
  • FirestoreSessionService: A robust, scalable implementation backed by Google Cloud Firestore (generously contributed by the community!)

To give your agents long-term “conversational memory” across multiple sessions, the below services exist:

  • InMemoryMemoryService: Simple keyword matching for local tests.
  • FirestoreMemoryService: Persistent memory utilizing Firestore.

In terms of integration, simply attach the LoadMemoryTool to your agent, and it will automatically know how to query the configured Memory Service for historical context.

Beyond the conversation, your agents handle large data blobs (images, PDFs) shared during a session, with:

  • InMemoryArtifactService: Local, in-memory storage.
  • GcsArtifactService: Persistent, versioned artifact management using Google Cloud Storage.

Never miss details about the ongoing conversation, the key events from past sessions, and keep track of all the important files that have been exchanged.

Agent collaboration with Agent2Agent protocol

ADK for Java now natively supports the official Agent2Agent (A2A) Protocol, allowing your ADK agents to seamlessly communicate with remote agents built in any language or framework.

The ADK has migrated to use the official A2A Java SDK Client. You can now resolve an AgentCard (the URL of the identity of the agent, representing its abilities and communication preferences) from a remote endpoint, construct the client, and wrap it in a RemoteA2AAgent. This remote agent can then be placed into your ADK agent hierarchy and acts exactly like a local agent, streaming events natively back to the Runner.

To expose your own ADK agents via the A2A Protocol, you create an A2A AgentExecutor. It wraps your ADK agents and exposes them via a JSON-RPC REST endpoint, instantly making your ADK creations accessible to the wider A2A ecosystem.

Your agents are now ready to interact with the world more broadly, to discover new agent friends along the way, to build an ecosystem of interoperable agents. You can check the documentation to learn more about A2A support in Java.

Summary

Today, with the release of ADK for Java v1.0.0, and with this article, we hope you had a glimpse of the feature highlights of this new version. We encourage you to explore all the new features in this release to enhance your agents. In upcoming articles and videos, we’ll go a little deeper in some of those topics, as there’s more to say.

Be sure to check out the official ADK documentation to continue on your learning journey, and in particular the getting started guide if you’re discovering ADK.

Your feedback is invaluable to us!

  • Report Bugs: If you encounter any issues, please file a bug report on GitHub.
  • Contribute: Have an idea for an improvement or a bug fix? We welcome Pull Requests. Please check our contribution guidelines first.
  • Share Your Work: We’re excited to see what you build with the ADK! Share your projects and experiences with the community.

Happy agent building! With a cup of Java!



Source_link

READ ALSO

Google at IAPP Global Summit 2026

Google Search Live expands globally

Related Posts

Google at IAPP Global Summit 2026
Google Marketing

Google at IAPP Global Summit 2026

March 30, 2026
Google Search Live expands globally
Google Marketing

Google Search Live expands globally

March 30, 2026
Build real-time conversational agents with Gemini 3.1 Flash Live
Google Marketing

Build real-time conversational agents with Gemini 3.1 Flash Live

March 29, 2026
Google’s latest AI audio model
Google Marketing

Google’s latest AI audio model

March 29, 2026
Transform your headphones into a live personal translator on iOS.
Google Marketing

Transform your headphones into a live personal translator on iOS.

March 29, 2026
Take advantage of new creative tools and creator solutions with March’s Drop
Google Marketing

Take advantage of new creative tools and creator solutions with March’s Drop

March 28, 2026
Next Post
Experiential Marketing Trend of the Week: Streetscapes

Experiential Marketing Trend of the Week: Streetscapes

POPULAR NEWS

Trump ends trade talks with Canada over a digital services tax

Trump ends trade talks with Canada over a digital services tax

June 28, 2025
Communication Effectiveness Skills For Business Leaders

Communication Effectiveness Skills For Business Leaders

June 10, 2025
15 Trending Songs on TikTok in 2025 (+ How to Use Them)

15 Trending Songs on TikTok in 2025 (+ How to Use Them)

June 18, 2025
App Development Cost in Singapore: Pricing Breakdown & Insights

App Development Cost in Singapore: Pricing Breakdown & Insights

June 22, 2025
Comparing the Top 7 Large Language Models LLMs/Systems for Coding in 2025

Comparing the Top 7 Large Language Models LLMs/Systems for Coding in 2025

November 4, 2025

EDITOR'S PICK

Zuckerberg’s boring, bleak AI bet

Zuckerberg’s boring, bleak AI bet

August 9, 2025
I Tested Candy AI for 30 Days: Here’s what really happened

I Tested Candy AI for 30 Days: Here’s what really happened

July 23, 2025
Google agrees to $135 million settlement for collecting Android users’ data

Google agrees to $135 million settlement for collecting Android users’ data

January 30, 2026
Website Maintenance Services

Marketing Planning Services Calgary

July 8, 2025

About

We bring you the best Premium WordPress Themes that perfect for news, magazine, personal blog, etc. Check our landing page for details.

Follow us

Categories

  • Account Based Marketing
  • Ad Management
  • Al, Analytics and Automation
  • Brand Management
  • Channel Marketing
  • Digital Marketing
  • Direct Marketing
  • Event Management
  • Google Marketing
  • Marketing Attribution and Consulting
  • Marketing Automation
  • Mobile Marketing
  • PR Solutions
  • Social Media Management
  • Technology And Software
  • Uncategorized

Recent Posts

  • Restaurant Visibility Trifecta: SEO, Reviews, PR
  • 23 Instagram demographics marketers need to know in 2026
  • MIT researchers use AI to uncover atomic defects in materials | MIT News
  • Experiential Marketing Trend of the Week: Streetscapes
  • About Us
  • Disclaimer
  • Contact Us
  • Privacy Policy
No Result
View All Result
  • Technology And Software
    • Account Based Marketing
    • Channel Marketing
    • Marketing Automation
      • Al, Analytics and Automation
      • Ad Management
  • Digital Marketing
    • Social Media Management
    • Google Marketing
  • Direct Marketing
    • Brand Management
    • Marketing Attribution and Consulting
  • Mobile Marketing
  • Event Management
  • PR Solutions